github.com/aavshr/aws-sdk-go@v1.41.3/service/networkfirewall/api.go (about) 1 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3 package networkfirewall 4 5 import ( 6 "fmt" 7 8 "github.com/aavshr/aws-sdk-go/aws" 9 "github.com/aavshr/aws-sdk-go/aws/awsutil" 10 "github.com/aavshr/aws-sdk-go/aws/request" 11 "github.com/aavshr/aws-sdk-go/private/protocol" 12 "github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc" 13 ) 14 15 const opAssociateFirewallPolicy = "AssociateFirewallPolicy" 16 17 // AssociateFirewallPolicyRequest generates a "aws/request.Request" representing the 18 // client's request for the AssociateFirewallPolicy operation. The "output" return 19 // value will be populated with the request's response once the request completes 20 // successfully. 21 // 22 // Use "Send" method on the returned Request to send the API call to the service. 23 // the "output" return value is not valid until after Send returns without error. 24 // 25 // See AssociateFirewallPolicy for more information on using the AssociateFirewallPolicy 26 // API call, and error handling. 27 // 28 // This method is useful when you want to inject custom logic or configuration 29 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 30 // 31 // 32 // // Example sending a request using the AssociateFirewallPolicyRequest method. 33 // req, resp := client.AssociateFirewallPolicyRequest(params) 34 // 35 // err := req.Send() 36 // if err == nil { // resp is now filled 37 // fmt.Println(resp) 38 // } 39 // 40 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/AssociateFirewallPolicy 41 func (c *NetworkFirewall) AssociateFirewallPolicyRequest(input *AssociateFirewallPolicyInput) (req *request.Request, output *AssociateFirewallPolicyOutput) { 42 op := &request.Operation{ 43 Name: opAssociateFirewallPolicy, 44 HTTPMethod: "POST", 45 HTTPPath: "/", 46 } 47 48 if input == nil { 49 input = &AssociateFirewallPolicyInput{} 50 } 51 52 output = &AssociateFirewallPolicyOutput{} 53 req = c.newRequest(op, input, output) 54 return 55 } 56 57 // AssociateFirewallPolicy API operation for AWS Network Firewall. 58 // 59 // Associates a FirewallPolicy to a Firewall. 60 // 61 // A firewall policy defines how to monitor and manage your VPC network traffic, 62 // using a collection of inspection rule groups and other settings. Each firewall 63 // requires one firewall policy association, and you can use the same firewall 64 // policy for multiple firewalls. 65 // 66 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 67 // with awserr.Error's Code and Message methods to get detailed information about 68 // the error. 69 // 70 // See the AWS API reference guide for AWS Network Firewall's 71 // API operation AssociateFirewallPolicy for usage and error information. 72 // 73 // Returned Error Types: 74 // * InvalidRequestException 75 // The operation failed because of a problem with your request. Examples include: 76 // 77 // * You specified an unsupported parameter name or value. 78 // 79 // * You tried to update a property with a value that isn't among the available 80 // types. 81 // 82 // * Your request references an ARN that is malformed, or corresponds to 83 // a resource that isn't valid in the context of the request. 84 // 85 // * InternalServerError 86 // Your request is valid, but Network Firewall couldn’t perform the operation 87 // because of a system problem. Retry your request. 88 // 89 // * ResourceNotFoundException 90 // Unable to locate a resource using the parameters that you provided. 91 // 92 // * ThrottlingException 93 // Unable to process the request due to throttling limitations. 94 // 95 // * InvalidTokenException 96 // The token you provided is stale or isn't valid for the operation. 97 // 98 // * InvalidOperationException 99 // The operation failed because it's not valid. For example, you might have 100 // tried to delete a rule group or firewall policy that's in use. 101 // 102 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/AssociateFirewallPolicy 103 func (c *NetworkFirewall) AssociateFirewallPolicy(input *AssociateFirewallPolicyInput) (*AssociateFirewallPolicyOutput, error) { 104 req, out := c.AssociateFirewallPolicyRequest(input) 105 return out, req.Send() 106 } 107 108 // AssociateFirewallPolicyWithContext is the same as AssociateFirewallPolicy with the addition of 109 // the ability to pass a context and additional request options. 110 // 111 // See AssociateFirewallPolicy for details on how to use this API operation. 112 // 113 // The context must be non-nil and will be used for request cancellation. If 114 // the context is nil a panic will occur. In the future the SDK may create 115 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 116 // for more information on using Contexts. 117 func (c *NetworkFirewall) AssociateFirewallPolicyWithContext(ctx aws.Context, input *AssociateFirewallPolicyInput, opts ...request.Option) (*AssociateFirewallPolicyOutput, error) { 118 req, out := c.AssociateFirewallPolicyRequest(input) 119 req.SetContext(ctx) 120 req.ApplyOptions(opts...) 121 return out, req.Send() 122 } 123 124 const opAssociateSubnets = "AssociateSubnets" 125 126 // AssociateSubnetsRequest generates a "aws/request.Request" representing the 127 // client's request for the AssociateSubnets operation. The "output" return 128 // value will be populated with the request's response once the request completes 129 // successfully. 130 // 131 // Use "Send" method on the returned Request to send the API call to the service. 132 // the "output" return value is not valid until after Send returns without error. 133 // 134 // See AssociateSubnets for more information on using the AssociateSubnets 135 // API call, and error handling. 136 // 137 // This method is useful when you want to inject custom logic or configuration 138 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 139 // 140 // 141 // // Example sending a request using the AssociateSubnetsRequest method. 142 // req, resp := client.AssociateSubnetsRequest(params) 143 // 144 // err := req.Send() 145 // if err == nil { // resp is now filled 146 // fmt.Println(resp) 147 // } 148 // 149 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/AssociateSubnets 150 func (c *NetworkFirewall) AssociateSubnetsRequest(input *AssociateSubnetsInput) (req *request.Request, output *AssociateSubnetsOutput) { 151 op := &request.Operation{ 152 Name: opAssociateSubnets, 153 HTTPMethod: "POST", 154 HTTPPath: "/", 155 } 156 157 if input == nil { 158 input = &AssociateSubnetsInput{} 159 } 160 161 output = &AssociateSubnetsOutput{} 162 req = c.newRequest(op, input, output) 163 return 164 } 165 166 // AssociateSubnets API operation for AWS Network Firewall. 167 // 168 // Associates the specified subnets in the Amazon VPC to the firewall. You can 169 // specify one subnet for each of the Availability Zones that the VPC spans. 170 // 171 // This request creates an AWS Network Firewall firewall endpoint in each of 172 // the subnets. To enable the firewall's protections, you must also modify the 173 // VPC's route tables for each subnet's Availability Zone, to redirect the traffic 174 // that's coming into and going out of the zone through the firewall endpoint. 175 // 176 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 177 // with awserr.Error's Code and Message methods to get detailed information about 178 // the error. 179 // 180 // See the AWS API reference guide for AWS Network Firewall's 181 // API operation AssociateSubnets for usage and error information. 182 // 183 // Returned Error Types: 184 // * InvalidRequestException 185 // The operation failed because of a problem with your request. Examples include: 186 // 187 // * You specified an unsupported parameter name or value. 188 // 189 // * You tried to update a property with a value that isn't among the available 190 // types. 191 // 192 // * Your request references an ARN that is malformed, or corresponds to 193 // a resource that isn't valid in the context of the request. 194 // 195 // * InternalServerError 196 // Your request is valid, but Network Firewall couldn’t perform the operation 197 // because of a system problem. Retry your request. 198 // 199 // * ResourceNotFoundException 200 // Unable to locate a resource using the parameters that you provided. 201 // 202 // * ThrottlingException 203 // Unable to process the request due to throttling limitations. 204 // 205 // * InvalidTokenException 206 // The token you provided is stale or isn't valid for the operation. 207 // 208 // * InvalidOperationException 209 // The operation failed because it's not valid. For example, you might have 210 // tried to delete a rule group or firewall policy that's in use. 211 // 212 // * InsufficientCapacityException 213 // AWS doesn't currently have enough available capacity to fulfill your request. 214 // Try your request later. 215 // 216 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/AssociateSubnets 217 func (c *NetworkFirewall) AssociateSubnets(input *AssociateSubnetsInput) (*AssociateSubnetsOutput, error) { 218 req, out := c.AssociateSubnetsRequest(input) 219 return out, req.Send() 220 } 221 222 // AssociateSubnetsWithContext is the same as AssociateSubnets with the addition of 223 // the ability to pass a context and additional request options. 224 // 225 // See AssociateSubnets for details on how to use this API operation. 226 // 227 // The context must be non-nil and will be used for request cancellation. If 228 // the context is nil a panic will occur. In the future the SDK may create 229 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 230 // for more information on using Contexts. 231 func (c *NetworkFirewall) AssociateSubnetsWithContext(ctx aws.Context, input *AssociateSubnetsInput, opts ...request.Option) (*AssociateSubnetsOutput, error) { 232 req, out := c.AssociateSubnetsRequest(input) 233 req.SetContext(ctx) 234 req.ApplyOptions(opts...) 235 return out, req.Send() 236 } 237 238 const opCreateFirewall = "CreateFirewall" 239 240 // CreateFirewallRequest generates a "aws/request.Request" representing the 241 // client's request for the CreateFirewall operation. The "output" return 242 // value will be populated with the request's response once the request completes 243 // successfully. 244 // 245 // Use "Send" method on the returned Request to send the API call to the service. 246 // the "output" return value is not valid until after Send returns without error. 247 // 248 // See CreateFirewall for more information on using the CreateFirewall 249 // API call, and error handling. 250 // 251 // This method is useful when you want to inject custom logic or configuration 252 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 253 // 254 // 255 // // Example sending a request using the CreateFirewallRequest method. 256 // req, resp := client.CreateFirewallRequest(params) 257 // 258 // err := req.Send() 259 // if err == nil { // resp is now filled 260 // fmt.Println(resp) 261 // } 262 // 263 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateFirewall 264 func (c *NetworkFirewall) CreateFirewallRequest(input *CreateFirewallInput) (req *request.Request, output *CreateFirewallOutput) { 265 op := &request.Operation{ 266 Name: opCreateFirewall, 267 HTTPMethod: "POST", 268 HTTPPath: "/", 269 } 270 271 if input == nil { 272 input = &CreateFirewallInput{} 273 } 274 275 output = &CreateFirewallOutput{} 276 req = c.newRequest(op, input, output) 277 return 278 } 279 280 // CreateFirewall API operation for AWS Network Firewall. 281 // 282 // Creates an AWS Network Firewall Firewall and accompanying FirewallStatus 283 // for a VPC. 284 // 285 // The firewall defines the configuration settings for an AWS Network Firewall 286 // firewall. The settings that you can define at creation include the firewall 287 // policy, the subnets in your VPC to use for the firewall endpoints, and any 288 // tags that are attached to the firewall AWS resource. 289 // 290 // After you create a firewall, you can provide additional settings, like the 291 // logging configuration. 292 // 293 // To update the settings for a firewall, you use the operations that apply 294 // to the settings themselves, for example UpdateLoggingConfiguration, AssociateSubnets, 295 // and UpdateFirewallDeleteProtection. 296 // 297 // To manage a firewall's tags, use the standard AWS resource tagging operations, 298 // ListTagsForResource, TagResource, and UntagResource. 299 // 300 // To retrieve information about firewalls, use ListFirewalls and DescribeFirewall. 301 // 302 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 303 // with awserr.Error's Code and Message methods to get detailed information about 304 // the error. 305 // 306 // See the AWS API reference guide for AWS Network Firewall's 307 // API operation CreateFirewall for usage and error information. 308 // 309 // Returned Error Types: 310 // * InvalidRequestException 311 // The operation failed because of a problem with your request. Examples include: 312 // 313 // * You specified an unsupported parameter name or value. 314 // 315 // * You tried to update a property with a value that isn't among the available 316 // types. 317 // 318 // * Your request references an ARN that is malformed, or corresponds to 319 // a resource that isn't valid in the context of the request. 320 // 321 // * LimitExceededException 322 // Unable to perform the operation because doing so would violate a limit setting. 323 // 324 // * InternalServerError 325 // Your request is valid, but Network Firewall couldn’t perform the operation 326 // because of a system problem. Retry your request. 327 // 328 // * ThrottlingException 329 // Unable to process the request due to throttling limitations. 330 // 331 // * InsufficientCapacityException 332 // AWS doesn't currently have enough available capacity to fulfill your request. 333 // Try your request later. 334 // 335 // * InvalidOperationException 336 // The operation failed because it's not valid. For example, you might have 337 // tried to delete a rule group or firewall policy that's in use. 338 // 339 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateFirewall 340 func (c *NetworkFirewall) CreateFirewall(input *CreateFirewallInput) (*CreateFirewallOutput, error) { 341 req, out := c.CreateFirewallRequest(input) 342 return out, req.Send() 343 } 344 345 // CreateFirewallWithContext is the same as CreateFirewall with the addition of 346 // the ability to pass a context and additional request options. 347 // 348 // See CreateFirewall for details on how to use this API operation. 349 // 350 // The context must be non-nil and will be used for request cancellation. If 351 // the context is nil a panic will occur. In the future the SDK may create 352 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 353 // for more information on using Contexts. 354 func (c *NetworkFirewall) CreateFirewallWithContext(ctx aws.Context, input *CreateFirewallInput, opts ...request.Option) (*CreateFirewallOutput, error) { 355 req, out := c.CreateFirewallRequest(input) 356 req.SetContext(ctx) 357 req.ApplyOptions(opts...) 358 return out, req.Send() 359 } 360 361 const opCreateFirewallPolicy = "CreateFirewallPolicy" 362 363 // CreateFirewallPolicyRequest generates a "aws/request.Request" representing the 364 // client's request for the CreateFirewallPolicy operation. The "output" return 365 // value will be populated with the request's response once the request completes 366 // successfully. 367 // 368 // Use "Send" method on the returned Request to send the API call to the service. 369 // the "output" return value is not valid until after Send returns without error. 370 // 371 // See CreateFirewallPolicy for more information on using the CreateFirewallPolicy 372 // API call, and error handling. 373 // 374 // This method is useful when you want to inject custom logic or configuration 375 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 376 // 377 // 378 // // Example sending a request using the CreateFirewallPolicyRequest method. 379 // req, resp := client.CreateFirewallPolicyRequest(params) 380 // 381 // err := req.Send() 382 // if err == nil { // resp is now filled 383 // fmt.Println(resp) 384 // } 385 // 386 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateFirewallPolicy 387 func (c *NetworkFirewall) CreateFirewallPolicyRequest(input *CreateFirewallPolicyInput) (req *request.Request, output *CreateFirewallPolicyOutput) { 388 op := &request.Operation{ 389 Name: opCreateFirewallPolicy, 390 HTTPMethod: "POST", 391 HTTPPath: "/", 392 } 393 394 if input == nil { 395 input = &CreateFirewallPolicyInput{} 396 } 397 398 output = &CreateFirewallPolicyOutput{} 399 req = c.newRequest(op, input, output) 400 return 401 } 402 403 // CreateFirewallPolicy API operation for AWS Network Firewall. 404 // 405 // Creates the firewall policy for the firewall according to the specifications. 406 // 407 // An AWS Network Firewall firewall policy defines the behavior of a firewall, 408 // in a collection of stateless and stateful rule groups and other settings. 409 // You can use one firewall policy for multiple firewalls. 410 // 411 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 412 // with awserr.Error's Code and Message methods to get detailed information about 413 // the error. 414 // 415 // See the AWS API reference guide for AWS Network Firewall's 416 // API operation CreateFirewallPolicy for usage and error information. 417 // 418 // Returned Error Types: 419 // * LimitExceededException 420 // Unable to perform the operation because doing so would violate a limit setting. 421 // 422 // * InvalidRequestException 423 // The operation failed because of a problem with your request. Examples include: 424 // 425 // * You specified an unsupported parameter name or value. 426 // 427 // * You tried to update a property with a value that isn't among the available 428 // types. 429 // 430 // * Your request references an ARN that is malformed, or corresponds to 431 // a resource that isn't valid in the context of the request. 432 // 433 // * ThrottlingException 434 // Unable to process the request due to throttling limitations. 435 // 436 // * InternalServerError 437 // Your request is valid, but Network Firewall couldn’t perform the operation 438 // because of a system problem. Retry your request. 439 // 440 // * InsufficientCapacityException 441 // AWS doesn't currently have enough available capacity to fulfill your request. 442 // Try your request later. 443 // 444 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateFirewallPolicy 445 func (c *NetworkFirewall) CreateFirewallPolicy(input *CreateFirewallPolicyInput) (*CreateFirewallPolicyOutput, error) { 446 req, out := c.CreateFirewallPolicyRequest(input) 447 return out, req.Send() 448 } 449 450 // CreateFirewallPolicyWithContext is the same as CreateFirewallPolicy with the addition of 451 // the ability to pass a context and additional request options. 452 // 453 // See CreateFirewallPolicy for details on how to use this API operation. 454 // 455 // The context must be non-nil and will be used for request cancellation. If 456 // the context is nil a panic will occur. In the future the SDK may create 457 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 458 // for more information on using Contexts. 459 func (c *NetworkFirewall) CreateFirewallPolicyWithContext(ctx aws.Context, input *CreateFirewallPolicyInput, opts ...request.Option) (*CreateFirewallPolicyOutput, error) { 460 req, out := c.CreateFirewallPolicyRequest(input) 461 req.SetContext(ctx) 462 req.ApplyOptions(opts...) 463 return out, req.Send() 464 } 465 466 const opCreateRuleGroup = "CreateRuleGroup" 467 468 // CreateRuleGroupRequest generates a "aws/request.Request" representing the 469 // client's request for the CreateRuleGroup operation. The "output" return 470 // value will be populated with the request's response once the request completes 471 // successfully. 472 // 473 // Use "Send" method on the returned Request to send the API call to the service. 474 // the "output" return value is not valid until after Send returns without error. 475 // 476 // See CreateRuleGroup for more information on using the CreateRuleGroup 477 // API call, and error handling. 478 // 479 // This method is useful when you want to inject custom logic or configuration 480 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 481 // 482 // 483 // // Example sending a request using the CreateRuleGroupRequest method. 484 // req, resp := client.CreateRuleGroupRequest(params) 485 // 486 // err := req.Send() 487 // if err == nil { // resp is now filled 488 // fmt.Println(resp) 489 // } 490 // 491 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateRuleGroup 492 func (c *NetworkFirewall) CreateRuleGroupRequest(input *CreateRuleGroupInput) (req *request.Request, output *CreateRuleGroupOutput) { 493 op := &request.Operation{ 494 Name: opCreateRuleGroup, 495 HTTPMethod: "POST", 496 HTTPPath: "/", 497 } 498 499 if input == nil { 500 input = &CreateRuleGroupInput{} 501 } 502 503 output = &CreateRuleGroupOutput{} 504 req = c.newRequest(op, input, output) 505 return 506 } 507 508 // CreateRuleGroup API operation for AWS Network Firewall. 509 // 510 // Creates the specified stateless or stateful rule group, which includes the 511 // rules for network traffic inspection, a capacity setting, and tags. 512 // 513 // You provide your rule group specification in your request using either RuleGroup 514 // or Rules. 515 // 516 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 517 // with awserr.Error's Code and Message methods to get detailed information about 518 // the error. 519 // 520 // See the AWS API reference guide for AWS Network Firewall's 521 // API operation CreateRuleGroup for usage and error information. 522 // 523 // Returned Error Types: 524 // * LimitExceededException 525 // Unable to perform the operation because doing so would violate a limit setting. 526 // 527 // * InvalidRequestException 528 // The operation failed because of a problem with your request. Examples include: 529 // 530 // * You specified an unsupported parameter name or value. 531 // 532 // * You tried to update a property with a value that isn't among the available 533 // types. 534 // 535 // * Your request references an ARN that is malformed, or corresponds to 536 // a resource that isn't valid in the context of the request. 537 // 538 // * ThrottlingException 539 // Unable to process the request due to throttling limitations. 540 // 541 // * InternalServerError 542 // Your request is valid, but Network Firewall couldn’t perform the operation 543 // because of a system problem. Retry your request. 544 // 545 // * InsufficientCapacityException 546 // AWS doesn't currently have enough available capacity to fulfill your request. 547 // Try your request later. 548 // 549 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/CreateRuleGroup 550 func (c *NetworkFirewall) CreateRuleGroup(input *CreateRuleGroupInput) (*CreateRuleGroupOutput, error) { 551 req, out := c.CreateRuleGroupRequest(input) 552 return out, req.Send() 553 } 554 555 // CreateRuleGroupWithContext is the same as CreateRuleGroup with the addition of 556 // the ability to pass a context and additional request options. 557 // 558 // See CreateRuleGroup for details on how to use this API operation. 559 // 560 // The context must be non-nil and will be used for request cancellation. If 561 // the context is nil a panic will occur. In the future the SDK may create 562 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 563 // for more information on using Contexts. 564 func (c *NetworkFirewall) CreateRuleGroupWithContext(ctx aws.Context, input *CreateRuleGroupInput, opts ...request.Option) (*CreateRuleGroupOutput, error) { 565 req, out := c.CreateRuleGroupRequest(input) 566 req.SetContext(ctx) 567 req.ApplyOptions(opts...) 568 return out, req.Send() 569 } 570 571 const opDeleteFirewall = "DeleteFirewall" 572 573 // DeleteFirewallRequest generates a "aws/request.Request" representing the 574 // client's request for the DeleteFirewall operation. The "output" return 575 // value will be populated with the request's response once the request completes 576 // successfully. 577 // 578 // Use "Send" method on the returned Request to send the API call to the service. 579 // the "output" return value is not valid until after Send returns without error. 580 // 581 // See DeleteFirewall for more information on using the DeleteFirewall 582 // API call, and error handling. 583 // 584 // This method is useful when you want to inject custom logic or configuration 585 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 586 // 587 // 588 // // Example sending a request using the DeleteFirewallRequest method. 589 // req, resp := client.DeleteFirewallRequest(params) 590 // 591 // err := req.Send() 592 // if err == nil { // resp is now filled 593 // fmt.Println(resp) 594 // } 595 // 596 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteFirewall 597 func (c *NetworkFirewall) DeleteFirewallRequest(input *DeleteFirewallInput) (req *request.Request, output *DeleteFirewallOutput) { 598 op := &request.Operation{ 599 Name: opDeleteFirewall, 600 HTTPMethod: "POST", 601 HTTPPath: "/", 602 } 603 604 if input == nil { 605 input = &DeleteFirewallInput{} 606 } 607 608 output = &DeleteFirewallOutput{} 609 req = c.newRequest(op, input, output) 610 return 611 } 612 613 // DeleteFirewall API operation for AWS Network Firewall. 614 // 615 // Deletes the specified Firewall and its FirewallStatus. This operation requires 616 // the firewall's DeleteProtection flag to be FALSE. You can't revert this operation. 617 // 618 // You can check whether a firewall is in use by reviewing the route tables 619 // for the Availability Zones where you have firewall subnet mappings. Retrieve 620 // the subnet mappings by calling DescribeFirewall. You define and update the 621 // route tables through Amazon VPC. As needed, update the route tables for the 622 // zones to remove the firewall endpoints. When the route tables no longer use 623 // the firewall endpoints, you can remove the firewall safely. 624 // 625 // To delete a firewall, remove the delete protection if you need to using UpdateFirewallDeleteProtection, 626 // then delete the firewall by calling DeleteFirewall. 627 // 628 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 629 // with awserr.Error's Code and Message methods to get detailed information about 630 // the error. 631 // 632 // See the AWS API reference guide for AWS Network Firewall's 633 // API operation DeleteFirewall for usage and error information. 634 // 635 // Returned Error Types: 636 // * InvalidRequestException 637 // The operation failed because of a problem with your request. Examples include: 638 // 639 // * You specified an unsupported parameter name or value. 640 // 641 // * You tried to update a property with a value that isn't among the available 642 // types. 643 // 644 // * Your request references an ARN that is malformed, or corresponds to 645 // a resource that isn't valid in the context of the request. 646 // 647 // * InternalServerError 648 // Your request is valid, but Network Firewall couldn’t perform the operation 649 // because of a system problem. Retry your request. 650 // 651 // * ResourceNotFoundException 652 // Unable to locate a resource using the parameters that you provided. 653 // 654 // * ThrottlingException 655 // Unable to process the request due to throttling limitations. 656 // 657 // * UnsupportedOperationException 658 // The operation you requested isn't supported by Network Firewall. 659 // 660 // * InvalidOperationException 661 // The operation failed because it's not valid. For example, you might have 662 // tried to delete a rule group or firewall policy that's in use. 663 // 664 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteFirewall 665 func (c *NetworkFirewall) DeleteFirewall(input *DeleteFirewallInput) (*DeleteFirewallOutput, error) { 666 req, out := c.DeleteFirewallRequest(input) 667 return out, req.Send() 668 } 669 670 // DeleteFirewallWithContext is the same as DeleteFirewall with the addition of 671 // the ability to pass a context and additional request options. 672 // 673 // See DeleteFirewall for details on how to use this API operation. 674 // 675 // The context must be non-nil and will be used for request cancellation. If 676 // the context is nil a panic will occur. In the future the SDK may create 677 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 678 // for more information on using Contexts. 679 func (c *NetworkFirewall) DeleteFirewallWithContext(ctx aws.Context, input *DeleteFirewallInput, opts ...request.Option) (*DeleteFirewallOutput, error) { 680 req, out := c.DeleteFirewallRequest(input) 681 req.SetContext(ctx) 682 req.ApplyOptions(opts...) 683 return out, req.Send() 684 } 685 686 const opDeleteFirewallPolicy = "DeleteFirewallPolicy" 687 688 // DeleteFirewallPolicyRequest generates a "aws/request.Request" representing the 689 // client's request for the DeleteFirewallPolicy operation. The "output" return 690 // value will be populated with the request's response once the request completes 691 // successfully. 692 // 693 // Use "Send" method on the returned Request to send the API call to the service. 694 // the "output" return value is not valid until after Send returns without error. 695 // 696 // See DeleteFirewallPolicy for more information on using the DeleteFirewallPolicy 697 // API call, and error handling. 698 // 699 // This method is useful when you want to inject custom logic or configuration 700 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 701 // 702 // 703 // // Example sending a request using the DeleteFirewallPolicyRequest method. 704 // req, resp := client.DeleteFirewallPolicyRequest(params) 705 // 706 // err := req.Send() 707 // if err == nil { // resp is now filled 708 // fmt.Println(resp) 709 // } 710 // 711 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteFirewallPolicy 712 func (c *NetworkFirewall) DeleteFirewallPolicyRequest(input *DeleteFirewallPolicyInput) (req *request.Request, output *DeleteFirewallPolicyOutput) { 713 op := &request.Operation{ 714 Name: opDeleteFirewallPolicy, 715 HTTPMethod: "POST", 716 HTTPPath: "/", 717 } 718 719 if input == nil { 720 input = &DeleteFirewallPolicyInput{} 721 } 722 723 output = &DeleteFirewallPolicyOutput{} 724 req = c.newRequest(op, input, output) 725 return 726 } 727 728 // DeleteFirewallPolicy API operation for AWS Network Firewall. 729 // 730 // Deletes the specified FirewallPolicy. 731 // 732 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 733 // with awserr.Error's Code and Message methods to get detailed information about 734 // the error. 735 // 736 // See the AWS API reference guide for AWS Network Firewall's 737 // API operation DeleteFirewallPolicy for usage and error information. 738 // 739 // Returned Error Types: 740 // * InvalidRequestException 741 // The operation failed because of a problem with your request. Examples include: 742 // 743 // * You specified an unsupported parameter name or value. 744 // 745 // * You tried to update a property with a value that isn't among the available 746 // types. 747 // 748 // * Your request references an ARN that is malformed, or corresponds to 749 // a resource that isn't valid in the context of the request. 750 // 751 // * ResourceNotFoundException 752 // Unable to locate a resource using the parameters that you provided. 753 // 754 // * ThrottlingException 755 // Unable to process the request due to throttling limitations. 756 // 757 // * InternalServerError 758 // Your request is valid, but Network Firewall couldn’t perform the operation 759 // because of a system problem. Retry your request. 760 // 761 // * UnsupportedOperationException 762 // The operation you requested isn't supported by Network Firewall. 763 // 764 // * InvalidOperationException 765 // The operation failed because it's not valid. For example, you might have 766 // tried to delete a rule group or firewall policy that's in use. 767 // 768 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteFirewallPolicy 769 func (c *NetworkFirewall) DeleteFirewallPolicy(input *DeleteFirewallPolicyInput) (*DeleteFirewallPolicyOutput, error) { 770 req, out := c.DeleteFirewallPolicyRequest(input) 771 return out, req.Send() 772 } 773 774 // DeleteFirewallPolicyWithContext is the same as DeleteFirewallPolicy with the addition of 775 // the ability to pass a context and additional request options. 776 // 777 // See DeleteFirewallPolicy for details on how to use this API operation. 778 // 779 // The context must be non-nil and will be used for request cancellation. If 780 // the context is nil a panic will occur. In the future the SDK may create 781 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 782 // for more information on using Contexts. 783 func (c *NetworkFirewall) DeleteFirewallPolicyWithContext(ctx aws.Context, input *DeleteFirewallPolicyInput, opts ...request.Option) (*DeleteFirewallPolicyOutput, error) { 784 req, out := c.DeleteFirewallPolicyRequest(input) 785 req.SetContext(ctx) 786 req.ApplyOptions(opts...) 787 return out, req.Send() 788 } 789 790 const opDeleteResourcePolicy = "DeleteResourcePolicy" 791 792 // DeleteResourcePolicyRequest generates a "aws/request.Request" representing the 793 // client's request for the DeleteResourcePolicy operation. The "output" return 794 // value will be populated with the request's response once the request completes 795 // successfully. 796 // 797 // Use "Send" method on the returned Request to send the API call to the service. 798 // the "output" return value is not valid until after Send returns without error. 799 // 800 // See DeleteResourcePolicy for more information on using the DeleteResourcePolicy 801 // API call, and error handling. 802 // 803 // This method is useful when you want to inject custom logic or configuration 804 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 805 // 806 // 807 // // Example sending a request using the DeleteResourcePolicyRequest method. 808 // req, resp := client.DeleteResourcePolicyRequest(params) 809 // 810 // err := req.Send() 811 // if err == nil { // resp is now filled 812 // fmt.Println(resp) 813 // } 814 // 815 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteResourcePolicy 816 func (c *NetworkFirewall) DeleteResourcePolicyRequest(input *DeleteResourcePolicyInput) (req *request.Request, output *DeleteResourcePolicyOutput) { 817 op := &request.Operation{ 818 Name: opDeleteResourcePolicy, 819 HTTPMethod: "POST", 820 HTTPPath: "/", 821 } 822 823 if input == nil { 824 input = &DeleteResourcePolicyInput{} 825 } 826 827 output = &DeleteResourcePolicyOutput{} 828 req = c.newRequest(op, input, output) 829 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 830 return 831 } 832 833 // DeleteResourcePolicy API operation for AWS Network Firewall. 834 // 835 // Deletes a resource policy that you created in a PutResourcePolicy request. 836 // 837 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 838 // with awserr.Error's Code and Message methods to get detailed information about 839 // the error. 840 // 841 // See the AWS API reference guide for AWS Network Firewall's 842 // API operation DeleteResourcePolicy for usage and error information. 843 // 844 // Returned Error Types: 845 // * InvalidRequestException 846 // The operation failed because of a problem with your request. Examples include: 847 // 848 // * You specified an unsupported parameter name or value. 849 // 850 // * You tried to update a property with a value that isn't among the available 851 // types. 852 // 853 // * Your request references an ARN that is malformed, or corresponds to 854 // a resource that isn't valid in the context of the request. 855 // 856 // * InternalServerError 857 // Your request is valid, but Network Firewall couldn’t perform the operation 858 // because of a system problem. Retry your request. 859 // 860 // * ResourceNotFoundException 861 // Unable to locate a resource using the parameters that you provided. 862 // 863 // * ThrottlingException 864 // Unable to process the request due to throttling limitations. 865 // 866 // * InvalidResourcePolicyException 867 // The policy statement failed validation. 868 // 869 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteResourcePolicy 870 func (c *NetworkFirewall) DeleteResourcePolicy(input *DeleteResourcePolicyInput) (*DeleteResourcePolicyOutput, error) { 871 req, out := c.DeleteResourcePolicyRequest(input) 872 return out, req.Send() 873 } 874 875 // DeleteResourcePolicyWithContext is the same as DeleteResourcePolicy with the addition of 876 // the ability to pass a context and additional request options. 877 // 878 // See DeleteResourcePolicy for details on how to use this API operation. 879 // 880 // The context must be non-nil and will be used for request cancellation. If 881 // the context is nil a panic will occur. In the future the SDK may create 882 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 883 // for more information on using Contexts. 884 func (c *NetworkFirewall) DeleteResourcePolicyWithContext(ctx aws.Context, input *DeleteResourcePolicyInput, opts ...request.Option) (*DeleteResourcePolicyOutput, error) { 885 req, out := c.DeleteResourcePolicyRequest(input) 886 req.SetContext(ctx) 887 req.ApplyOptions(opts...) 888 return out, req.Send() 889 } 890 891 const opDeleteRuleGroup = "DeleteRuleGroup" 892 893 // DeleteRuleGroupRequest generates a "aws/request.Request" representing the 894 // client's request for the DeleteRuleGroup operation. The "output" return 895 // value will be populated with the request's response once the request completes 896 // successfully. 897 // 898 // Use "Send" method on the returned Request to send the API call to the service. 899 // the "output" return value is not valid until after Send returns without error. 900 // 901 // See DeleteRuleGroup for more information on using the DeleteRuleGroup 902 // API call, and error handling. 903 // 904 // This method is useful when you want to inject custom logic or configuration 905 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 906 // 907 // 908 // // Example sending a request using the DeleteRuleGroupRequest method. 909 // req, resp := client.DeleteRuleGroupRequest(params) 910 // 911 // err := req.Send() 912 // if err == nil { // resp is now filled 913 // fmt.Println(resp) 914 // } 915 // 916 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteRuleGroup 917 func (c *NetworkFirewall) DeleteRuleGroupRequest(input *DeleteRuleGroupInput) (req *request.Request, output *DeleteRuleGroupOutput) { 918 op := &request.Operation{ 919 Name: opDeleteRuleGroup, 920 HTTPMethod: "POST", 921 HTTPPath: "/", 922 } 923 924 if input == nil { 925 input = &DeleteRuleGroupInput{} 926 } 927 928 output = &DeleteRuleGroupOutput{} 929 req = c.newRequest(op, input, output) 930 return 931 } 932 933 // DeleteRuleGroup API operation for AWS Network Firewall. 934 // 935 // Deletes the specified RuleGroup. 936 // 937 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 938 // with awserr.Error's Code and Message methods to get detailed information about 939 // the error. 940 // 941 // See the AWS API reference guide for AWS Network Firewall's 942 // API operation DeleteRuleGroup for usage and error information. 943 // 944 // Returned Error Types: 945 // * InvalidRequestException 946 // The operation failed because of a problem with your request. Examples include: 947 // 948 // * You specified an unsupported parameter name or value. 949 // 950 // * You tried to update a property with a value that isn't among the available 951 // types. 952 // 953 // * Your request references an ARN that is malformed, or corresponds to 954 // a resource that isn't valid in the context of the request. 955 // 956 // * ResourceNotFoundException 957 // Unable to locate a resource using the parameters that you provided. 958 // 959 // * ThrottlingException 960 // Unable to process the request due to throttling limitations. 961 // 962 // * InternalServerError 963 // Your request is valid, but Network Firewall couldn’t perform the operation 964 // because of a system problem. Retry your request. 965 // 966 // * UnsupportedOperationException 967 // The operation you requested isn't supported by Network Firewall. 968 // 969 // * InvalidOperationException 970 // The operation failed because it's not valid. For example, you might have 971 // tried to delete a rule group or firewall policy that's in use. 972 // 973 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteRuleGroup 974 func (c *NetworkFirewall) DeleteRuleGroup(input *DeleteRuleGroupInput) (*DeleteRuleGroupOutput, error) { 975 req, out := c.DeleteRuleGroupRequest(input) 976 return out, req.Send() 977 } 978 979 // DeleteRuleGroupWithContext is the same as DeleteRuleGroup with the addition of 980 // the ability to pass a context and additional request options. 981 // 982 // See DeleteRuleGroup for details on how to use this API operation. 983 // 984 // The context must be non-nil and will be used for request cancellation. If 985 // the context is nil a panic will occur. In the future the SDK may create 986 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 987 // for more information on using Contexts. 988 func (c *NetworkFirewall) DeleteRuleGroupWithContext(ctx aws.Context, input *DeleteRuleGroupInput, opts ...request.Option) (*DeleteRuleGroupOutput, error) { 989 req, out := c.DeleteRuleGroupRequest(input) 990 req.SetContext(ctx) 991 req.ApplyOptions(opts...) 992 return out, req.Send() 993 } 994 995 const opDescribeFirewall = "DescribeFirewall" 996 997 // DescribeFirewallRequest generates a "aws/request.Request" representing the 998 // client's request for the DescribeFirewall operation. The "output" return 999 // value will be populated with the request's response once the request completes 1000 // successfully. 1001 // 1002 // Use "Send" method on the returned Request to send the API call to the service. 1003 // the "output" return value is not valid until after Send returns without error. 1004 // 1005 // See DescribeFirewall for more information on using the DescribeFirewall 1006 // API call, and error handling. 1007 // 1008 // This method is useful when you want to inject custom logic or configuration 1009 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1010 // 1011 // 1012 // // Example sending a request using the DescribeFirewallRequest method. 1013 // req, resp := client.DescribeFirewallRequest(params) 1014 // 1015 // err := req.Send() 1016 // if err == nil { // resp is now filled 1017 // fmt.Println(resp) 1018 // } 1019 // 1020 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewall 1021 func (c *NetworkFirewall) DescribeFirewallRequest(input *DescribeFirewallInput) (req *request.Request, output *DescribeFirewallOutput) { 1022 op := &request.Operation{ 1023 Name: opDescribeFirewall, 1024 HTTPMethod: "POST", 1025 HTTPPath: "/", 1026 } 1027 1028 if input == nil { 1029 input = &DescribeFirewallInput{} 1030 } 1031 1032 output = &DescribeFirewallOutput{} 1033 req = c.newRequest(op, input, output) 1034 return 1035 } 1036 1037 // DescribeFirewall API operation for AWS Network Firewall. 1038 // 1039 // Returns the data objects for the specified firewall. 1040 // 1041 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1042 // with awserr.Error's Code and Message methods to get detailed information about 1043 // the error. 1044 // 1045 // See the AWS API reference guide for AWS Network Firewall's 1046 // API operation DescribeFirewall for usage and error information. 1047 // 1048 // Returned Error Types: 1049 // * InvalidRequestException 1050 // The operation failed because of a problem with your request. Examples include: 1051 // 1052 // * You specified an unsupported parameter name or value. 1053 // 1054 // * You tried to update a property with a value that isn't among the available 1055 // types. 1056 // 1057 // * Your request references an ARN that is malformed, or corresponds to 1058 // a resource that isn't valid in the context of the request. 1059 // 1060 // * InternalServerError 1061 // Your request is valid, but Network Firewall couldn’t perform the operation 1062 // because of a system problem. Retry your request. 1063 // 1064 // * ResourceNotFoundException 1065 // Unable to locate a resource using the parameters that you provided. 1066 // 1067 // * ThrottlingException 1068 // Unable to process the request due to throttling limitations. 1069 // 1070 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewall 1071 func (c *NetworkFirewall) DescribeFirewall(input *DescribeFirewallInput) (*DescribeFirewallOutput, error) { 1072 req, out := c.DescribeFirewallRequest(input) 1073 return out, req.Send() 1074 } 1075 1076 // DescribeFirewallWithContext is the same as DescribeFirewall with the addition of 1077 // the ability to pass a context and additional request options. 1078 // 1079 // See DescribeFirewall for details on how to use this API operation. 1080 // 1081 // The context must be non-nil and will be used for request cancellation. If 1082 // the context is nil a panic will occur. In the future the SDK may create 1083 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1084 // for more information on using Contexts. 1085 func (c *NetworkFirewall) DescribeFirewallWithContext(ctx aws.Context, input *DescribeFirewallInput, opts ...request.Option) (*DescribeFirewallOutput, error) { 1086 req, out := c.DescribeFirewallRequest(input) 1087 req.SetContext(ctx) 1088 req.ApplyOptions(opts...) 1089 return out, req.Send() 1090 } 1091 1092 const opDescribeFirewallPolicy = "DescribeFirewallPolicy" 1093 1094 // DescribeFirewallPolicyRequest generates a "aws/request.Request" representing the 1095 // client's request for the DescribeFirewallPolicy operation. The "output" return 1096 // value will be populated with the request's response once the request completes 1097 // successfully. 1098 // 1099 // Use "Send" method on the returned Request to send the API call to the service. 1100 // the "output" return value is not valid until after Send returns without error. 1101 // 1102 // See DescribeFirewallPolicy for more information on using the DescribeFirewallPolicy 1103 // API call, and error handling. 1104 // 1105 // This method is useful when you want to inject custom logic or configuration 1106 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1107 // 1108 // 1109 // // Example sending a request using the DescribeFirewallPolicyRequest method. 1110 // req, resp := client.DescribeFirewallPolicyRequest(params) 1111 // 1112 // err := req.Send() 1113 // if err == nil { // resp is now filled 1114 // fmt.Println(resp) 1115 // } 1116 // 1117 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewallPolicy 1118 func (c *NetworkFirewall) DescribeFirewallPolicyRequest(input *DescribeFirewallPolicyInput) (req *request.Request, output *DescribeFirewallPolicyOutput) { 1119 op := &request.Operation{ 1120 Name: opDescribeFirewallPolicy, 1121 HTTPMethod: "POST", 1122 HTTPPath: "/", 1123 } 1124 1125 if input == nil { 1126 input = &DescribeFirewallPolicyInput{} 1127 } 1128 1129 output = &DescribeFirewallPolicyOutput{} 1130 req = c.newRequest(op, input, output) 1131 return 1132 } 1133 1134 // DescribeFirewallPolicy API operation for AWS Network Firewall. 1135 // 1136 // Returns the data objects for the specified firewall policy. 1137 // 1138 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1139 // with awserr.Error's Code and Message methods to get detailed information about 1140 // the error. 1141 // 1142 // See the AWS API reference guide for AWS Network Firewall's 1143 // API operation DescribeFirewallPolicy for usage and error information. 1144 // 1145 // Returned Error Types: 1146 // * InvalidRequestException 1147 // The operation failed because of a problem with your request. Examples include: 1148 // 1149 // * You specified an unsupported parameter name or value. 1150 // 1151 // * You tried to update a property with a value that isn't among the available 1152 // types. 1153 // 1154 // * Your request references an ARN that is malformed, or corresponds to 1155 // a resource that isn't valid in the context of the request. 1156 // 1157 // * ResourceNotFoundException 1158 // Unable to locate a resource using the parameters that you provided. 1159 // 1160 // * ThrottlingException 1161 // Unable to process the request due to throttling limitations. 1162 // 1163 // * InternalServerError 1164 // Your request is valid, but Network Firewall couldn’t perform the operation 1165 // because of a system problem. Retry your request. 1166 // 1167 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeFirewallPolicy 1168 func (c *NetworkFirewall) DescribeFirewallPolicy(input *DescribeFirewallPolicyInput) (*DescribeFirewallPolicyOutput, error) { 1169 req, out := c.DescribeFirewallPolicyRequest(input) 1170 return out, req.Send() 1171 } 1172 1173 // DescribeFirewallPolicyWithContext is the same as DescribeFirewallPolicy with the addition of 1174 // the ability to pass a context and additional request options. 1175 // 1176 // See DescribeFirewallPolicy for details on how to use this API operation. 1177 // 1178 // The context must be non-nil and will be used for request cancellation. If 1179 // the context is nil a panic will occur. In the future the SDK may create 1180 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1181 // for more information on using Contexts. 1182 func (c *NetworkFirewall) DescribeFirewallPolicyWithContext(ctx aws.Context, input *DescribeFirewallPolicyInput, opts ...request.Option) (*DescribeFirewallPolicyOutput, error) { 1183 req, out := c.DescribeFirewallPolicyRequest(input) 1184 req.SetContext(ctx) 1185 req.ApplyOptions(opts...) 1186 return out, req.Send() 1187 } 1188 1189 const opDescribeLoggingConfiguration = "DescribeLoggingConfiguration" 1190 1191 // DescribeLoggingConfigurationRequest generates a "aws/request.Request" representing the 1192 // client's request for the DescribeLoggingConfiguration operation. The "output" return 1193 // value will be populated with the request's response once the request completes 1194 // successfully. 1195 // 1196 // Use "Send" method on the returned Request to send the API call to the service. 1197 // the "output" return value is not valid until after Send returns without error. 1198 // 1199 // See DescribeLoggingConfiguration for more information on using the DescribeLoggingConfiguration 1200 // API call, and error handling. 1201 // 1202 // This method is useful when you want to inject custom logic or configuration 1203 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1204 // 1205 // 1206 // // Example sending a request using the DescribeLoggingConfigurationRequest method. 1207 // req, resp := client.DescribeLoggingConfigurationRequest(params) 1208 // 1209 // err := req.Send() 1210 // if err == nil { // resp is now filled 1211 // fmt.Println(resp) 1212 // } 1213 // 1214 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeLoggingConfiguration 1215 func (c *NetworkFirewall) DescribeLoggingConfigurationRequest(input *DescribeLoggingConfigurationInput) (req *request.Request, output *DescribeLoggingConfigurationOutput) { 1216 op := &request.Operation{ 1217 Name: opDescribeLoggingConfiguration, 1218 HTTPMethod: "POST", 1219 HTTPPath: "/", 1220 } 1221 1222 if input == nil { 1223 input = &DescribeLoggingConfigurationInput{} 1224 } 1225 1226 output = &DescribeLoggingConfigurationOutput{} 1227 req = c.newRequest(op, input, output) 1228 return 1229 } 1230 1231 // DescribeLoggingConfiguration API operation for AWS Network Firewall. 1232 // 1233 // Returns the logging configuration for the specified firewall. 1234 // 1235 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1236 // with awserr.Error's Code and Message methods to get detailed information about 1237 // the error. 1238 // 1239 // See the AWS API reference guide for AWS Network Firewall's 1240 // API operation DescribeLoggingConfiguration for usage and error information. 1241 // 1242 // Returned Error Types: 1243 // * InvalidRequestException 1244 // The operation failed because of a problem with your request. Examples include: 1245 // 1246 // * You specified an unsupported parameter name or value. 1247 // 1248 // * You tried to update a property with a value that isn't among the available 1249 // types. 1250 // 1251 // * Your request references an ARN that is malformed, or corresponds to 1252 // a resource that isn't valid in the context of the request. 1253 // 1254 // * InternalServerError 1255 // Your request is valid, but Network Firewall couldn’t perform the operation 1256 // because of a system problem. Retry your request. 1257 // 1258 // * ResourceNotFoundException 1259 // Unable to locate a resource using the parameters that you provided. 1260 // 1261 // * ThrottlingException 1262 // Unable to process the request due to throttling limitations. 1263 // 1264 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeLoggingConfiguration 1265 func (c *NetworkFirewall) DescribeLoggingConfiguration(input *DescribeLoggingConfigurationInput) (*DescribeLoggingConfigurationOutput, error) { 1266 req, out := c.DescribeLoggingConfigurationRequest(input) 1267 return out, req.Send() 1268 } 1269 1270 // DescribeLoggingConfigurationWithContext is the same as DescribeLoggingConfiguration with the addition of 1271 // the ability to pass a context and additional request options. 1272 // 1273 // See DescribeLoggingConfiguration for details on how to use this API operation. 1274 // 1275 // The context must be non-nil and will be used for request cancellation. If 1276 // the context is nil a panic will occur. In the future the SDK may create 1277 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1278 // for more information on using Contexts. 1279 func (c *NetworkFirewall) DescribeLoggingConfigurationWithContext(ctx aws.Context, input *DescribeLoggingConfigurationInput, opts ...request.Option) (*DescribeLoggingConfigurationOutput, error) { 1280 req, out := c.DescribeLoggingConfigurationRequest(input) 1281 req.SetContext(ctx) 1282 req.ApplyOptions(opts...) 1283 return out, req.Send() 1284 } 1285 1286 const opDescribeResourcePolicy = "DescribeResourcePolicy" 1287 1288 // DescribeResourcePolicyRequest generates a "aws/request.Request" representing the 1289 // client's request for the DescribeResourcePolicy operation. The "output" return 1290 // value will be populated with the request's response once the request completes 1291 // successfully. 1292 // 1293 // Use "Send" method on the returned Request to send the API call to the service. 1294 // the "output" return value is not valid until after Send returns without error. 1295 // 1296 // See DescribeResourcePolicy for more information on using the DescribeResourcePolicy 1297 // API call, and error handling. 1298 // 1299 // This method is useful when you want to inject custom logic or configuration 1300 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1301 // 1302 // 1303 // // Example sending a request using the DescribeResourcePolicyRequest method. 1304 // req, resp := client.DescribeResourcePolicyRequest(params) 1305 // 1306 // err := req.Send() 1307 // if err == nil { // resp is now filled 1308 // fmt.Println(resp) 1309 // } 1310 // 1311 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeResourcePolicy 1312 func (c *NetworkFirewall) DescribeResourcePolicyRequest(input *DescribeResourcePolicyInput) (req *request.Request, output *DescribeResourcePolicyOutput) { 1313 op := &request.Operation{ 1314 Name: opDescribeResourcePolicy, 1315 HTTPMethod: "POST", 1316 HTTPPath: "/", 1317 } 1318 1319 if input == nil { 1320 input = &DescribeResourcePolicyInput{} 1321 } 1322 1323 output = &DescribeResourcePolicyOutput{} 1324 req = c.newRequest(op, input, output) 1325 return 1326 } 1327 1328 // DescribeResourcePolicy API operation for AWS Network Firewall. 1329 // 1330 // Retrieves a resource policy that you created in a PutResourcePolicy request. 1331 // 1332 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1333 // with awserr.Error's Code and Message methods to get detailed information about 1334 // the error. 1335 // 1336 // See the AWS API reference guide for AWS Network Firewall's 1337 // API operation DescribeResourcePolicy for usage and error information. 1338 // 1339 // Returned Error Types: 1340 // * InvalidRequestException 1341 // The operation failed because of a problem with your request. Examples include: 1342 // 1343 // * You specified an unsupported parameter name or value. 1344 // 1345 // * You tried to update a property with a value that isn't among the available 1346 // types. 1347 // 1348 // * Your request references an ARN that is malformed, or corresponds to 1349 // a resource that isn't valid in the context of the request. 1350 // 1351 // * InternalServerError 1352 // Your request is valid, but Network Firewall couldn’t perform the operation 1353 // because of a system problem. Retry your request. 1354 // 1355 // * ResourceNotFoundException 1356 // Unable to locate a resource using the parameters that you provided. 1357 // 1358 // * ThrottlingException 1359 // Unable to process the request due to throttling limitations. 1360 // 1361 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeResourcePolicy 1362 func (c *NetworkFirewall) DescribeResourcePolicy(input *DescribeResourcePolicyInput) (*DescribeResourcePolicyOutput, error) { 1363 req, out := c.DescribeResourcePolicyRequest(input) 1364 return out, req.Send() 1365 } 1366 1367 // DescribeResourcePolicyWithContext is the same as DescribeResourcePolicy with the addition of 1368 // the ability to pass a context and additional request options. 1369 // 1370 // See DescribeResourcePolicy for details on how to use this API operation. 1371 // 1372 // The context must be non-nil and will be used for request cancellation. If 1373 // the context is nil a panic will occur. In the future the SDK may create 1374 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1375 // for more information on using Contexts. 1376 func (c *NetworkFirewall) DescribeResourcePolicyWithContext(ctx aws.Context, input *DescribeResourcePolicyInput, opts ...request.Option) (*DescribeResourcePolicyOutput, error) { 1377 req, out := c.DescribeResourcePolicyRequest(input) 1378 req.SetContext(ctx) 1379 req.ApplyOptions(opts...) 1380 return out, req.Send() 1381 } 1382 1383 const opDescribeRuleGroup = "DescribeRuleGroup" 1384 1385 // DescribeRuleGroupRequest generates a "aws/request.Request" representing the 1386 // client's request for the DescribeRuleGroup operation. The "output" return 1387 // value will be populated with the request's response once the request completes 1388 // successfully. 1389 // 1390 // Use "Send" method on the returned Request to send the API call to the service. 1391 // the "output" return value is not valid until after Send returns without error. 1392 // 1393 // See DescribeRuleGroup for more information on using the DescribeRuleGroup 1394 // API call, and error handling. 1395 // 1396 // This method is useful when you want to inject custom logic or configuration 1397 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1398 // 1399 // 1400 // // Example sending a request using the DescribeRuleGroupRequest method. 1401 // req, resp := client.DescribeRuleGroupRequest(params) 1402 // 1403 // err := req.Send() 1404 // if err == nil { // resp is now filled 1405 // fmt.Println(resp) 1406 // } 1407 // 1408 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeRuleGroup 1409 func (c *NetworkFirewall) DescribeRuleGroupRequest(input *DescribeRuleGroupInput) (req *request.Request, output *DescribeRuleGroupOutput) { 1410 op := &request.Operation{ 1411 Name: opDescribeRuleGroup, 1412 HTTPMethod: "POST", 1413 HTTPPath: "/", 1414 } 1415 1416 if input == nil { 1417 input = &DescribeRuleGroupInput{} 1418 } 1419 1420 output = &DescribeRuleGroupOutput{} 1421 req = c.newRequest(op, input, output) 1422 return 1423 } 1424 1425 // DescribeRuleGroup API operation for AWS Network Firewall. 1426 // 1427 // Returns the data objects for the specified rule group. 1428 // 1429 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1430 // with awserr.Error's Code and Message methods to get detailed information about 1431 // the error. 1432 // 1433 // See the AWS API reference guide for AWS Network Firewall's 1434 // API operation DescribeRuleGroup for usage and error information. 1435 // 1436 // Returned Error Types: 1437 // * InvalidRequestException 1438 // The operation failed because of a problem with your request. Examples include: 1439 // 1440 // * You specified an unsupported parameter name or value. 1441 // 1442 // * You tried to update a property with a value that isn't among the available 1443 // types. 1444 // 1445 // * Your request references an ARN that is malformed, or corresponds to 1446 // a resource that isn't valid in the context of the request. 1447 // 1448 // * ResourceNotFoundException 1449 // Unable to locate a resource using the parameters that you provided. 1450 // 1451 // * ThrottlingException 1452 // Unable to process the request due to throttling limitations. 1453 // 1454 // * InternalServerError 1455 // Your request is valid, but Network Firewall couldn’t perform the operation 1456 // because of a system problem. Retry your request. 1457 // 1458 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DescribeRuleGroup 1459 func (c *NetworkFirewall) DescribeRuleGroup(input *DescribeRuleGroupInput) (*DescribeRuleGroupOutput, error) { 1460 req, out := c.DescribeRuleGroupRequest(input) 1461 return out, req.Send() 1462 } 1463 1464 // DescribeRuleGroupWithContext is the same as DescribeRuleGroup with the addition of 1465 // the ability to pass a context and additional request options. 1466 // 1467 // See DescribeRuleGroup for details on how to use this API operation. 1468 // 1469 // The context must be non-nil and will be used for request cancellation. If 1470 // the context is nil a panic will occur. In the future the SDK may create 1471 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1472 // for more information on using Contexts. 1473 func (c *NetworkFirewall) DescribeRuleGroupWithContext(ctx aws.Context, input *DescribeRuleGroupInput, opts ...request.Option) (*DescribeRuleGroupOutput, error) { 1474 req, out := c.DescribeRuleGroupRequest(input) 1475 req.SetContext(ctx) 1476 req.ApplyOptions(opts...) 1477 return out, req.Send() 1478 } 1479 1480 const opDisassociateSubnets = "DisassociateSubnets" 1481 1482 // DisassociateSubnetsRequest generates a "aws/request.Request" representing the 1483 // client's request for the DisassociateSubnets operation. The "output" return 1484 // value will be populated with the request's response once the request completes 1485 // successfully. 1486 // 1487 // Use "Send" method on the returned Request to send the API call to the service. 1488 // the "output" return value is not valid until after Send returns without error. 1489 // 1490 // See DisassociateSubnets for more information on using the DisassociateSubnets 1491 // API call, and error handling. 1492 // 1493 // This method is useful when you want to inject custom logic or configuration 1494 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1495 // 1496 // 1497 // // Example sending a request using the DisassociateSubnetsRequest method. 1498 // req, resp := client.DisassociateSubnetsRequest(params) 1499 // 1500 // err := req.Send() 1501 // if err == nil { // resp is now filled 1502 // fmt.Println(resp) 1503 // } 1504 // 1505 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DisassociateSubnets 1506 func (c *NetworkFirewall) DisassociateSubnetsRequest(input *DisassociateSubnetsInput) (req *request.Request, output *DisassociateSubnetsOutput) { 1507 op := &request.Operation{ 1508 Name: opDisassociateSubnets, 1509 HTTPMethod: "POST", 1510 HTTPPath: "/", 1511 } 1512 1513 if input == nil { 1514 input = &DisassociateSubnetsInput{} 1515 } 1516 1517 output = &DisassociateSubnetsOutput{} 1518 req = c.newRequest(op, input, output) 1519 return 1520 } 1521 1522 // DisassociateSubnets API operation for AWS Network Firewall. 1523 // 1524 // Removes the specified subnet associations from the firewall. This removes 1525 // the firewall endpoints from the subnets and removes any network filtering 1526 // protections that the endpoints were providing. 1527 // 1528 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1529 // with awserr.Error's Code and Message methods to get detailed information about 1530 // the error. 1531 // 1532 // See the AWS API reference guide for AWS Network Firewall's 1533 // API operation DisassociateSubnets for usage and error information. 1534 // 1535 // Returned Error Types: 1536 // * InvalidRequestException 1537 // The operation failed because of a problem with your request. Examples include: 1538 // 1539 // * You specified an unsupported parameter name or value. 1540 // 1541 // * You tried to update a property with a value that isn't among the available 1542 // types. 1543 // 1544 // * Your request references an ARN that is malformed, or corresponds to 1545 // a resource that isn't valid in the context of the request. 1546 // 1547 // * InternalServerError 1548 // Your request is valid, but Network Firewall couldn’t perform the operation 1549 // because of a system problem. Retry your request. 1550 // 1551 // * ResourceNotFoundException 1552 // Unable to locate a resource using the parameters that you provided. 1553 // 1554 // * ThrottlingException 1555 // Unable to process the request due to throttling limitations. 1556 // 1557 // * InvalidTokenException 1558 // The token you provided is stale or isn't valid for the operation. 1559 // 1560 // * InvalidOperationException 1561 // The operation failed because it's not valid. For example, you might have 1562 // tried to delete a rule group or firewall policy that's in use. 1563 // 1564 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DisassociateSubnets 1565 func (c *NetworkFirewall) DisassociateSubnets(input *DisassociateSubnetsInput) (*DisassociateSubnetsOutput, error) { 1566 req, out := c.DisassociateSubnetsRequest(input) 1567 return out, req.Send() 1568 } 1569 1570 // DisassociateSubnetsWithContext is the same as DisassociateSubnets with the addition of 1571 // the ability to pass a context and additional request options. 1572 // 1573 // See DisassociateSubnets for details on how to use this API operation. 1574 // 1575 // The context must be non-nil and will be used for request cancellation. If 1576 // the context is nil a panic will occur. In the future the SDK may create 1577 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1578 // for more information on using Contexts. 1579 func (c *NetworkFirewall) DisassociateSubnetsWithContext(ctx aws.Context, input *DisassociateSubnetsInput, opts ...request.Option) (*DisassociateSubnetsOutput, error) { 1580 req, out := c.DisassociateSubnetsRequest(input) 1581 req.SetContext(ctx) 1582 req.ApplyOptions(opts...) 1583 return out, req.Send() 1584 } 1585 1586 const opListFirewallPolicies = "ListFirewallPolicies" 1587 1588 // ListFirewallPoliciesRequest generates a "aws/request.Request" representing the 1589 // client's request for the ListFirewallPolicies operation. The "output" return 1590 // value will be populated with the request's response once the request completes 1591 // successfully. 1592 // 1593 // Use "Send" method on the returned Request to send the API call to the service. 1594 // the "output" return value is not valid until after Send returns without error. 1595 // 1596 // See ListFirewallPolicies for more information on using the ListFirewallPolicies 1597 // API call, and error handling. 1598 // 1599 // This method is useful when you want to inject custom logic or configuration 1600 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1601 // 1602 // 1603 // // Example sending a request using the ListFirewallPoliciesRequest method. 1604 // req, resp := client.ListFirewallPoliciesRequest(params) 1605 // 1606 // err := req.Send() 1607 // if err == nil { // resp is now filled 1608 // fmt.Println(resp) 1609 // } 1610 // 1611 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFirewallPolicies 1612 func (c *NetworkFirewall) ListFirewallPoliciesRequest(input *ListFirewallPoliciesInput) (req *request.Request, output *ListFirewallPoliciesOutput) { 1613 op := &request.Operation{ 1614 Name: opListFirewallPolicies, 1615 HTTPMethod: "POST", 1616 HTTPPath: "/", 1617 Paginator: &request.Paginator{ 1618 InputTokens: []string{"NextToken"}, 1619 OutputTokens: []string{"NextToken"}, 1620 LimitToken: "MaxResults", 1621 TruncationToken: "", 1622 }, 1623 } 1624 1625 if input == nil { 1626 input = &ListFirewallPoliciesInput{} 1627 } 1628 1629 output = &ListFirewallPoliciesOutput{} 1630 req = c.newRequest(op, input, output) 1631 return 1632 } 1633 1634 // ListFirewallPolicies API operation for AWS Network Firewall. 1635 // 1636 // Retrieves the metadata for the firewall policies that you have defined. Depending 1637 // on your setting for max results and the number of firewall policies, a single 1638 // call might not return the full list. 1639 // 1640 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1641 // with awserr.Error's Code and Message methods to get detailed information about 1642 // the error. 1643 // 1644 // See the AWS API reference guide for AWS Network Firewall's 1645 // API operation ListFirewallPolicies for usage and error information. 1646 // 1647 // Returned Error Types: 1648 // * InvalidRequestException 1649 // The operation failed because of a problem with your request. Examples include: 1650 // 1651 // * You specified an unsupported parameter name or value. 1652 // 1653 // * You tried to update a property with a value that isn't among the available 1654 // types. 1655 // 1656 // * Your request references an ARN that is malformed, or corresponds to 1657 // a resource that isn't valid in the context of the request. 1658 // 1659 // * ThrottlingException 1660 // Unable to process the request due to throttling limitations. 1661 // 1662 // * InternalServerError 1663 // Your request is valid, but Network Firewall couldn’t perform the operation 1664 // because of a system problem. Retry your request. 1665 // 1666 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFirewallPolicies 1667 func (c *NetworkFirewall) ListFirewallPolicies(input *ListFirewallPoliciesInput) (*ListFirewallPoliciesOutput, error) { 1668 req, out := c.ListFirewallPoliciesRequest(input) 1669 return out, req.Send() 1670 } 1671 1672 // ListFirewallPoliciesWithContext is the same as ListFirewallPolicies with the addition of 1673 // the ability to pass a context and additional request options. 1674 // 1675 // See ListFirewallPolicies for details on how to use this API operation. 1676 // 1677 // The context must be non-nil and will be used for request cancellation. If 1678 // the context is nil a panic will occur. In the future the SDK may create 1679 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1680 // for more information on using Contexts. 1681 func (c *NetworkFirewall) ListFirewallPoliciesWithContext(ctx aws.Context, input *ListFirewallPoliciesInput, opts ...request.Option) (*ListFirewallPoliciesOutput, error) { 1682 req, out := c.ListFirewallPoliciesRequest(input) 1683 req.SetContext(ctx) 1684 req.ApplyOptions(opts...) 1685 return out, req.Send() 1686 } 1687 1688 // ListFirewallPoliciesPages iterates over the pages of a ListFirewallPolicies operation, 1689 // calling the "fn" function with the response data for each page. To stop 1690 // iterating, return false from the fn function. 1691 // 1692 // See ListFirewallPolicies method for more information on how to use this operation. 1693 // 1694 // Note: This operation can generate multiple requests to a service. 1695 // 1696 // // Example iterating over at most 3 pages of a ListFirewallPolicies operation. 1697 // pageNum := 0 1698 // err := client.ListFirewallPoliciesPages(params, 1699 // func(page *networkfirewall.ListFirewallPoliciesOutput, lastPage bool) bool { 1700 // pageNum++ 1701 // fmt.Println(page) 1702 // return pageNum <= 3 1703 // }) 1704 // 1705 func (c *NetworkFirewall) ListFirewallPoliciesPages(input *ListFirewallPoliciesInput, fn func(*ListFirewallPoliciesOutput, bool) bool) error { 1706 return c.ListFirewallPoliciesPagesWithContext(aws.BackgroundContext(), input, fn) 1707 } 1708 1709 // ListFirewallPoliciesPagesWithContext same as ListFirewallPoliciesPages except 1710 // it takes a Context and allows setting request options on the pages. 1711 // 1712 // The context must be non-nil and will be used for request cancellation. If 1713 // the context is nil a panic will occur. In the future the SDK may create 1714 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1715 // for more information on using Contexts. 1716 func (c *NetworkFirewall) ListFirewallPoliciesPagesWithContext(ctx aws.Context, input *ListFirewallPoliciesInput, fn func(*ListFirewallPoliciesOutput, bool) bool, opts ...request.Option) error { 1717 p := request.Pagination{ 1718 NewRequest: func() (*request.Request, error) { 1719 var inCpy *ListFirewallPoliciesInput 1720 if input != nil { 1721 tmp := *input 1722 inCpy = &tmp 1723 } 1724 req, _ := c.ListFirewallPoliciesRequest(inCpy) 1725 req.SetContext(ctx) 1726 req.ApplyOptions(opts...) 1727 return req, nil 1728 }, 1729 } 1730 1731 for p.Next() { 1732 if !fn(p.Page().(*ListFirewallPoliciesOutput), !p.HasNextPage()) { 1733 break 1734 } 1735 } 1736 1737 return p.Err() 1738 } 1739 1740 const opListFirewalls = "ListFirewalls" 1741 1742 // ListFirewallsRequest generates a "aws/request.Request" representing the 1743 // client's request for the ListFirewalls operation. The "output" return 1744 // value will be populated with the request's response once the request completes 1745 // successfully. 1746 // 1747 // Use "Send" method on the returned Request to send the API call to the service. 1748 // the "output" return value is not valid until after Send returns without error. 1749 // 1750 // See ListFirewalls for more information on using the ListFirewalls 1751 // API call, and error handling. 1752 // 1753 // This method is useful when you want to inject custom logic or configuration 1754 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1755 // 1756 // 1757 // // Example sending a request using the ListFirewallsRequest method. 1758 // req, resp := client.ListFirewallsRequest(params) 1759 // 1760 // err := req.Send() 1761 // if err == nil { // resp is now filled 1762 // fmt.Println(resp) 1763 // } 1764 // 1765 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFirewalls 1766 func (c *NetworkFirewall) ListFirewallsRequest(input *ListFirewallsInput) (req *request.Request, output *ListFirewallsOutput) { 1767 op := &request.Operation{ 1768 Name: opListFirewalls, 1769 HTTPMethod: "POST", 1770 HTTPPath: "/", 1771 Paginator: &request.Paginator{ 1772 InputTokens: []string{"NextToken"}, 1773 OutputTokens: []string{"NextToken"}, 1774 LimitToken: "MaxResults", 1775 TruncationToken: "", 1776 }, 1777 } 1778 1779 if input == nil { 1780 input = &ListFirewallsInput{} 1781 } 1782 1783 output = &ListFirewallsOutput{} 1784 req = c.newRequest(op, input, output) 1785 return 1786 } 1787 1788 // ListFirewalls API operation for AWS Network Firewall. 1789 // 1790 // Retrieves the metadata for the firewalls that you have defined. If you provide 1791 // VPC identifiers in your request, this returns only the firewalls for those 1792 // VPCs. 1793 // 1794 // Depending on your setting for max results and the number of firewalls, a 1795 // single call might not return the full list. 1796 // 1797 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1798 // with awserr.Error's Code and Message methods to get detailed information about 1799 // the error. 1800 // 1801 // See the AWS API reference guide for AWS Network Firewall's 1802 // API operation ListFirewalls for usage and error information. 1803 // 1804 // Returned Error Types: 1805 // * InvalidRequestException 1806 // The operation failed because of a problem with your request. Examples include: 1807 // 1808 // * You specified an unsupported parameter name or value. 1809 // 1810 // * You tried to update a property with a value that isn't among the available 1811 // types. 1812 // 1813 // * Your request references an ARN that is malformed, or corresponds to 1814 // a resource that isn't valid in the context of the request. 1815 // 1816 // * InternalServerError 1817 // Your request is valid, but Network Firewall couldn’t perform the operation 1818 // because of a system problem. Retry your request. 1819 // 1820 // * ThrottlingException 1821 // Unable to process the request due to throttling limitations. 1822 // 1823 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListFirewalls 1824 func (c *NetworkFirewall) ListFirewalls(input *ListFirewallsInput) (*ListFirewallsOutput, error) { 1825 req, out := c.ListFirewallsRequest(input) 1826 return out, req.Send() 1827 } 1828 1829 // ListFirewallsWithContext is the same as ListFirewalls with the addition of 1830 // the ability to pass a context and additional request options. 1831 // 1832 // See ListFirewalls for details on how to use this API operation. 1833 // 1834 // The context must be non-nil and will be used for request cancellation. If 1835 // the context is nil a panic will occur. In the future the SDK may create 1836 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1837 // for more information on using Contexts. 1838 func (c *NetworkFirewall) ListFirewallsWithContext(ctx aws.Context, input *ListFirewallsInput, opts ...request.Option) (*ListFirewallsOutput, error) { 1839 req, out := c.ListFirewallsRequest(input) 1840 req.SetContext(ctx) 1841 req.ApplyOptions(opts...) 1842 return out, req.Send() 1843 } 1844 1845 // ListFirewallsPages iterates over the pages of a ListFirewalls operation, 1846 // calling the "fn" function with the response data for each page. To stop 1847 // iterating, return false from the fn function. 1848 // 1849 // See ListFirewalls method for more information on how to use this operation. 1850 // 1851 // Note: This operation can generate multiple requests to a service. 1852 // 1853 // // Example iterating over at most 3 pages of a ListFirewalls operation. 1854 // pageNum := 0 1855 // err := client.ListFirewallsPages(params, 1856 // func(page *networkfirewall.ListFirewallsOutput, lastPage bool) bool { 1857 // pageNum++ 1858 // fmt.Println(page) 1859 // return pageNum <= 3 1860 // }) 1861 // 1862 func (c *NetworkFirewall) ListFirewallsPages(input *ListFirewallsInput, fn func(*ListFirewallsOutput, bool) bool) error { 1863 return c.ListFirewallsPagesWithContext(aws.BackgroundContext(), input, fn) 1864 } 1865 1866 // ListFirewallsPagesWithContext same as ListFirewallsPages except 1867 // it takes a Context and allows setting request options on the pages. 1868 // 1869 // The context must be non-nil and will be used for request cancellation. If 1870 // the context is nil a panic will occur. In the future the SDK may create 1871 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1872 // for more information on using Contexts. 1873 func (c *NetworkFirewall) ListFirewallsPagesWithContext(ctx aws.Context, input *ListFirewallsInput, fn func(*ListFirewallsOutput, bool) bool, opts ...request.Option) error { 1874 p := request.Pagination{ 1875 NewRequest: func() (*request.Request, error) { 1876 var inCpy *ListFirewallsInput 1877 if input != nil { 1878 tmp := *input 1879 inCpy = &tmp 1880 } 1881 req, _ := c.ListFirewallsRequest(inCpy) 1882 req.SetContext(ctx) 1883 req.ApplyOptions(opts...) 1884 return req, nil 1885 }, 1886 } 1887 1888 for p.Next() { 1889 if !fn(p.Page().(*ListFirewallsOutput), !p.HasNextPage()) { 1890 break 1891 } 1892 } 1893 1894 return p.Err() 1895 } 1896 1897 const opListRuleGroups = "ListRuleGroups" 1898 1899 // ListRuleGroupsRequest generates a "aws/request.Request" representing the 1900 // client's request for the ListRuleGroups operation. The "output" return 1901 // value will be populated with the request's response once the request completes 1902 // successfully. 1903 // 1904 // Use "Send" method on the returned Request to send the API call to the service. 1905 // the "output" return value is not valid until after Send returns without error. 1906 // 1907 // See ListRuleGroups for more information on using the ListRuleGroups 1908 // API call, and error handling. 1909 // 1910 // This method is useful when you want to inject custom logic or configuration 1911 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1912 // 1913 // 1914 // // Example sending a request using the ListRuleGroupsRequest method. 1915 // req, resp := client.ListRuleGroupsRequest(params) 1916 // 1917 // err := req.Send() 1918 // if err == nil { // resp is now filled 1919 // fmt.Println(resp) 1920 // } 1921 // 1922 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListRuleGroups 1923 func (c *NetworkFirewall) ListRuleGroupsRequest(input *ListRuleGroupsInput) (req *request.Request, output *ListRuleGroupsOutput) { 1924 op := &request.Operation{ 1925 Name: opListRuleGroups, 1926 HTTPMethod: "POST", 1927 HTTPPath: "/", 1928 Paginator: &request.Paginator{ 1929 InputTokens: []string{"NextToken"}, 1930 OutputTokens: []string{"NextToken"}, 1931 LimitToken: "MaxResults", 1932 TruncationToken: "", 1933 }, 1934 } 1935 1936 if input == nil { 1937 input = &ListRuleGroupsInput{} 1938 } 1939 1940 output = &ListRuleGroupsOutput{} 1941 req = c.newRequest(op, input, output) 1942 return 1943 } 1944 1945 // ListRuleGroups API operation for AWS Network Firewall. 1946 // 1947 // Retrieves the metadata for the rule groups that you have defined. Depending 1948 // on your setting for max results and the number of rule groups, a single call 1949 // might not return the full list. 1950 // 1951 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1952 // with awserr.Error's Code and Message methods to get detailed information about 1953 // the error. 1954 // 1955 // See the AWS API reference guide for AWS Network Firewall's 1956 // API operation ListRuleGroups for usage and error information. 1957 // 1958 // Returned Error Types: 1959 // * InvalidRequestException 1960 // The operation failed because of a problem with your request. Examples include: 1961 // 1962 // * You specified an unsupported parameter name or value. 1963 // 1964 // * You tried to update a property with a value that isn't among the available 1965 // types. 1966 // 1967 // * Your request references an ARN that is malformed, or corresponds to 1968 // a resource that isn't valid in the context of the request. 1969 // 1970 // * ThrottlingException 1971 // Unable to process the request due to throttling limitations. 1972 // 1973 // * InternalServerError 1974 // Your request is valid, but Network Firewall couldn’t perform the operation 1975 // because of a system problem. Retry your request. 1976 // 1977 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListRuleGroups 1978 func (c *NetworkFirewall) ListRuleGroups(input *ListRuleGroupsInput) (*ListRuleGroupsOutput, error) { 1979 req, out := c.ListRuleGroupsRequest(input) 1980 return out, req.Send() 1981 } 1982 1983 // ListRuleGroupsWithContext is the same as ListRuleGroups with the addition of 1984 // the ability to pass a context and additional request options. 1985 // 1986 // See ListRuleGroups for details on how to use this API operation. 1987 // 1988 // The context must be non-nil and will be used for request cancellation. If 1989 // the context is nil a panic will occur. In the future the SDK may create 1990 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1991 // for more information on using Contexts. 1992 func (c *NetworkFirewall) ListRuleGroupsWithContext(ctx aws.Context, input *ListRuleGroupsInput, opts ...request.Option) (*ListRuleGroupsOutput, error) { 1993 req, out := c.ListRuleGroupsRequest(input) 1994 req.SetContext(ctx) 1995 req.ApplyOptions(opts...) 1996 return out, req.Send() 1997 } 1998 1999 // ListRuleGroupsPages iterates over the pages of a ListRuleGroups operation, 2000 // calling the "fn" function with the response data for each page. To stop 2001 // iterating, return false from the fn function. 2002 // 2003 // See ListRuleGroups method for more information on how to use this operation. 2004 // 2005 // Note: This operation can generate multiple requests to a service. 2006 // 2007 // // Example iterating over at most 3 pages of a ListRuleGroups operation. 2008 // pageNum := 0 2009 // err := client.ListRuleGroupsPages(params, 2010 // func(page *networkfirewall.ListRuleGroupsOutput, lastPage bool) bool { 2011 // pageNum++ 2012 // fmt.Println(page) 2013 // return pageNum <= 3 2014 // }) 2015 // 2016 func (c *NetworkFirewall) ListRuleGroupsPages(input *ListRuleGroupsInput, fn func(*ListRuleGroupsOutput, bool) bool) error { 2017 return c.ListRuleGroupsPagesWithContext(aws.BackgroundContext(), input, fn) 2018 } 2019 2020 // ListRuleGroupsPagesWithContext same as ListRuleGroupsPages except 2021 // it takes a Context and allows setting request options on the pages. 2022 // 2023 // The context must be non-nil and will be used for request cancellation. If 2024 // the context is nil a panic will occur. In the future the SDK may create 2025 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2026 // for more information on using Contexts. 2027 func (c *NetworkFirewall) ListRuleGroupsPagesWithContext(ctx aws.Context, input *ListRuleGroupsInput, fn func(*ListRuleGroupsOutput, bool) bool, opts ...request.Option) error { 2028 p := request.Pagination{ 2029 NewRequest: func() (*request.Request, error) { 2030 var inCpy *ListRuleGroupsInput 2031 if input != nil { 2032 tmp := *input 2033 inCpy = &tmp 2034 } 2035 req, _ := c.ListRuleGroupsRequest(inCpy) 2036 req.SetContext(ctx) 2037 req.ApplyOptions(opts...) 2038 return req, nil 2039 }, 2040 } 2041 2042 for p.Next() { 2043 if !fn(p.Page().(*ListRuleGroupsOutput), !p.HasNextPage()) { 2044 break 2045 } 2046 } 2047 2048 return p.Err() 2049 } 2050 2051 const opListTagsForResource = "ListTagsForResource" 2052 2053 // ListTagsForResourceRequest generates a "aws/request.Request" representing the 2054 // client's request for the ListTagsForResource operation. The "output" return 2055 // value will be populated with the request's response once the request completes 2056 // successfully. 2057 // 2058 // Use "Send" method on the returned Request to send the API call to the service. 2059 // the "output" return value is not valid until after Send returns without error. 2060 // 2061 // See ListTagsForResource for more information on using the ListTagsForResource 2062 // API call, and error handling. 2063 // 2064 // This method is useful when you want to inject custom logic or configuration 2065 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2066 // 2067 // 2068 // // Example sending a request using the ListTagsForResourceRequest method. 2069 // req, resp := client.ListTagsForResourceRequest(params) 2070 // 2071 // err := req.Send() 2072 // if err == nil { // resp is now filled 2073 // fmt.Println(resp) 2074 // } 2075 // 2076 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListTagsForResource 2077 func (c *NetworkFirewall) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { 2078 op := &request.Operation{ 2079 Name: opListTagsForResource, 2080 HTTPMethod: "POST", 2081 HTTPPath: "/", 2082 Paginator: &request.Paginator{ 2083 InputTokens: []string{"NextToken"}, 2084 OutputTokens: []string{"NextToken"}, 2085 LimitToken: "MaxResults", 2086 TruncationToken: "", 2087 }, 2088 } 2089 2090 if input == nil { 2091 input = &ListTagsForResourceInput{} 2092 } 2093 2094 output = &ListTagsForResourceOutput{} 2095 req = c.newRequest(op, input, output) 2096 return 2097 } 2098 2099 // ListTagsForResource API operation for AWS Network Firewall. 2100 // 2101 // Retrieves the tags associated with the specified resource. Tags are key:value 2102 // pairs that you can use to categorize and manage your resources, for purposes 2103 // like billing. For example, you might set the tag key to "customer" and the 2104 // value to the customer name or ID. You can specify one or more tags to add 2105 // to each AWS resource, up to 50 tags for a resource. 2106 // 2107 // You can tag the AWS resources that you manage through AWS Network Firewall: 2108 // firewalls, firewall policies, and rule groups. 2109 // 2110 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2111 // with awserr.Error's Code and Message methods to get detailed information about 2112 // the error. 2113 // 2114 // See the AWS API reference guide for AWS Network Firewall's 2115 // API operation ListTagsForResource for usage and error information. 2116 // 2117 // Returned Error Types: 2118 // * ResourceNotFoundException 2119 // Unable to locate a resource using the parameters that you provided. 2120 // 2121 // * InvalidRequestException 2122 // The operation failed because of a problem with your request. Examples include: 2123 // 2124 // * You specified an unsupported parameter name or value. 2125 // 2126 // * You tried to update a property with a value that isn't among the available 2127 // types. 2128 // 2129 // * Your request references an ARN that is malformed, or corresponds to 2130 // a resource that isn't valid in the context of the request. 2131 // 2132 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/ListTagsForResource 2133 func (c *NetworkFirewall) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { 2134 req, out := c.ListTagsForResourceRequest(input) 2135 return out, req.Send() 2136 } 2137 2138 // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of 2139 // the ability to pass a context and additional request options. 2140 // 2141 // See ListTagsForResource for details on how to use this API operation. 2142 // 2143 // The context must be non-nil and will be used for request cancellation. If 2144 // the context is nil a panic will occur. In the future the SDK may create 2145 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2146 // for more information on using Contexts. 2147 func (c *NetworkFirewall) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { 2148 req, out := c.ListTagsForResourceRequest(input) 2149 req.SetContext(ctx) 2150 req.ApplyOptions(opts...) 2151 return out, req.Send() 2152 } 2153 2154 // ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation, 2155 // calling the "fn" function with the response data for each page. To stop 2156 // iterating, return false from the fn function. 2157 // 2158 // See ListTagsForResource method for more information on how to use this operation. 2159 // 2160 // Note: This operation can generate multiple requests to a service. 2161 // 2162 // // Example iterating over at most 3 pages of a ListTagsForResource operation. 2163 // pageNum := 0 2164 // err := client.ListTagsForResourcePages(params, 2165 // func(page *networkfirewall.ListTagsForResourceOutput, lastPage bool) bool { 2166 // pageNum++ 2167 // fmt.Println(page) 2168 // return pageNum <= 3 2169 // }) 2170 // 2171 func (c *NetworkFirewall) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error { 2172 return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn) 2173 } 2174 2175 // ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except 2176 // it takes a Context and allows setting request options on the pages. 2177 // 2178 // The context must be non-nil and will be used for request cancellation. If 2179 // the context is nil a panic will occur. In the future the SDK may create 2180 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2181 // for more information on using Contexts. 2182 func (c *NetworkFirewall) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error { 2183 p := request.Pagination{ 2184 NewRequest: func() (*request.Request, error) { 2185 var inCpy *ListTagsForResourceInput 2186 if input != nil { 2187 tmp := *input 2188 inCpy = &tmp 2189 } 2190 req, _ := c.ListTagsForResourceRequest(inCpy) 2191 req.SetContext(ctx) 2192 req.ApplyOptions(opts...) 2193 return req, nil 2194 }, 2195 } 2196 2197 for p.Next() { 2198 if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) { 2199 break 2200 } 2201 } 2202 2203 return p.Err() 2204 } 2205 2206 const opPutResourcePolicy = "PutResourcePolicy" 2207 2208 // PutResourcePolicyRequest generates a "aws/request.Request" representing the 2209 // client's request for the PutResourcePolicy operation. The "output" return 2210 // value will be populated with the request's response once the request completes 2211 // successfully. 2212 // 2213 // Use "Send" method on the returned Request to send the API call to the service. 2214 // the "output" return value is not valid until after Send returns without error. 2215 // 2216 // See PutResourcePolicy for more information on using the PutResourcePolicy 2217 // API call, and error handling. 2218 // 2219 // This method is useful when you want to inject custom logic or configuration 2220 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2221 // 2222 // 2223 // // Example sending a request using the PutResourcePolicyRequest method. 2224 // req, resp := client.PutResourcePolicyRequest(params) 2225 // 2226 // err := req.Send() 2227 // if err == nil { // resp is now filled 2228 // fmt.Println(resp) 2229 // } 2230 // 2231 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/PutResourcePolicy 2232 func (c *NetworkFirewall) PutResourcePolicyRequest(input *PutResourcePolicyInput) (req *request.Request, output *PutResourcePolicyOutput) { 2233 op := &request.Operation{ 2234 Name: opPutResourcePolicy, 2235 HTTPMethod: "POST", 2236 HTTPPath: "/", 2237 } 2238 2239 if input == nil { 2240 input = &PutResourcePolicyInput{} 2241 } 2242 2243 output = &PutResourcePolicyOutput{} 2244 req = c.newRequest(op, input, output) 2245 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 2246 return 2247 } 2248 2249 // PutResourcePolicy API operation for AWS Network Firewall. 2250 // 2251 // Creates or updates an AWS Identity and Access Management policy for your 2252 // rule group or firewall policy. Use this to share rule groups and firewall 2253 // policies between accounts. This operation works in conjunction with the AWS 2254 // Resource Access Manager (RAM) service to manage resource sharing for Network 2255 // Firewall. 2256 // 2257 // Use this operation to create or update a resource policy for your rule group 2258 // or firewall policy. In the policy, you specify the accounts that you want 2259 // to share the resource with and the operations that you want the accounts 2260 // to be able to perform. 2261 // 2262 // When you add an account in the resource policy, you then run the following 2263 // Resource Access Manager (RAM) operations to access and accept the shared 2264 // rule group or firewall policy. 2265 // 2266 // * GetResourceShareInvitations (https://docs.aws.amazon.com/ram/latest/APIReference/API_GetResourceShareInvitations.html) 2267 // - Returns the Amazon Resource Names (ARNs) of the resource share invitations. 2268 // 2269 // * AcceptResourceShareInvitation (https://docs.aws.amazon.com/ram/latest/APIReference/API_AcceptResourceShareInvitation.html) 2270 // - Accepts the share invitation for a specified resource share. 2271 // 2272 // For additional information about resource sharing using RAM, see AWS Resource 2273 // Access Manager User Guide (https://docs.aws.amazon.com/ram/latest/userguide/what-is.html). 2274 // 2275 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2276 // with awserr.Error's Code and Message methods to get detailed information about 2277 // the error. 2278 // 2279 // See the AWS API reference guide for AWS Network Firewall's 2280 // API operation PutResourcePolicy for usage and error information. 2281 // 2282 // Returned Error Types: 2283 // * InvalidRequestException 2284 // The operation failed because of a problem with your request. Examples include: 2285 // 2286 // * You specified an unsupported parameter name or value. 2287 // 2288 // * You tried to update a property with a value that isn't among the available 2289 // types. 2290 // 2291 // * Your request references an ARN that is malformed, or corresponds to 2292 // a resource that isn't valid in the context of the request. 2293 // 2294 // * InternalServerError 2295 // Your request is valid, but Network Firewall couldn’t perform the operation 2296 // because of a system problem. Retry your request. 2297 // 2298 // * ResourceNotFoundException 2299 // Unable to locate a resource using the parameters that you provided. 2300 // 2301 // * ThrottlingException 2302 // Unable to process the request due to throttling limitations. 2303 // 2304 // * InvalidResourcePolicyException 2305 // The policy statement failed validation. 2306 // 2307 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/PutResourcePolicy 2308 func (c *NetworkFirewall) PutResourcePolicy(input *PutResourcePolicyInput) (*PutResourcePolicyOutput, error) { 2309 req, out := c.PutResourcePolicyRequest(input) 2310 return out, req.Send() 2311 } 2312 2313 // PutResourcePolicyWithContext is the same as PutResourcePolicy with the addition of 2314 // the ability to pass a context and additional request options. 2315 // 2316 // See PutResourcePolicy for details on how to use this API operation. 2317 // 2318 // The context must be non-nil and will be used for request cancellation. If 2319 // the context is nil a panic will occur. In the future the SDK may create 2320 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2321 // for more information on using Contexts. 2322 func (c *NetworkFirewall) PutResourcePolicyWithContext(ctx aws.Context, input *PutResourcePolicyInput, opts ...request.Option) (*PutResourcePolicyOutput, error) { 2323 req, out := c.PutResourcePolicyRequest(input) 2324 req.SetContext(ctx) 2325 req.ApplyOptions(opts...) 2326 return out, req.Send() 2327 } 2328 2329 const opTagResource = "TagResource" 2330 2331 // TagResourceRequest generates a "aws/request.Request" representing the 2332 // client's request for the TagResource operation. The "output" return 2333 // value will be populated with the request's response once the request completes 2334 // successfully. 2335 // 2336 // Use "Send" method on the returned Request to send the API call to the service. 2337 // the "output" return value is not valid until after Send returns without error. 2338 // 2339 // See TagResource for more information on using the TagResource 2340 // API call, and error handling. 2341 // 2342 // This method is useful when you want to inject custom logic or configuration 2343 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2344 // 2345 // 2346 // // Example sending a request using the TagResourceRequest method. 2347 // req, resp := client.TagResourceRequest(params) 2348 // 2349 // err := req.Send() 2350 // if err == nil { // resp is now filled 2351 // fmt.Println(resp) 2352 // } 2353 // 2354 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/TagResource 2355 func (c *NetworkFirewall) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { 2356 op := &request.Operation{ 2357 Name: opTagResource, 2358 HTTPMethod: "POST", 2359 HTTPPath: "/", 2360 } 2361 2362 if input == nil { 2363 input = &TagResourceInput{} 2364 } 2365 2366 output = &TagResourceOutput{} 2367 req = c.newRequest(op, input, output) 2368 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 2369 return 2370 } 2371 2372 // TagResource API operation for AWS Network Firewall. 2373 // 2374 // Adds the specified tags to the specified resource. Tags are key:value pairs 2375 // that you can use to categorize and manage your resources, for purposes like 2376 // billing. For example, you might set the tag key to "customer" and the value 2377 // to the customer name or ID. You can specify one or more tags to add to each 2378 // AWS resource, up to 50 tags for a resource. 2379 // 2380 // You can tag the AWS resources that you manage through AWS Network Firewall: 2381 // firewalls, firewall policies, and rule groups. 2382 // 2383 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2384 // with awserr.Error's Code and Message methods to get detailed information about 2385 // the error. 2386 // 2387 // See the AWS API reference guide for AWS Network Firewall's 2388 // API operation TagResource for usage and error information. 2389 // 2390 // Returned Error Types: 2391 // * ResourceNotFoundException 2392 // Unable to locate a resource using the parameters that you provided. 2393 // 2394 // * InvalidRequestException 2395 // The operation failed because of a problem with your request. Examples include: 2396 // 2397 // * You specified an unsupported parameter name or value. 2398 // 2399 // * You tried to update a property with a value that isn't among the available 2400 // types. 2401 // 2402 // * Your request references an ARN that is malformed, or corresponds to 2403 // a resource that isn't valid in the context of the request. 2404 // 2405 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/TagResource 2406 func (c *NetworkFirewall) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { 2407 req, out := c.TagResourceRequest(input) 2408 return out, req.Send() 2409 } 2410 2411 // TagResourceWithContext is the same as TagResource with the addition of 2412 // the ability to pass a context and additional request options. 2413 // 2414 // See TagResource for details on how to use this API operation. 2415 // 2416 // The context must be non-nil and will be used for request cancellation. If 2417 // the context is nil a panic will occur. In the future the SDK may create 2418 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2419 // for more information on using Contexts. 2420 func (c *NetworkFirewall) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { 2421 req, out := c.TagResourceRequest(input) 2422 req.SetContext(ctx) 2423 req.ApplyOptions(opts...) 2424 return out, req.Send() 2425 } 2426 2427 const opUntagResource = "UntagResource" 2428 2429 // UntagResourceRequest generates a "aws/request.Request" representing the 2430 // client's request for the UntagResource operation. The "output" return 2431 // value will be populated with the request's response once the request completes 2432 // successfully. 2433 // 2434 // Use "Send" method on the returned Request to send the API call to the service. 2435 // the "output" return value is not valid until after Send returns without error. 2436 // 2437 // See UntagResource for more information on using the UntagResource 2438 // API call, and error handling. 2439 // 2440 // This method is useful when you want to inject custom logic or configuration 2441 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2442 // 2443 // 2444 // // Example sending a request using the UntagResourceRequest method. 2445 // req, resp := client.UntagResourceRequest(params) 2446 // 2447 // err := req.Send() 2448 // if err == nil { // resp is now filled 2449 // fmt.Println(resp) 2450 // } 2451 // 2452 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UntagResource 2453 func (c *NetworkFirewall) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { 2454 op := &request.Operation{ 2455 Name: opUntagResource, 2456 HTTPMethod: "POST", 2457 HTTPPath: "/", 2458 } 2459 2460 if input == nil { 2461 input = &UntagResourceInput{} 2462 } 2463 2464 output = &UntagResourceOutput{} 2465 req = c.newRequest(op, input, output) 2466 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 2467 return 2468 } 2469 2470 // UntagResource API operation for AWS Network Firewall. 2471 // 2472 // Removes the tags with the specified keys from the specified resource. Tags 2473 // are key:value pairs that you can use to categorize and manage your resources, 2474 // for purposes like billing. For example, you might set the tag key to "customer" 2475 // and the value to the customer name or ID. You can specify one or more tags 2476 // to add to each AWS resource, up to 50 tags for a resource. 2477 // 2478 // You can manage tags for the AWS resources that you manage through AWS Network 2479 // Firewall: firewalls, firewall policies, and rule groups. 2480 // 2481 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2482 // with awserr.Error's Code and Message methods to get detailed information about 2483 // the error. 2484 // 2485 // See the AWS API reference guide for AWS Network Firewall's 2486 // API operation UntagResource for usage and error information. 2487 // 2488 // Returned Error Types: 2489 // * ResourceNotFoundException 2490 // Unable to locate a resource using the parameters that you provided. 2491 // 2492 // * InvalidRequestException 2493 // The operation failed because of a problem with your request. Examples include: 2494 // 2495 // * You specified an unsupported parameter name or value. 2496 // 2497 // * You tried to update a property with a value that isn't among the available 2498 // types. 2499 // 2500 // * Your request references an ARN that is malformed, or corresponds to 2501 // a resource that isn't valid in the context of the request. 2502 // 2503 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UntagResource 2504 func (c *NetworkFirewall) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { 2505 req, out := c.UntagResourceRequest(input) 2506 return out, req.Send() 2507 } 2508 2509 // UntagResourceWithContext is the same as UntagResource with the addition of 2510 // the ability to pass a context and additional request options. 2511 // 2512 // See UntagResource for details on how to use this API operation. 2513 // 2514 // The context must be non-nil and will be used for request cancellation. If 2515 // the context is nil a panic will occur. In the future the SDK may create 2516 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2517 // for more information on using Contexts. 2518 func (c *NetworkFirewall) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { 2519 req, out := c.UntagResourceRequest(input) 2520 req.SetContext(ctx) 2521 req.ApplyOptions(opts...) 2522 return out, req.Send() 2523 } 2524 2525 const opUpdateFirewallDeleteProtection = "UpdateFirewallDeleteProtection" 2526 2527 // UpdateFirewallDeleteProtectionRequest generates a "aws/request.Request" representing the 2528 // client's request for the UpdateFirewallDeleteProtection operation. The "output" return 2529 // value will be populated with the request's response once the request completes 2530 // successfully. 2531 // 2532 // Use "Send" method on the returned Request to send the API call to the service. 2533 // the "output" return value is not valid until after Send returns without error. 2534 // 2535 // See UpdateFirewallDeleteProtection for more information on using the UpdateFirewallDeleteProtection 2536 // API call, and error handling. 2537 // 2538 // This method is useful when you want to inject custom logic or configuration 2539 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2540 // 2541 // 2542 // // Example sending a request using the UpdateFirewallDeleteProtectionRequest method. 2543 // req, resp := client.UpdateFirewallDeleteProtectionRequest(params) 2544 // 2545 // err := req.Send() 2546 // if err == nil { // resp is now filled 2547 // fmt.Println(resp) 2548 // } 2549 // 2550 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallDeleteProtection 2551 func (c *NetworkFirewall) UpdateFirewallDeleteProtectionRequest(input *UpdateFirewallDeleteProtectionInput) (req *request.Request, output *UpdateFirewallDeleteProtectionOutput) { 2552 op := &request.Operation{ 2553 Name: opUpdateFirewallDeleteProtection, 2554 HTTPMethod: "POST", 2555 HTTPPath: "/", 2556 } 2557 2558 if input == nil { 2559 input = &UpdateFirewallDeleteProtectionInput{} 2560 } 2561 2562 output = &UpdateFirewallDeleteProtectionOutput{} 2563 req = c.newRequest(op, input, output) 2564 return 2565 } 2566 2567 // UpdateFirewallDeleteProtection API operation for AWS Network Firewall. 2568 // 2569 // Modifies the flag, DeleteProtection, which indicates whether it is possible 2570 // to delete the firewall. If the flag is set to TRUE, the firewall is protected 2571 // against deletion. This setting helps protect against accidentally deleting 2572 // a firewall that's in use. 2573 // 2574 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2575 // with awserr.Error's Code and Message methods to get detailed information about 2576 // the error. 2577 // 2578 // See the AWS API reference guide for AWS Network Firewall's 2579 // API operation UpdateFirewallDeleteProtection for usage and error information. 2580 // 2581 // Returned Error Types: 2582 // * InvalidRequestException 2583 // The operation failed because of a problem with your request. Examples include: 2584 // 2585 // * You specified an unsupported parameter name or value. 2586 // 2587 // * You tried to update a property with a value that isn't among the available 2588 // types. 2589 // 2590 // * Your request references an ARN that is malformed, or corresponds to 2591 // a resource that isn't valid in the context of the request. 2592 // 2593 // * InternalServerError 2594 // Your request is valid, but Network Firewall couldn’t perform the operation 2595 // because of a system problem. Retry your request. 2596 // 2597 // * ResourceNotFoundException 2598 // Unable to locate a resource using the parameters that you provided. 2599 // 2600 // * ThrottlingException 2601 // Unable to process the request due to throttling limitations. 2602 // 2603 // * InvalidTokenException 2604 // The token you provided is stale or isn't valid for the operation. 2605 // 2606 // * ResourceOwnerCheckException 2607 // Unable to change the resource because your account doesn't own it. 2608 // 2609 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallDeleteProtection 2610 func (c *NetworkFirewall) UpdateFirewallDeleteProtection(input *UpdateFirewallDeleteProtectionInput) (*UpdateFirewallDeleteProtectionOutput, error) { 2611 req, out := c.UpdateFirewallDeleteProtectionRequest(input) 2612 return out, req.Send() 2613 } 2614 2615 // UpdateFirewallDeleteProtectionWithContext is the same as UpdateFirewallDeleteProtection with the addition of 2616 // the ability to pass a context and additional request options. 2617 // 2618 // See UpdateFirewallDeleteProtection for details on how to use this API operation. 2619 // 2620 // The context must be non-nil and will be used for request cancellation. If 2621 // the context is nil a panic will occur. In the future the SDK may create 2622 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2623 // for more information on using Contexts. 2624 func (c *NetworkFirewall) UpdateFirewallDeleteProtectionWithContext(ctx aws.Context, input *UpdateFirewallDeleteProtectionInput, opts ...request.Option) (*UpdateFirewallDeleteProtectionOutput, error) { 2625 req, out := c.UpdateFirewallDeleteProtectionRequest(input) 2626 req.SetContext(ctx) 2627 req.ApplyOptions(opts...) 2628 return out, req.Send() 2629 } 2630 2631 const opUpdateFirewallDescription = "UpdateFirewallDescription" 2632 2633 // UpdateFirewallDescriptionRequest generates a "aws/request.Request" representing the 2634 // client's request for the UpdateFirewallDescription operation. The "output" return 2635 // value will be populated with the request's response once the request completes 2636 // successfully. 2637 // 2638 // Use "Send" method on the returned Request to send the API call to the service. 2639 // the "output" return value is not valid until after Send returns without error. 2640 // 2641 // See UpdateFirewallDescription for more information on using the UpdateFirewallDescription 2642 // API call, and error handling. 2643 // 2644 // This method is useful when you want to inject custom logic or configuration 2645 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2646 // 2647 // 2648 // // Example sending a request using the UpdateFirewallDescriptionRequest method. 2649 // req, resp := client.UpdateFirewallDescriptionRequest(params) 2650 // 2651 // err := req.Send() 2652 // if err == nil { // resp is now filled 2653 // fmt.Println(resp) 2654 // } 2655 // 2656 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallDescription 2657 func (c *NetworkFirewall) UpdateFirewallDescriptionRequest(input *UpdateFirewallDescriptionInput) (req *request.Request, output *UpdateFirewallDescriptionOutput) { 2658 op := &request.Operation{ 2659 Name: opUpdateFirewallDescription, 2660 HTTPMethod: "POST", 2661 HTTPPath: "/", 2662 } 2663 2664 if input == nil { 2665 input = &UpdateFirewallDescriptionInput{} 2666 } 2667 2668 output = &UpdateFirewallDescriptionOutput{} 2669 req = c.newRequest(op, input, output) 2670 return 2671 } 2672 2673 // UpdateFirewallDescription API operation for AWS Network Firewall. 2674 // 2675 // Modifies the description for the specified firewall. Use the description 2676 // to help you identify the firewall when you're working with it. 2677 // 2678 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2679 // with awserr.Error's Code and Message methods to get detailed information about 2680 // the error. 2681 // 2682 // See the AWS API reference guide for AWS Network Firewall's 2683 // API operation UpdateFirewallDescription for usage and error information. 2684 // 2685 // Returned Error Types: 2686 // * InvalidRequestException 2687 // The operation failed because of a problem with your request. Examples include: 2688 // 2689 // * You specified an unsupported parameter name or value. 2690 // 2691 // * You tried to update a property with a value that isn't among the available 2692 // types. 2693 // 2694 // * Your request references an ARN that is malformed, or corresponds to 2695 // a resource that isn't valid in the context of the request. 2696 // 2697 // * InternalServerError 2698 // Your request is valid, but Network Firewall couldn’t perform the operation 2699 // because of a system problem. Retry your request. 2700 // 2701 // * ResourceNotFoundException 2702 // Unable to locate a resource using the parameters that you provided. 2703 // 2704 // * ThrottlingException 2705 // Unable to process the request due to throttling limitations. 2706 // 2707 // * InvalidTokenException 2708 // The token you provided is stale or isn't valid for the operation. 2709 // 2710 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallDescription 2711 func (c *NetworkFirewall) UpdateFirewallDescription(input *UpdateFirewallDescriptionInput) (*UpdateFirewallDescriptionOutput, error) { 2712 req, out := c.UpdateFirewallDescriptionRequest(input) 2713 return out, req.Send() 2714 } 2715 2716 // UpdateFirewallDescriptionWithContext is the same as UpdateFirewallDescription with the addition of 2717 // the ability to pass a context and additional request options. 2718 // 2719 // See UpdateFirewallDescription for details on how to use this API operation. 2720 // 2721 // The context must be non-nil and will be used for request cancellation. If 2722 // the context is nil a panic will occur. In the future the SDK may create 2723 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2724 // for more information on using Contexts. 2725 func (c *NetworkFirewall) UpdateFirewallDescriptionWithContext(ctx aws.Context, input *UpdateFirewallDescriptionInput, opts ...request.Option) (*UpdateFirewallDescriptionOutput, error) { 2726 req, out := c.UpdateFirewallDescriptionRequest(input) 2727 req.SetContext(ctx) 2728 req.ApplyOptions(opts...) 2729 return out, req.Send() 2730 } 2731 2732 const opUpdateFirewallPolicy = "UpdateFirewallPolicy" 2733 2734 // UpdateFirewallPolicyRequest generates a "aws/request.Request" representing the 2735 // client's request for the UpdateFirewallPolicy operation. The "output" return 2736 // value will be populated with the request's response once the request completes 2737 // successfully. 2738 // 2739 // Use "Send" method on the returned Request to send the API call to the service. 2740 // the "output" return value is not valid until after Send returns without error. 2741 // 2742 // See UpdateFirewallPolicy for more information on using the UpdateFirewallPolicy 2743 // API call, and error handling. 2744 // 2745 // This method is useful when you want to inject custom logic or configuration 2746 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2747 // 2748 // 2749 // // Example sending a request using the UpdateFirewallPolicyRequest method. 2750 // req, resp := client.UpdateFirewallPolicyRequest(params) 2751 // 2752 // err := req.Send() 2753 // if err == nil { // resp is now filled 2754 // fmt.Println(resp) 2755 // } 2756 // 2757 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallPolicy 2758 func (c *NetworkFirewall) UpdateFirewallPolicyRequest(input *UpdateFirewallPolicyInput) (req *request.Request, output *UpdateFirewallPolicyOutput) { 2759 op := &request.Operation{ 2760 Name: opUpdateFirewallPolicy, 2761 HTTPMethod: "POST", 2762 HTTPPath: "/", 2763 } 2764 2765 if input == nil { 2766 input = &UpdateFirewallPolicyInput{} 2767 } 2768 2769 output = &UpdateFirewallPolicyOutput{} 2770 req = c.newRequest(op, input, output) 2771 return 2772 } 2773 2774 // UpdateFirewallPolicy API operation for AWS Network Firewall. 2775 // 2776 // Updates the properties of the specified firewall policy. 2777 // 2778 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2779 // with awserr.Error's Code and Message methods to get detailed information about 2780 // the error. 2781 // 2782 // See the AWS API reference guide for AWS Network Firewall's 2783 // API operation UpdateFirewallPolicy for usage and error information. 2784 // 2785 // Returned Error Types: 2786 // * InvalidRequestException 2787 // The operation failed because of a problem with your request. Examples include: 2788 // 2789 // * You specified an unsupported parameter name or value. 2790 // 2791 // * You tried to update a property with a value that isn't among the available 2792 // types. 2793 // 2794 // * Your request references an ARN that is malformed, or corresponds to 2795 // a resource that isn't valid in the context of the request. 2796 // 2797 // * ResourceNotFoundException 2798 // Unable to locate a resource using the parameters that you provided. 2799 // 2800 // * ThrottlingException 2801 // Unable to process the request due to throttling limitations. 2802 // 2803 // * InternalServerError 2804 // Your request is valid, but Network Firewall couldn’t perform the operation 2805 // because of a system problem. Retry your request. 2806 // 2807 // * InvalidTokenException 2808 // The token you provided is stale or isn't valid for the operation. 2809 // 2810 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallPolicy 2811 func (c *NetworkFirewall) UpdateFirewallPolicy(input *UpdateFirewallPolicyInput) (*UpdateFirewallPolicyOutput, error) { 2812 req, out := c.UpdateFirewallPolicyRequest(input) 2813 return out, req.Send() 2814 } 2815 2816 // UpdateFirewallPolicyWithContext is the same as UpdateFirewallPolicy with the addition of 2817 // the ability to pass a context and additional request options. 2818 // 2819 // See UpdateFirewallPolicy for details on how to use this API operation. 2820 // 2821 // The context must be non-nil and will be used for request cancellation. If 2822 // the context is nil a panic will occur. In the future the SDK may create 2823 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2824 // for more information on using Contexts. 2825 func (c *NetworkFirewall) UpdateFirewallPolicyWithContext(ctx aws.Context, input *UpdateFirewallPolicyInput, opts ...request.Option) (*UpdateFirewallPolicyOutput, error) { 2826 req, out := c.UpdateFirewallPolicyRequest(input) 2827 req.SetContext(ctx) 2828 req.ApplyOptions(opts...) 2829 return out, req.Send() 2830 } 2831 2832 const opUpdateFirewallPolicyChangeProtection = "UpdateFirewallPolicyChangeProtection" 2833 2834 // UpdateFirewallPolicyChangeProtectionRequest generates a "aws/request.Request" representing the 2835 // client's request for the UpdateFirewallPolicyChangeProtection operation. The "output" return 2836 // value will be populated with the request's response once the request completes 2837 // successfully. 2838 // 2839 // Use "Send" method on the returned Request to send the API call to the service. 2840 // the "output" return value is not valid until after Send returns without error. 2841 // 2842 // See UpdateFirewallPolicyChangeProtection for more information on using the UpdateFirewallPolicyChangeProtection 2843 // API call, and error handling. 2844 // 2845 // This method is useful when you want to inject custom logic or configuration 2846 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2847 // 2848 // 2849 // // Example sending a request using the UpdateFirewallPolicyChangeProtectionRequest method. 2850 // req, resp := client.UpdateFirewallPolicyChangeProtectionRequest(params) 2851 // 2852 // err := req.Send() 2853 // if err == nil { // resp is now filled 2854 // fmt.Println(resp) 2855 // } 2856 // 2857 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallPolicyChangeProtection 2858 func (c *NetworkFirewall) UpdateFirewallPolicyChangeProtectionRequest(input *UpdateFirewallPolicyChangeProtectionInput) (req *request.Request, output *UpdateFirewallPolicyChangeProtectionOutput) { 2859 op := &request.Operation{ 2860 Name: opUpdateFirewallPolicyChangeProtection, 2861 HTTPMethod: "POST", 2862 HTTPPath: "/", 2863 } 2864 2865 if input == nil { 2866 input = &UpdateFirewallPolicyChangeProtectionInput{} 2867 } 2868 2869 output = &UpdateFirewallPolicyChangeProtectionOutput{} 2870 req = c.newRequest(op, input, output) 2871 return 2872 } 2873 2874 // UpdateFirewallPolicyChangeProtection API operation for AWS Network Firewall. 2875 // 2876 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2877 // with awserr.Error's Code and Message methods to get detailed information about 2878 // the error. 2879 // 2880 // See the AWS API reference guide for AWS Network Firewall's 2881 // API operation UpdateFirewallPolicyChangeProtection for usage and error information. 2882 // 2883 // Returned Error Types: 2884 // * InvalidRequestException 2885 // The operation failed because of a problem with your request. Examples include: 2886 // 2887 // * You specified an unsupported parameter name or value. 2888 // 2889 // * You tried to update a property with a value that isn't among the available 2890 // types. 2891 // 2892 // * Your request references an ARN that is malformed, or corresponds to 2893 // a resource that isn't valid in the context of the request. 2894 // 2895 // * InternalServerError 2896 // Your request is valid, but Network Firewall couldn’t perform the operation 2897 // because of a system problem. Retry your request. 2898 // 2899 // * ResourceNotFoundException 2900 // Unable to locate a resource using the parameters that you provided. 2901 // 2902 // * ThrottlingException 2903 // Unable to process the request due to throttling limitations. 2904 // 2905 // * InvalidTokenException 2906 // The token you provided is stale or isn't valid for the operation. 2907 // 2908 // * ResourceOwnerCheckException 2909 // Unable to change the resource because your account doesn't own it. 2910 // 2911 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallPolicyChangeProtection 2912 func (c *NetworkFirewall) UpdateFirewallPolicyChangeProtection(input *UpdateFirewallPolicyChangeProtectionInput) (*UpdateFirewallPolicyChangeProtectionOutput, error) { 2913 req, out := c.UpdateFirewallPolicyChangeProtectionRequest(input) 2914 return out, req.Send() 2915 } 2916 2917 // UpdateFirewallPolicyChangeProtectionWithContext is the same as UpdateFirewallPolicyChangeProtection with the addition of 2918 // the ability to pass a context and additional request options. 2919 // 2920 // See UpdateFirewallPolicyChangeProtection for details on how to use this API operation. 2921 // 2922 // The context must be non-nil and will be used for request cancellation. If 2923 // the context is nil a panic will occur. In the future the SDK may create 2924 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2925 // for more information on using Contexts. 2926 func (c *NetworkFirewall) UpdateFirewallPolicyChangeProtectionWithContext(ctx aws.Context, input *UpdateFirewallPolicyChangeProtectionInput, opts ...request.Option) (*UpdateFirewallPolicyChangeProtectionOutput, error) { 2927 req, out := c.UpdateFirewallPolicyChangeProtectionRequest(input) 2928 req.SetContext(ctx) 2929 req.ApplyOptions(opts...) 2930 return out, req.Send() 2931 } 2932 2933 const opUpdateLoggingConfiguration = "UpdateLoggingConfiguration" 2934 2935 // UpdateLoggingConfigurationRequest generates a "aws/request.Request" representing the 2936 // client's request for the UpdateLoggingConfiguration operation. The "output" return 2937 // value will be populated with the request's response once the request completes 2938 // successfully. 2939 // 2940 // Use "Send" method on the returned Request to send the API call to the service. 2941 // the "output" return value is not valid until after Send returns without error. 2942 // 2943 // See UpdateLoggingConfiguration for more information on using the UpdateLoggingConfiguration 2944 // API call, and error handling. 2945 // 2946 // This method is useful when you want to inject custom logic or configuration 2947 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2948 // 2949 // 2950 // // Example sending a request using the UpdateLoggingConfigurationRequest method. 2951 // req, resp := client.UpdateLoggingConfigurationRequest(params) 2952 // 2953 // err := req.Send() 2954 // if err == nil { // resp is now filled 2955 // fmt.Println(resp) 2956 // } 2957 // 2958 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateLoggingConfiguration 2959 func (c *NetworkFirewall) UpdateLoggingConfigurationRequest(input *UpdateLoggingConfigurationInput) (req *request.Request, output *UpdateLoggingConfigurationOutput) { 2960 op := &request.Operation{ 2961 Name: opUpdateLoggingConfiguration, 2962 HTTPMethod: "POST", 2963 HTTPPath: "/", 2964 } 2965 2966 if input == nil { 2967 input = &UpdateLoggingConfigurationInput{} 2968 } 2969 2970 output = &UpdateLoggingConfigurationOutput{} 2971 req = c.newRequest(op, input, output) 2972 return 2973 } 2974 2975 // UpdateLoggingConfiguration API operation for AWS Network Firewall. 2976 // 2977 // Sets the logging configuration for the specified firewall. 2978 // 2979 // To change the logging configuration, retrieve the LoggingConfiguration by 2980 // calling DescribeLoggingConfiguration, then change it and provide the modified 2981 // object to this update call. You must change the logging configuration one 2982 // LogDestinationConfig at a time inside the retrieved LoggingConfiguration 2983 // object. 2984 // 2985 // You can perform only one of the following actions in any call to UpdateLoggingConfiguration: 2986 // 2987 // * Create a new log destination object by adding a single LogDestinationConfig 2988 // array element to LogDestinationConfigs. 2989 // 2990 // * Delete a log destination object by removing a single LogDestinationConfig 2991 // array element from LogDestinationConfigs. 2992 // 2993 // * Change the LogDestination setting in a single LogDestinationConfig array 2994 // element. 2995 // 2996 // You can't change the LogDestinationType or LogType in a LogDestinationConfig. 2997 // To change these settings, delete the existing LogDestinationConfig object 2998 // and create a new one, using two separate calls to this update operation. 2999 // 3000 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3001 // with awserr.Error's Code and Message methods to get detailed information about 3002 // the error. 3003 // 3004 // See the AWS API reference guide for AWS Network Firewall's 3005 // API operation UpdateLoggingConfiguration for usage and error information. 3006 // 3007 // Returned Error Types: 3008 // * InvalidRequestException 3009 // The operation failed because of a problem with your request. Examples include: 3010 // 3011 // * You specified an unsupported parameter name or value. 3012 // 3013 // * You tried to update a property with a value that isn't among the available 3014 // types. 3015 // 3016 // * Your request references an ARN that is malformed, or corresponds to 3017 // a resource that isn't valid in the context of the request. 3018 // 3019 // * InternalServerError 3020 // Your request is valid, but Network Firewall couldn’t perform the operation 3021 // because of a system problem. Retry your request. 3022 // 3023 // * ResourceNotFoundException 3024 // Unable to locate a resource using the parameters that you provided. 3025 // 3026 // * ThrottlingException 3027 // Unable to process the request due to throttling limitations. 3028 // 3029 // * InvalidTokenException 3030 // The token you provided is stale or isn't valid for the operation. 3031 // 3032 // * LogDestinationPermissionException 3033 // Unable to send logs to a configured logging destination. 3034 // 3035 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateLoggingConfiguration 3036 func (c *NetworkFirewall) UpdateLoggingConfiguration(input *UpdateLoggingConfigurationInput) (*UpdateLoggingConfigurationOutput, error) { 3037 req, out := c.UpdateLoggingConfigurationRequest(input) 3038 return out, req.Send() 3039 } 3040 3041 // UpdateLoggingConfigurationWithContext is the same as UpdateLoggingConfiguration with the addition of 3042 // the ability to pass a context and additional request options. 3043 // 3044 // See UpdateLoggingConfiguration for details on how to use this API operation. 3045 // 3046 // The context must be non-nil and will be used for request cancellation. If 3047 // the context is nil a panic will occur. In the future the SDK may create 3048 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3049 // for more information on using Contexts. 3050 func (c *NetworkFirewall) UpdateLoggingConfigurationWithContext(ctx aws.Context, input *UpdateLoggingConfigurationInput, opts ...request.Option) (*UpdateLoggingConfigurationOutput, error) { 3051 req, out := c.UpdateLoggingConfigurationRequest(input) 3052 req.SetContext(ctx) 3053 req.ApplyOptions(opts...) 3054 return out, req.Send() 3055 } 3056 3057 const opUpdateRuleGroup = "UpdateRuleGroup" 3058 3059 // UpdateRuleGroupRequest generates a "aws/request.Request" representing the 3060 // client's request for the UpdateRuleGroup operation. The "output" return 3061 // value will be populated with the request's response once the request completes 3062 // successfully. 3063 // 3064 // Use "Send" method on the returned Request to send the API call to the service. 3065 // the "output" return value is not valid until after Send returns without error. 3066 // 3067 // See UpdateRuleGroup for more information on using the UpdateRuleGroup 3068 // API call, and error handling. 3069 // 3070 // This method is useful when you want to inject custom logic or configuration 3071 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3072 // 3073 // 3074 // // Example sending a request using the UpdateRuleGroupRequest method. 3075 // req, resp := client.UpdateRuleGroupRequest(params) 3076 // 3077 // err := req.Send() 3078 // if err == nil { // resp is now filled 3079 // fmt.Println(resp) 3080 // } 3081 // 3082 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateRuleGroup 3083 func (c *NetworkFirewall) UpdateRuleGroupRequest(input *UpdateRuleGroupInput) (req *request.Request, output *UpdateRuleGroupOutput) { 3084 op := &request.Operation{ 3085 Name: opUpdateRuleGroup, 3086 HTTPMethod: "POST", 3087 HTTPPath: "/", 3088 } 3089 3090 if input == nil { 3091 input = &UpdateRuleGroupInput{} 3092 } 3093 3094 output = &UpdateRuleGroupOutput{} 3095 req = c.newRequest(op, input, output) 3096 return 3097 } 3098 3099 // UpdateRuleGroup API operation for AWS Network Firewall. 3100 // 3101 // Updates the rule settings for the specified rule group. You use a rule group 3102 // by reference in one or more firewall policies. When you modify a rule group, 3103 // you modify all firewall policies that use the rule group. 3104 // 3105 // To update a rule group, first call DescribeRuleGroup to retrieve the current 3106 // RuleGroup object, update the object as needed, and then provide the updated 3107 // object to this call. 3108 // 3109 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3110 // with awserr.Error's Code and Message methods to get detailed information about 3111 // the error. 3112 // 3113 // See the AWS API reference guide for AWS Network Firewall's 3114 // API operation UpdateRuleGroup for usage and error information. 3115 // 3116 // Returned Error Types: 3117 // * ResourceNotFoundException 3118 // Unable to locate a resource using the parameters that you provided. 3119 // 3120 // * InvalidRequestException 3121 // The operation failed because of a problem with your request. Examples include: 3122 // 3123 // * You specified an unsupported parameter name or value. 3124 // 3125 // * You tried to update a property with a value that isn't among the available 3126 // types. 3127 // 3128 // * Your request references an ARN that is malformed, or corresponds to 3129 // a resource that isn't valid in the context of the request. 3130 // 3131 // * ThrottlingException 3132 // Unable to process the request due to throttling limitations. 3133 // 3134 // * InternalServerError 3135 // Your request is valid, but Network Firewall couldn’t perform the operation 3136 // because of a system problem. Retry your request. 3137 // 3138 // * InvalidTokenException 3139 // The token you provided is stale or isn't valid for the operation. 3140 // 3141 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateRuleGroup 3142 func (c *NetworkFirewall) UpdateRuleGroup(input *UpdateRuleGroupInput) (*UpdateRuleGroupOutput, error) { 3143 req, out := c.UpdateRuleGroupRequest(input) 3144 return out, req.Send() 3145 } 3146 3147 // UpdateRuleGroupWithContext is the same as UpdateRuleGroup with the addition of 3148 // the ability to pass a context and additional request options. 3149 // 3150 // See UpdateRuleGroup for details on how to use this API operation. 3151 // 3152 // The context must be non-nil and will be used for request cancellation. If 3153 // the context is nil a panic will occur. In the future the SDK may create 3154 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3155 // for more information on using Contexts. 3156 func (c *NetworkFirewall) UpdateRuleGroupWithContext(ctx aws.Context, input *UpdateRuleGroupInput, opts ...request.Option) (*UpdateRuleGroupOutput, error) { 3157 req, out := c.UpdateRuleGroupRequest(input) 3158 req.SetContext(ctx) 3159 req.ApplyOptions(opts...) 3160 return out, req.Send() 3161 } 3162 3163 const opUpdateSubnetChangeProtection = "UpdateSubnetChangeProtection" 3164 3165 // UpdateSubnetChangeProtectionRequest generates a "aws/request.Request" representing the 3166 // client's request for the UpdateSubnetChangeProtection operation. The "output" return 3167 // value will be populated with the request's response once the request completes 3168 // successfully. 3169 // 3170 // Use "Send" method on the returned Request to send the API call to the service. 3171 // the "output" return value is not valid until after Send returns without error. 3172 // 3173 // See UpdateSubnetChangeProtection for more information on using the UpdateSubnetChangeProtection 3174 // API call, and error handling. 3175 // 3176 // This method is useful when you want to inject custom logic or configuration 3177 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3178 // 3179 // 3180 // // Example sending a request using the UpdateSubnetChangeProtectionRequest method. 3181 // req, resp := client.UpdateSubnetChangeProtectionRequest(params) 3182 // 3183 // err := req.Send() 3184 // if err == nil { // resp is now filled 3185 // fmt.Println(resp) 3186 // } 3187 // 3188 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateSubnetChangeProtection 3189 func (c *NetworkFirewall) UpdateSubnetChangeProtectionRequest(input *UpdateSubnetChangeProtectionInput) (req *request.Request, output *UpdateSubnetChangeProtectionOutput) { 3190 op := &request.Operation{ 3191 Name: opUpdateSubnetChangeProtection, 3192 HTTPMethod: "POST", 3193 HTTPPath: "/", 3194 } 3195 3196 if input == nil { 3197 input = &UpdateSubnetChangeProtectionInput{} 3198 } 3199 3200 output = &UpdateSubnetChangeProtectionOutput{} 3201 req = c.newRequest(op, input, output) 3202 return 3203 } 3204 3205 // UpdateSubnetChangeProtection API operation for AWS Network Firewall. 3206 // 3207 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3208 // with awserr.Error's Code and Message methods to get detailed information about 3209 // the error. 3210 // 3211 // See the AWS API reference guide for AWS Network Firewall's 3212 // API operation UpdateSubnetChangeProtection for usage and error information. 3213 // 3214 // Returned Error Types: 3215 // * InvalidRequestException 3216 // The operation failed because of a problem with your request. Examples include: 3217 // 3218 // * You specified an unsupported parameter name or value. 3219 // 3220 // * You tried to update a property with a value that isn't among the available 3221 // types. 3222 // 3223 // * Your request references an ARN that is malformed, or corresponds to 3224 // a resource that isn't valid in the context of the request. 3225 // 3226 // * InternalServerError 3227 // Your request is valid, but Network Firewall couldn’t perform the operation 3228 // because of a system problem. Retry your request. 3229 // 3230 // * ResourceNotFoundException 3231 // Unable to locate a resource using the parameters that you provided. 3232 // 3233 // * ThrottlingException 3234 // Unable to process the request due to throttling limitations. 3235 // 3236 // * InvalidTokenException 3237 // The token you provided is stale or isn't valid for the operation. 3238 // 3239 // * ResourceOwnerCheckException 3240 // Unable to change the resource because your account doesn't own it. 3241 // 3242 // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateSubnetChangeProtection 3243 func (c *NetworkFirewall) UpdateSubnetChangeProtection(input *UpdateSubnetChangeProtectionInput) (*UpdateSubnetChangeProtectionOutput, error) { 3244 req, out := c.UpdateSubnetChangeProtectionRequest(input) 3245 return out, req.Send() 3246 } 3247 3248 // UpdateSubnetChangeProtectionWithContext is the same as UpdateSubnetChangeProtection with the addition of 3249 // the ability to pass a context and additional request options. 3250 // 3251 // See UpdateSubnetChangeProtection for details on how to use this API operation. 3252 // 3253 // The context must be non-nil and will be used for request cancellation. If 3254 // the context is nil a panic will occur. In the future the SDK may create 3255 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3256 // for more information on using Contexts. 3257 func (c *NetworkFirewall) UpdateSubnetChangeProtectionWithContext(ctx aws.Context, input *UpdateSubnetChangeProtectionInput, opts ...request.Option) (*UpdateSubnetChangeProtectionOutput, error) { 3258 req, out := c.UpdateSubnetChangeProtectionRequest(input) 3259 req.SetContext(ctx) 3260 req.ApplyOptions(opts...) 3261 return out, req.Send() 3262 } 3263 3264 // A custom action to use in stateless rule actions settings. This is used in 3265 // CustomAction. 3266 type ActionDefinition struct { 3267 _ struct{} `type:"structure"` 3268 3269 // Stateless inspection criteria that publishes the specified metrics to Amazon 3270 // CloudWatch for the matching packet. This setting defines a CloudWatch dimension 3271 // value to be published. 3272 // 3273 // You can pair this custom action with any of the standard stateless rule actions. 3274 // For example, you could pair this in a rule action with the standard action 3275 // that forwards the packet for stateful inspection. Then, when a packet matches 3276 // the rule, Network Firewall publishes metrics for the packet and forwards 3277 // it. 3278 PublishMetricAction *PublishMetricAction `type:"structure"` 3279 } 3280 3281 // String returns the string representation. 3282 // 3283 // API parameter values that are decorated as "sensitive" in the API will not 3284 // be included in the string output. The member name will be present, but the 3285 // value will be replaced with "sensitive". 3286 func (s ActionDefinition) String() string { 3287 return awsutil.Prettify(s) 3288 } 3289 3290 // GoString returns the string representation. 3291 // 3292 // API parameter values that are decorated as "sensitive" in the API will not 3293 // be included in the string output. The member name will be present, but the 3294 // value will be replaced with "sensitive". 3295 func (s ActionDefinition) GoString() string { 3296 return s.String() 3297 } 3298 3299 // Validate inspects the fields of the type to determine if they are valid. 3300 func (s *ActionDefinition) Validate() error { 3301 invalidParams := request.ErrInvalidParams{Context: "ActionDefinition"} 3302 if s.PublishMetricAction != nil { 3303 if err := s.PublishMetricAction.Validate(); err != nil { 3304 invalidParams.AddNested("PublishMetricAction", err.(request.ErrInvalidParams)) 3305 } 3306 } 3307 3308 if invalidParams.Len() > 0 { 3309 return invalidParams 3310 } 3311 return nil 3312 } 3313 3314 // SetPublishMetricAction sets the PublishMetricAction field's value. 3315 func (s *ActionDefinition) SetPublishMetricAction(v *PublishMetricAction) *ActionDefinition { 3316 s.PublishMetricAction = v 3317 return s 3318 } 3319 3320 // A single IP address specification. This is used in the MatchAttributes source 3321 // and destination specifications. 3322 type Address struct { 3323 _ struct{} `type:"structure"` 3324 3325 // Specify an IP address or a block of IP addresses in Classless Inter-Domain 3326 // Routing (CIDR) notation. Network Firewall supports all address ranges for 3327 // IPv4. 3328 // 3329 // Examples: 3330 // 3331 // * To configure Network Firewall to inspect for the IP address 192.0.2.44, 3332 // specify 192.0.2.44/32. 3333 // 3334 // * To configure Network Firewall to inspect for IP addresses from 192.0.2.0 3335 // to 192.0.2.255, specify 192.0.2.0/24. 3336 // 3337 // For more information about CIDR notation, see the Wikipedia entry Classless 3338 // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 3339 // 3340 // AddressDefinition is a required field 3341 AddressDefinition *string `min:"1" type:"string" required:"true"` 3342 } 3343 3344 // String returns the string representation. 3345 // 3346 // API parameter values that are decorated as "sensitive" in the API will not 3347 // be included in the string output. The member name will be present, but the 3348 // value will be replaced with "sensitive". 3349 func (s Address) String() string { 3350 return awsutil.Prettify(s) 3351 } 3352 3353 // GoString returns the string representation. 3354 // 3355 // API parameter values that are decorated as "sensitive" in the API will not 3356 // be included in the string output. The member name will be present, but the 3357 // value will be replaced with "sensitive". 3358 func (s Address) GoString() string { 3359 return s.String() 3360 } 3361 3362 // Validate inspects the fields of the type to determine if they are valid. 3363 func (s *Address) Validate() error { 3364 invalidParams := request.ErrInvalidParams{Context: "Address"} 3365 if s.AddressDefinition == nil { 3366 invalidParams.Add(request.NewErrParamRequired("AddressDefinition")) 3367 } 3368 if s.AddressDefinition != nil && len(*s.AddressDefinition) < 1 { 3369 invalidParams.Add(request.NewErrParamMinLen("AddressDefinition", 1)) 3370 } 3371 3372 if invalidParams.Len() > 0 { 3373 return invalidParams 3374 } 3375 return nil 3376 } 3377 3378 // SetAddressDefinition sets the AddressDefinition field's value. 3379 func (s *Address) SetAddressDefinition(v string) *Address { 3380 s.AddressDefinition = &v 3381 return s 3382 } 3383 3384 type AssociateFirewallPolicyInput struct { 3385 _ struct{} `type:"structure"` 3386 3387 // The Amazon Resource Name (ARN) of the firewall. 3388 // 3389 // You must specify the ARN or the name, and you can specify both. 3390 FirewallArn *string `min:"1" type:"string"` 3391 3392 // The descriptive name of the firewall. You can't change the name of a firewall 3393 // after you create it. 3394 // 3395 // You must specify the ARN or the name, and you can specify both. 3396 FirewallName *string `min:"1" type:"string"` 3397 3398 // The Amazon Resource Name (ARN) of the firewall policy. 3399 // 3400 // FirewallPolicyArn is a required field 3401 FirewallPolicyArn *string `min:"1" type:"string" required:"true"` 3402 3403 // An optional token that you can use for optimistic locking. Network Firewall 3404 // returns a token to your requests that access the firewall. The token marks 3405 // the state of the firewall resource at the time of the request. 3406 // 3407 // To make an unconditional change to the firewall, omit the token in your update 3408 // request. Without the token, Network Firewall performs your updates regardless 3409 // of whether the firewall has changed since you last retrieved it. 3410 // 3411 // To make a conditional change to the firewall, provide the token in your update 3412 // request. Network Firewall uses the token to ensure that the firewall hasn't 3413 // changed since you last retrieved it. If it has changed, the operation fails 3414 // with an InvalidTokenException. If this happens, retrieve the firewall again 3415 // to get a current copy of it with a new token. Reapply your changes as needed, 3416 // then try the operation again using the new token. 3417 UpdateToken *string `min:"1" type:"string"` 3418 } 3419 3420 // String returns the string representation. 3421 // 3422 // API parameter values that are decorated as "sensitive" in the API will not 3423 // be included in the string output. The member name will be present, but the 3424 // value will be replaced with "sensitive". 3425 func (s AssociateFirewallPolicyInput) String() string { 3426 return awsutil.Prettify(s) 3427 } 3428 3429 // GoString returns the string representation. 3430 // 3431 // API parameter values that are decorated as "sensitive" in the API will not 3432 // be included in the string output. The member name will be present, but the 3433 // value will be replaced with "sensitive". 3434 func (s AssociateFirewallPolicyInput) GoString() string { 3435 return s.String() 3436 } 3437 3438 // Validate inspects the fields of the type to determine if they are valid. 3439 func (s *AssociateFirewallPolicyInput) Validate() error { 3440 invalidParams := request.ErrInvalidParams{Context: "AssociateFirewallPolicyInput"} 3441 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 3442 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 3443 } 3444 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 3445 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 3446 } 3447 if s.FirewallPolicyArn == nil { 3448 invalidParams.Add(request.NewErrParamRequired("FirewallPolicyArn")) 3449 } 3450 if s.FirewallPolicyArn != nil && len(*s.FirewallPolicyArn) < 1 { 3451 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyArn", 1)) 3452 } 3453 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 3454 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 3455 } 3456 3457 if invalidParams.Len() > 0 { 3458 return invalidParams 3459 } 3460 return nil 3461 } 3462 3463 // SetFirewallArn sets the FirewallArn field's value. 3464 func (s *AssociateFirewallPolicyInput) SetFirewallArn(v string) *AssociateFirewallPolicyInput { 3465 s.FirewallArn = &v 3466 return s 3467 } 3468 3469 // SetFirewallName sets the FirewallName field's value. 3470 func (s *AssociateFirewallPolicyInput) SetFirewallName(v string) *AssociateFirewallPolicyInput { 3471 s.FirewallName = &v 3472 return s 3473 } 3474 3475 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 3476 func (s *AssociateFirewallPolicyInput) SetFirewallPolicyArn(v string) *AssociateFirewallPolicyInput { 3477 s.FirewallPolicyArn = &v 3478 return s 3479 } 3480 3481 // SetUpdateToken sets the UpdateToken field's value. 3482 func (s *AssociateFirewallPolicyInput) SetUpdateToken(v string) *AssociateFirewallPolicyInput { 3483 s.UpdateToken = &v 3484 return s 3485 } 3486 3487 type AssociateFirewallPolicyOutput struct { 3488 _ struct{} `type:"structure"` 3489 3490 // The Amazon Resource Name (ARN) of the firewall. 3491 FirewallArn *string `min:"1" type:"string"` 3492 3493 // The descriptive name of the firewall. You can't change the name of a firewall 3494 // after you create it. 3495 FirewallName *string `min:"1" type:"string"` 3496 3497 // The Amazon Resource Name (ARN) of the firewall policy. 3498 FirewallPolicyArn *string `min:"1" type:"string"` 3499 3500 // An optional token that you can use for optimistic locking. Network Firewall 3501 // returns a token to your requests that access the firewall. The token marks 3502 // the state of the firewall resource at the time of the request. 3503 // 3504 // To make an unconditional change to the firewall, omit the token in your update 3505 // request. Without the token, Network Firewall performs your updates regardless 3506 // of whether the firewall has changed since you last retrieved it. 3507 // 3508 // To make a conditional change to the firewall, provide the token in your update 3509 // request. Network Firewall uses the token to ensure that the firewall hasn't 3510 // changed since you last retrieved it. If it has changed, the operation fails 3511 // with an InvalidTokenException. If this happens, retrieve the firewall again 3512 // to get a current copy of it with a new token. Reapply your changes as needed, 3513 // then try the operation again using the new token. 3514 UpdateToken *string `min:"1" type:"string"` 3515 } 3516 3517 // String returns the string representation. 3518 // 3519 // API parameter values that are decorated as "sensitive" in the API will not 3520 // be included in the string output. The member name will be present, but the 3521 // value will be replaced with "sensitive". 3522 func (s AssociateFirewallPolicyOutput) String() string { 3523 return awsutil.Prettify(s) 3524 } 3525 3526 // GoString returns the string representation. 3527 // 3528 // API parameter values that are decorated as "sensitive" in the API will not 3529 // be included in the string output. The member name will be present, but the 3530 // value will be replaced with "sensitive". 3531 func (s AssociateFirewallPolicyOutput) GoString() string { 3532 return s.String() 3533 } 3534 3535 // SetFirewallArn sets the FirewallArn field's value. 3536 func (s *AssociateFirewallPolicyOutput) SetFirewallArn(v string) *AssociateFirewallPolicyOutput { 3537 s.FirewallArn = &v 3538 return s 3539 } 3540 3541 // SetFirewallName sets the FirewallName field's value. 3542 func (s *AssociateFirewallPolicyOutput) SetFirewallName(v string) *AssociateFirewallPolicyOutput { 3543 s.FirewallName = &v 3544 return s 3545 } 3546 3547 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 3548 func (s *AssociateFirewallPolicyOutput) SetFirewallPolicyArn(v string) *AssociateFirewallPolicyOutput { 3549 s.FirewallPolicyArn = &v 3550 return s 3551 } 3552 3553 // SetUpdateToken sets the UpdateToken field's value. 3554 func (s *AssociateFirewallPolicyOutput) SetUpdateToken(v string) *AssociateFirewallPolicyOutput { 3555 s.UpdateToken = &v 3556 return s 3557 } 3558 3559 type AssociateSubnetsInput struct { 3560 _ struct{} `type:"structure"` 3561 3562 // The Amazon Resource Name (ARN) of the firewall. 3563 // 3564 // You must specify the ARN or the name, and you can specify both. 3565 FirewallArn *string `min:"1" type:"string"` 3566 3567 // The descriptive name of the firewall. You can't change the name of a firewall 3568 // after you create it. 3569 // 3570 // You must specify the ARN or the name, and you can specify both. 3571 FirewallName *string `min:"1" type:"string"` 3572 3573 // The IDs of the subnets that you want to associate with the firewall. 3574 // 3575 // SubnetMappings is a required field 3576 SubnetMappings []*SubnetMapping `type:"list" required:"true"` 3577 3578 // An optional token that you can use for optimistic locking. Network Firewall 3579 // returns a token to your requests that access the firewall. The token marks 3580 // the state of the firewall resource at the time of the request. 3581 // 3582 // To make an unconditional change to the firewall, omit the token in your update 3583 // request. Without the token, Network Firewall performs your updates regardless 3584 // of whether the firewall has changed since you last retrieved it. 3585 // 3586 // To make a conditional change to the firewall, provide the token in your update 3587 // request. Network Firewall uses the token to ensure that the firewall hasn't 3588 // changed since you last retrieved it. If it has changed, the operation fails 3589 // with an InvalidTokenException. If this happens, retrieve the firewall again 3590 // to get a current copy of it with a new token. Reapply your changes as needed, 3591 // then try the operation again using the new token. 3592 UpdateToken *string `min:"1" type:"string"` 3593 } 3594 3595 // String returns the string representation. 3596 // 3597 // API parameter values that are decorated as "sensitive" in the API will not 3598 // be included in the string output. The member name will be present, but the 3599 // value will be replaced with "sensitive". 3600 func (s AssociateSubnetsInput) String() string { 3601 return awsutil.Prettify(s) 3602 } 3603 3604 // GoString returns the string representation. 3605 // 3606 // API parameter values that are decorated as "sensitive" in the API will not 3607 // be included in the string output. The member name will be present, but the 3608 // value will be replaced with "sensitive". 3609 func (s AssociateSubnetsInput) GoString() string { 3610 return s.String() 3611 } 3612 3613 // Validate inspects the fields of the type to determine if they are valid. 3614 func (s *AssociateSubnetsInput) Validate() error { 3615 invalidParams := request.ErrInvalidParams{Context: "AssociateSubnetsInput"} 3616 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 3617 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 3618 } 3619 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 3620 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 3621 } 3622 if s.SubnetMappings == nil { 3623 invalidParams.Add(request.NewErrParamRequired("SubnetMappings")) 3624 } 3625 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 3626 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 3627 } 3628 if s.SubnetMappings != nil { 3629 for i, v := range s.SubnetMappings { 3630 if v == nil { 3631 continue 3632 } 3633 if err := v.Validate(); err != nil { 3634 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubnetMappings", i), err.(request.ErrInvalidParams)) 3635 } 3636 } 3637 } 3638 3639 if invalidParams.Len() > 0 { 3640 return invalidParams 3641 } 3642 return nil 3643 } 3644 3645 // SetFirewallArn sets the FirewallArn field's value. 3646 func (s *AssociateSubnetsInput) SetFirewallArn(v string) *AssociateSubnetsInput { 3647 s.FirewallArn = &v 3648 return s 3649 } 3650 3651 // SetFirewallName sets the FirewallName field's value. 3652 func (s *AssociateSubnetsInput) SetFirewallName(v string) *AssociateSubnetsInput { 3653 s.FirewallName = &v 3654 return s 3655 } 3656 3657 // SetSubnetMappings sets the SubnetMappings field's value. 3658 func (s *AssociateSubnetsInput) SetSubnetMappings(v []*SubnetMapping) *AssociateSubnetsInput { 3659 s.SubnetMappings = v 3660 return s 3661 } 3662 3663 // SetUpdateToken sets the UpdateToken field's value. 3664 func (s *AssociateSubnetsInput) SetUpdateToken(v string) *AssociateSubnetsInput { 3665 s.UpdateToken = &v 3666 return s 3667 } 3668 3669 type AssociateSubnetsOutput struct { 3670 _ struct{} `type:"structure"` 3671 3672 // The Amazon Resource Name (ARN) of the firewall. 3673 FirewallArn *string `min:"1" type:"string"` 3674 3675 // The descriptive name of the firewall. You can't change the name of a firewall 3676 // after you create it. 3677 FirewallName *string `min:"1" type:"string"` 3678 3679 // The IDs of the subnets that are associated with the firewall. 3680 SubnetMappings []*SubnetMapping `type:"list"` 3681 3682 // An optional token that you can use for optimistic locking. Network Firewall 3683 // returns a token to your requests that access the firewall. The token marks 3684 // the state of the firewall resource at the time of the request. 3685 // 3686 // To make an unconditional change to the firewall, omit the token in your update 3687 // request. Without the token, Network Firewall performs your updates regardless 3688 // of whether the firewall has changed since you last retrieved it. 3689 // 3690 // To make a conditional change to the firewall, provide the token in your update 3691 // request. Network Firewall uses the token to ensure that the firewall hasn't 3692 // changed since you last retrieved it. If it has changed, the operation fails 3693 // with an InvalidTokenException. If this happens, retrieve the firewall again 3694 // to get a current copy of it with a new token. Reapply your changes as needed, 3695 // then try the operation again using the new token. 3696 UpdateToken *string `min:"1" type:"string"` 3697 } 3698 3699 // String returns the string representation. 3700 // 3701 // API parameter values that are decorated as "sensitive" in the API will not 3702 // be included in the string output. The member name will be present, but the 3703 // value will be replaced with "sensitive". 3704 func (s AssociateSubnetsOutput) String() string { 3705 return awsutil.Prettify(s) 3706 } 3707 3708 // GoString returns the string representation. 3709 // 3710 // API parameter values that are decorated as "sensitive" in the API will not 3711 // be included in the string output. The member name will be present, but the 3712 // value will be replaced with "sensitive". 3713 func (s AssociateSubnetsOutput) GoString() string { 3714 return s.String() 3715 } 3716 3717 // SetFirewallArn sets the FirewallArn field's value. 3718 func (s *AssociateSubnetsOutput) SetFirewallArn(v string) *AssociateSubnetsOutput { 3719 s.FirewallArn = &v 3720 return s 3721 } 3722 3723 // SetFirewallName sets the FirewallName field's value. 3724 func (s *AssociateSubnetsOutput) SetFirewallName(v string) *AssociateSubnetsOutput { 3725 s.FirewallName = &v 3726 return s 3727 } 3728 3729 // SetSubnetMappings sets the SubnetMappings field's value. 3730 func (s *AssociateSubnetsOutput) SetSubnetMappings(v []*SubnetMapping) *AssociateSubnetsOutput { 3731 s.SubnetMappings = v 3732 return s 3733 } 3734 3735 // SetUpdateToken sets the UpdateToken field's value. 3736 func (s *AssociateSubnetsOutput) SetUpdateToken(v string) *AssociateSubnetsOutput { 3737 s.UpdateToken = &v 3738 return s 3739 } 3740 3741 // The configuration and status for a single subnet that you've specified for 3742 // use by the AWS Network Firewall firewall. This is part of the FirewallStatus. 3743 type Attachment struct { 3744 _ struct{} `type:"structure"` 3745 3746 // The identifier of the firewall endpoint that Network Firewall has instantiated 3747 // in the subnet. You use this to identify the firewall endpoint in the VPC 3748 // route tables, when you redirect the VPC traffic through the endpoint. 3749 EndpointId *string `type:"string"` 3750 3751 // The current status of the firewall endpoint in the subnet. This value reflects 3752 // both the instantiation of the endpoint in the VPC subnet and the sync states 3753 // that are reported in the Config settings. When this value is READY, the endpoint 3754 // is available and configured properly to handle network traffic. When the 3755 // endpoint isn't available for traffic, this value will reflect its state, 3756 // for example CREATING, DELETING, or FAILED. 3757 Status *string `type:"string" enum:"AttachmentStatus"` 3758 3759 // The unique identifier of the subnet that you've specified to be used for 3760 // a firewall endpoint. 3761 SubnetId *string `min:"1" type:"string"` 3762 } 3763 3764 // String returns the string representation. 3765 // 3766 // API parameter values that are decorated as "sensitive" in the API will not 3767 // be included in the string output. The member name will be present, but the 3768 // value will be replaced with "sensitive". 3769 func (s Attachment) String() string { 3770 return awsutil.Prettify(s) 3771 } 3772 3773 // GoString returns the string representation. 3774 // 3775 // API parameter values that are decorated as "sensitive" in the API will not 3776 // be included in the string output. The member name will be present, but the 3777 // value will be replaced with "sensitive". 3778 func (s Attachment) GoString() string { 3779 return s.String() 3780 } 3781 3782 // SetEndpointId sets the EndpointId field's value. 3783 func (s *Attachment) SetEndpointId(v string) *Attachment { 3784 s.EndpointId = &v 3785 return s 3786 } 3787 3788 // SetStatus sets the Status field's value. 3789 func (s *Attachment) SetStatus(v string) *Attachment { 3790 s.Status = &v 3791 return s 3792 } 3793 3794 // SetSubnetId sets the SubnetId field's value. 3795 func (s *Attachment) SetSubnetId(v string) *Attachment { 3796 s.SubnetId = &v 3797 return s 3798 } 3799 3800 type CreateFirewallInput struct { 3801 _ struct{} `type:"structure"` 3802 3803 // A flag indicating whether it is possible to delete the firewall. A setting 3804 // of TRUE indicates that the firewall is protected against deletion. Use this 3805 // setting to protect against accidentally deleting a firewall that is in use. 3806 // When you create a firewall, the operation initializes this flag to TRUE. 3807 DeleteProtection *bool `type:"boolean"` 3808 3809 // A description of the firewall. 3810 Description *string `type:"string"` 3811 3812 // The descriptive name of the firewall. You can't change the name of a firewall 3813 // after you create it. 3814 // 3815 // FirewallName is a required field 3816 FirewallName *string `min:"1" type:"string" required:"true"` 3817 3818 // The Amazon Resource Name (ARN) of the FirewallPolicy that you want to use 3819 // for the firewall. 3820 // 3821 // FirewallPolicyArn is a required field 3822 FirewallPolicyArn *string `min:"1" type:"string" required:"true"` 3823 3824 // A setting indicating whether the firewall is protected against a change to 3825 // the firewall policy association. Use this setting to protect against accidentally 3826 // modifying the firewall policy for a firewall that is in use. When you create 3827 // a firewall, the operation initializes this setting to TRUE. 3828 FirewallPolicyChangeProtection *bool `type:"boolean"` 3829 3830 // A setting indicating whether the firewall is protected against changes to 3831 // the subnet associations. Use this setting to protect against accidentally 3832 // modifying the subnet associations for a firewall that is in use. When you 3833 // create a firewall, the operation initializes this setting to TRUE. 3834 SubnetChangeProtection *bool `type:"boolean"` 3835 3836 // The public subnets to use for your Network Firewall firewalls. Each subnet 3837 // must belong to a different Availability Zone in the VPC. Network Firewall 3838 // creates a firewall endpoint in each subnet. 3839 // 3840 // SubnetMappings is a required field 3841 SubnetMappings []*SubnetMapping `type:"list" required:"true"` 3842 3843 // The key:value pairs to associate with the resource. 3844 Tags []*Tag `min:"1" type:"list"` 3845 3846 // The unique identifier of the VPC where Network Firewall should create the 3847 // firewall. 3848 // 3849 // You can't change this setting after you create the firewall. 3850 // 3851 // VpcId is a required field 3852 VpcId *string `min:"1" type:"string" required:"true"` 3853 } 3854 3855 // String returns the string representation. 3856 // 3857 // API parameter values that are decorated as "sensitive" in the API will not 3858 // be included in the string output. The member name will be present, but the 3859 // value will be replaced with "sensitive". 3860 func (s CreateFirewallInput) String() string { 3861 return awsutil.Prettify(s) 3862 } 3863 3864 // GoString returns the string representation. 3865 // 3866 // API parameter values that are decorated as "sensitive" in the API will not 3867 // be included in the string output. The member name will be present, but the 3868 // value will be replaced with "sensitive". 3869 func (s CreateFirewallInput) GoString() string { 3870 return s.String() 3871 } 3872 3873 // Validate inspects the fields of the type to determine if they are valid. 3874 func (s *CreateFirewallInput) Validate() error { 3875 invalidParams := request.ErrInvalidParams{Context: "CreateFirewallInput"} 3876 if s.FirewallName == nil { 3877 invalidParams.Add(request.NewErrParamRequired("FirewallName")) 3878 } 3879 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 3880 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 3881 } 3882 if s.FirewallPolicyArn == nil { 3883 invalidParams.Add(request.NewErrParamRequired("FirewallPolicyArn")) 3884 } 3885 if s.FirewallPolicyArn != nil && len(*s.FirewallPolicyArn) < 1 { 3886 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyArn", 1)) 3887 } 3888 if s.SubnetMappings == nil { 3889 invalidParams.Add(request.NewErrParamRequired("SubnetMappings")) 3890 } 3891 if s.Tags != nil && len(s.Tags) < 1 { 3892 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 3893 } 3894 if s.VpcId == nil { 3895 invalidParams.Add(request.NewErrParamRequired("VpcId")) 3896 } 3897 if s.VpcId != nil && len(*s.VpcId) < 1 { 3898 invalidParams.Add(request.NewErrParamMinLen("VpcId", 1)) 3899 } 3900 if s.SubnetMappings != nil { 3901 for i, v := range s.SubnetMappings { 3902 if v == nil { 3903 continue 3904 } 3905 if err := v.Validate(); err != nil { 3906 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubnetMappings", i), err.(request.ErrInvalidParams)) 3907 } 3908 } 3909 } 3910 if s.Tags != nil { 3911 for i, v := range s.Tags { 3912 if v == nil { 3913 continue 3914 } 3915 if err := v.Validate(); err != nil { 3916 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 3917 } 3918 } 3919 } 3920 3921 if invalidParams.Len() > 0 { 3922 return invalidParams 3923 } 3924 return nil 3925 } 3926 3927 // SetDeleteProtection sets the DeleteProtection field's value. 3928 func (s *CreateFirewallInput) SetDeleteProtection(v bool) *CreateFirewallInput { 3929 s.DeleteProtection = &v 3930 return s 3931 } 3932 3933 // SetDescription sets the Description field's value. 3934 func (s *CreateFirewallInput) SetDescription(v string) *CreateFirewallInput { 3935 s.Description = &v 3936 return s 3937 } 3938 3939 // SetFirewallName sets the FirewallName field's value. 3940 func (s *CreateFirewallInput) SetFirewallName(v string) *CreateFirewallInput { 3941 s.FirewallName = &v 3942 return s 3943 } 3944 3945 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 3946 func (s *CreateFirewallInput) SetFirewallPolicyArn(v string) *CreateFirewallInput { 3947 s.FirewallPolicyArn = &v 3948 return s 3949 } 3950 3951 // SetFirewallPolicyChangeProtection sets the FirewallPolicyChangeProtection field's value. 3952 func (s *CreateFirewallInput) SetFirewallPolicyChangeProtection(v bool) *CreateFirewallInput { 3953 s.FirewallPolicyChangeProtection = &v 3954 return s 3955 } 3956 3957 // SetSubnetChangeProtection sets the SubnetChangeProtection field's value. 3958 func (s *CreateFirewallInput) SetSubnetChangeProtection(v bool) *CreateFirewallInput { 3959 s.SubnetChangeProtection = &v 3960 return s 3961 } 3962 3963 // SetSubnetMappings sets the SubnetMappings field's value. 3964 func (s *CreateFirewallInput) SetSubnetMappings(v []*SubnetMapping) *CreateFirewallInput { 3965 s.SubnetMappings = v 3966 return s 3967 } 3968 3969 // SetTags sets the Tags field's value. 3970 func (s *CreateFirewallInput) SetTags(v []*Tag) *CreateFirewallInput { 3971 s.Tags = v 3972 return s 3973 } 3974 3975 // SetVpcId sets the VpcId field's value. 3976 func (s *CreateFirewallInput) SetVpcId(v string) *CreateFirewallInput { 3977 s.VpcId = &v 3978 return s 3979 } 3980 3981 type CreateFirewallOutput struct { 3982 _ struct{} `type:"structure"` 3983 3984 // The configuration settings for the firewall. These settings include the firewall 3985 // policy and the subnets in your VPC to use for the firewall endpoints. 3986 Firewall *Firewall `type:"structure"` 3987 3988 // Detailed information about the current status of a Firewall. You can retrieve 3989 // this for a firewall by calling DescribeFirewall and providing the firewall 3990 // name and ARN. 3991 FirewallStatus *FirewallStatus `type:"structure"` 3992 } 3993 3994 // String returns the string representation. 3995 // 3996 // API parameter values that are decorated as "sensitive" in the API will not 3997 // be included in the string output. The member name will be present, but the 3998 // value will be replaced with "sensitive". 3999 func (s CreateFirewallOutput) String() string { 4000 return awsutil.Prettify(s) 4001 } 4002 4003 // GoString returns the string representation. 4004 // 4005 // API parameter values that are decorated as "sensitive" in the API will not 4006 // be included in the string output. The member name will be present, but the 4007 // value will be replaced with "sensitive". 4008 func (s CreateFirewallOutput) GoString() string { 4009 return s.String() 4010 } 4011 4012 // SetFirewall sets the Firewall field's value. 4013 func (s *CreateFirewallOutput) SetFirewall(v *Firewall) *CreateFirewallOutput { 4014 s.Firewall = v 4015 return s 4016 } 4017 4018 // SetFirewallStatus sets the FirewallStatus field's value. 4019 func (s *CreateFirewallOutput) SetFirewallStatus(v *FirewallStatus) *CreateFirewallOutput { 4020 s.FirewallStatus = v 4021 return s 4022 } 4023 4024 type CreateFirewallPolicyInput struct { 4025 _ struct{} `type:"structure"` 4026 4027 // A description of the firewall policy. 4028 Description *string `type:"string"` 4029 4030 // Indicates whether you want Network Firewall to just check the validity of 4031 // the request, rather than run the request. 4032 // 4033 // If set to TRUE, Network Firewall checks whether the request can run successfully, 4034 // but doesn't actually make the requested changes. The call returns the value 4035 // that the request would return if you ran it with dry run set to FALSE, but 4036 // doesn't make additions or changes to your resources. This option allows you 4037 // to make sure that you have the required permissions to run the request and 4038 // that your request parameters are valid. 4039 // 4040 // If set to FALSE, Network Firewall makes the requested changes to your resources. 4041 DryRun *bool `type:"boolean"` 4042 4043 // The rule groups and policy actions to use in the firewall policy. 4044 // 4045 // FirewallPolicy is a required field 4046 FirewallPolicy *FirewallPolicy `type:"structure" required:"true"` 4047 4048 // The descriptive name of the firewall policy. You can't change the name of 4049 // a firewall policy after you create it. 4050 // 4051 // FirewallPolicyName is a required field 4052 FirewallPolicyName *string `min:"1" type:"string" required:"true"` 4053 4054 // The key:value pairs to associate with the resource. 4055 Tags []*Tag `min:"1" type:"list"` 4056 } 4057 4058 // String returns the string representation. 4059 // 4060 // API parameter values that are decorated as "sensitive" in the API will not 4061 // be included in the string output. The member name will be present, but the 4062 // value will be replaced with "sensitive". 4063 func (s CreateFirewallPolicyInput) String() string { 4064 return awsutil.Prettify(s) 4065 } 4066 4067 // GoString returns the string representation. 4068 // 4069 // API parameter values that are decorated as "sensitive" in the API will not 4070 // be included in the string output. The member name will be present, but the 4071 // value will be replaced with "sensitive". 4072 func (s CreateFirewallPolicyInput) GoString() string { 4073 return s.String() 4074 } 4075 4076 // Validate inspects the fields of the type to determine if they are valid. 4077 func (s *CreateFirewallPolicyInput) Validate() error { 4078 invalidParams := request.ErrInvalidParams{Context: "CreateFirewallPolicyInput"} 4079 if s.FirewallPolicy == nil { 4080 invalidParams.Add(request.NewErrParamRequired("FirewallPolicy")) 4081 } 4082 if s.FirewallPolicyName == nil { 4083 invalidParams.Add(request.NewErrParamRequired("FirewallPolicyName")) 4084 } 4085 if s.FirewallPolicyName != nil && len(*s.FirewallPolicyName) < 1 { 4086 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyName", 1)) 4087 } 4088 if s.Tags != nil && len(s.Tags) < 1 { 4089 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 4090 } 4091 if s.FirewallPolicy != nil { 4092 if err := s.FirewallPolicy.Validate(); err != nil { 4093 invalidParams.AddNested("FirewallPolicy", err.(request.ErrInvalidParams)) 4094 } 4095 } 4096 if s.Tags != nil { 4097 for i, v := range s.Tags { 4098 if v == nil { 4099 continue 4100 } 4101 if err := v.Validate(); err != nil { 4102 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 4103 } 4104 } 4105 } 4106 4107 if invalidParams.Len() > 0 { 4108 return invalidParams 4109 } 4110 return nil 4111 } 4112 4113 // SetDescription sets the Description field's value. 4114 func (s *CreateFirewallPolicyInput) SetDescription(v string) *CreateFirewallPolicyInput { 4115 s.Description = &v 4116 return s 4117 } 4118 4119 // SetDryRun sets the DryRun field's value. 4120 func (s *CreateFirewallPolicyInput) SetDryRun(v bool) *CreateFirewallPolicyInput { 4121 s.DryRun = &v 4122 return s 4123 } 4124 4125 // SetFirewallPolicy sets the FirewallPolicy field's value. 4126 func (s *CreateFirewallPolicyInput) SetFirewallPolicy(v *FirewallPolicy) *CreateFirewallPolicyInput { 4127 s.FirewallPolicy = v 4128 return s 4129 } 4130 4131 // SetFirewallPolicyName sets the FirewallPolicyName field's value. 4132 func (s *CreateFirewallPolicyInput) SetFirewallPolicyName(v string) *CreateFirewallPolicyInput { 4133 s.FirewallPolicyName = &v 4134 return s 4135 } 4136 4137 // SetTags sets the Tags field's value. 4138 func (s *CreateFirewallPolicyInput) SetTags(v []*Tag) *CreateFirewallPolicyInput { 4139 s.Tags = v 4140 return s 4141 } 4142 4143 type CreateFirewallPolicyOutput struct { 4144 _ struct{} `type:"structure"` 4145 4146 // The high-level properties of a firewall policy. This, along with the FirewallPolicy, 4147 // define the policy. You can retrieve all objects for a firewall policy by 4148 // calling DescribeFirewallPolicy. 4149 // 4150 // FirewallPolicyResponse is a required field 4151 FirewallPolicyResponse *FirewallPolicyResponse `type:"structure" required:"true"` 4152 4153 // A token used for optimistic locking. Network Firewall returns a token to 4154 // your requests that access the firewall policy. The token marks the state 4155 // of the policy resource at the time of the request. 4156 // 4157 // To make changes to the policy, you provide the token in your request. Network 4158 // Firewall uses the token to ensure that the policy hasn't changed since you 4159 // last retrieved it. If it has changed, the operation fails with an InvalidTokenException. 4160 // If this happens, retrieve the firewall policy again to get a current copy 4161 // of it with current token. Reapply your changes as needed, then try the operation 4162 // again using the new token. 4163 // 4164 // UpdateToken is a required field 4165 UpdateToken *string `min:"1" type:"string" required:"true"` 4166 } 4167 4168 // String returns the string representation. 4169 // 4170 // API parameter values that are decorated as "sensitive" in the API will not 4171 // be included in the string output. The member name will be present, but the 4172 // value will be replaced with "sensitive". 4173 func (s CreateFirewallPolicyOutput) String() string { 4174 return awsutil.Prettify(s) 4175 } 4176 4177 // GoString returns the string representation. 4178 // 4179 // API parameter values that are decorated as "sensitive" in the API will not 4180 // be included in the string output. The member name will be present, but the 4181 // value will be replaced with "sensitive". 4182 func (s CreateFirewallPolicyOutput) GoString() string { 4183 return s.String() 4184 } 4185 4186 // SetFirewallPolicyResponse sets the FirewallPolicyResponse field's value. 4187 func (s *CreateFirewallPolicyOutput) SetFirewallPolicyResponse(v *FirewallPolicyResponse) *CreateFirewallPolicyOutput { 4188 s.FirewallPolicyResponse = v 4189 return s 4190 } 4191 4192 // SetUpdateToken sets the UpdateToken field's value. 4193 func (s *CreateFirewallPolicyOutput) SetUpdateToken(v string) *CreateFirewallPolicyOutput { 4194 s.UpdateToken = &v 4195 return s 4196 } 4197 4198 type CreateRuleGroupInput struct { 4199 _ struct{} `type:"structure"` 4200 4201 // The maximum operating resources that this rule group can use. Rule group 4202 // capacity is fixed at creation. When you update a rule group, you are limited 4203 // to this capacity. When you reference a rule group from a firewall policy, 4204 // Network Firewall reserves this capacity for the rule group. 4205 // 4206 // You can retrieve the capacity that would be required for a rule group before 4207 // you create the rule group by calling CreateRuleGroup with DryRun set to TRUE. 4208 // 4209 // You can't change or exceed this capacity when you update the rule group, 4210 // so leave room for your rule group to grow. 4211 // 4212 // Capacity for a stateless rule group 4213 // 4214 // For a stateless rule group, the capacity required is the sum of the capacity 4215 // requirements of the individual rules that you expect to have in the rule 4216 // group. 4217 // 4218 // To calculate the capacity requirement of a single rule, multiply the capacity 4219 // requirement values of each of the rule's match settings: 4220 // 4221 // * A match setting with no criteria specified has a value of 1. 4222 // 4223 // * A match setting with Any specified has a value of 1. 4224 // 4225 // * All other match settings have a value equal to the number of elements 4226 // provided in the setting. For example, a protocol setting ["UDP"] and a 4227 // source setting ["10.0.0.0/24"] each have a value of 1. A protocol setting 4228 // ["UDP","TCP"] has a value of 2. A source setting ["10.0.0.0/24","10.0.0.1/24","10.0.0.2/24"] 4229 // has a value of 3. 4230 // 4231 // A rule with no criteria specified in any of its match settings has a capacity 4232 // requirement of 1. A rule with protocol setting ["UDP","TCP"], source setting 4233 // ["10.0.0.0/24","10.0.0.1/24","10.0.0.2/24"], and a single specification or 4234 // no specification for each of the other match settings has a capacity requirement 4235 // of 6. 4236 // 4237 // Capacity for a stateful rule group 4238 // 4239 // For a stateful rule group, the minimum capacity required is the number of 4240 // individual rules that you expect to have in the rule group. 4241 // 4242 // Capacity is a required field 4243 Capacity *int64 `type:"integer" required:"true"` 4244 4245 // A description of the rule group. 4246 Description *string `type:"string"` 4247 4248 // Indicates whether you want Network Firewall to just check the validity of 4249 // the request, rather than run the request. 4250 // 4251 // If set to TRUE, Network Firewall checks whether the request can run successfully, 4252 // but doesn't actually make the requested changes. The call returns the value 4253 // that the request would return if you ran it with dry run set to FALSE, but 4254 // doesn't make additions or changes to your resources. This option allows you 4255 // to make sure that you have the required permissions to run the request and 4256 // that your request parameters are valid. 4257 // 4258 // If set to FALSE, Network Firewall makes the requested changes to your resources. 4259 DryRun *bool `type:"boolean"` 4260 4261 // An object that defines the rule group rules. 4262 // 4263 // You must provide either this rule group setting or a Rules setting, but not 4264 // both. 4265 RuleGroup *RuleGroup `type:"structure"` 4266 4267 // The descriptive name of the rule group. You can't change the name of a rule 4268 // group after you create it. 4269 // 4270 // RuleGroupName is a required field 4271 RuleGroupName *string `min:"1" type:"string" required:"true"` 4272 4273 // A string containing stateful rule group rules specifications in Suricata 4274 // flat format, with one rule per line. Use this to import your existing Suricata 4275 // compatible rule groups. 4276 // 4277 // You must provide either this rules setting or a populated RuleGroup setting, 4278 // but not both. 4279 // 4280 // You can provide your rule group specification in Suricata flat format through 4281 // this setting when you create or update your rule group. The call response 4282 // returns a RuleGroup object that Network Firewall has populated from your 4283 // string. 4284 Rules *string `type:"string"` 4285 4286 // The key:value pairs to associate with the resource. 4287 Tags []*Tag `min:"1" type:"list"` 4288 4289 // Indicates whether the rule group is stateless or stateful. If the rule group 4290 // is stateless, it contains stateless rules. If it is stateful, it contains 4291 // stateful rules. 4292 // 4293 // Type is a required field 4294 Type *string `type:"string" required:"true" enum:"RuleGroupType"` 4295 } 4296 4297 // String returns the string representation. 4298 // 4299 // API parameter values that are decorated as "sensitive" in the API will not 4300 // be included in the string output. The member name will be present, but the 4301 // value will be replaced with "sensitive". 4302 func (s CreateRuleGroupInput) String() string { 4303 return awsutil.Prettify(s) 4304 } 4305 4306 // GoString returns the string representation. 4307 // 4308 // API parameter values that are decorated as "sensitive" in the API will not 4309 // be included in the string output. The member name will be present, but the 4310 // value will be replaced with "sensitive". 4311 func (s CreateRuleGroupInput) GoString() string { 4312 return s.String() 4313 } 4314 4315 // Validate inspects the fields of the type to determine if they are valid. 4316 func (s *CreateRuleGroupInput) Validate() error { 4317 invalidParams := request.ErrInvalidParams{Context: "CreateRuleGroupInput"} 4318 if s.Capacity == nil { 4319 invalidParams.Add(request.NewErrParamRequired("Capacity")) 4320 } 4321 if s.RuleGroupName == nil { 4322 invalidParams.Add(request.NewErrParamRequired("RuleGroupName")) 4323 } 4324 if s.RuleGroupName != nil && len(*s.RuleGroupName) < 1 { 4325 invalidParams.Add(request.NewErrParamMinLen("RuleGroupName", 1)) 4326 } 4327 if s.Tags != nil && len(s.Tags) < 1 { 4328 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 4329 } 4330 if s.Type == nil { 4331 invalidParams.Add(request.NewErrParamRequired("Type")) 4332 } 4333 if s.RuleGroup != nil { 4334 if err := s.RuleGroup.Validate(); err != nil { 4335 invalidParams.AddNested("RuleGroup", err.(request.ErrInvalidParams)) 4336 } 4337 } 4338 if s.Tags != nil { 4339 for i, v := range s.Tags { 4340 if v == nil { 4341 continue 4342 } 4343 if err := v.Validate(); err != nil { 4344 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 4345 } 4346 } 4347 } 4348 4349 if invalidParams.Len() > 0 { 4350 return invalidParams 4351 } 4352 return nil 4353 } 4354 4355 // SetCapacity sets the Capacity field's value. 4356 func (s *CreateRuleGroupInput) SetCapacity(v int64) *CreateRuleGroupInput { 4357 s.Capacity = &v 4358 return s 4359 } 4360 4361 // SetDescription sets the Description field's value. 4362 func (s *CreateRuleGroupInput) SetDescription(v string) *CreateRuleGroupInput { 4363 s.Description = &v 4364 return s 4365 } 4366 4367 // SetDryRun sets the DryRun field's value. 4368 func (s *CreateRuleGroupInput) SetDryRun(v bool) *CreateRuleGroupInput { 4369 s.DryRun = &v 4370 return s 4371 } 4372 4373 // SetRuleGroup sets the RuleGroup field's value. 4374 func (s *CreateRuleGroupInput) SetRuleGroup(v *RuleGroup) *CreateRuleGroupInput { 4375 s.RuleGroup = v 4376 return s 4377 } 4378 4379 // SetRuleGroupName sets the RuleGroupName field's value. 4380 func (s *CreateRuleGroupInput) SetRuleGroupName(v string) *CreateRuleGroupInput { 4381 s.RuleGroupName = &v 4382 return s 4383 } 4384 4385 // SetRules sets the Rules field's value. 4386 func (s *CreateRuleGroupInput) SetRules(v string) *CreateRuleGroupInput { 4387 s.Rules = &v 4388 return s 4389 } 4390 4391 // SetTags sets the Tags field's value. 4392 func (s *CreateRuleGroupInput) SetTags(v []*Tag) *CreateRuleGroupInput { 4393 s.Tags = v 4394 return s 4395 } 4396 4397 // SetType sets the Type field's value. 4398 func (s *CreateRuleGroupInput) SetType(v string) *CreateRuleGroupInput { 4399 s.Type = &v 4400 return s 4401 } 4402 4403 type CreateRuleGroupOutput struct { 4404 _ struct{} `type:"structure"` 4405 4406 // The high-level properties of a rule group. This, along with the RuleGroup, 4407 // define the rule group. You can retrieve all objects for a rule group by calling 4408 // DescribeRuleGroup. 4409 // 4410 // RuleGroupResponse is a required field 4411 RuleGroupResponse *RuleGroupResponse `type:"structure" required:"true"` 4412 4413 // A token used for optimistic locking. Network Firewall returns a token to 4414 // your requests that access the rule group. The token marks the state of the 4415 // rule group resource at the time of the request. 4416 // 4417 // To make changes to the rule group, you provide the token in your request. 4418 // Network Firewall uses the token to ensure that the rule group hasn't changed 4419 // since you last retrieved it. If it has changed, the operation fails with 4420 // an InvalidTokenException. If this happens, retrieve the rule group again 4421 // to get a current copy of it with a current token. Reapply your changes as 4422 // needed, then try the operation again using the new token. 4423 // 4424 // UpdateToken is a required field 4425 UpdateToken *string `min:"1" type:"string" required:"true"` 4426 } 4427 4428 // String returns the string representation. 4429 // 4430 // API parameter values that are decorated as "sensitive" in the API will not 4431 // be included in the string output. The member name will be present, but the 4432 // value will be replaced with "sensitive". 4433 func (s CreateRuleGroupOutput) String() string { 4434 return awsutil.Prettify(s) 4435 } 4436 4437 // GoString returns the string representation. 4438 // 4439 // API parameter values that are decorated as "sensitive" in the API will not 4440 // be included in the string output. The member name will be present, but the 4441 // value will be replaced with "sensitive". 4442 func (s CreateRuleGroupOutput) GoString() string { 4443 return s.String() 4444 } 4445 4446 // SetRuleGroupResponse sets the RuleGroupResponse field's value. 4447 func (s *CreateRuleGroupOutput) SetRuleGroupResponse(v *RuleGroupResponse) *CreateRuleGroupOutput { 4448 s.RuleGroupResponse = v 4449 return s 4450 } 4451 4452 // SetUpdateToken sets the UpdateToken field's value. 4453 func (s *CreateRuleGroupOutput) SetUpdateToken(v string) *CreateRuleGroupOutput { 4454 s.UpdateToken = &v 4455 return s 4456 } 4457 4458 // An optional, non-standard action to use for stateless packet handling. You 4459 // can define this in addition to the standard action that you must specify. 4460 // 4461 // You define and name the custom actions that you want to be able to use, and 4462 // then you reference them by name in your actions settings. 4463 // 4464 // You can use custom actions in the following places: 4465 // 4466 // * In a rule group's StatelessRulesAndCustomActions specification. The 4467 // custom actions are available for use by name inside the StatelessRulesAndCustomActions 4468 // where you define them. You can use them for your stateless rule actions 4469 // to specify what to do with a packet that matches the rule's match attributes. 4470 // 4471 // * In a FirewallPolicy specification, in StatelessCustomActions. The custom 4472 // actions are available for use inside the policy where you define them. 4473 // You can use them for the policy's default stateless actions settings to 4474 // specify what to do with packets that don't match any of the policy's stateless 4475 // rules. 4476 type CustomAction struct { 4477 _ struct{} `type:"structure"` 4478 4479 // The custom action associated with the action name. 4480 // 4481 // ActionDefinition is a required field 4482 ActionDefinition *ActionDefinition `type:"structure" required:"true"` 4483 4484 // The descriptive name of the custom action. You can't change the name of a 4485 // custom action after you create it. 4486 // 4487 // ActionName is a required field 4488 ActionName *string `min:"1" type:"string" required:"true"` 4489 } 4490 4491 // String returns the string representation. 4492 // 4493 // API parameter values that are decorated as "sensitive" in the API will not 4494 // be included in the string output. The member name will be present, but the 4495 // value will be replaced with "sensitive". 4496 func (s CustomAction) String() string { 4497 return awsutil.Prettify(s) 4498 } 4499 4500 // GoString returns the string representation. 4501 // 4502 // API parameter values that are decorated as "sensitive" in the API will not 4503 // be included in the string output. The member name will be present, but the 4504 // value will be replaced with "sensitive". 4505 func (s CustomAction) GoString() string { 4506 return s.String() 4507 } 4508 4509 // Validate inspects the fields of the type to determine if they are valid. 4510 func (s *CustomAction) Validate() error { 4511 invalidParams := request.ErrInvalidParams{Context: "CustomAction"} 4512 if s.ActionDefinition == nil { 4513 invalidParams.Add(request.NewErrParamRequired("ActionDefinition")) 4514 } 4515 if s.ActionName == nil { 4516 invalidParams.Add(request.NewErrParamRequired("ActionName")) 4517 } 4518 if s.ActionName != nil && len(*s.ActionName) < 1 { 4519 invalidParams.Add(request.NewErrParamMinLen("ActionName", 1)) 4520 } 4521 if s.ActionDefinition != nil { 4522 if err := s.ActionDefinition.Validate(); err != nil { 4523 invalidParams.AddNested("ActionDefinition", err.(request.ErrInvalidParams)) 4524 } 4525 } 4526 4527 if invalidParams.Len() > 0 { 4528 return invalidParams 4529 } 4530 return nil 4531 } 4532 4533 // SetActionDefinition sets the ActionDefinition field's value. 4534 func (s *CustomAction) SetActionDefinition(v *ActionDefinition) *CustomAction { 4535 s.ActionDefinition = v 4536 return s 4537 } 4538 4539 // SetActionName sets the ActionName field's value. 4540 func (s *CustomAction) SetActionName(v string) *CustomAction { 4541 s.ActionName = &v 4542 return s 4543 } 4544 4545 type DeleteFirewallInput struct { 4546 _ struct{} `type:"structure"` 4547 4548 // The Amazon Resource Name (ARN) of the firewall. 4549 // 4550 // You must specify the ARN or the name, and you can specify both. 4551 FirewallArn *string `min:"1" type:"string"` 4552 4553 // The descriptive name of the firewall. You can't change the name of a firewall 4554 // after you create it. 4555 // 4556 // You must specify the ARN or the name, and you can specify both. 4557 FirewallName *string `min:"1" type:"string"` 4558 } 4559 4560 // String returns the string representation. 4561 // 4562 // API parameter values that are decorated as "sensitive" in the API will not 4563 // be included in the string output. The member name will be present, but the 4564 // value will be replaced with "sensitive". 4565 func (s DeleteFirewallInput) String() string { 4566 return awsutil.Prettify(s) 4567 } 4568 4569 // GoString returns the string representation. 4570 // 4571 // API parameter values that are decorated as "sensitive" in the API will not 4572 // be included in the string output. The member name will be present, but the 4573 // value will be replaced with "sensitive". 4574 func (s DeleteFirewallInput) GoString() string { 4575 return s.String() 4576 } 4577 4578 // Validate inspects the fields of the type to determine if they are valid. 4579 func (s *DeleteFirewallInput) Validate() error { 4580 invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallInput"} 4581 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 4582 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 4583 } 4584 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 4585 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 4586 } 4587 4588 if invalidParams.Len() > 0 { 4589 return invalidParams 4590 } 4591 return nil 4592 } 4593 4594 // SetFirewallArn sets the FirewallArn field's value. 4595 func (s *DeleteFirewallInput) SetFirewallArn(v string) *DeleteFirewallInput { 4596 s.FirewallArn = &v 4597 return s 4598 } 4599 4600 // SetFirewallName sets the FirewallName field's value. 4601 func (s *DeleteFirewallInput) SetFirewallName(v string) *DeleteFirewallInput { 4602 s.FirewallName = &v 4603 return s 4604 } 4605 4606 type DeleteFirewallOutput struct { 4607 _ struct{} `type:"structure"` 4608 4609 // The firewall defines the configuration settings for an AWS Network Firewall 4610 // firewall. These settings include the firewall policy, the subnets in your 4611 // VPC to use for the firewall endpoints, and any tags that are attached to 4612 // the firewall AWS resource. 4613 // 4614 // The status of the firewall, for example whether it's ready to filter network 4615 // traffic, is provided in the corresponding FirewallStatus. You can retrieve 4616 // both objects by calling DescribeFirewall. 4617 Firewall *Firewall `type:"structure"` 4618 4619 // Detailed information about the current status of a Firewall. You can retrieve 4620 // this for a firewall by calling DescribeFirewall and providing the firewall 4621 // name and ARN. 4622 FirewallStatus *FirewallStatus `type:"structure"` 4623 } 4624 4625 // String returns the string representation. 4626 // 4627 // API parameter values that are decorated as "sensitive" in the API will not 4628 // be included in the string output. The member name will be present, but the 4629 // value will be replaced with "sensitive". 4630 func (s DeleteFirewallOutput) String() string { 4631 return awsutil.Prettify(s) 4632 } 4633 4634 // GoString returns the string representation. 4635 // 4636 // API parameter values that are decorated as "sensitive" in the API will not 4637 // be included in the string output. The member name will be present, but the 4638 // value will be replaced with "sensitive". 4639 func (s DeleteFirewallOutput) GoString() string { 4640 return s.String() 4641 } 4642 4643 // SetFirewall sets the Firewall field's value. 4644 func (s *DeleteFirewallOutput) SetFirewall(v *Firewall) *DeleteFirewallOutput { 4645 s.Firewall = v 4646 return s 4647 } 4648 4649 // SetFirewallStatus sets the FirewallStatus field's value. 4650 func (s *DeleteFirewallOutput) SetFirewallStatus(v *FirewallStatus) *DeleteFirewallOutput { 4651 s.FirewallStatus = v 4652 return s 4653 } 4654 4655 type DeleteFirewallPolicyInput struct { 4656 _ struct{} `type:"structure"` 4657 4658 // The Amazon Resource Name (ARN) of the firewall policy. 4659 // 4660 // You must specify the ARN or the name, and you can specify both. 4661 FirewallPolicyArn *string `min:"1" type:"string"` 4662 4663 // The descriptive name of the firewall policy. You can't change the name of 4664 // a firewall policy after you create it. 4665 // 4666 // You must specify the ARN or the name, and you can specify both. 4667 FirewallPolicyName *string `min:"1" type:"string"` 4668 } 4669 4670 // String returns the string representation. 4671 // 4672 // API parameter values that are decorated as "sensitive" in the API will not 4673 // be included in the string output. The member name will be present, but the 4674 // value will be replaced with "sensitive". 4675 func (s DeleteFirewallPolicyInput) String() string { 4676 return awsutil.Prettify(s) 4677 } 4678 4679 // GoString returns the string representation. 4680 // 4681 // API parameter values that are decorated as "sensitive" in the API will not 4682 // be included in the string output. The member name will be present, but the 4683 // value will be replaced with "sensitive". 4684 func (s DeleteFirewallPolicyInput) GoString() string { 4685 return s.String() 4686 } 4687 4688 // Validate inspects the fields of the type to determine if they are valid. 4689 func (s *DeleteFirewallPolicyInput) Validate() error { 4690 invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallPolicyInput"} 4691 if s.FirewallPolicyArn != nil && len(*s.FirewallPolicyArn) < 1 { 4692 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyArn", 1)) 4693 } 4694 if s.FirewallPolicyName != nil && len(*s.FirewallPolicyName) < 1 { 4695 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyName", 1)) 4696 } 4697 4698 if invalidParams.Len() > 0 { 4699 return invalidParams 4700 } 4701 return nil 4702 } 4703 4704 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 4705 func (s *DeleteFirewallPolicyInput) SetFirewallPolicyArn(v string) *DeleteFirewallPolicyInput { 4706 s.FirewallPolicyArn = &v 4707 return s 4708 } 4709 4710 // SetFirewallPolicyName sets the FirewallPolicyName field's value. 4711 func (s *DeleteFirewallPolicyInput) SetFirewallPolicyName(v string) *DeleteFirewallPolicyInput { 4712 s.FirewallPolicyName = &v 4713 return s 4714 } 4715 4716 type DeleteFirewallPolicyOutput struct { 4717 _ struct{} `type:"structure"` 4718 4719 // The object containing the definition of the FirewallPolicyResponse that you 4720 // asked to delete. 4721 // 4722 // FirewallPolicyResponse is a required field 4723 FirewallPolicyResponse *FirewallPolicyResponse `type:"structure" required:"true"` 4724 } 4725 4726 // String returns the string representation. 4727 // 4728 // API parameter values that are decorated as "sensitive" in the API will not 4729 // be included in the string output. The member name will be present, but the 4730 // value will be replaced with "sensitive". 4731 func (s DeleteFirewallPolicyOutput) String() string { 4732 return awsutil.Prettify(s) 4733 } 4734 4735 // GoString returns the string representation. 4736 // 4737 // API parameter values that are decorated as "sensitive" in the API will not 4738 // be included in the string output. The member name will be present, but the 4739 // value will be replaced with "sensitive". 4740 func (s DeleteFirewallPolicyOutput) GoString() string { 4741 return s.String() 4742 } 4743 4744 // SetFirewallPolicyResponse sets the FirewallPolicyResponse field's value. 4745 func (s *DeleteFirewallPolicyOutput) SetFirewallPolicyResponse(v *FirewallPolicyResponse) *DeleteFirewallPolicyOutput { 4746 s.FirewallPolicyResponse = v 4747 return s 4748 } 4749 4750 type DeleteResourcePolicyInput struct { 4751 _ struct{} `type:"structure"` 4752 4753 // The Amazon Resource Name (ARN) of the rule group or firewall policy whose 4754 // resource policy you want to delete. 4755 // 4756 // ResourceArn is a required field 4757 ResourceArn *string `min:"1" type:"string" required:"true"` 4758 } 4759 4760 // String returns the string representation. 4761 // 4762 // API parameter values that are decorated as "sensitive" in the API will not 4763 // be included in the string output. The member name will be present, but the 4764 // value will be replaced with "sensitive". 4765 func (s DeleteResourcePolicyInput) String() string { 4766 return awsutil.Prettify(s) 4767 } 4768 4769 // GoString returns the string representation. 4770 // 4771 // API parameter values that are decorated as "sensitive" in the API will not 4772 // be included in the string output. The member name will be present, but the 4773 // value will be replaced with "sensitive". 4774 func (s DeleteResourcePolicyInput) GoString() string { 4775 return s.String() 4776 } 4777 4778 // Validate inspects the fields of the type to determine if they are valid. 4779 func (s *DeleteResourcePolicyInput) Validate() error { 4780 invalidParams := request.ErrInvalidParams{Context: "DeleteResourcePolicyInput"} 4781 if s.ResourceArn == nil { 4782 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 4783 } 4784 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 4785 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 4786 } 4787 4788 if invalidParams.Len() > 0 { 4789 return invalidParams 4790 } 4791 return nil 4792 } 4793 4794 // SetResourceArn sets the ResourceArn field's value. 4795 func (s *DeleteResourcePolicyInput) SetResourceArn(v string) *DeleteResourcePolicyInput { 4796 s.ResourceArn = &v 4797 return s 4798 } 4799 4800 type DeleteResourcePolicyOutput struct { 4801 _ struct{} `type:"structure"` 4802 } 4803 4804 // String returns the string representation. 4805 // 4806 // API parameter values that are decorated as "sensitive" in the API will not 4807 // be included in the string output. The member name will be present, but the 4808 // value will be replaced with "sensitive". 4809 func (s DeleteResourcePolicyOutput) String() string { 4810 return awsutil.Prettify(s) 4811 } 4812 4813 // GoString returns the string representation. 4814 // 4815 // API parameter values that are decorated as "sensitive" in the API will not 4816 // be included in the string output. The member name will be present, but the 4817 // value will be replaced with "sensitive". 4818 func (s DeleteResourcePolicyOutput) GoString() string { 4819 return s.String() 4820 } 4821 4822 type DeleteRuleGroupInput struct { 4823 _ struct{} `type:"structure"` 4824 4825 // The Amazon Resource Name (ARN) of the rule group. 4826 // 4827 // You must specify the ARN or the name, and you can specify both. 4828 RuleGroupArn *string `min:"1" type:"string"` 4829 4830 // The descriptive name of the rule group. You can't change the name of a rule 4831 // group after you create it. 4832 // 4833 // You must specify the ARN or the name, and you can specify both. 4834 RuleGroupName *string `min:"1" type:"string"` 4835 4836 // Indicates whether the rule group is stateless or stateful. If the rule group 4837 // is stateless, it contains stateless rules. If it is stateful, it contains 4838 // stateful rules. 4839 // 4840 // This setting is required for requests that do not include the RuleGroupARN. 4841 Type *string `type:"string" enum:"RuleGroupType"` 4842 } 4843 4844 // String returns the string representation. 4845 // 4846 // API parameter values that are decorated as "sensitive" in the API will not 4847 // be included in the string output. The member name will be present, but the 4848 // value will be replaced with "sensitive". 4849 func (s DeleteRuleGroupInput) String() string { 4850 return awsutil.Prettify(s) 4851 } 4852 4853 // GoString returns the string representation. 4854 // 4855 // API parameter values that are decorated as "sensitive" in the API will not 4856 // be included in the string output. The member name will be present, but the 4857 // value will be replaced with "sensitive". 4858 func (s DeleteRuleGroupInput) GoString() string { 4859 return s.String() 4860 } 4861 4862 // Validate inspects the fields of the type to determine if they are valid. 4863 func (s *DeleteRuleGroupInput) Validate() error { 4864 invalidParams := request.ErrInvalidParams{Context: "DeleteRuleGroupInput"} 4865 if s.RuleGroupArn != nil && len(*s.RuleGroupArn) < 1 { 4866 invalidParams.Add(request.NewErrParamMinLen("RuleGroupArn", 1)) 4867 } 4868 if s.RuleGroupName != nil && len(*s.RuleGroupName) < 1 { 4869 invalidParams.Add(request.NewErrParamMinLen("RuleGroupName", 1)) 4870 } 4871 4872 if invalidParams.Len() > 0 { 4873 return invalidParams 4874 } 4875 return nil 4876 } 4877 4878 // SetRuleGroupArn sets the RuleGroupArn field's value. 4879 func (s *DeleteRuleGroupInput) SetRuleGroupArn(v string) *DeleteRuleGroupInput { 4880 s.RuleGroupArn = &v 4881 return s 4882 } 4883 4884 // SetRuleGroupName sets the RuleGroupName field's value. 4885 func (s *DeleteRuleGroupInput) SetRuleGroupName(v string) *DeleteRuleGroupInput { 4886 s.RuleGroupName = &v 4887 return s 4888 } 4889 4890 // SetType sets the Type field's value. 4891 func (s *DeleteRuleGroupInput) SetType(v string) *DeleteRuleGroupInput { 4892 s.Type = &v 4893 return s 4894 } 4895 4896 type DeleteRuleGroupOutput struct { 4897 _ struct{} `type:"structure"` 4898 4899 // The high-level properties of a rule group. This, along with the RuleGroup, 4900 // define the rule group. You can retrieve all objects for a rule group by calling 4901 // DescribeRuleGroup. 4902 // 4903 // RuleGroupResponse is a required field 4904 RuleGroupResponse *RuleGroupResponse `type:"structure" required:"true"` 4905 } 4906 4907 // String returns the string representation. 4908 // 4909 // API parameter values that are decorated as "sensitive" in the API will not 4910 // be included in the string output. The member name will be present, but the 4911 // value will be replaced with "sensitive". 4912 func (s DeleteRuleGroupOutput) String() string { 4913 return awsutil.Prettify(s) 4914 } 4915 4916 // GoString returns the string representation. 4917 // 4918 // API parameter values that are decorated as "sensitive" in the API will not 4919 // be included in the string output. The member name will be present, but the 4920 // value will be replaced with "sensitive". 4921 func (s DeleteRuleGroupOutput) GoString() string { 4922 return s.String() 4923 } 4924 4925 // SetRuleGroupResponse sets the RuleGroupResponse field's value. 4926 func (s *DeleteRuleGroupOutput) SetRuleGroupResponse(v *RuleGroupResponse) *DeleteRuleGroupOutput { 4927 s.RuleGroupResponse = v 4928 return s 4929 } 4930 4931 type DescribeFirewallInput struct { 4932 _ struct{} `type:"structure"` 4933 4934 // The Amazon Resource Name (ARN) of the firewall. 4935 // 4936 // You must specify the ARN or the name, and you can specify both. 4937 FirewallArn *string `min:"1" type:"string"` 4938 4939 // The descriptive name of the firewall. You can't change the name of a firewall 4940 // after you create it. 4941 // 4942 // You must specify the ARN or the name, and you can specify both. 4943 FirewallName *string `min:"1" type:"string"` 4944 } 4945 4946 // String returns the string representation. 4947 // 4948 // API parameter values that are decorated as "sensitive" in the API will not 4949 // be included in the string output. The member name will be present, but the 4950 // value will be replaced with "sensitive". 4951 func (s DescribeFirewallInput) String() string { 4952 return awsutil.Prettify(s) 4953 } 4954 4955 // GoString returns the string representation. 4956 // 4957 // API parameter values that are decorated as "sensitive" in the API will not 4958 // be included in the string output. The member name will be present, but the 4959 // value will be replaced with "sensitive". 4960 func (s DescribeFirewallInput) GoString() string { 4961 return s.String() 4962 } 4963 4964 // Validate inspects the fields of the type to determine if they are valid. 4965 func (s *DescribeFirewallInput) Validate() error { 4966 invalidParams := request.ErrInvalidParams{Context: "DescribeFirewallInput"} 4967 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 4968 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 4969 } 4970 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 4971 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 4972 } 4973 4974 if invalidParams.Len() > 0 { 4975 return invalidParams 4976 } 4977 return nil 4978 } 4979 4980 // SetFirewallArn sets the FirewallArn field's value. 4981 func (s *DescribeFirewallInput) SetFirewallArn(v string) *DescribeFirewallInput { 4982 s.FirewallArn = &v 4983 return s 4984 } 4985 4986 // SetFirewallName sets the FirewallName field's value. 4987 func (s *DescribeFirewallInput) SetFirewallName(v string) *DescribeFirewallInput { 4988 s.FirewallName = &v 4989 return s 4990 } 4991 4992 type DescribeFirewallOutput struct { 4993 _ struct{} `type:"structure"` 4994 4995 // The configuration settings for the firewall. These settings include the firewall 4996 // policy and the subnets in your VPC to use for the firewall endpoints. 4997 Firewall *Firewall `type:"structure"` 4998 4999 // Detailed information about the current status of a Firewall. You can retrieve 5000 // this for a firewall by calling DescribeFirewall and providing the firewall 5001 // name and ARN. 5002 FirewallStatus *FirewallStatus `type:"structure"` 5003 5004 // An optional token that you can use for optimistic locking. Network Firewall 5005 // returns a token to your requests that access the firewall. The token marks 5006 // the state of the firewall resource at the time of the request. 5007 // 5008 // To make an unconditional change to the firewall, omit the token in your update 5009 // request. Without the token, Network Firewall performs your updates regardless 5010 // of whether the firewall has changed since you last retrieved it. 5011 // 5012 // To make a conditional change to the firewall, provide the token in your update 5013 // request. Network Firewall uses the token to ensure that the firewall hasn't 5014 // changed since you last retrieved it. If it has changed, the operation fails 5015 // with an InvalidTokenException. If this happens, retrieve the firewall again 5016 // to get a current copy of it with a new token. Reapply your changes as needed, 5017 // then try the operation again using the new token. 5018 UpdateToken *string `min:"1" type:"string"` 5019 } 5020 5021 // String returns the string representation. 5022 // 5023 // API parameter values that are decorated as "sensitive" in the API will not 5024 // be included in the string output. The member name will be present, but the 5025 // value will be replaced with "sensitive". 5026 func (s DescribeFirewallOutput) String() string { 5027 return awsutil.Prettify(s) 5028 } 5029 5030 // GoString returns the string representation. 5031 // 5032 // API parameter values that are decorated as "sensitive" in the API will not 5033 // be included in the string output. The member name will be present, but the 5034 // value will be replaced with "sensitive". 5035 func (s DescribeFirewallOutput) GoString() string { 5036 return s.String() 5037 } 5038 5039 // SetFirewall sets the Firewall field's value. 5040 func (s *DescribeFirewallOutput) SetFirewall(v *Firewall) *DescribeFirewallOutput { 5041 s.Firewall = v 5042 return s 5043 } 5044 5045 // SetFirewallStatus sets the FirewallStatus field's value. 5046 func (s *DescribeFirewallOutput) SetFirewallStatus(v *FirewallStatus) *DescribeFirewallOutput { 5047 s.FirewallStatus = v 5048 return s 5049 } 5050 5051 // SetUpdateToken sets the UpdateToken field's value. 5052 func (s *DescribeFirewallOutput) SetUpdateToken(v string) *DescribeFirewallOutput { 5053 s.UpdateToken = &v 5054 return s 5055 } 5056 5057 type DescribeFirewallPolicyInput struct { 5058 _ struct{} `type:"structure"` 5059 5060 // The Amazon Resource Name (ARN) of the firewall policy. 5061 // 5062 // You must specify the ARN or the name, and you can specify both. 5063 FirewallPolicyArn *string `min:"1" type:"string"` 5064 5065 // The descriptive name of the firewall policy. You can't change the name of 5066 // a firewall policy after you create it. 5067 // 5068 // You must specify the ARN or the name, and you can specify both. 5069 FirewallPolicyName *string `min:"1" type:"string"` 5070 } 5071 5072 // String returns the string representation. 5073 // 5074 // API parameter values that are decorated as "sensitive" in the API will not 5075 // be included in the string output. The member name will be present, but the 5076 // value will be replaced with "sensitive". 5077 func (s DescribeFirewallPolicyInput) String() string { 5078 return awsutil.Prettify(s) 5079 } 5080 5081 // GoString returns the string representation. 5082 // 5083 // API parameter values that are decorated as "sensitive" in the API will not 5084 // be included in the string output. The member name will be present, but the 5085 // value will be replaced with "sensitive". 5086 func (s DescribeFirewallPolicyInput) GoString() string { 5087 return s.String() 5088 } 5089 5090 // Validate inspects the fields of the type to determine if they are valid. 5091 func (s *DescribeFirewallPolicyInput) Validate() error { 5092 invalidParams := request.ErrInvalidParams{Context: "DescribeFirewallPolicyInput"} 5093 if s.FirewallPolicyArn != nil && len(*s.FirewallPolicyArn) < 1 { 5094 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyArn", 1)) 5095 } 5096 if s.FirewallPolicyName != nil && len(*s.FirewallPolicyName) < 1 { 5097 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyName", 1)) 5098 } 5099 5100 if invalidParams.Len() > 0 { 5101 return invalidParams 5102 } 5103 return nil 5104 } 5105 5106 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 5107 func (s *DescribeFirewallPolicyInput) SetFirewallPolicyArn(v string) *DescribeFirewallPolicyInput { 5108 s.FirewallPolicyArn = &v 5109 return s 5110 } 5111 5112 // SetFirewallPolicyName sets the FirewallPolicyName field's value. 5113 func (s *DescribeFirewallPolicyInput) SetFirewallPolicyName(v string) *DescribeFirewallPolicyInput { 5114 s.FirewallPolicyName = &v 5115 return s 5116 } 5117 5118 type DescribeFirewallPolicyOutput struct { 5119 _ struct{} `type:"structure"` 5120 5121 // The policy for the specified firewall policy. 5122 FirewallPolicy *FirewallPolicy `type:"structure"` 5123 5124 // The high-level properties of a firewall policy. This, along with the FirewallPolicy, 5125 // define the policy. You can retrieve all objects for a firewall policy by 5126 // calling DescribeFirewallPolicy. 5127 // 5128 // FirewallPolicyResponse is a required field 5129 FirewallPolicyResponse *FirewallPolicyResponse `type:"structure" required:"true"` 5130 5131 // A token used for optimistic locking. Network Firewall returns a token to 5132 // your requests that access the firewall policy. The token marks the state 5133 // of the policy resource at the time of the request. 5134 // 5135 // To make changes to the policy, you provide the token in your request. Network 5136 // Firewall uses the token to ensure that the policy hasn't changed since you 5137 // last retrieved it. If it has changed, the operation fails with an InvalidTokenException. 5138 // If this happens, retrieve the firewall policy again to get a current copy 5139 // of it with current token. Reapply your changes as needed, then try the operation 5140 // again using the new token. 5141 // 5142 // UpdateToken is a required field 5143 UpdateToken *string `min:"1" type:"string" required:"true"` 5144 } 5145 5146 // String returns the string representation. 5147 // 5148 // API parameter values that are decorated as "sensitive" in the API will not 5149 // be included in the string output. The member name will be present, but the 5150 // value will be replaced with "sensitive". 5151 func (s DescribeFirewallPolicyOutput) String() string { 5152 return awsutil.Prettify(s) 5153 } 5154 5155 // GoString returns the string representation. 5156 // 5157 // API parameter values that are decorated as "sensitive" in the API will not 5158 // be included in the string output. The member name will be present, but the 5159 // value will be replaced with "sensitive". 5160 func (s DescribeFirewallPolicyOutput) GoString() string { 5161 return s.String() 5162 } 5163 5164 // SetFirewallPolicy sets the FirewallPolicy field's value. 5165 func (s *DescribeFirewallPolicyOutput) SetFirewallPolicy(v *FirewallPolicy) *DescribeFirewallPolicyOutput { 5166 s.FirewallPolicy = v 5167 return s 5168 } 5169 5170 // SetFirewallPolicyResponse sets the FirewallPolicyResponse field's value. 5171 func (s *DescribeFirewallPolicyOutput) SetFirewallPolicyResponse(v *FirewallPolicyResponse) *DescribeFirewallPolicyOutput { 5172 s.FirewallPolicyResponse = v 5173 return s 5174 } 5175 5176 // SetUpdateToken sets the UpdateToken field's value. 5177 func (s *DescribeFirewallPolicyOutput) SetUpdateToken(v string) *DescribeFirewallPolicyOutput { 5178 s.UpdateToken = &v 5179 return s 5180 } 5181 5182 type DescribeLoggingConfigurationInput struct { 5183 _ struct{} `type:"structure"` 5184 5185 // The Amazon Resource Name (ARN) of the firewall. 5186 // 5187 // You must specify the ARN or the name, and you can specify both. 5188 FirewallArn *string `min:"1" type:"string"` 5189 5190 // The descriptive name of the firewall. You can't change the name of a firewall 5191 // after you create it. 5192 // 5193 // You must specify the ARN or the name, and you can specify both. 5194 FirewallName *string `min:"1" type:"string"` 5195 } 5196 5197 // String returns the string representation. 5198 // 5199 // API parameter values that are decorated as "sensitive" in the API will not 5200 // be included in the string output. The member name will be present, but the 5201 // value will be replaced with "sensitive". 5202 func (s DescribeLoggingConfigurationInput) String() string { 5203 return awsutil.Prettify(s) 5204 } 5205 5206 // GoString returns the string representation. 5207 // 5208 // API parameter values that are decorated as "sensitive" in the API will not 5209 // be included in the string output. The member name will be present, but the 5210 // value will be replaced with "sensitive". 5211 func (s DescribeLoggingConfigurationInput) GoString() string { 5212 return s.String() 5213 } 5214 5215 // Validate inspects the fields of the type to determine if they are valid. 5216 func (s *DescribeLoggingConfigurationInput) Validate() error { 5217 invalidParams := request.ErrInvalidParams{Context: "DescribeLoggingConfigurationInput"} 5218 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 5219 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 5220 } 5221 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 5222 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 5223 } 5224 5225 if invalidParams.Len() > 0 { 5226 return invalidParams 5227 } 5228 return nil 5229 } 5230 5231 // SetFirewallArn sets the FirewallArn field's value. 5232 func (s *DescribeLoggingConfigurationInput) SetFirewallArn(v string) *DescribeLoggingConfigurationInput { 5233 s.FirewallArn = &v 5234 return s 5235 } 5236 5237 // SetFirewallName sets the FirewallName field's value. 5238 func (s *DescribeLoggingConfigurationInput) SetFirewallName(v string) *DescribeLoggingConfigurationInput { 5239 s.FirewallName = &v 5240 return s 5241 } 5242 5243 type DescribeLoggingConfigurationOutput struct { 5244 _ struct{} `type:"structure"` 5245 5246 // The Amazon Resource Name (ARN) of the firewall. 5247 FirewallArn *string `min:"1" type:"string"` 5248 5249 // Defines how AWS Network Firewall performs logging for a Firewall. 5250 LoggingConfiguration *LoggingConfiguration `type:"structure"` 5251 } 5252 5253 // String returns the string representation. 5254 // 5255 // API parameter values that are decorated as "sensitive" in the API will not 5256 // be included in the string output. The member name will be present, but the 5257 // value will be replaced with "sensitive". 5258 func (s DescribeLoggingConfigurationOutput) String() string { 5259 return awsutil.Prettify(s) 5260 } 5261 5262 // GoString returns the string representation. 5263 // 5264 // API parameter values that are decorated as "sensitive" in the API will not 5265 // be included in the string output. The member name will be present, but the 5266 // value will be replaced with "sensitive". 5267 func (s DescribeLoggingConfigurationOutput) GoString() string { 5268 return s.String() 5269 } 5270 5271 // SetFirewallArn sets the FirewallArn field's value. 5272 func (s *DescribeLoggingConfigurationOutput) SetFirewallArn(v string) *DescribeLoggingConfigurationOutput { 5273 s.FirewallArn = &v 5274 return s 5275 } 5276 5277 // SetLoggingConfiguration sets the LoggingConfiguration field's value. 5278 func (s *DescribeLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *DescribeLoggingConfigurationOutput { 5279 s.LoggingConfiguration = v 5280 return s 5281 } 5282 5283 type DescribeResourcePolicyInput struct { 5284 _ struct{} `type:"structure"` 5285 5286 // The Amazon Resource Name (ARN) of the rule group or firewall policy whose 5287 // resource policy you want to retrieve. 5288 // 5289 // ResourceArn is a required field 5290 ResourceArn *string `min:"1" type:"string" required:"true"` 5291 } 5292 5293 // String returns the string representation. 5294 // 5295 // API parameter values that are decorated as "sensitive" in the API will not 5296 // be included in the string output. The member name will be present, but the 5297 // value will be replaced with "sensitive". 5298 func (s DescribeResourcePolicyInput) String() string { 5299 return awsutil.Prettify(s) 5300 } 5301 5302 // GoString returns the string representation. 5303 // 5304 // API parameter values that are decorated as "sensitive" in the API will not 5305 // be included in the string output. The member name will be present, but the 5306 // value will be replaced with "sensitive". 5307 func (s DescribeResourcePolicyInput) GoString() string { 5308 return s.String() 5309 } 5310 5311 // Validate inspects the fields of the type to determine if they are valid. 5312 func (s *DescribeResourcePolicyInput) Validate() error { 5313 invalidParams := request.ErrInvalidParams{Context: "DescribeResourcePolicyInput"} 5314 if s.ResourceArn == nil { 5315 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 5316 } 5317 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 5318 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 5319 } 5320 5321 if invalidParams.Len() > 0 { 5322 return invalidParams 5323 } 5324 return nil 5325 } 5326 5327 // SetResourceArn sets the ResourceArn field's value. 5328 func (s *DescribeResourcePolicyInput) SetResourceArn(v string) *DescribeResourcePolicyInput { 5329 s.ResourceArn = &v 5330 return s 5331 } 5332 5333 type DescribeResourcePolicyOutput struct { 5334 _ struct{} `type:"structure"` 5335 5336 // The AWS Identity and Access Management policy for the resource. 5337 Policy *string `min:"1" type:"string"` 5338 } 5339 5340 // String returns the string representation. 5341 // 5342 // API parameter values that are decorated as "sensitive" in the API will not 5343 // be included in the string output. The member name will be present, but the 5344 // value will be replaced with "sensitive". 5345 func (s DescribeResourcePolicyOutput) String() string { 5346 return awsutil.Prettify(s) 5347 } 5348 5349 // GoString returns the string representation. 5350 // 5351 // API parameter values that are decorated as "sensitive" in the API will not 5352 // be included in the string output. The member name will be present, but the 5353 // value will be replaced with "sensitive". 5354 func (s DescribeResourcePolicyOutput) GoString() string { 5355 return s.String() 5356 } 5357 5358 // SetPolicy sets the Policy field's value. 5359 func (s *DescribeResourcePolicyOutput) SetPolicy(v string) *DescribeResourcePolicyOutput { 5360 s.Policy = &v 5361 return s 5362 } 5363 5364 type DescribeRuleGroupInput struct { 5365 _ struct{} `type:"structure"` 5366 5367 // The Amazon Resource Name (ARN) of the rule group. 5368 // 5369 // You must specify the ARN or the name, and you can specify both. 5370 RuleGroupArn *string `min:"1" type:"string"` 5371 5372 // The descriptive name of the rule group. You can't change the name of a rule 5373 // group after you create it. 5374 // 5375 // You must specify the ARN or the name, and you can specify both. 5376 RuleGroupName *string `min:"1" type:"string"` 5377 5378 // Indicates whether the rule group is stateless or stateful. If the rule group 5379 // is stateless, it contains stateless rules. If it is stateful, it contains 5380 // stateful rules. 5381 // 5382 // This setting is required for requests that do not include the RuleGroupARN. 5383 Type *string `type:"string" enum:"RuleGroupType"` 5384 } 5385 5386 // String returns the string representation. 5387 // 5388 // API parameter values that are decorated as "sensitive" in the API will not 5389 // be included in the string output. The member name will be present, but the 5390 // value will be replaced with "sensitive". 5391 func (s DescribeRuleGroupInput) String() string { 5392 return awsutil.Prettify(s) 5393 } 5394 5395 // GoString returns the string representation. 5396 // 5397 // API parameter values that are decorated as "sensitive" in the API will not 5398 // be included in the string output. The member name will be present, but the 5399 // value will be replaced with "sensitive". 5400 func (s DescribeRuleGroupInput) GoString() string { 5401 return s.String() 5402 } 5403 5404 // Validate inspects the fields of the type to determine if they are valid. 5405 func (s *DescribeRuleGroupInput) Validate() error { 5406 invalidParams := request.ErrInvalidParams{Context: "DescribeRuleGroupInput"} 5407 if s.RuleGroupArn != nil && len(*s.RuleGroupArn) < 1 { 5408 invalidParams.Add(request.NewErrParamMinLen("RuleGroupArn", 1)) 5409 } 5410 if s.RuleGroupName != nil && len(*s.RuleGroupName) < 1 { 5411 invalidParams.Add(request.NewErrParamMinLen("RuleGroupName", 1)) 5412 } 5413 5414 if invalidParams.Len() > 0 { 5415 return invalidParams 5416 } 5417 return nil 5418 } 5419 5420 // SetRuleGroupArn sets the RuleGroupArn field's value. 5421 func (s *DescribeRuleGroupInput) SetRuleGroupArn(v string) *DescribeRuleGroupInput { 5422 s.RuleGroupArn = &v 5423 return s 5424 } 5425 5426 // SetRuleGroupName sets the RuleGroupName field's value. 5427 func (s *DescribeRuleGroupInput) SetRuleGroupName(v string) *DescribeRuleGroupInput { 5428 s.RuleGroupName = &v 5429 return s 5430 } 5431 5432 // SetType sets the Type field's value. 5433 func (s *DescribeRuleGroupInput) SetType(v string) *DescribeRuleGroupInput { 5434 s.Type = &v 5435 return s 5436 } 5437 5438 type DescribeRuleGroupOutput struct { 5439 _ struct{} `type:"structure"` 5440 5441 // The object that defines the rules in a rule group. This, along with RuleGroupResponse, 5442 // define the rule group. You can retrieve all objects for a rule group by calling 5443 // DescribeRuleGroup. 5444 // 5445 // AWS Network Firewall uses a rule group to inspect and control network traffic. 5446 // You define stateless rule groups to inspect individual packets and you define 5447 // stateful rule groups to inspect packets in the context of their traffic flow. 5448 // 5449 // To use a rule group, you include it by reference in an Network Firewall firewall 5450 // policy, then you use the policy in a firewall. You can reference a rule group 5451 // from more than one firewall policy, and you can use a firewall policy in 5452 // more than one firewall. 5453 RuleGroup *RuleGroup `type:"structure"` 5454 5455 // The high-level properties of a rule group. This, along with the RuleGroup, 5456 // define the rule group. You can retrieve all objects for a rule group by calling 5457 // DescribeRuleGroup. 5458 // 5459 // RuleGroupResponse is a required field 5460 RuleGroupResponse *RuleGroupResponse `type:"structure" required:"true"` 5461 5462 // A token used for optimistic locking. Network Firewall returns a token to 5463 // your requests that access the rule group. The token marks the state of the 5464 // rule group resource at the time of the request. 5465 // 5466 // To make changes to the rule group, you provide the token in your request. 5467 // Network Firewall uses the token to ensure that the rule group hasn't changed 5468 // since you last retrieved it. If it has changed, the operation fails with 5469 // an InvalidTokenException. If this happens, retrieve the rule group again 5470 // to get a current copy of it with a current token. Reapply your changes as 5471 // needed, then try the operation again using the new token. 5472 // 5473 // UpdateToken is a required field 5474 UpdateToken *string `min:"1" type:"string" required:"true"` 5475 } 5476 5477 // String returns the string representation. 5478 // 5479 // API parameter values that are decorated as "sensitive" in the API will not 5480 // be included in the string output. The member name will be present, but the 5481 // value will be replaced with "sensitive". 5482 func (s DescribeRuleGroupOutput) String() string { 5483 return awsutil.Prettify(s) 5484 } 5485 5486 // GoString returns the string representation. 5487 // 5488 // API parameter values that are decorated as "sensitive" in the API will not 5489 // be included in the string output. The member name will be present, but the 5490 // value will be replaced with "sensitive". 5491 func (s DescribeRuleGroupOutput) GoString() string { 5492 return s.String() 5493 } 5494 5495 // SetRuleGroup sets the RuleGroup field's value. 5496 func (s *DescribeRuleGroupOutput) SetRuleGroup(v *RuleGroup) *DescribeRuleGroupOutput { 5497 s.RuleGroup = v 5498 return s 5499 } 5500 5501 // SetRuleGroupResponse sets the RuleGroupResponse field's value. 5502 func (s *DescribeRuleGroupOutput) SetRuleGroupResponse(v *RuleGroupResponse) *DescribeRuleGroupOutput { 5503 s.RuleGroupResponse = v 5504 return s 5505 } 5506 5507 // SetUpdateToken sets the UpdateToken field's value. 5508 func (s *DescribeRuleGroupOutput) SetUpdateToken(v string) *DescribeRuleGroupOutput { 5509 s.UpdateToken = &v 5510 return s 5511 } 5512 5513 // The value to use in an Amazon CloudWatch custom metric dimension. This is 5514 // used in the PublishMetrics CustomAction. A CloudWatch custom metric dimension 5515 // is a name/value pair that's part of the identity of a metric. 5516 // 5517 // AWS Network Firewall sets the dimension name to CustomAction and you provide 5518 // the dimension value. 5519 // 5520 // For more information about CloudWatch custom metric dimensions, see Publishing 5521 // Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#usingDimensions) 5522 // in the Amazon CloudWatch User Guide (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html). 5523 type Dimension struct { 5524 _ struct{} `type:"structure"` 5525 5526 // The value to use in the custom metric dimension. 5527 // 5528 // Value is a required field 5529 Value *string `min:"1" type:"string" required:"true"` 5530 } 5531 5532 // String returns the string representation. 5533 // 5534 // API parameter values that are decorated as "sensitive" in the API will not 5535 // be included in the string output. The member name will be present, but the 5536 // value will be replaced with "sensitive". 5537 func (s Dimension) String() string { 5538 return awsutil.Prettify(s) 5539 } 5540 5541 // GoString returns the string representation. 5542 // 5543 // API parameter values that are decorated as "sensitive" in the API will not 5544 // be included in the string output. The member name will be present, but the 5545 // value will be replaced with "sensitive". 5546 func (s Dimension) GoString() string { 5547 return s.String() 5548 } 5549 5550 // Validate inspects the fields of the type to determine if they are valid. 5551 func (s *Dimension) Validate() error { 5552 invalidParams := request.ErrInvalidParams{Context: "Dimension"} 5553 if s.Value == nil { 5554 invalidParams.Add(request.NewErrParamRequired("Value")) 5555 } 5556 if s.Value != nil && len(*s.Value) < 1 { 5557 invalidParams.Add(request.NewErrParamMinLen("Value", 1)) 5558 } 5559 5560 if invalidParams.Len() > 0 { 5561 return invalidParams 5562 } 5563 return nil 5564 } 5565 5566 // SetValue sets the Value field's value. 5567 func (s *Dimension) SetValue(v string) *Dimension { 5568 s.Value = &v 5569 return s 5570 } 5571 5572 type DisassociateSubnetsInput struct { 5573 _ struct{} `type:"structure"` 5574 5575 // The Amazon Resource Name (ARN) of the firewall. 5576 // 5577 // You must specify the ARN or the name, and you can specify both. 5578 FirewallArn *string `min:"1" type:"string"` 5579 5580 // The descriptive name of the firewall. You can't change the name of a firewall 5581 // after you create it. 5582 // 5583 // You must specify the ARN or the name, and you can specify both. 5584 FirewallName *string `min:"1" type:"string"` 5585 5586 // The unique identifiers for the subnets that you want to disassociate. 5587 // 5588 // SubnetIds is a required field 5589 SubnetIds []*string `type:"list" required:"true"` 5590 5591 // An optional token that you can use for optimistic locking. Network Firewall 5592 // returns a token to your requests that access the firewall. The token marks 5593 // the state of the firewall resource at the time of the request. 5594 // 5595 // To make an unconditional change to the firewall, omit the token in your update 5596 // request. Without the token, Network Firewall performs your updates regardless 5597 // of whether the firewall has changed since you last retrieved it. 5598 // 5599 // To make a conditional change to the firewall, provide the token in your update 5600 // request. Network Firewall uses the token to ensure that the firewall hasn't 5601 // changed since you last retrieved it. If it has changed, the operation fails 5602 // with an InvalidTokenException. If this happens, retrieve the firewall again 5603 // to get a current copy of it with a new token. Reapply your changes as needed, 5604 // then try the operation again using the new token. 5605 UpdateToken *string `min:"1" type:"string"` 5606 } 5607 5608 // String returns the string representation. 5609 // 5610 // API parameter values that are decorated as "sensitive" in the API will not 5611 // be included in the string output. The member name will be present, but the 5612 // value will be replaced with "sensitive". 5613 func (s DisassociateSubnetsInput) String() string { 5614 return awsutil.Prettify(s) 5615 } 5616 5617 // GoString returns the string representation. 5618 // 5619 // API parameter values that are decorated as "sensitive" in the API will not 5620 // be included in the string output. The member name will be present, but the 5621 // value will be replaced with "sensitive". 5622 func (s DisassociateSubnetsInput) GoString() string { 5623 return s.String() 5624 } 5625 5626 // Validate inspects the fields of the type to determine if they are valid. 5627 func (s *DisassociateSubnetsInput) Validate() error { 5628 invalidParams := request.ErrInvalidParams{Context: "DisassociateSubnetsInput"} 5629 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 5630 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 5631 } 5632 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 5633 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 5634 } 5635 if s.SubnetIds == nil { 5636 invalidParams.Add(request.NewErrParamRequired("SubnetIds")) 5637 } 5638 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 5639 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 5640 } 5641 5642 if invalidParams.Len() > 0 { 5643 return invalidParams 5644 } 5645 return nil 5646 } 5647 5648 // SetFirewallArn sets the FirewallArn field's value. 5649 func (s *DisassociateSubnetsInput) SetFirewallArn(v string) *DisassociateSubnetsInput { 5650 s.FirewallArn = &v 5651 return s 5652 } 5653 5654 // SetFirewallName sets the FirewallName field's value. 5655 func (s *DisassociateSubnetsInput) SetFirewallName(v string) *DisassociateSubnetsInput { 5656 s.FirewallName = &v 5657 return s 5658 } 5659 5660 // SetSubnetIds sets the SubnetIds field's value. 5661 func (s *DisassociateSubnetsInput) SetSubnetIds(v []*string) *DisassociateSubnetsInput { 5662 s.SubnetIds = v 5663 return s 5664 } 5665 5666 // SetUpdateToken sets the UpdateToken field's value. 5667 func (s *DisassociateSubnetsInput) SetUpdateToken(v string) *DisassociateSubnetsInput { 5668 s.UpdateToken = &v 5669 return s 5670 } 5671 5672 type DisassociateSubnetsOutput struct { 5673 _ struct{} `type:"structure"` 5674 5675 // The Amazon Resource Name (ARN) of the firewall. 5676 FirewallArn *string `min:"1" type:"string"` 5677 5678 // The descriptive name of the firewall. You can't change the name of a firewall 5679 // after you create it. 5680 FirewallName *string `min:"1" type:"string"` 5681 5682 // The IDs of the subnets that are associated with the firewall. 5683 SubnetMappings []*SubnetMapping `type:"list"` 5684 5685 // An optional token that you can use for optimistic locking. Network Firewall 5686 // returns a token to your requests that access the firewall. The token marks 5687 // the state of the firewall resource at the time of the request. 5688 // 5689 // To make an unconditional change to the firewall, omit the token in your update 5690 // request. Without the token, Network Firewall performs your updates regardless 5691 // of whether the firewall has changed since you last retrieved it. 5692 // 5693 // To make a conditional change to the firewall, provide the token in your update 5694 // request. Network Firewall uses the token to ensure that the firewall hasn't 5695 // changed since you last retrieved it. If it has changed, the operation fails 5696 // with an InvalidTokenException. If this happens, retrieve the firewall again 5697 // to get a current copy of it with a new token. Reapply your changes as needed, 5698 // then try the operation again using the new token. 5699 UpdateToken *string `min:"1" type:"string"` 5700 } 5701 5702 // String returns the string representation. 5703 // 5704 // API parameter values that are decorated as "sensitive" in the API will not 5705 // be included in the string output. The member name will be present, but the 5706 // value will be replaced with "sensitive". 5707 func (s DisassociateSubnetsOutput) String() string { 5708 return awsutil.Prettify(s) 5709 } 5710 5711 // GoString returns the string representation. 5712 // 5713 // API parameter values that are decorated as "sensitive" in the API will not 5714 // be included in the string output. The member name will be present, but the 5715 // value will be replaced with "sensitive". 5716 func (s DisassociateSubnetsOutput) GoString() string { 5717 return s.String() 5718 } 5719 5720 // SetFirewallArn sets the FirewallArn field's value. 5721 func (s *DisassociateSubnetsOutput) SetFirewallArn(v string) *DisassociateSubnetsOutput { 5722 s.FirewallArn = &v 5723 return s 5724 } 5725 5726 // SetFirewallName sets the FirewallName field's value. 5727 func (s *DisassociateSubnetsOutput) SetFirewallName(v string) *DisassociateSubnetsOutput { 5728 s.FirewallName = &v 5729 return s 5730 } 5731 5732 // SetSubnetMappings sets the SubnetMappings field's value. 5733 func (s *DisassociateSubnetsOutput) SetSubnetMappings(v []*SubnetMapping) *DisassociateSubnetsOutput { 5734 s.SubnetMappings = v 5735 return s 5736 } 5737 5738 // SetUpdateToken sets the UpdateToken field's value. 5739 func (s *DisassociateSubnetsOutput) SetUpdateToken(v string) *DisassociateSubnetsOutput { 5740 s.UpdateToken = &v 5741 return s 5742 } 5743 5744 // The firewall defines the configuration settings for an AWS Network Firewall 5745 // firewall. These settings include the firewall policy, the subnets in your 5746 // VPC to use for the firewall endpoints, and any tags that are attached to 5747 // the firewall AWS resource. 5748 // 5749 // The status of the firewall, for example whether it's ready to filter network 5750 // traffic, is provided in the corresponding FirewallStatus. You can retrieve 5751 // both objects by calling DescribeFirewall. 5752 type Firewall struct { 5753 _ struct{} `type:"structure"` 5754 5755 // A flag indicating whether it is possible to delete the firewall. A setting 5756 // of TRUE indicates that the firewall is protected against deletion. Use this 5757 // setting to protect against accidentally deleting a firewall that is in use. 5758 // When you create a firewall, the operation initializes this flag to TRUE. 5759 DeleteProtection *bool `type:"boolean"` 5760 5761 // A description of the firewall. 5762 Description *string `type:"string"` 5763 5764 // The Amazon Resource Name (ARN) of the firewall. 5765 FirewallArn *string `min:"1" type:"string"` 5766 5767 // The unique identifier for the firewall. 5768 // 5769 // FirewallId is a required field 5770 FirewallId *string `min:"36" type:"string" required:"true"` 5771 5772 // The descriptive name of the firewall. You can't change the name of a firewall 5773 // after you create it. 5774 FirewallName *string `min:"1" type:"string"` 5775 5776 // The Amazon Resource Name (ARN) of the firewall policy. 5777 // 5778 // The relationship of firewall to firewall policy is many to one. Each firewall 5779 // requires one firewall policy association, and you can use the same firewall 5780 // policy for multiple firewalls. 5781 // 5782 // FirewallPolicyArn is a required field 5783 FirewallPolicyArn *string `min:"1" type:"string" required:"true"` 5784 5785 // A setting indicating whether the firewall is protected against a change to 5786 // the firewall policy association. Use this setting to protect against accidentally 5787 // modifying the firewall policy for a firewall that is in use. When you create 5788 // a firewall, the operation initializes this setting to TRUE. 5789 FirewallPolicyChangeProtection *bool `type:"boolean"` 5790 5791 // A setting indicating whether the firewall is protected against changes to 5792 // the subnet associations. Use this setting to protect against accidentally 5793 // modifying the subnet associations for a firewall that is in use. When you 5794 // create a firewall, the operation initializes this setting to TRUE. 5795 SubnetChangeProtection *bool `type:"boolean"` 5796 5797 // The public subnets that Network Firewall is using for the firewall. Each 5798 // subnet must belong to a different Availability Zone. 5799 // 5800 // SubnetMappings is a required field 5801 SubnetMappings []*SubnetMapping `type:"list" required:"true"` 5802 5803 Tags []*Tag `min:"1" type:"list"` 5804 5805 // The unique identifier of the VPC where the firewall is in use. 5806 // 5807 // VpcId is a required field 5808 VpcId *string `min:"1" type:"string" required:"true"` 5809 } 5810 5811 // String returns the string representation. 5812 // 5813 // API parameter values that are decorated as "sensitive" in the API will not 5814 // be included in the string output. The member name will be present, but the 5815 // value will be replaced with "sensitive". 5816 func (s Firewall) String() string { 5817 return awsutil.Prettify(s) 5818 } 5819 5820 // GoString returns the string representation. 5821 // 5822 // API parameter values that are decorated as "sensitive" in the API will not 5823 // be included in the string output. The member name will be present, but the 5824 // value will be replaced with "sensitive". 5825 func (s Firewall) GoString() string { 5826 return s.String() 5827 } 5828 5829 // SetDeleteProtection sets the DeleteProtection field's value. 5830 func (s *Firewall) SetDeleteProtection(v bool) *Firewall { 5831 s.DeleteProtection = &v 5832 return s 5833 } 5834 5835 // SetDescription sets the Description field's value. 5836 func (s *Firewall) SetDescription(v string) *Firewall { 5837 s.Description = &v 5838 return s 5839 } 5840 5841 // SetFirewallArn sets the FirewallArn field's value. 5842 func (s *Firewall) SetFirewallArn(v string) *Firewall { 5843 s.FirewallArn = &v 5844 return s 5845 } 5846 5847 // SetFirewallId sets the FirewallId field's value. 5848 func (s *Firewall) SetFirewallId(v string) *Firewall { 5849 s.FirewallId = &v 5850 return s 5851 } 5852 5853 // SetFirewallName sets the FirewallName field's value. 5854 func (s *Firewall) SetFirewallName(v string) *Firewall { 5855 s.FirewallName = &v 5856 return s 5857 } 5858 5859 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 5860 func (s *Firewall) SetFirewallPolicyArn(v string) *Firewall { 5861 s.FirewallPolicyArn = &v 5862 return s 5863 } 5864 5865 // SetFirewallPolicyChangeProtection sets the FirewallPolicyChangeProtection field's value. 5866 func (s *Firewall) SetFirewallPolicyChangeProtection(v bool) *Firewall { 5867 s.FirewallPolicyChangeProtection = &v 5868 return s 5869 } 5870 5871 // SetSubnetChangeProtection sets the SubnetChangeProtection field's value. 5872 func (s *Firewall) SetSubnetChangeProtection(v bool) *Firewall { 5873 s.SubnetChangeProtection = &v 5874 return s 5875 } 5876 5877 // SetSubnetMappings sets the SubnetMappings field's value. 5878 func (s *Firewall) SetSubnetMappings(v []*SubnetMapping) *Firewall { 5879 s.SubnetMappings = v 5880 return s 5881 } 5882 5883 // SetTags sets the Tags field's value. 5884 func (s *Firewall) SetTags(v []*Tag) *Firewall { 5885 s.Tags = v 5886 return s 5887 } 5888 5889 // SetVpcId sets the VpcId field's value. 5890 func (s *Firewall) SetVpcId(v string) *Firewall { 5891 s.VpcId = &v 5892 return s 5893 } 5894 5895 // High-level information about a firewall, returned by operations like create 5896 // and describe. You can use the information provided in the metadata to retrieve 5897 // and manage a firewall. 5898 type FirewallMetadata struct { 5899 _ struct{} `type:"structure"` 5900 5901 // The Amazon Resource Name (ARN) of the firewall. 5902 FirewallArn *string `min:"1" type:"string"` 5903 5904 // The descriptive name of the firewall. You can't change the name of a firewall 5905 // after you create it. 5906 FirewallName *string `min:"1" type:"string"` 5907 } 5908 5909 // String returns the string representation. 5910 // 5911 // API parameter values that are decorated as "sensitive" in the API will not 5912 // be included in the string output. The member name will be present, but the 5913 // value will be replaced with "sensitive". 5914 func (s FirewallMetadata) String() string { 5915 return awsutil.Prettify(s) 5916 } 5917 5918 // GoString returns the string representation. 5919 // 5920 // API parameter values that are decorated as "sensitive" in the API will not 5921 // be included in the string output. The member name will be present, but the 5922 // value will be replaced with "sensitive". 5923 func (s FirewallMetadata) GoString() string { 5924 return s.String() 5925 } 5926 5927 // SetFirewallArn sets the FirewallArn field's value. 5928 func (s *FirewallMetadata) SetFirewallArn(v string) *FirewallMetadata { 5929 s.FirewallArn = &v 5930 return s 5931 } 5932 5933 // SetFirewallName sets the FirewallName field's value. 5934 func (s *FirewallMetadata) SetFirewallName(v string) *FirewallMetadata { 5935 s.FirewallName = &v 5936 return s 5937 } 5938 5939 // The firewall policy defines the behavior of a firewall using a collection 5940 // of stateless and stateful rule groups and other settings. You can use one 5941 // firewall policy for multiple firewalls. 5942 // 5943 // This, along with FirewallPolicyResponse, define the policy. You can retrieve 5944 // all objects for a firewall policy by calling DescribeFirewallPolicy. 5945 type FirewallPolicy struct { 5946 _ struct{} `type:"structure"` 5947 5948 // The default actions to take on a packet that doesn't match any stateful rules. 5949 StatefulDefaultActions []*string `type:"list"` 5950 5951 // Additional options governing how Network Firewall handles stateful rules. 5952 // The stateful rule groups that you use in your policy must have stateful rule 5953 // options settings that are compatible with these settings. 5954 StatefulEngineOptions *StatefulEngineOptions `type:"structure"` 5955 5956 // References to the stateful rule groups that are used in the policy. These 5957 // define the inspection criteria in stateful rules. 5958 StatefulRuleGroupReferences []*StatefulRuleGroupReference `type:"list"` 5959 5960 // The custom action definitions that are available for use in the firewall 5961 // policy's StatelessDefaultActions setting. You name each custom action that 5962 // you define, and then you can use it by name in your default actions specifications. 5963 StatelessCustomActions []*CustomAction `type:"list"` 5964 5965 // The actions to take on a packet if it doesn't match any of the stateless 5966 // rules in the policy. If you want non-matching packets to be forwarded for 5967 // stateful inspection, specify aws:forward_to_sfe. 5968 // 5969 // You must specify one of the standard actions: aws:pass, aws:drop, or aws:forward_to_sfe. 5970 // In addition, you can specify custom actions that are compatible with your 5971 // standard section choice. 5972 // 5973 // For example, you could specify ["aws:pass"] or you could specify ["aws:pass", 5974 // “customActionName”]. For information about compatibility, see the custom 5975 // action descriptions under CustomAction. 5976 // 5977 // StatelessDefaultActions is a required field 5978 StatelessDefaultActions []*string `type:"list" required:"true"` 5979 5980 // The actions to take on a fragmented UDP packet if it doesn't match any of 5981 // the stateless rules in the policy. Network Firewall only manages UDP packet 5982 // fragments and silently drops packet fragments for other protocols. If you 5983 // want non-matching fragmented UDP packets to be forwarded for stateful inspection, 5984 // specify aws:forward_to_sfe. 5985 // 5986 // You must specify one of the standard actions: aws:pass, aws:drop, or aws:forward_to_sfe. 5987 // In addition, you can specify custom actions that are compatible with your 5988 // standard section choice. 5989 // 5990 // For example, you could specify ["aws:pass"] or you could specify ["aws:pass", 5991 // “customActionName”]. For information about compatibility, see the custom 5992 // action descriptions under CustomAction. 5993 // 5994 // StatelessFragmentDefaultActions is a required field 5995 StatelessFragmentDefaultActions []*string `type:"list" required:"true"` 5996 5997 // References to the stateless rule groups that are used in the policy. These 5998 // define the matching criteria in stateless rules. 5999 StatelessRuleGroupReferences []*StatelessRuleGroupReference `type:"list"` 6000 } 6001 6002 // String returns the string representation. 6003 // 6004 // API parameter values that are decorated as "sensitive" in the API will not 6005 // be included in the string output. The member name will be present, but the 6006 // value will be replaced with "sensitive". 6007 func (s FirewallPolicy) String() string { 6008 return awsutil.Prettify(s) 6009 } 6010 6011 // GoString returns the string representation. 6012 // 6013 // API parameter values that are decorated as "sensitive" in the API will not 6014 // be included in the string output. The member name will be present, but the 6015 // value will be replaced with "sensitive". 6016 func (s FirewallPolicy) GoString() string { 6017 return s.String() 6018 } 6019 6020 // Validate inspects the fields of the type to determine if they are valid. 6021 func (s *FirewallPolicy) Validate() error { 6022 invalidParams := request.ErrInvalidParams{Context: "FirewallPolicy"} 6023 if s.StatelessDefaultActions == nil { 6024 invalidParams.Add(request.NewErrParamRequired("StatelessDefaultActions")) 6025 } 6026 if s.StatelessFragmentDefaultActions == nil { 6027 invalidParams.Add(request.NewErrParamRequired("StatelessFragmentDefaultActions")) 6028 } 6029 if s.StatefulRuleGroupReferences != nil { 6030 for i, v := range s.StatefulRuleGroupReferences { 6031 if v == nil { 6032 continue 6033 } 6034 if err := v.Validate(); err != nil { 6035 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StatefulRuleGroupReferences", i), err.(request.ErrInvalidParams)) 6036 } 6037 } 6038 } 6039 if s.StatelessCustomActions != nil { 6040 for i, v := range s.StatelessCustomActions { 6041 if v == nil { 6042 continue 6043 } 6044 if err := v.Validate(); err != nil { 6045 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StatelessCustomActions", i), err.(request.ErrInvalidParams)) 6046 } 6047 } 6048 } 6049 if s.StatelessRuleGroupReferences != nil { 6050 for i, v := range s.StatelessRuleGroupReferences { 6051 if v == nil { 6052 continue 6053 } 6054 if err := v.Validate(); err != nil { 6055 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StatelessRuleGroupReferences", i), err.(request.ErrInvalidParams)) 6056 } 6057 } 6058 } 6059 6060 if invalidParams.Len() > 0 { 6061 return invalidParams 6062 } 6063 return nil 6064 } 6065 6066 // SetStatefulDefaultActions sets the StatefulDefaultActions field's value. 6067 func (s *FirewallPolicy) SetStatefulDefaultActions(v []*string) *FirewallPolicy { 6068 s.StatefulDefaultActions = v 6069 return s 6070 } 6071 6072 // SetStatefulEngineOptions sets the StatefulEngineOptions field's value. 6073 func (s *FirewallPolicy) SetStatefulEngineOptions(v *StatefulEngineOptions) *FirewallPolicy { 6074 s.StatefulEngineOptions = v 6075 return s 6076 } 6077 6078 // SetStatefulRuleGroupReferences sets the StatefulRuleGroupReferences field's value. 6079 func (s *FirewallPolicy) SetStatefulRuleGroupReferences(v []*StatefulRuleGroupReference) *FirewallPolicy { 6080 s.StatefulRuleGroupReferences = v 6081 return s 6082 } 6083 6084 // SetStatelessCustomActions sets the StatelessCustomActions field's value. 6085 func (s *FirewallPolicy) SetStatelessCustomActions(v []*CustomAction) *FirewallPolicy { 6086 s.StatelessCustomActions = v 6087 return s 6088 } 6089 6090 // SetStatelessDefaultActions sets the StatelessDefaultActions field's value. 6091 func (s *FirewallPolicy) SetStatelessDefaultActions(v []*string) *FirewallPolicy { 6092 s.StatelessDefaultActions = v 6093 return s 6094 } 6095 6096 // SetStatelessFragmentDefaultActions sets the StatelessFragmentDefaultActions field's value. 6097 func (s *FirewallPolicy) SetStatelessFragmentDefaultActions(v []*string) *FirewallPolicy { 6098 s.StatelessFragmentDefaultActions = v 6099 return s 6100 } 6101 6102 // SetStatelessRuleGroupReferences sets the StatelessRuleGroupReferences field's value. 6103 func (s *FirewallPolicy) SetStatelessRuleGroupReferences(v []*StatelessRuleGroupReference) *FirewallPolicy { 6104 s.StatelessRuleGroupReferences = v 6105 return s 6106 } 6107 6108 // High-level information about a firewall policy, returned by operations like 6109 // create and describe. You can use the information provided in the metadata 6110 // to retrieve and manage a firewall policy. You can retrieve all objects for 6111 // a firewall policy by calling DescribeFirewallPolicy. 6112 type FirewallPolicyMetadata struct { 6113 _ struct{} `type:"structure"` 6114 6115 // The Amazon Resource Name (ARN) of the firewall policy. 6116 Arn *string `min:"1" type:"string"` 6117 6118 // The descriptive name of the firewall policy. You can't change the name of 6119 // a firewall policy after you create it. 6120 Name *string `min:"1" type:"string"` 6121 } 6122 6123 // String returns the string representation. 6124 // 6125 // API parameter values that are decorated as "sensitive" in the API will not 6126 // be included in the string output. The member name will be present, but the 6127 // value will be replaced with "sensitive". 6128 func (s FirewallPolicyMetadata) String() string { 6129 return awsutil.Prettify(s) 6130 } 6131 6132 // GoString returns the string representation. 6133 // 6134 // API parameter values that are decorated as "sensitive" in the API will not 6135 // be included in the string output. The member name will be present, but the 6136 // value will be replaced with "sensitive". 6137 func (s FirewallPolicyMetadata) GoString() string { 6138 return s.String() 6139 } 6140 6141 // SetArn sets the Arn field's value. 6142 func (s *FirewallPolicyMetadata) SetArn(v string) *FirewallPolicyMetadata { 6143 s.Arn = &v 6144 return s 6145 } 6146 6147 // SetName sets the Name field's value. 6148 func (s *FirewallPolicyMetadata) SetName(v string) *FirewallPolicyMetadata { 6149 s.Name = &v 6150 return s 6151 } 6152 6153 // The high-level properties of a firewall policy. This, along with the FirewallPolicy, 6154 // define the policy. You can retrieve all objects for a firewall policy by 6155 // calling DescribeFirewallPolicy. 6156 type FirewallPolicyResponse struct { 6157 _ struct{} `type:"structure"` 6158 6159 // The number of capacity units currently consumed by the policy's stateful 6160 // rules. 6161 ConsumedStatefulRuleCapacity *int64 `type:"integer"` 6162 6163 // The number of capacity units currently consumed by the policy's stateless 6164 // rules. 6165 ConsumedStatelessRuleCapacity *int64 `type:"integer"` 6166 6167 // A description of the firewall policy. 6168 Description *string `type:"string"` 6169 6170 // The Amazon Resource Name (ARN) of the firewall policy. 6171 // 6172 // If this response is for a create request that had DryRun set to TRUE, then 6173 // this ARN is a placeholder that isn't attached to a valid resource. 6174 // 6175 // FirewallPolicyArn is a required field 6176 FirewallPolicyArn *string `min:"1" type:"string" required:"true"` 6177 6178 // The unique identifier for the firewall policy. 6179 // 6180 // FirewallPolicyId is a required field 6181 FirewallPolicyId *string `min:"36" type:"string" required:"true"` 6182 6183 // The descriptive name of the firewall policy. You can't change the name of 6184 // a firewall policy after you create it. 6185 // 6186 // FirewallPolicyName is a required field 6187 FirewallPolicyName *string `min:"1" type:"string" required:"true"` 6188 6189 // The current status of the firewall policy. You can retrieve this for a firewall 6190 // policy by calling DescribeFirewallPolicy and providing the firewall policy's 6191 // name or ARN. 6192 FirewallPolicyStatus *string `type:"string" enum:"ResourceStatus"` 6193 6194 // The number of firewalls that are associated with this firewall policy. 6195 NumberOfAssociations *int64 `type:"integer"` 6196 6197 // The key:value pairs to associate with the resource. 6198 Tags []*Tag `min:"1" type:"list"` 6199 } 6200 6201 // String returns the string representation. 6202 // 6203 // API parameter values that are decorated as "sensitive" in the API will not 6204 // be included in the string output. The member name will be present, but the 6205 // value will be replaced with "sensitive". 6206 func (s FirewallPolicyResponse) String() string { 6207 return awsutil.Prettify(s) 6208 } 6209 6210 // GoString returns the string representation. 6211 // 6212 // API parameter values that are decorated as "sensitive" in the API will not 6213 // be included in the string output. The member name will be present, but the 6214 // value will be replaced with "sensitive". 6215 func (s FirewallPolicyResponse) GoString() string { 6216 return s.String() 6217 } 6218 6219 // SetConsumedStatefulRuleCapacity sets the ConsumedStatefulRuleCapacity field's value. 6220 func (s *FirewallPolicyResponse) SetConsumedStatefulRuleCapacity(v int64) *FirewallPolicyResponse { 6221 s.ConsumedStatefulRuleCapacity = &v 6222 return s 6223 } 6224 6225 // SetConsumedStatelessRuleCapacity sets the ConsumedStatelessRuleCapacity field's value. 6226 func (s *FirewallPolicyResponse) SetConsumedStatelessRuleCapacity(v int64) *FirewallPolicyResponse { 6227 s.ConsumedStatelessRuleCapacity = &v 6228 return s 6229 } 6230 6231 // SetDescription sets the Description field's value. 6232 func (s *FirewallPolicyResponse) SetDescription(v string) *FirewallPolicyResponse { 6233 s.Description = &v 6234 return s 6235 } 6236 6237 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 6238 func (s *FirewallPolicyResponse) SetFirewallPolicyArn(v string) *FirewallPolicyResponse { 6239 s.FirewallPolicyArn = &v 6240 return s 6241 } 6242 6243 // SetFirewallPolicyId sets the FirewallPolicyId field's value. 6244 func (s *FirewallPolicyResponse) SetFirewallPolicyId(v string) *FirewallPolicyResponse { 6245 s.FirewallPolicyId = &v 6246 return s 6247 } 6248 6249 // SetFirewallPolicyName sets the FirewallPolicyName field's value. 6250 func (s *FirewallPolicyResponse) SetFirewallPolicyName(v string) *FirewallPolicyResponse { 6251 s.FirewallPolicyName = &v 6252 return s 6253 } 6254 6255 // SetFirewallPolicyStatus sets the FirewallPolicyStatus field's value. 6256 func (s *FirewallPolicyResponse) SetFirewallPolicyStatus(v string) *FirewallPolicyResponse { 6257 s.FirewallPolicyStatus = &v 6258 return s 6259 } 6260 6261 // SetNumberOfAssociations sets the NumberOfAssociations field's value. 6262 func (s *FirewallPolicyResponse) SetNumberOfAssociations(v int64) *FirewallPolicyResponse { 6263 s.NumberOfAssociations = &v 6264 return s 6265 } 6266 6267 // SetTags sets the Tags field's value. 6268 func (s *FirewallPolicyResponse) SetTags(v []*Tag) *FirewallPolicyResponse { 6269 s.Tags = v 6270 return s 6271 } 6272 6273 // Detailed information about the current status of a Firewall. You can retrieve 6274 // this for a firewall by calling DescribeFirewall and providing the firewall 6275 // name and ARN. 6276 type FirewallStatus struct { 6277 _ struct{} `type:"structure"` 6278 6279 // The configuration sync state for the firewall. This summarizes the sync states 6280 // reported in the Config settings for all of the Availability Zones where you 6281 // have configured the firewall. 6282 // 6283 // When you create a firewall or update its configuration, for example by adding 6284 // a rule group to its firewall policy, Network Firewall distributes the configuration 6285 // changes to all zones where the firewall is in use. This summary indicates 6286 // whether the configuration changes have been applied everywhere. 6287 // 6288 // This status must be IN_SYNC for the firewall to be ready for use, but it 6289 // doesn't indicate that the firewall is ready. The Status setting indicates 6290 // firewall readiness. 6291 // 6292 // ConfigurationSyncStateSummary is a required field 6293 ConfigurationSyncStateSummary *string `type:"string" required:"true" enum:"ConfigurationSyncState"` 6294 6295 // The readiness of the configured firewall to handle network traffic across 6296 // all of the Availability Zones where you've configured it. This setting is 6297 // READY only when the ConfigurationSyncStateSummary value is IN_SYNC and the 6298 // Attachment Status values for all of the configured subnets are READY. 6299 // 6300 // Status is a required field 6301 Status *string `type:"string" required:"true" enum:"FirewallStatusValue"` 6302 6303 // The subnets that you've configured for use by the Network Firewall firewall. 6304 // This contains one array element per Availability Zone where you've configured 6305 // a subnet. These objects provide details of the information that is summarized 6306 // in the ConfigurationSyncStateSummary and Status, broken down by zone and 6307 // configuration object. 6308 SyncStates map[string]*SyncState `type:"map"` 6309 } 6310 6311 // String returns the string representation. 6312 // 6313 // API parameter values that are decorated as "sensitive" in the API will not 6314 // be included in the string output. The member name will be present, but the 6315 // value will be replaced with "sensitive". 6316 func (s FirewallStatus) String() string { 6317 return awsutil.Prettify(s) 6318 } 6319 6320 // GoString returns the string representation. 6321 // 6322 // API parameter values that are decorated as "sensitive" in the API will not 6323 // be included in the string output. The member name will be present, but the 6324 // value will be replaced with "sensitive". 6325 func (s FirewallStatus) GoString() string { 6326 return s.String() 6327 } 6328 6329 // SetConfigurationSyncStateSummary sets the ConfigurationSyncStateSummary field's value. 6330 func (s *FirewallStatus) SetConfigurationSyncStateSummary(v string) *FirewallStatus { 6331 s.ConfigurationSyncStateSummary = &v 6332 return s 6333 } 6334 6335 // SetStatus sets the Status field's value. 6336 func (s *FirewallStatus) SetStatus(v string) *FirewallStatus { 6337 s.Status = &v 6338 return s 6339 } 6340 6341 // SetSyncStates sets the SyncStates field's value. 6342 func (s *FirewallStatus) SetSyncStates(v map[string]*SyncState) *FirewallStatus { 6343 s.SyncStates = v 6344 return s 6345 } 6346 6347 // The basic rule criteria for AWS Network Firewall to use to inspect packet 6348 // headers in stateful traffic flow inspection. Traffic flows that match the 6349 // criteria are a match for the corresponding StatefulRule. 6350 type Header struct { 6351 _ struct{} `type:"structure"` 6352 6353 // The destination IP address or address range to inspect for, in CIDR notation. 6354 // To match with any address, specify ANY. 6355 // 6356 // Specify an IP address or a block of IP addresses in Classless Inter-Domain 6357 // Routing (CIDR) notation. Network Firewall supports all address ranges for 6358 // IPv4. 6359 // 6360 // Examples: 6361 // 6362 // * To configure Network Firewall to inspect for the IP address 192.0.2.44, 6363 // specify 192.0.2.44/32. 6364 // 6365 // * To configure Network Firewall to inspect for IP addresses from 192.0.2.0 6366 // to 192.0.2.255, specify 192.0.2.0/24. 6367 // 6368 // For more information about CIDR notation, see the Wikipedia entry Classless 6369 // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 6370 // 6371 // Destination is a required field 6372 Destination *string `min:"1" type:"string" required:"true"` 6373 6374 // The destination port to inspect for. You can specify an individual port, 6375 // for example 1994 and you can specify a port range, for example 1990:1994. 6376 // To match with any port, specify ANY. 6377 // 6378 // DestinationPort is a required field 6379 DestinationPort *string `min:"1" type:"string" required:"true"` 6380 6381 // The direction of traffic flow to inspect. If set to ANY, the inspection matches 6382 // bidirectional traffic, both from the source to the destination and from the 6383 // destination to the source. If set to FORWARD, the inspection only matches 6384 // traffic going from the source to the destination. 6385 // 6386 // Direction is a required field 6387 Direction *string `type:"string" required:"true" enum:"StatefulRuleDirection"` 6388 6389 // The protocol to inspect for. To specify all, you can use IP, because all 6390 // traffic on AWS and on the internet is IP. 6391 // 6392 // Protocol is a required field 6393 Protocol *string `type:"string" required:"true" enum:"StatefulRuleProtocol"` 6394 6395 // The source IP address or address range to inspect for, in CIDR notation. 6396 // To match with any address, specify ANY. 6397 // 6398 // Specify an IP address or a block of IP addresses in Classless Inter-Domain 6399 // Routing (CIDR) notation. Network Firewall supports all address ranges for 6400 // IPv4. 6401 // 6402 // Examples: 6403 // 6404 // * To configure Network Firewall to inspect for the IP address 192.0.2.44, 6405 // specify 192.0.2.44/32. 6406 // 6407 // * To configure Network Firewall to inspect for IP addresses from 192.0.2.0 6408 // to 192.0.2.255, specify 192.0.2.0/24. 6409 // 6410 // For more information about CIDR notation, see the Wikipedia entry Classless 6411 // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 6412 // 6413 // Source is a required field 6414 Source *string `min:"1" type:"string" required:"true"` 6415 6416 // The source port to inspect for. You can specify an individual port, for example 6417 // 1994 and you can specify a port range, for example 1990:1994. To match with 6418 // any port, specify ANY. 6419 // 6420 // SourcePort is a required field 6421 SourcePort *string `min:"1" type:"string" required:"true"` 6422 } 6423 6424 // String returns the string representation. 6425 // 6426 // API parameter values that are decorated as "sensitive" in the API will not 6427 // be included in the string output. The member name will be present, but the 6428 // value will be replaced with "sensitive". 6429 func (s Header) String() string { 6430 return awsutil.Prettify(s) 6431 } 6432 6433 // GoString returns the string representation. 6434 // 6435 // API parameter values that are decorated as "sensitive" in the API will not 6436 // be included in the string output. The member name will be present, but the 6437 // value will be replaced with "sensitive". 6438 func (s Header) GoString() string { 6439 return s.String() 6440 } 6441 6442 // Validate inspects the fields of the type to determine if they are valid. 6443 func (s *Header) Validate() error { 6444 invalidParams := request.ErrInvalidParams{Context: "Header"} 6445 if s.Destination == nil { 6446 invalidParams.Add(request.NewErrParamRequired("Destination")) 6447 } 6448 if s.Destination != nil && len(*s.Destination) < 1 { 6449 invalidParams.Add(request.NewErrParamMinLen("Destination", 1)) 6450 } 6451 if s.DestinationPort == nil { 6452 invalidParams.Add(request.NewErrParamRequired("DestinationPort")) 6453 } 6454 if s.DestinationPort != nil && len(*s.DestinationPort) < 1 { 6455 invalidParams.Add(request.NewErrParamMinLen("DestinationPort", 1)) 6456 } 6457 if s.Direction == nil { 6458 invalidParams.Add(request.NewErrParamRequired("Direction")) 6459 } 6460 if s.Protocol == nil { 6461 invalidParams.Add(request.NewErrParamRequired("Protocol")) 6462 } 6463 if s.Source == nil { 6464 invalidParams.Add(request.NewErrParamRequired("Source")) 6465 } 6466 if s.Source != nil && len(*s.Source) < 1 { 6467 invalidParams.Add(request.NewErrParamMinLen("Source", 1)) 6468 } 6469 if s.SourcePort == nil { 6470 invalidParams.Add(request.NewErrParamRequired("SourcePort")) 6471 } 6472 if s.SourcePort != nil && len(*s.SourcePort) < 1 { 6473 invalidParams.Add(request.NewErrParamMinLen("SourcePort", 1)) 6474 } 6475 6476 if invalidParams.Len() > 0 { 6477 return invalidParams 6478 } 6479 return nil 6480 } 6481 6482 // SetDestination sets the Destination field's value. 6483 func (s *Header) SetDestination(v string) *Header { 6484 s.Destination = &v 6485 return s 6486 } 6487 6488 // SetDestinationPort sets the DestinationPort field's value. 6489 func (s *Header) SetDestinationPort(v string) *Header { 6490 s.DestinationPort = &v 6491 return s 6492 } 6493 6494 // SetDirection sets the Direction field's value. 6495 func (s *Header) SetDirection(v string) *Header { 6496 s.Direction = &v 6497 return s 6498 } 6499 6500 // SetProtocol sets the Protocol field's value. 6501 func (s *Header) SetProtocol(v string) *Header { 6502 s.Protocol = &v 6503 return s 6504 } 6505 6506 // SetSource sets the Source field's value. 6507 func (s *Header) SetSource(v string) *Header { 6508 s.Source = &v 6509 return s 6510 } 6511 6512 // SetSourcePort sets the SourcePort field's value. 6513 func (s *Header) SetSourcePort(v string) *Header { 6514 s.SourcePort = &v 6515 return s 6516 } 6517 6518 // A list of IP addresses and address ranges, in CIDR notation. This is part 6519 // of a RuleVariables. 6520 type IPSet struct { 6521 _ struct{} `type:"structure"` 6522 6523 // The list of IP addresses and address ranges, in CIDR notation. 6524 // 6525 // Definition is a required field 6526 Definition []*string `type:"list" required:"true"` 6527 } 6528 6529 // String returns the string representation. 6530 // 6531 // API parameter values that are decorated as "sensitive" in the API will not 6532 // be included in the string output. The member name will be present, but the 6533 // value will be replaced with "sensitive". 6534 func (s IPSet) String() string { 6535 return awsutil.Prettify(s) 6536 } 6537 6538 // GoString returns the string representation. 6539 // 6540 // API parameter values that are decorated as "sensitive" in the API will not 6541 // be included in the string output. The member name will be present, but the 6542 // value will be replaced with "sensitive". 6543 func (s IPSet) GoString() string { 6544 return s.String() 6545 } 6546 6547 // Validate inspects the fields of the type to determine if they are valid. 6548 func (s *IPSet) Validate() error { 6549 invalidParams := request.ErrInvalidParams{Context: "IPSet"} 6550 if s.Definition == nil { 6551 invalidParams.Add(request.NewErrParamRequired("Definition")) 6552 } 6553 6554 if invalidParams.Len() > 0 { 6555 return invalidParams 6556 } 6557 return nil 6558 } 6559 6560 // SetDefinition sets the Definition field's value. 6561 func (s *IPSet) SetDefinition(v []*string) *IPSet { 6562 s.Definition = v 6563 return s 6564 } 6565 6566 // AWS doesn't currently have enough available capacity to fulfill your request. 6567 // Try your request later. 6568 type InsufficientCapacityException struct { 6569 _ struct{} `type:"structure"` 6570 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6571 6572 Message_ *string `locationName:"Message" type:"string"` 6573 } 6574 6575 // String returns the string representation. 6576 // 6577 // API parameter values that are decorated as "sensitive" in the API will not 6578 // be included in the string output. The member name will be present, but the 6579 // value will be replaced with "sensitive". 6580 func (s InsufficientCapacityException) String() string { 6581 return awsutil.Prettify(s) 6582 } 6583 6584 // GoString returns the string representation. 6585 // 6586 // API parameter values that are decorated as "sensitive" in the API will not 6587 // be included in the string output. The member name will be present, but the 6588 // value will be replaced with "sensitive". 6589 func (s InsufficientCapacityException) GoString() string { 6590 return s.String() 6591 } 6592 6593 func newErrorInsufficientCapacityException(v protocol.ResponseMetadata) error { 6594 return &InsufficientCapacityException{ 6595 RespMetadata: v, 6596 } 6597 } 6598 6599 // Code returns the exception type name. 6600 func (s *InsufficientCapacityException) Code() string { 6601 return "InsufficientCapacityException" 6602 } 6603 6604 // Message returns the exception's message. 6605 func (s *InsufficientCapacityException) Message() string { 6606 if s.Message_ != nil { 6607 return *s.Message_ 6608 } 6609 return "" 6610 } 6611 6612 // OrigErr always returns nil, satisfies awserr.Error interface. 6613 func (s *InsufficientCapacityException) OrigErr() error { 6614 return nil 6615 } 6616 6617 func (s *InsufficientCapacityException) Error() string { 6618 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6619 } 6620 6621 // Status code returns the HTTP status code for the request's response error. 6622 func (s *InsufficientCapacityException) StatusCode() int { 6623 return s.RespMetadata.StatusCode 6624 } 6625 6626 // RequestID returns the service's response RequestID for request. 6627 func (s *InsufficientCapacityException) RequestID() string { 6628 return s.RespMetadata.RequestID 6629 } 6630 6631 // Your request is valid, but Network Firewall couldn’t perform the operation 6632 // because of a system problem. Retry your request. 6633 type InternalServerError struct { 6634 _ struct{} `type:"structure"` 6635 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6636 6637 Message_ *string `locationName:"Message" type:"string"` 6638 } 6639 6640 // String returns the string representation. 6641 // 6642 // API parameter values that are decorated as "sensitive" in the API will not 6643 // be included in the string output. The member name will be present, but the 6644 // value will be replaced with "sensitive". 6645 func (s InternalServerError) String() string { 6646 return awsutil.Prettify(s) 6647 } 6648 6649 // GoString returns the string representation. 6650 // 6651 // API parameter values that are decorated as "sensitive" in the API will not 6652 // be included in the string output. The member name will be present, but the 6653 // value will be replaced with "sensitive". 6654 func (s InternalServerError) GoString() string { 6655 return s.String() 6656 } 6657 6658 func newErrorInternalServerError(v protocol.ResponseMetadata) error { 6659 return &InternalServerError{ 6660 RespMetadata: v, 6661 } 6662 } 6663 6664 // Code returns the exception type name. 6665 func (s *InternalServerError) Code() string { 6666 return "InternalServerError" 6667 } 6668 6669 // Message returns the exception's message. 6670 func (s *InternalServerError) Message() string { 6671 if s.Message_ != nil { 6672 return *s.Message_ 6673 } 6674 return "" 6675 } 6676 6677 // OrigErr always returns nil, satisfies awserr.Error interface. 6678 func (s *InternalServerError) OrigErr() error { 6679 return nil 6680 } 6681 6682 func (s *InternalServerError) Error() string { 6683 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6684 } 6685 6686 // Status code returns the HTTP status code for the request's response error. 6687 func (s *InternalServerError) StatusCode() int { 6688 return s.RespMetadata.StatusCode 6689 } 6690 6691 // RequestID returns the service's response RequestID for request. 6692 func (s *InternalServerError) RequestID() string { 6693 return s.RespMetadata.RequestID 6694 } 6695 6696 // The operation failed because it's not valid. For example, you might have 6697 // tried to delete a rule group or firewall policy that's in use. 6698 type InvalidOperationException struct { 6699 _ struct{} `type:"structure"` 6700 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6701 6702 Message_ *string `locationName:"Message" type:"string"` 6703 } 6704 6705 // String returns the string representation. 6706 // 6707 // API parameter values that are decorated as "sensitive" in the API will not 6708 // be included in the string output. The member name will be present, but the 6709 // value will be replaced with "sensitive". 6710 func (s InvalidOperationException) String() string { 6711 return awsutil.Prettify(s) 6712 } 6713 6714 // GoString returns the string representation. 6715 // 6716 // API parameter values that are decorated as "sensitive" in the API will not 6717 // be included in the string output. The member name will be present, but the 6718 // value will be replaced with "sensitive". 6719 func (s InvalidOperationException) GoString() string { 6720 return s.String() 6721 } 6722 6723 func newErrorInvalidOperationException(v protocol.ResponseMetadata) error { 6724 return &InvalidOperationException{ 6725 RespMetadata: v, 6726 } 6727 } 6728 6729 // Code returns the exception type name. 6730 func (s *InvalidOperationException) Code() string { 6731 return "InvalidOperationException" 6732 } 6733 6734 // Message returns the exception's message. 6735 func (s *InvalidOperationException) Message() string { 6736 if s.Message_ != nil { 6737 return *s.Message_ 6738 } 6739 return "" 6740 } 6741 6742 // OrigErr always returns nil, satisfies awserr.Error interface. 6743 func (s *InvalidOperationException) OrigErr() error { 6744 return nil 6745 } 6746 6747 func (s *InvalidOperationException) Error() string { 6748 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6749 } 6750 6751 // Status code returns the HTTP status code for the request's response error. 6752 func (s *InvalidOperationException) StatusCode() int { 6753 return s.RespMetadata.StatusCode 6754 } 6755 6756 // RequestID returns the service's response RequestID for request. 6757 func (s *InvalidOperationException) RequestID() string { 6758 return s.RespMetadata.RequestID 6759 } 6760 6761 // The operation failed because of a problem with your request. Examples include: 6762 // 6763 // * You specified an unsupported parameter name or value. 6764 // 6765 // * You tried to update a property with a value that isn't among the available 6766 // types. 6767 // 6768 // * Your request references an ARN that is malformed, or corresponds to 6769 // a resource that isn't valid in the context of the request. 6770 type InvalidRequestException struct { 6771 _ struct{} `type:"structure"` 6772 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6773 6774 Message_ *string `locationName:"Message" type:"string"` 6775 } 6776 6777 // String returns the string representation. 6778 // 6779 // API parameter values that are decorated as "sensitive" in the API will not 6780 // be included in the string output. The member name will be present, but the 6781 // value will be replaced with "sensitive". 6782 func (s InvalidRequestException) String() string { 6783 return awsutil.Prettify(s) 6784 } 6785 6786 // GoString returns the string representation. 6787 // 6788 // API parameter values that are decorated as "sensitive" in the API will not 6789 // be included in the string output. The member name will be present, but the 6790 // value will be replaced with "sensitive". 6791 func (s InvalidRequestException) GoString() string { 6792 return s.String() 6793 } 6794 6795 func newErrorInvalidRequestException(v protocol.ResponseMetadata) error { 6796 return &InvalidRequestException{ 6797 RespMetadata: v, 6798 } 6799 } 6800 6801 // Code returns the exception type name. 6802 func (s *InvalidRequestException) Code() string { 6803 return "InvalidRequestException" 6804 } 6805 6806 // Message returns the exception's message. 6807 func (s *InvalidRequestException) Message() string { 6808 if s.Message_ != nil { 6809 return *s.Message_ 6810 } 6811 return "" 6812 } 6813 6814 // OrigErr always returns nil, satisfies awserr.Error interface. 6815 func (s *InvalidRequestException) OrigErr() error { 6816 return nil 6817 } 6818 6819 func (s *InvalidRequestException) Error() string { 6820 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6821 } 6822 6823 // Status code returns the HTTP status code for the request's response error. 6824 func (s *InvalidRequestException) StatusCode() int { 6825 return s.RespMetadata.StatusCode 6826 } 6827 6828 // RequestID returns the service's response RequestID for request. 6829 func (s *InvalidRequestException) RequestID() string { 6830 return s.RespMetadata.RequestID 6831 } 6832 6833 // The policy statement failed validation. 6834 type InvalidResourcePolicyException struct { 6835 _ struct{} `type:"structure"` 6836 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6837 6838 Message_ *string `locationName:"Message" type:"string"` 6839 } 6840 6841 // String returns the string representation. 6842 // 6843 // API parameter values that are decorated as "sensitive" in the API will not 6844 // be included in the string output. The member name will be present, but the 6845 // value will be replaced with "sensitive". 6846 func (s InvalidResourcePolicyException) String() string { 6847 return awsutil.Prettify(s) 6848 } 6849 6850 // GoString returns the string representation. 6851 // 6852 // API parameter values that are decorated as "sensitive" in the API will not 6853 // be included in the string output. The member name will be present, but the 6854 // value will be replaced with "sensitive". 6855 func (s InvalidResourcePolicyException) GoString() string { 6856 return s.String() 6857 } 6858 6859 func newErrorInvalidResourcePolicyException(v protocol.ResponseMetadata) error { 6860 return &InvalidResourcePolicyException{ 6861 RespMetadata: v, 6862 } 6863 } 6864 6865 // Code returns the exception type name. 6866 func (s *InvalidResourcePolicyException) Code() string { 6867 return "InvalidResourcePolicyException" 6868 } 6869 6870 // Message returns the exception's message. 6871 func (s *InvalidResourcePolicyException) Message() string { 6872 if s.Message_ != nil { 6873 return *s.Message_ 6874 } 6875 return "" 6876 } 6877 6878 // OrigErr always returns nil, satisfies awserr.Error interface. 6879 func (s *InvalidResourcePolicyException) OrigErr() error { 6880 return nil 6881 } 6882 6883 func (s *InvalidResourcePolicyException) Error() string { 6884 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6885 } 6886 6887 // Status code returns the HTTP status code for the request's response error. 6888 func (s *InvalidResourcePolicyException) StatusCode() int { 6889 return s.RespMetadata.StatusCode 6890 } 6891 6892 // RequestID returns the service's response RequestID for request. 6893 func (s *InvalidResourcePolicyException) RequestID() string { 6894 return s.RespMetadata.RequestID 6895 } 6896 6897 // The token you provided is stale or isn't valid for the operation. 6898 type InvalidTokenException struct { 6899 _ struct{} `type:"structure"` 6900 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6901 6902 Message_ *string `locationName:"Message" type:"string"` 6903 } 6904 6905 // String returns the string representation. 6906 // 6907 // API parameter values that are decorated as "sensitive" in the API will not 6908 // be included in the string output. The member name will be present, but the 6909 // value will be replaced with "sensitive". 6910 func (s InvalidTokenException) String() string { 6911 return awsutil.Prettify(s) 6912 } 6913 6914 // GoString returns the string representation. 6915 // 6916 // API parameter values that are decorated as "sensitive" in the API will not 6917 // be included in the string output. The member name will be present, but the 6918 // value will be replaced with "sensitive". 6919 func (s InvalidTokenException) GoString() string { 6920 return s.String() 6921 } 6922 6923 func newErrorInvalidTokenException(v protocol.ResponseMetadata) error { 6924 return &InvalidTokenException{ 6925 RespMetadata: v, 6926 } 6927 } 6928 6929 // Code returns the exception type name. 6930 func (s *InvalidTokenException) Code() string { 6931 return "InvalidTokenException" 6932 } 6933 6934 // Message returns the exception's message. 6935 func (s *InvalidTokenException) Message() string { 6936 if s.Message_ != nil { 6937 return *s.Message_ 6938 } 6939 return "" 6940 } 6941 6942 // OrigErr always returns nil, satisfies awserr.Error interface. 6943 func (s *InvalidTokenException) OrigErr() error { 6944 return nil 6945 } 6946 6947 func (s *InvalidTokenException) Error() string { 6948 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6949 } 6950 6951 // Status code returns the HTTP status code for the request's response error. 6952 func (s *InvalidTokenException) StatusCode() int { 6953 return s.RespMetadata.StatusCode 6954 } 6955 6956 // RequestID returns the service's response RequestID for request. 6957 func (s *InvalidTokenException) RequestID() string { 6958 return s.RespMetadata.RequestID 6959 } 6960 6961 // Unable to perform the operation because doing so would violate a limit setting. 6962 type LimitExceededException struct { 6963 _ struct{} `type:"structure"` 6964 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6965 6966 Message_ *string `locationName:"Message" type:"string"` 6967 } 6968 6969 // String returns the string representation. 6970 // 6971 // API parameter values that are decorated as "sensitive" in the API will not 6972 // be included in the string output. The member name will be present, but the 6973 // value will be replaced with "sensitive". 6974 func (s LimitExceededException) String() string { 6975 return awsutil.Prettify(s) 6976 } 6977 6978 // GoString returns the string representation. 6979 // 6980 // API parameter values that are decorated as "sensitive" in the API will not 6981 // be included in the string output. The member name will be present, but the 6982 // value will be replaced with "sensitive". 6983 func (s LimitExceededException) GoString() string { 6984 return s.String() 6985 } 6986 6987 func newErrorLimitExceededException(v protocol.ResponseMetadata) error { 6988 return &LimitExceededException{ 6989 RespMetadata: v, 6990 } 6991 } 6992 6993 // Code returns the exception type name. 6994 func (s *LimitExceededException) Code() string { 6995 return "LimitExceededException" 6996 } 6997 6998 // Message returns the exception's message. 6999 func (s *LimitExceededException) Message() string { 7000 if s.Message_ != nil { 7001 return *s.Message_ 7002 } 7003 return "" 7004 } 7005 7006 // OrigErr always returns nil, satisfies awserr.Error interface. 7007 func (s *LimitExceededException) OrigErr() error { 7008 return nil 7009 } 7010 7011 func (s *LimitExceededException) Error() string { 7012 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 7013 } 7014 7015 // Status code returns the HTTP status code for the request's response error. 7016 func (s *LimitExceededException) StatusCode() int { 7017 return s.RespMetadata.StatusCode 7018 } 7019 7020 // RequestID returns the service's response RequestID for request. 7021 func (s *LimitExceededException) RequestID() string { 7022 return s.RespMetadata.RequestID 7023 } 7024 7025 type ListFirewallPoliciesInput struct { 7026 _ struct{} `type:"structure"` 7027 7028 // The maximum number of objects that you want Network Firewall to return for 7029 // this request. If more objects are available, in the response, Network Firewall 7030 // provides a NextToken value that you can use in a subsequent call to get the 7031 // next batch of objects. 7032 MaxResults *int64 `min:"1" type:"integer"` 7033 7034 // When you request a list of objects with a MaxResults setting, if the number 7035 // of objects that are still available for retrieval exceeds the maximum you 7036 // requested, Network Firewall returns a NextToken value in the response. To 7037 // retrieve the next batch of objects, use the token returned from the prior 7038 // request in your next request. 7039 NextToken *string `min:"1" type:"string"` 7040 } 7041 7042 // String returns the string representation. 7043 // 7044 // API parameter values that are decorated as "sensitive" in the API will not 7045 // be included in the string output. The member name will be present, but the 7046 // value will be replaced with "sensitive". 7047 func (s ListFirewallPoliciesInput) String() string { 7048 return awsutil.Prettify(s) 7049 } 7050 7051 // GoString returns the string representation. 7052 // 7053 // API parameter values that are decorated as "sensitive" in the API will not 7054 // be included in the string output. The member name will be present, but the 7055 // value will be replaced with "sensitive". 7056 func (s ListFirewallPoliciesInput) GoString() string { 7057 return s.String() 7058 } 7059 7060 // Validate inspects the fields of the type to determine if they are valid. 7061 func (s *ListFirewallPoliciesInput) Validate() error { 7062 invalidParams := request.ErrInvalidParams{Context: "ListFirewallPoliciesInput"} 7063 if s.MaxResults != nil && *s.MaxResults < 1 { 7064 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 7065 } 7066 if s.NextToken != nil && len(*s.NextToken) < 1 { 7067 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) 7068 } 7069 7070 if invalidParams.Len() > 0 { 7071 return invalidParams 7072 } 7073 return nil 7074 } 7075 7076 // SetMaxResults sets the MaxResults field's value. 7077 func (s *ListFirewallPoliciesInput) SetMaxResults(v int64) *ListFirewallPoliciesInput { 7078 s.MaxResults = &v 7079 return s 7080 } 7081 7082 // SetNextToken sets the NextToken field's value. 7083 func (s *ListFirewallPoliciesInput) SetNextToken(v string) *ListFirewallPoliciesInput { 7084 s.NextToken = &v 7085 return s 7086 } 7087 7088 type ListFirewallPoliciesOutput struct { 7089 _ struct{} `type:"structure"` 7090 7091 // The metadata for the firewall policies. Depending on your setting for max 7092 // results and the number of firewall policies that you have, this might not 7093 // be the full list. 7094 FirewallPolicies []*FirewallPolicyMetadata `type:"list"` 7095 7096 // When you request a list of objects with a MaxResults setting, if the number 7097 // of objects that are still available for retrieval exceeds the maximum you 7098 // requested, Network Firewall returns a NextToken value in the response. To 7099 // retrieve the next batch of objects, use the token returned from the prior 7100 // request in your next request. 7101 NextToken *string `min:"1" type:"string"` 7102 } 7103 7104 // String returns the string representation. 7105 // 7106 // API parameter values that are decorated as "sensitive" in the API will not 7107 // be included in the string output. The member name will be present, but the 7108 // value will be replaced with "sensitive". 7109 func (s ListFirewallPoliciesOutput) String() string { 7110 return awsutil.Prettify(s) 7111 } 7112 7113 // GoString returns the string representation. 7114 // 7115 // API parameter values that are decorated as "sensitive" in the API will not 7116 // be included in the string output. The member name will be present, but the 7117 // value will be replaced with "sensitive". 7118 func (s ListFirewallPoliciesOutput) GoString() string { 7119 return s.String() 7120 } 7121 7122 // SetFirewallPolicies sets the FirewallPolicies field's value. 7123 func (s *ListFirewallPoliciesOutput) SetFirewallPolicies(v []*FirewallPolicyMetadata) *ListFirewallPoliciesOutput { 7124 s.FirewallPolicies = v 7125 return s 7126 } 7127 7128 // SetNextToken sets the NextToken field's value. 7129 func (s *ListFirewallPoliciesOutput) SetNextToken(v string) *ListFirewallPoliciesOutput { 7130 s.NextToken = &v 7131 return s 7132 } 7133 7134 type ListFirewallsInput struct { 7135 _ struct{} `type:"structure"` 7136 7137 // The maximum number of objects that you want Network Firewall to return for 7138 // this request. If more objects are available, in the response, Network Firewall 7139 // provides a NextToken value that you can use in a subsequent call to get the 7140 // next batch of objects. 7141 MaxResults *int64 `min:"1" type:"integer"` 7142 7143 // When you request a list of objects with a MaxResults setting, if the number 7144 // of objects that are still available for retrieval exceeds the maximum you 7145 // requested, Network Firewall returns a NextToken value in the response. To 7146 // retrieve the next batch of objects, use the token returned from the prior 7147 // request in your next request. 7148 NextToken *string `min:"1" type:"string"` 7149 7150 // The unique identifiers of the VPCs that you want Network Firewall to retrieve 7151 // the firewalls for. Leave this blank to retrieve all firewalls that you have 7152 // defined. 7153 VpcIds []*string `type:"list"` 7154 } 7155 7156 // String returns the string representation. 7157 // 7158 // API parameter values that are decorated as "sensitive" in the API will not 7159 // be included in the string output. The member name will be present, but the 7160 // value will be replaced with "sensitive". 7161 func (s ListFirewallsInput) String() string { 7162 return awsutil.Prettify(s) 7163 } 7164 7165 // GoString returns the string representation. 7166 // 7167 // API parameter values that are decorated as "sensitive" in the API will not 7168 // be included in the string output. The member name will be present, but the 7169 // value will be replaced with "sensitive". 7170 func (s ListFirewallsInput) GoString() string { 7171 return s.String() 7172 } 7173 7174 // Validate inspects the fields of the type to determine if they are valid. 7175 func (s *ListFirewallsInput) Validate() error { 7176 invalidParams := request.ErrInvalidParams{Context: "ListFirewallsInput"} 7177 if s.MaxResults != nil && *s.MaxResults < 1 { 7178 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 7179 } 7180 if s.NextToken != nil && len(*s.NextToken) < 1 { 7181 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) 7182 } 7183 7184 if invalidParams.Len() > 0 { 7185 return invalidParams 7186 } 7187 return nil 7188 } 7189 7190 // SetMaxResults sets the MaxResults field's value. 7191 func (s *ListFirewallsInput) SetMaxResults(v int64) *ListFirewallsInput { 7192 s.MaxResults = &v 7193 return s 7194 } 7195 7196 // SetNextToken sets the NextToken field's value. 7197 func (s *ListFirewallsInput) SetNextToken(v string) *ListFirewallsInput { 7198 s.NextToken = &v 7199 return s 7200 } 7201 7202 // SetVpcIds sets the VpcIds field's value. 7203 func (s *ListFirewallsInput) SetVpcIds(v []*string) *ListFirewallsInput { 7204 s.VpcIds = v 7205 return s 7206 } 7207 7208 type ListFirewallsOutput struct { 7209 _ struct{} `type:"structure"` 7210 7211 // The firewall metadata objects for the VPCs that you specified. Depending 7212 // on your setting for max results and the number of firewalls you have, a single 7213 // call might not be the full list. 7214 Firewalls []*FirewallMetadata `type:"list"` 7215 7216 // When you request a list of objects with a MaxResults setting, if the number 7217 // of objects that are still available for retrieval exceeds the maximum you 7218 // requested, Network Firewall returns a NextToken value in the response. To 7219 // retrieve the next batch of objects, use the token returned from the prior 7220 // request in your next request. 7221 NextToken *string `min:"1" type:"string"` 7222 } 7223 7224 // String returns the string representation. 7225 // 7226 // API parameter values that are decorated as "sensitive" in the API will not 7227 // be included in the string output. The member name will be present, but the 7228 // value will be replaced with "sensitive". 7229 func (s ListFirewallsOutput) String() string { 7230 return awsutil.Prettify(s) 7231 } 7232 7233 // GoString returns the string representation. 7234 // 7235 // API parameter values that are decorated as "sensitive" in the API will not 7236 // be included in the string output. The member name will be present, but the 7237 // value will be replaced with "sensitive". 7238 func (s ListFirewallsOutput) GoString() string { 7239 return s.String() 7240 } 7241 7242 // SetFirewalls sets the Firewalls field's value. 7243 func (s *ListFirewallsOutput) SetFirewalls(v []*FirewallMetadata) *ListFirewallsOutput { 7244 s.Firewalls = v 7245 return s 7246 } 7247 7248 // SetNextToken sets the NextToken field's value. 7249 func (s *ListFirewallsOutput) SetNextToken(v string) *ListFirewallsOutput { 7250 s.NextToken = &v 7251 return s 7252 } 7253 7254 type ListRuleGroupsInput struct { 7255 _ struct{} `type:"structure"` 7256 7257 // The maximum number of objects that you want Network Firewall to return for 7258 // this request. If more objects are available, in the response, Network Firewall 7259 // provides a NextToken value that you can use in a subsequent call to get the 7260 // next batch of objects. 7261 MaxResults *int64 `min:"1" type:"integer"` 7262 7263 // When you request a list of objects with a MaxResults setting, if the number 7264 // of objects that are still available for retrieval exceeds the maximum you 7265 // requested, Network Firewall returns a NextToken value in the response. To 7266 // retrieve the next batch of objects, use the token returned from the prior 7267 // request in your next request. 7268 NextToken *string `min:"1" type:"string"` 7269 } 7270 7271 // String returns the string representation. 7272 // 7273 // API parameter values that are decorated as "sensitive" in the API will not 7274 // be included in the string output. The member name will be present, but the 7275 // value will be replaced with "sensitive". 7276 func (s ListRuleGroupsInput) String() string { 7277 return awsutil.Prettify(s) 7278 } 7279 7280 // GoString returns the string representation. 7281 // 7282 // API parameter values that are decorated as "sensitive" in the API will not 7283 // be included in the string output. The member name will be present, but the 7284 // value will be replaced with "sensitive". 7285 func (s ListRuleGroupsInput) GoString() string { 7286 return s.String() 7287 } 7288 7289 // Validate inspects the fields of the type to determine if they are valid. 7290 func (s *ListRuleGroupsInput) Validate() error { 7291 invalidParams := request.ErrInvalidParams{Context: "ListRuleGroupsInput"} 7292 if s.MaxResults != nil && *s.MaxResults < 1 { 7293 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 7294 } 7295 if s.NextToken != nil && len(*s.NextToken) < 1 { 7296 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) 7297 } 7298 7299 if invalidParams.Len() > 0 { 7300 return invalidParams 7301 } 7302 return nil 7303 } 7304 7305 // SetMaxResults sets the MaxResults field's value. 7306 func (s *ListRuleGroupsInput) SetMaxResults(v int64) *ListRuleGroupsInput { 7307 s.MaxResults = &v 7308 return s 7309 } 7310 7311 // SetNextToken sets the NextToken field's value. 7312 func (s *ListRuleGroupsInput) SetNextToken(v string) *ListRuleGroupsInput { 7313 s.NextToken = &v 7314 return s 7315 } 7316 7317 type ListRuleGroupsOutput struct { 7318 _ struct{} `type:"structure"` 7319 7320 // When you request a list of objects with a MaxResults setting, if the number 7321 // of objects that are still available for retrieval exceeds the maximum you 7322 // requested, Network Firewall returns a NextToken value in the response. To 7323 // retrieve the next batch of objects, use the token returned from the prior 7324 // request in your next request. 7325 NextToken *string `min:"1" type:"string"` 7326 7327 // The rule group metadata objects that you've defined. Depending on your setting 7328 // for max results and the number of rule groups, this might not be the full 7329 // list. 7330 RuleGroups []*RuleGroupMetadata `type:"list"` 7331 } 7332 7333 // String returns the string representation. 7334 // 7335 // API parameter values that are decorated as "sensitive" in the API will not 7336 // be included in the string output. The member name will be present, but the 7337 // value will be replaced with "sensitive". 7338 func (s ListRuleGroupsOutput) String() string { 7339 return awsutil.Prettify(s) 7340 } 7341 7342 // GoString returns the string representation. 7343 // 7344 // API parameter values that are decorated as "sensitive" in the API will not 7345 // be included in the string output. The member name will be present, but the 7346 // value will be replaced with "sensitive". 7347 func (s ListRuleGroupsOutput) GoString() string { 7348 return s.String() 7349 } 7350 7351 // SetNextToken sets the NextToken field's value. 7352 func (s *ListRuleGroupsOutput) SetNextToken(v string) *ListRuleGroupsOutput { 7353 s.NextToken = &v 7354 return s 7355 } 7356 7357 // SetRuleGroups sets the RuleGroups field's value. 7358 func (s *ListRuleGroupsOutput) SetRuleGroups(v []*RuleGroupMetadata) *ListRuleGroupsOutput { 7359 s.RuleGroups = v 7360 return s 7361 } 7362 7363 type ListTagsForResourceInput struct { 7364 _ struct{} `type:"structure"` 7365 7366 // The maximum number of objects that you want Network Firewall to return for 7367 // this request. If more objects are available, in the response, Network Firewall 7368 // provides a NextToken value that you can use in a subsequent call to get the 7369 // next batch of objects. 7370 MaxResults *int64 `type:"integer"` 7371 7372 // When you request a list of objects with a MaxResults setting, if the number 7373 // of objects that are still available for retrieval exceeds the maximum you 7374 // requested, Network Firewall returns a NextToken value in the response. To 7375 // retrieve the next batch of objects, use the token returned from the prior 7376 // request in your next request. 7377 NextToken *string `min:"1" type:"string"` 7378 7379 // The Amazon Resource Name (ARN) of the resource. 7380 // 7381 // ResourceArn is a required field 7382 ResourceArn *string `min:"1" type:"string" required:"true"` 7383 } 7384 7385 // String returns the string representation. 7386 // 7387 // API parameter values that are decorated as "sensitive" in the API will not 7388 // be included in the string output. The member name will be present, but the 7389 // value will be replaced with "sensitive". 7390 func (s ListTagsForResourceInput) String() string { 7391 return awsutil.Prettify(s) 7392 } 7393 7394 // GoString returns the string representation. 7395 // 7396 // API parameter values that are decorated as "sensitive" in the API will not 7397 // be included in the string output. The member name will be present, but the 7398 // value will be replaced with "sensitive". 7399 func (s ListTagsForResourceInput) GoString() string { 7400 return s.String() 7401 } 7402 7403 // Validate inspects the fields of the type to determine if they are valid. 7404 func (s *ListTagsForResourceInput) Validate() error { 7405 invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} 7406 if s.NextToken != nil && len(*s.NextToken) < 1 { 7407 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) 7408 } 7409 if s.ResourceArn == nil { 7410 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 7411 } 7412 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 7413 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 7414 } 7415 7416 if invalidParams.Len() > 0 { 7417 return invalidParams 7418 } 7419 return nil 7420 } 7421 7422 // SetMaxResults sets the MaxResults field's value. 7423 func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput { 7424 s.MaxResults = &v 7425 return s 7426 } 7427 7428 // SetNextToken sets the NextToken field's value. 7429 func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput { 7430 s.NextToken = &v 7431 return s 7432 } 7433 7434 // SetResourceArn sets the ResourceArn field's value. 7435 func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { 7436 s.ResourceArn = &v 7437 return s 7438 } 7439 7440 type ListTagsForResourceOutput struct { 7441 _ struct{} `type:"structure"` 7442 7443 // When you request a list of objects with a MaxResults setting, if the number 7444 // of objects that are still available for retrieval exceeds the maximum you 7445 // requested, Network Firewall returns a NextToken value in the response. To 7446 // retrieve the next batch of objects, use the token returned from the prior 7447 // request in your next request. 7448 NextToken *string `min:"1" type:"string"` 7449 7450 // The tags that are associated with the resource. 7451 Tags []*Tag `min:"1" type:"list"` 7452 } 7453 7454 // String returns the string representation. 7455 // 7456 // API parameter values that are decorated as "sensitive" in the API will not 7457 // be included in the string output. The member name will be present, but the 7458 // value will be replaced with "sensitive". 7459 func (s ListTagsForResourceOutput) String() string { 7460 return awsutil.Prettify(s) 7461 } 7462 7463 // GoString returns the string representation. 7464 // 7465 // API parameter values that are decorated as "sensitive" in the API will not 7466 // be included in the string output. The member name will be present, but the 7467 // value will be replaced with "sensitive". 7468 func (s ListTagsForResourceOutput) GoString() string { 7469 return s.String() 7470 } 7471 7472 // SetNextToken sets the NextToken field's value. 7473 func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput { 7474 s.NextToken = &v 7475 return s 7476 } 7477 7478 // SetTags sets the Tags field's value. 7479 func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { 7480 s.Tags = v 7481 return s 7482 } 7483 7484 // Defines where AWS Network Firewall sends logs for the firewall for one log 7485 // type. This is used in LoggingConfiguration. You can send each type of log 7486 // to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose 7487 // delivery stream. 7488 // 7489 // Network Firewall generates logs for stateful rule groups. You can save alert 7490 // and flow log types. The stateful rules engine records flow logs for all network 7491 // traffic that it receives. It records alert logs for traffic that matches 7492 // stateful rules that have the rule action set to DROP or ALERT. 7493 type LogDestinationConfig struct { 7494 _ struct{} `type:"structure"` 7495 7496 // The named location for the logs, provided in a key:value mapping that is 7497 // specific to the chosen destination type. 7498 // 7499 // * For an Amazon S3 bucket, provide the name of the bucket, with key bucketName, 7500 // and optionally provide a prefix, with key prefix. The following example 7501 // specifies an Amazon S3 bucket named DOC-EXAMPLE-BUCKET and the prefix 7502 // alerts: "LogDestination": { "bucketName": "DOC-EXAMPLE-BUCKET", "prefix": 7503 // "alerts" } 7504 // 7505 // * For a CloudWatch log group, provide the name of the CloudWatch log group, 7506 // with key logGroup. The following example specifies a log group named alert-log-group: 7507 // "LogDestination": { "logGroup": "alert-log-group" } 7508 // 7509 // * For a Kinesis Data Firehose delivery stream, provide the name of the 7510 // delivery stream, with key deliveryStream. The following example specifies 7511 // a delivery stream named alert-delivery-stream: "LogDestination": { "deliveryStream": 7512 // "alert-delivery-stream" } 7513 // 7514 // LogDestination is a required field 7515 LogDestination map[string]*string `type:"map" required:"true"` 7516 7517 // The type of storage destination to send these logs to. You can send logs 7518 // to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose 7519 // delivery stream. 7520 // 7521 // LogDestinationType is a required field 7522 LogDestinationType *string `min:"2" type:"string" required:"true" enum:"LogDestinationType"` 7523 7524 // The type of log to send. Alert logs report traffic that matches a StatefulRule 7525 // with an action setting that sends an alert log message. Flow logs are standard 7526 // network traffic flow logs. 7527 // 7528 // LogType is a required field 7529 LogType *string `type:"string" required:"true" enum:"LogType"` 7530 } 7531 7532 // String returns the string representation. 7533 // 7534 // API parameter values that are decorated as "sensitive" in the API will not 7535 // be included in the string output. The member name will be present, but the 7536 // value will be replaced with "sensitive". 7537 func (s LogDestinationConfig) String() string { 7538 return awsutil.Prettify(s) 7539 } 7540 7541 // GoString returns the string representation. 7542 // 7543 // API parameter values that are decorated as "sensitive" in the API will not 7544 // be included in the string output. The member name will be present, but the 7545 // value will be replaced with "sensitive". 7546 func (s LogDestinationConfig) GoString() string { 7547 return s.String() 7548 } 7549 7550 // Validate inspects the fields of the type to determine if they are valid. 7551 func (s *LogDestinationConfig) Validate() error { 7552 invalidParams := request.ErrInvalidParams{Context: "LogDestinationConfig"} 7553 if s.LogDestination == nil { 7554 invalidParams.Add(request.NewErrParamRequired("LogDestination")) 7555 } 7556 if s.LogDestinationType == nil { 7557 invalidParams.Add(request.NewErrParamRequired("LogDestinationType")) 7558 } 7559 if s.LogDestinationType != nil && len(*s.LogDestinationType) < 2 { 7560 invalidParams.Add(request.NewErrParamMinLen("LogDestinationType", 2)) 7561 } 7562 if s.LogType == nil { 7563 invalidParams.Add(request.NewErrParamRequired("LogType")) 7564 } 7565 7566 if invalidParams.Len() > 0 { 7567 return invalidParams 7568 } 7569 return nil 7570 } 7571 7572 // SetLogDestination sets the LogDestination field's value. 7573 func (s *LogDestinationConfig) SetLogDestination(v map[string]*string) *LogDestinationConfig { 7574 s.LogDestination = v 7575 return s 7576 } 7577 7578 // SetLogDestinationType sets the LogDestinationType field's value. 7579 func (s *LogDestinationConfig) SetLogDestinationType(v string) *LogDestinationConfig { 7580 s.LogDestinationType = &v 7581 return s 7582 } 7583 7584 // SetLogType sets the LogType field's value. 7585 func (s *LogDestinationConfig) SetLogType(v string) *LogDestinationConfig { 7586 s.LogType = &v 7587 return s 7588 } 7589 7590 // Unable to send logs to a configured logging destination. 7591 type LogDestinationPermissionException struct { 7592 _ struct{} `type:"structure"` 7593 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 7594 7595 Message_ *string `locationName:"Message" type:"string"` 7596 } 7597 7598 // String returns the string representation. 7599 // 7600 // API parameter values that are decorated as "sensitive" in the API will not 7601 // be included in the string output. The member name will be present, but the 7602 // value will be replaced with "sensitive". 7603 func (s LogDestinationPermissionException) String() string { 7604 return awsutil.Prettify(s) 7605 } 7606 7607 // GoString returns the string representation. 7608 // 7609 // API parameter values that are decorated as "sensitive" in the API will not 7610 // be included in the string output. The member name will be present, but the 7611 // value will be replaced with "sensitive". 7612 func (s LogDestinationPermissionException) GoString() string { 7613 return s.String() 7614 } 7615 7616 func newErrorLogDestinationPermissionException(v protocol.ResponseMetadata) error { 7617 return &LogDestinationPermissionException{ 7618 RespMetadata: v, 7619 } 7620 } 7621 7622 // Code returns the exception type name. 7623 func (s *LogDestinationPermissionException) Code() string { 7624 return "LogDestinationPermissionException" 7625 } 7626 7627 // Message returns the exception's message. 7628 func (s *LogDestinationPermissionException) Message() string { 7629 if s.Message_ != nil { 7630 return *s.Message_ 7631 } 7632 return "" 7633 } 7634 7635 // OrigErr always returns nil, satisfies awserr.Error interface. 7636 func (s *LogDestinationPermissionException) OrigErr() error { 7637 return nil 7638 } 7639 7640 func (s *LogDestinationPermissionException) Error() string { 7641 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 7642 } 7643 7644 // Status code returns the HTTP status code for the request's response error. 7645 func (s *LogDestinationPermissionException) StatusCode() int { 7646 return s.RespMetadata.StatusCode 7647 } 7648 7649 // RequestID returns the service's response RequestID for request. 7650 func (s *LogDestinationPermissionException) RequestID() string { 7651 return s.RespMetadata.RequestID 7652 } 7653 7654 // Defines how AWS Network Firewall performs logging for a Firewall. 7655 type LoggingConfiguration struct { 7656 _ struct{} `type:"structure"` 7657 7658 // Defines the logging destinations for the logs for a firewall. Network Firewall 7659 // generates logs for stateful rule groups. 7660 // 7661 // LogDestinationConfigs is a required field 7662 LogDestinationConfigs []*LogDestinationConfig `type:"list" required:"true"` 7663 } 7664 7665 // String returns the string representation. 7666 // 7667 // API parameter values that are decorated as "sensitive" in the API will not 7668 // be included in the string output. The member name will be present, but the 7669 // value will be replaced with "sensitive". 7670 func (s LoggingConfiguration) String() string { 7671 return awsutil.Prettify(s) 7672 } 7673 7674 // GoString returns the string representation. 7675 // 7676 // API parameter values that are decorated as "sensitive" in the API will not 7677 // be included in the string output. The member name will be present, but the 7678 // value will be replaced with "sensitive". 7679 func (s LoggingConfiguration) GoString() string { 7680 return s.String() 7681 } 7682 7683 // Validate inspects the fields of the type to determine if they are valid. 7684 func (s *LoggingConfiguration) Validate() error { 7685 invalidParams := request.ErrInvalidParams{Context: "LoggingConfiguration"} 7686 if s.LogDestinationConfigs == nil { 7687 invalidParams.Add(request.NewErrParamRequired("LogDestinationConfigs")) 7688 } 7689 if s.LogDestinationConfigs != nil { 7690 for i, v := range s.LogDestinationConfigs { 7691 if v == nil { 7692 continue 7693 } 7694 if err := v.Validate(); err != nil { 7695 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LogDestinationConfigs", i), err.(request.ErrInvalidParams)) 7696 } 7697 } 7698 } 7699 7700 if invalidParams.Len() > 0 { 7701 return invalidParams 7702 } 7703 return nil 7704 } 7705 7706 // SetLogDestinationConfigs sets the LogDestinationConfigs field's value. 7707 func (s *LoggingConfiguration) SetLogDestinationConfigs(v []*LogDestinationConfig) *LoggingConfiguration { 7708 s.LogDestinationConfigs = v 7709 return s 7710 } 7711 7712 // Criteria for Network Firewall to use to inspect an individual packet in stateless 7713 // rule inspection. Each match attributes set can include one or more items 7714 // such as IP address, CIDR range, port number, protocol, and TCP flags. 7715 type MatchAttributes struct { 7716 _ struct{} `type:"structure"` 7717 7718 // The destination ports to inspect for. If not specified, this matches with 7719 // any destination port. This setting is only used for protocols 6 (TCP) and 7720 // 17 (UDP). 7721 // 7722 // You can specify individual ports, for example 1994 and you can specify port 7723 // ranges, for example 1990:1994. 7724 DestinationPorts []*PortRange `type:"list"` 7725 7726 // The destination IP addresses and address ranges to inspect for, in CIDR notation. 7727 // If not specified, this matches with any destination address. 7728 Destinations []*Address `type:"list"` 7729 7730 // The protocols to inspect for, specified using each protocol's assigned internet 7731 // protocol number (IANA). If not specified, this matches with any protocol. 7732 Protocols []*int64 `type:"list"` 7733 7734 // The source ports to inspect for. If not specified, this matches with any 7735 // source port. This setting is only used for protocols 6 (TCP) and 17 (UDP). 7736 // 7737 // You can specify individual ports, for example 1994 and you can specify port 7738 // ranges, for example 1990:1994. 7739 SourcePorts []*PortRange `type:"list"` 7740 7741 // The source IP addresses and address ranges to inspect for, in CIDR notation. 7742 // If not specified, this matches with any source address. 7743 Sources []*Address `type:"list"` 7744 7745 // The TCP flags and masks to inspect for. If not specified, this matches with 7746 // any settings. This setting is only used for protocol 6 (TCP). 7747 TCPFlags []*TCPFlagField `type:"list"` 7748 } 7749 7750 // String returns the string representation. 7751 // 7752 // API parameter values that are decorated as "sensitive" in the API will not 7753 // be included in the string output. The member name will be present, but the 7754 // value will be replaced with "sensitive". 7755 func (s MatchAttributes) String() string { 7756 return awsutil.Prettify(s) 7757 } 7758 7759 // GoString returns the string representation. 7760 // 7761 // API parameter values that are decorated as "sensitive" in the API will not 7762 // be included in the string output. The member name will be present, but the 7763 // value will be replaced with "sensitive". 7764 func (s MatchAttributes) GoString() string { 7765 return s.String() 7766 } 7767 7768 // Validate inspects the fields of the type to determine if they are valid. 7769 func (s *MatchAttributes) Validate() error { 7770 invalidParams := request.ErrInvalidParams{Context: "MatchAttributes"} 7771 if s.DestinationPorts != nil { 7772 for i, v := range s.DestinationPorts { 7773 if v == nil { 7774 continue 7775 } 7776 if err := v.Validate(); err != nil { 7777 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DestinationPorts", i), err.(request.ErrInvalidParams)) 7778 } 7779 } 7780 } 7781 if s.Destinations != nil { 7782 for i, v := range s.Destinations { 7783 if v == nil { 7784 continue 7785 } 7786 if err := v.Validate(); err != nil { 7787 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Destinations", i), err.(request.ErrInvalidParams)) 7788 } 7789 } 7790 } 7791 if s.SourcePorts != nil { 7792 for i, v := range s.SourcePorts { 7793 if v == nil { 7794 continue 7795 } 7796 if err := v.Validate(); err != nil { 7797 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SourcePorts", i), err.(request.ErrInvalidParams)) 7798 } 7799 } 7800 } 7801 if s.Sources != nil { 7802 for i, v := range s.Sources { 7803 if v == nil { 7804 continue 7805 } 7806 if err := v.Validate(); err != nil { 7807 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams)) 7808 } 7809 } 7810 } 7811 if s.TCPFlags != nil { 7812 for i, v := range s.TCPFlags { 7813 if v == nil { 7814 continue 7815 } 7816 if err := v.Validate(); err != nil { 7817 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TCPFlags", i), err.(request.ErrInvalidParams)) 7818 } 7819 } 7820 } 7821 7822 if invalidParams.Len() > 0 { 7823 return invalidParams 7824 } 7825 return nil 7826 } 7827 7828 // SetDestinationPorts sets the DestinationPorts field's value. 7829 func (s *MatchAttributes) SetDestinationPorts(v []*PortRange) *MatchAttributes { 7830 s.DestinationPorts = v 7831 return s 7832 } 7833 7834 // SetDestinations sets the Destinations field's value. 7835 func (s *MatchAttributes) SetDestinations(v []*Address) *MatchAttributes { 7836 s.Destinations = v 7837 return s 7838 } 7839 7840 // SetProtocols sets the Protocols field's value. 7841 func (s *MatchAttributes) SetProtocols(v []*int64) *MatchAttributes { 7842 s.Protocols = v 7843 return s 7844 } 7845 7846 // SetSourcePorts sets the SourcePorts field's value. 7847 func (s *MatchAttributes) SetSourcePorts(v []*PortRange) *MatchAttributes { 7848 s.SourcePorts = v 7849 return s 7850 } 7851 7852 // SetSources sets the Sources field's value. 7853 func (s *MatchAttributes) SetSources(v []*Address) *MatchAttributes { 7854 s.Sources = v 7855 return s 7856 } 7857 7858 // SetTCPFlags sets the TCPFlags field's value. 7859 func (s *MatchAttributes) SetTCPFlags(v []*TCPFlagField) *MatchAttributes { 7860 s.TCPFlags = v 7861 return s 7862 } 7863 7864 // Provides configuration status for a single policy or rule group that is used 7865 // for a firewall endpoint. Network Firewall provides each endpoint with the 7866 // rules that are configured in the firewall policy. Each time you add a subnet 7867 // or modify the associated firewall policy, Network Firewall synchronizes the 7868 // rules in the endpoint, so it can properly filter network traffic. This is 7869 // part of a SyncState for a firewall. 7870 type PerObjectStatus struct { 7871 _ struct{} `type:"structure"` 7872 7873 // Indicates whether this object is in sync with the version indicated in the 7874 // update token. 7875 SyncStatus *string `type:"string" enum:"PerObjectSyncStatus"` 7876 7877 // The current version of the object that is either in sync or pending synchronization. 7878 UpdateToken *string `min:"1" type:"string"` 7879 } 7880 7881 // String returns the string representation. 7882 // 7883 // API parameter values that are decorated as "sensitive" in the API will not 7884 // be included in the string output. The member name will be present, but the 7885 // value will be replaced with "sensitive". 7886 func (s PerObjectStatus) String() string { 7887 return awsutil.Prettify(s) 7888 } 7889 7890 // GoString returns the string representation. 7891 // 7892 // API parameter values that are decorated as "sensitive" in the API will not 7893 // be included in the string output. The member name will be present, but the 7894 // value will be replaced with "sensitive". 7895 func (s PerObjectStatus) GoString() string { 7896 return s.String() 7897 } 7898 7899 // SetSyncStatus sets the SyncStatus field's value. 7900 func (s *PerObjectStatus) SetSyncStatus(v string) *PerObjectStatus { 7901 s.SyncStatus = &v 7902 return s 7903 } 7904 7905 // SetUpdateToken sets the UpdateToken field's value. 7906 func (s *PerObjectStatus) SetUpdateToken(v string) *PerObjectStatus { 7907 s.UpdateToken = &v 7908 return s 7909 } 7910 7911 // A single port range specification. This is used for source and destination 7912 // port ranges in the stateless rule MatchAttributes, SourcePorts, and DestinationPorts 7913 // settings. 7914 type PortRange struct { 7915 _ struct{} `type:"structure"` 7916 7917 // The lower limit of the port range. This must be less than or equal to the 7918 // ToPort specification. 7919 // 7920 // FromPort is a required field 7921 FromPort *int64 `type:"integer" required:"true"` 7922 7923 // The upper limit of the port range. This must be greater than or equal to 7924 // the FromPort specification. 7925 // 7926 // ToPort is a required field 7927 ToPort *int64 `type:"integer" required:"true"` 7928 } 7929 7930 // String returns the string representation. 7931 // 7932 // API parameter values that are decorated as "sensitive" in the API will not 7933 // be included in the string output. The member name will be present, but the 7934 // value will be replaced with "sensitive". 7935 func (s PortRange) String() string { 7936 return awsutil.Prettify(s) 7937 } 7938 7939 // GoString returns the string representation. 7940 // 7941 // API parameter values that are decorated as "sensitive" in the API will not 7942 // be included in the string output. The member name will be present, but the 7943 // value will be replaced with "sensitive". 7944 func (s PortRange) GoString() string { 7945 return s.String() 7946 } 7947 7948 // Validate inspects the fields of the type to determine if they are valid. 7949 func (s *PortRange) Validate() error { 7950 invalidParams := request.ErrInvalidParams{Context: "PortRange"} 7951 if s.FromPort == nil { 7952 invalidParams.Add(request.NewErrParamRequired("FromPort")) 7953 } 7954 if s.ToPort == nil { 7955 invalidParams.Add(request.NewErrParamRequired("ToPort")) 7956 } 7957 7958 if invalidParams.Len() > 0 { 7959 return invalidParams 7960 } 7961 return nil 7962 } 7963 7964 // SetFromPort sets the FromPort field's value. 7965 func (s *PortRange) SetFromPort(v int64) *PortRange { 7966 s.FromPort = &v 7967 return s 7968 } 7969 7970 // SetToPort sets the ToPort field's value. 7971 func (s *PortRange) SetToPort(v int64) *PortRange { 7972 s.ToPort = &v 7973 return s 7974 } 7975 7976 // A set of port ranges for use in the rules in a rule group. 7977 type PortSet struct { 7978 _ struct{} `type:"structure"` 7979 7980 // The set of port ranges. 7981 Definition []*string `type:"list"` 7982 } 7983 7984 // String returns the string representation. 7985 // 7986 // API parameter values that are decorated as "sensitive" in the API will not 7987 // be included in the string output. The member name will be present, but the 7988 // value will be replaced with "sensitive". 7989 func (s PortSet) String() string { 7990 return awsutil.Prettify(s) 7991 } 7992 7993 // GoString returns the string representation. 7994 // 7995 // API parameter values that are decorated as "sensitive" in the API will not 7996 // be included in the string output. The member name will be present, but the 7997 // value will be replaced with "sensitive". 7998 func (s PortSet) GoString() string { 7999 return s.String() 8000 } 8001 8002 // SetDefinition sets the Definition field's value. 8003 func (s *PortSet) SetDefinition(v []*string) *PortSet { 8004 s.Definition = v 8005 return s 8006 } 8007 8008 // Stateless inspection criteria that publishes the specified metrics to Amazon 8009 // CloudWatch for the matching packet. This setting defines a CloudWatch dimension 8010 // value to be published. 8011 type PublishMetricAction struct { 8012 _ struct{} `type:"structure"` 8013 8014 // Dimensions is a required field 8015 Dimensions []*Dimension `min:"1" type:"list" required:"true"` 8016 } 8017 8018 // String returns the string representation. 8019 // 8020 // API parameter values that are decorated as "sensitive" in the API will not 8021 // be included in the string output. The member name will be present, but the 8022 // value will be replaced with "sensitive". 8023 func (s PublishMetricAction) String() string { 8024 return awsutil.Prettify(s) 8025 } 8026 8027 // GoString returns the string representation. 8028 // 8029 // API parameter values that are decorated as "sensitive" in the API will not 8030 // be included in the string output. The member name will be present, but the 8031 // value will be replaced with "sensitive". 8032 func (s PublishMetricAction) GoString() string { 8033 return s.String() 8034 } 8035 8036 // Validate inspects the fields of the type to determine if they are valid. 8037 func (s *PublishMetricAction) Validate() error { 8038 invalidParams := request.ErrInvalidParams{Context: "PublishMetricAction"} 8039 if s.Dimensions == nil { 8040 invalidParams.Add(request.NewErrParamRequired("Dimensions")) 8041 } 8042 if s.Dimensions != nil && len(s.Dimensions) < 1 { 8043 invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1)) 8044 } 8045 if s.Dimensions != nil { 8046 for i, v := range s.Dimensions { 8047 if v == nil { 8048 continue 8049 } 8050 if err := v.Validate(); err != nil { 8051 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams)) 8052 } 8053 } 8054 } 8055 8056 if invalidParams.Len() > 0 { 8057 return invalidParams 8058 } 8059 return nil 8060 } 8061 8062 // SetDimensions sets the Dimensions field's value. 8063 func (s *PublishMetricAction) SetDimensions(v []*Dimension) *PublishMetricAction { 8064 s.Dimensions = v 8065 return s 8066 } 8067 8068 type PutResourcePolicyInput struct { 8069 _ struct{} `type:"structure"` 8070 8071 // The AWS Identity and Access Management policy statement that lists the accounts 8072 // that you want to share your rule group or firewall policy with and the operations 8073 // that you want the accounts to be able to perform. 8074 // 8075 // For a rule group resource, you can specify the following operations in the 8076 // Actions section of the statement: 8077 // 8078 // * network-firewall:CreateFirewallPolicy 8079 // 8080 // * network-firewall:UpdateFirewallPolicy 8081 // 8082 // * network-firewall:ListRuleGroups 8083 // 8084 // For a firewall policy resource, you can specify the following operations 8085 // in the Actions section of the statement: 8086 // 8087 // * network-firewall:CreateFirewall 8088 // 8089 // * network-firewall:UpdateFirewall 8090 // 8091 // * network-firewall:AssociateFirewallPolicy 8092 // 8093 // * network-firewall:ListFirewallPolicies 8094 // 8095 // In the Resource section of the statement, you specify the ARNs for the rule 8096 // groups and firewall policies that you want to share with the account that 8097 // you specified in Arn. 8098 // 8099 // Policy is a required field 8100 Policy *string `min:"1" type:"string" required:"true"` 8101 8102 // The Amazon Resource Name (ARN) of the account that you want to share rule 8103 // groups and firewall policies with. 8104 // 8105 // ResourceArn is a required field 8106 ResourceArn *string `min:"1" type:"string" required:"true"` 8107 } 8108 8109 // String returns the string representation. 8110 // 8111 // API parameter values that are decorated as "sensitive" in the API will not 8112 // be included in the string output. The member name will be present, but the 8113 // value will be replaced with "sensitive". 8114 func (s PutResourcePolicyInput) String() string { 8115 return awsutil.Prettify(s) 8116 } 8117 8118 // GoString returns the string representation. 8119 // 8120 // API parameter values that are decorated as "sensitive" in the API will not 8121 // be included in the string output. The member name will be present, but the 8122 // value will be replaced with "sensitive". 8123 func (s PutResourcePolicyInput) GoString() string { 8124 return s.String() 8125 } 8126 8127 // Validate inspects the fields of the type to determine if they are valid. 8128 func (s *PutResourcePolicyInput) Validate() error { 8129 invalidParams := request.ErrInvalidParams{Context: "PutResourcePolicyInput"} 8130 if s.Policy == nil { 8131 invalidParams.Add(request.NewErrParamRequired("Policy")) 8132 } 8133 if s.Policy != nil && len(*s.Policy) < 1 { 8134 invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) 8135 } 8136 if s.ResourceArn == nil { 8137 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 8138 } 8139 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 8140 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 8141 } 8142 8143 if invalidParams.Len() > 0 { 8144 return invalidParams 8145 } 8146 return nil 8147 } 8148 8149 // SetPolicy sets the Policy field's value. 8150 func (s *PutResourcePolicyInput) SetPolicy(v string) *PutResourcePolicyInput { 8151 s.Policy = &v 8152 return s 8153 } 8154 8155 // SetResourceArn sets the ResourceArn field's value. 8156 func (s *PutResourcePolicyInput) SetResourceArn(v string) *PutResourcePolicyInput { 8157 s.ResourceArn = &v 8158 return s 8159 } 8160 8161 type PutResourcePolicyOutput struct { 8162 _ struct{} `type:"structure"` 8163 } 8164 8165 // String returns the string representation. 8166 // 8167 // API parameter values that are decorated as "sensitive" in the API will not 8168 // be included in the string output. The member name will be present, but the 8169 // value will be replaced with "sensitive". 8170 func (s PutResourcePolicyOutput) String() string { 8171 return awsutil.Prettify(s) 8172 } 8173 8174 // GoString returns the string representation. 8175 // 8176 // API parameter values that are decorated as "sensitive" in the API will not 8177 // be included in the string output. The member name will be present, but the 8178 // value will be replaced with "sensitive". 8179 func (s PutResourcePolicyOutput) GoString() string { 8180 return s.String() 8181 } 8182 8183 // Unable to locate a resource using the parameters that you provided. 8184 type ResourceNotFoundException struct { 8185 _ struct{} `type:"structure"` 8186 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 8187 8188 Message_ *string `locationName:"Message" type:"string"` 8189 } 8190 8191 // String returns the string representation. 8192 // 8193 // API parameter values that are decorated as "sensitive" in the API will not 8194 // be included in the string output. The member name will be present, but the 8195 // value will be replaced with "sensitive". 8196 func (s ResourceNotFoundException) String() string { 8197 return awsutil.Prettify(s) 8198 } 8199 8200 // GoString returns the string representation. 8201 // 8202 // API parameter values that are decorated as "sensitive" in the API will not 8203 // be included in the string output. The member name will be present, but the 8204 // value will be replaced with "sensitive". 8205 func (s ResourceNotFoundException) GoString() string { 8206 return s.String() 8207 } 8208 8209 func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { 8210 return &ResourceNotFoundException{ 8211 RespMetadata: v, 8212 } 8213 } 8214 8215 // Code returns the exception type name. 8216 func (s *ResourceNotFoundException) Code() string { 8217 return "ResourceNotFoundException" 8218 } 8219 8220 // Message returns the exception's message. 8221 func (s *ResourceNotFoundException) Message() string { 8222 if s.Message_ != nil { 8223 return *s.Message_ 8224 } 8225 return "" 8226 } 8227 8228 // OrigErr always returns nil, satisfies awserr.Error interface. 8229 func (s *ResourceNotFoundException) OrigErr() error { 8230 return nil 8231 } 8232 8233 func (s *ResourceNotFoundException) Error() string { 8234 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 8235 } 8236 8237 // Status code returns the HTTP status code for the request's response error. 8238 func (s *ResourceNotFoundException) StatusCode() int { 8239 return s.RespMetadata.StatusCode 8240 } 8241 8242 // RequestID returns the service's response RequestID for request. 8243 func (s *ResourceNotFoundException) RequestID() string { 8244 return s.RespMetadata.RequestID 8245 } 8246 8247 // Unable to change the resource because your account doesn't own it. 8248 type ResourceOwnerCheckException struct { 8249 _ struct{} `type:"structure"` 8250 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 8251 8252 Message_ *string `locationName:"Message" type:"string"` 8253 } 8254 8255 // String returns the string representation. 8256 // 8257 // API parameter values that are decorated as "sensitive" in the API will not 8258 // be included in the string output. The member name will be present, but the 8259 // value will be replaced with "sensitive". 8260 func (s ResourceOwnerCheckException) String() string { 8261 return awsutil.Prettify(s) 8262 } 8263 8264 // GoString returns the string representation. 8265 // 8266 // API parameter values that are decorated as "sensitive" in the API will not 8267 // be included in the string output. The member name will be present, but the 8268 // value will be replaced with "sensitive". 8269 func (s ResourceOwnerCheckException) GoString() string { 8270 return s.String() 8271 } 8272 8273 func newErrorResourceOwnerCheckException(v protocol.ResponseMetadata) error { 8274 return &ResourceOwnerCheckException{ 8275 RespMetadata: v, 8276 } 8277 } 8278 8279 // Code returns the exception type name. 8280 func (s *ResourceOwnerCheckException) Code() string { 8281 return "ResourceOwnerCheckException" 8282 } 8283 8284 // Message returns the exception's message. 8285 func (s *ResourceOwnerCheckException) Message() string { 8286 if s.Message_ != nil { 8287 return *s.Message_ 8288 } 8289 return "" 8290 } 8291 8292 // OrigErr always returns nil, satisfies awserr.Error interface. 8293 func (s *ResourceOwnerCheckException) OrigErr() error { 8294 return nil 8295 } 8296 8297 func (s *ResourceOwnerCheckException) Error() string { 8298 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 8299 } 8300 8301 // Status code returns the HTTP status code for the request's response error. 8302 func (s *ResourceOwnerCheckException) StatusCode() int { 8303 return s.RespMetadata.StatusCode 8304 } 8305 8306 // RequestID returns the service's response RequestID for request. 8307 func (s *ResourceOwnerCheckException) RequestID() string { 8308 return s.RespMetadata.RequestID 8309 } 8310 8311 // The inspection criteria and action for a single stateless rule. AWS Network 8312 // Firewall inspects each packet for the specified matching criteria. When a 8313 // packet matches the criteria, Network Firewall performs the rule's actions 8314 // on the packet. 8315 type RuleDefinition struct { 8316 _ struct{} `type:"structure"` 8317 8318 // The actions to take on a packet that matches one of the stateless rule definition's 8319 // match attributes. You must specify a standard action and you can add custom 8320 // actions. 8321 // 8322 // Network Firewall only forwards a packet for stateful rule inspection if you 8323 // specify aws:forward_to_sfe for a rule that the packet matches, or if the 8324 // packet doesn't match any stateless rule and you specify aws:forward_to_sfe 8325 // for the StatelessDefaultActions setting for the FirewallPolicy. 8326 // 8327 // For every rule, you must specify exactly one of the following standard actions. 8328 // 8329 // * aws:pass - Discontinues all inspection of the packet and permits it 8330 // to go to its intended destination. 8331 // 8332 // * aws:drop - Discontinues all inspection of the packet and blocks it from 8333 // going to its intended destination. 8334 // 8335 // * aws:forward_to_sfe - Discontinues stateless inspection of the packet 8336 // and forwards it to the stateful rule engine for inspection. 8337 // 8338 // Additionally, you can specify a custom action. To do this, you define a custom 8339 // action by name and type, then provide the name you've assigned to the action 8340 // in this Actions setting. For information about the options, see CustomAction. 8341 // 8342 // To provide more than one action in this setting, separate the settings with 8343 // a comma. For example, if you have a custom PublishMetrics action that you've 8344 // named MyMetricsAction, then you could specify the standard action aws:pass 8345 // and the custom action with [“aws:pass”, “MyMetricsAction”]. 8346 // 8347 // Actions is a required field 8348 Actions []*string `type:"list" required:"true"` 8349 8350 // Criteria for Network Firewall to use to inspect an individual packet in stateless 8351 // rule inspection. Each match attributes set can include one or more items 8352 // such as IP address, CIDR range, port number, protocol, and TCP flags. 8353 // 8354 // MatchAttributes is a required field 8355 MatchAttributes *MatchAttributes `type:"structure" required:"true"` 8356 } 8357 8358 // String returns the string representation. 8359 // 8360 // API parameter values that are decorated as "sensitive" in the API will not 8361 // be included in the string output. The member name will be present, but the 8362 // value will be replaced with "sensitive". 8363 func (s RuleDefinition) String() string { 8364 return awsutil.Prettify(s) 8365 } 8366 8367 // GoString returns the string representation. 8368 // 8369 // API parameter values that are decorated as "sensitive" in the API will not 8370 // be included in the string output. The member name will be present, but the 8371 // value will be replaced with "sensitive". 8372 func (s RuleDefinition) GoString() string { 8373 return s.String() 8374 } 8375 8376 // Validate inspects the fields of the type to determine if they are valid. 8377 func (s *RuleDefinition) Validate() error { 8378 invalidParams := request.ErrInvalidParams{Context: "RuleDefinition"} 8379 if s.Actions == nil { 8380 invalidParams.Add(request.NewErrParamRequired("Actions")) 8381 } 8382 if s.MatchAttributes == nil { 8383 invalidParams.Add(request.NewErrParamRequired("MatchAttributes")) 8384 } 8385 if s.MatchAttributes != nil { 8386 if err := s.MatchAttributes.Validate(); err != nil { 8387 invalidParams.AddNested("MatchAttributes", err.(request.ErrInvalidParams)) 8388 } 8389 } 8390 8391 if invalidParams.Len() > 0 { 8392 return invalidParams 8393 } 8394 return nil 8395 } 8396 8397 // SetActions sets the Actions field's value. 8398 func (s *RuleDefinition) SetActions(v []*string) *RuleDefinition { 8399 s.Actions = v 8400 return s 8401 } 8402 8403 // SetMatchAttributes sets the MatchAttributes field's value. 8404 func (s *RuleDefinition) SetMatchAttributes(v *MatchAttributes) *RuleDefinition { 8405 s.MatchAttributes = v 8406 return s 8407 } 8408 8409 // The object that defines the rules in a rule group. This, along with RuleGroupResponse, 8410 // define the rule group. You can retrieve all objects for a rule group by calling 8411 // DescribeRuleGroup. 8412 // 8413 // AWS Network Firewall uses a rule group to inspect and control network traffic. 8414 // You define stateless rule groups to inspect individual packets and you define 8415 // stateful rule groups to inspect packets in the context of their traffic flow. 8416 // 8417 // To use a rule group, you include it by reference in an Network Firewall firewall 8418 // policy, then you use the policy in a firewall. You can reference a rule group 8419 // from more than one firewall policy, and you can use a firewall policy in 8420 // more than one firewall. 8421 type RuleGroup struct { 8422 _ struct{} `type:"structure"` 8423 8424 // Settings that are available for use in the rules in the rule group. You can 8425 // only use these for stateful rule groups. 8426 RuleVariables *RuleVariables `type:"structure"` 8427 8428 // The stateful rules or stateless rules for the rule group. 8429 // 8430 // RulesSource is a required field 8431 RulesSource *RulesSource `type:"structure" required:"true"` 8432 8433 // Additional options governing how Network Firewall handles stateful rules. 8434 // The policies where you use your stateful rule group must have stateful rule 8435 // options settings that are compatible with these settings. 8436 StatefulRuleOptions *StatefulRuleOptions `type:"structure"` 8437 } 8438 8439 // String returns the string representation. 8440 // 8441 // API parameter values that are decorated as "sensitive" in the API will not 8442 // be included in the string output. The member name will be present, but the 8443 // value will be replaced with "sensitive". 8444 func (s RuleGroup) String() string { 8445 return awsutil.Prettify(s) 8446 } 8447 8448 // GoString returns the string representation. 8449 // 8450 // API parameter values that are decorated as "sensitive" in the API will not 8451 // be included in the string output. The member name will be present, but the 8452 // value will be replaced with "sensitive". 8453 func (s RuleGroup) GoString() string { 8454 return s.String() 8455 } 8456 8457 // Validate inspects the fields of the type to determine if they are valid. 8458 func (s *RuleGroup) Validate() error { 8459 invalidParams := request.ErrInvalidParams{Context: "RuleGroup"} 8460 if s.RulesSource == nil { 8461 invalidParams.Add(request.NewErrParamRequired("RulesSource")) 8462 } 8463 if s.RuleVariables != nil { 8464 if err := s.RuleVariables.Validate(); err != nil { 8465 invalidParams.AddNested("RuleVariables", err.(request.ErrInvalidParams)) 8466 } 8467 } 8468 if s.RulesSource != nil { 8469 if err := s.RulesSource.Validate(); err != nil { 8470 invalidParams.AddNested("RulesSource", err.(request.ErrInvalidParams)) 8471 } 8472 } 8473 8474 if invalidParams.Len() > 0 { 8475 return invalidParams 8476 } 8477 return nil 8478 } 8479 8480 // SetRuleVariables sets the RuleVariables field's value. 8481 func (s *RuleGroup) SetRuleVariables(v *RuleVariables) *RuleGroup { 8482 s.RuleVariables = v 8483 return s 8484 } 8485 8486 // SetRulesSource sets the RulesSource field's value. 8487 func (s *RuleGroup) SetRulesSource(v *RulesSource) *RuleGroup { 8488 s.RulesSource = v 8489 return s 8490 } 8491 8492 // SetStatefulRuleOptions sets the StatefulRuleOptions field's value. 8493 func (s *RuleGroup) SetStatefulRuleOptions(v *StatefulRuleOptions) *RuleGroup { 8494 s.StatefulRuleOptions = v 8495 return s 8496 } 8497 8498 // High-level information about a rule group, returned by ListRuleGroups. You 8499 // can use the information provided in the metadata to retrieve and manage a 8500 // rule group. 8501 type RuleGroupMetadata struct { 8502 _ struct{} `type:"structure"` 8503 8504 // The Amazon Resource Name (ARN) of the rule group. 8505 Arn *string `min:"1" type:"string"` 8506 8507 // The descriptive name of the rule group. You can't change the name of a rule 8508 // group after you create it. 8509 Name *string `min:"1" type:"string"` 8510 } 8511 8512 // String returns the string representation. 8513 // 8514 // API parameter values that are decorated as "sensitive" in the API will not 8515 // be included in the string output. The member name will be present, but the 8516 // value will be replaced with "sensitive". 8517 func (s RuleGroupMetadata) String() string { 8518 return awsutil.Prettify(s) 8519 } 8520 8521 // GoString returns the string representation. 8522 // 8523 // API parameter values that are decorated as "sensitive" in the API will not 8524 // be included in the string output. The member name will be present, but the 8525 // value will be replaced with "sensitive". 8526 func (s RuleGroupMetadata) GoString() string { 8527 return s.String() 8528 } 8529 8530 // SetArn sets the Arn field's value. 8531 func (s *RuleGroupMetadata) SetArn(v string) *RuleGroupMetadata { 8532 s.Arn = &v 8533 return s 8534 } 8535 8536 // SetName sets the Name field's value. 8537 func (s *RuleGroupMetadata) SetName(v string) *RuleGroupMetadata { 8538 s.Name = &v 8539 return s 8540 } 8541 8542 // The high-level properties of a rule group. This, along with the RuleGroup, 8543 // define the rule group. You can retrieve all objects for a rule group by calling 8544 // DescribeRuleGroup. 8545 type RuleGroupResponse struct { 8546 _ struct{} `type:"structure"` 8547 8548 // The maximum operating resources that this rule group can use. Rule group 8549 // capacity is fixed at creation. When you update a rule group, you are limited 8550 // to this capacity. When you reference a rule group from a firewall policy, 8551 // Network Firewall reserves this capacity for the rule group. 8552 // 8553 // You can retrieve the capacity that would be required for a rule group before 8554 // you create the rule group by calling CreateRuleGroup with DryRun set to TRUE. 8555 Capacity *int64 `type:"integer"` 8556 8557 // The number of capacity units currently consumed by the rule group rules. 8558 ConsumedCapacity *int64 `type:"integer"` 8559 8560 // A description of the rule group. 8561 Description *string `type:"string"` 8562 8563 // The number of firewall policies that use this rule group. 8564 NumberOfAssociations *int64 `type:"integer"` 8565 8566 // The Amazon Resource Name (ARN) of the rule group. 8567 // 8568 // If this response is for a create request that had DryRun set to TRUE, then 8569 // this ARN is a placeholder that isn't attached to a valid resource. 8570 // 8571 // RuleGroupArn is a required field 8572 RuleGroupArn *string `min:"1" type:"string" required:"true"` 8573 8574 // The unique identifier for the rule group. 8575 // 8576 // RuleGroupId is a required field 8577 RuleGroupId *string `min:"36" type:"string" required:"true"` 8578 8579 // The descriptive name of the rule group. You can't change the name of a rule 8580 // group after you create it. 8581 // 8582 // RuleGroupName is a required field 8583 RuleGroupName *string `min:"1" type:"string" required:"true"` 8584 8585 // Detailed information about the current status of a rule group. 8586 RuleGroupStatus *string `type:"string" enum:"ResourceStatus"` 8587 8588 // The key:value pairs to associate with the resource. 8589 Tags []*Tag `min:"1" type:"list"` 8590 8591 // Indicates whether the rule group is stateless or stateful. If the rule group 8592 // is stateless, it contains stateless rules. If it is stateful, it contains 8593 // stateful rules. 8594 Type *string `type:"string" enum:"RuleGroupType"` 8595 } 8596 8597 // String returns the string representation. 8598 // 8599 // API parameter values that are decorated as "sensitive" in the API will not 8600 // be included in the string output. The member name will be present, but the 8601 // value will be replaced with "sensitive". 8602 func (s RuleGroupResponse) String() string { 8603 return awsutil.Prettify(s) 8604 } 8605 8606 // GoString returns the string representation. 8607 // 8608 // API parameter values that are decorated as "sensitive" in the API will not 8609 // be included in the string output. The member name will be present, but the 8610 // value will be replaced with "sensitive". 8611 func (s RuleGroupResponse) GoString() string { 8612 return s.String() 8613 } 8614 8615 // SetCapacity sets the Capacity field's value. 8616 func (s *RuleGroupResponse) SetCapacity(v int64) *RuleGroupResponse { 8617 s.Capacity = &v 8618 return s 8619 } 8620 8621 // SetConsumedCapacity sets the ConsumedCapacity field's value. 8622 func (s *RuleGroupResponse) SetConsumedCapacity(v int64) *RuleGroupResponse { 8623 s.ConsumedCapacity = &v 8624 return s 8625 } 8626 8627 // SetDescription sets the Description field's value. 8628 func (s *RuleGroupResponse) SetDescription(v string) *RuleGroupResponse { 8629 s.Description = &v 8630 return s 8631 } 8632 8633 // SetNumberOfAssociations sets the NumberOfAssociations field's value. 8634 func (s *RuleGroupResponse) SetNumberOfAssociations(v int64) *RuleGroupResponse { 8635 s.NumberOfAssociations = &v 8636 return s 8637 } 8638 8639 // SetRuleGroupArn sets the RuleGroupArn field's value. 8640 func (s *RuleGroupResponse) SetRuleGroupArn(v string) *RuleGroupResponse { 8641 s.RuleGroupArn = &v 8642 return s 8643 } 8644 8645 // SetRuleGroupId sets the RuleGroupId field's value. 8646 func (s *RuleGroupResponse) SetRuleGroupId(v string) *RuleGroupResponse { 8647 s.RuleGroupId = &v 8648 return s 8649 } 8650 8651 // SetRuleGroupName sets the RuleGroupName field's value. 8652 func (s *RuleGroupResponse) SetRuleGroupName(v string) *RuleGroupResponse { 8653 s.RuleGroupName = &v 8654 return s 8655 } 8656 8657 // SetRuleGroupStatus sets the RuleGroupStatus field's value. 8658 func (s *RuleGroupResponse) SetRuleGroupStatus(v string) *RuleGroupResponse { 8659 s.RuleGroupStatus = &v 8660 return s 8661 } 8662 8663 // SetTags sets the Tags field's value. 8664 func (s *RuleGroupResponse) SetTags(v []*Tag) *RuleGroupResponse { 8665 s.Tags = v 8666 return s 8667 } 8668 8669 // SetType sets the Type field's value. 8670 func (s *RuleGroupResponse) SetType(v string) *RuleGroupResponse { 8671 s.Type = &v 8672 return s 8673 } 8674 8675 // Additional settings for a stateful rule. This is part of the StatefulRule 8676 // configuration. 8677 type RuleOption struct { 8678 _ struct{} `type:"structure"` 8679 8680 // Keyword is a required field 8681 Keyword *string `min:"1" type:"string" required:"true"` 8682 8683 Settings []*string `type:"list"` 8684 } 8685 8686 // String returns the string representation. 8687 // 8688 // API parameter values that are decorated as "sensitive" in the API will not 8689 // be included in the string output. The member name will be present, but the 8690 // value will be replaced with "sensitive". 8691 func (s RuleOption) String() string { 8692 return awsutil.Prettify(s) 8693 } 8694 8695 // GoString returns the string representation. 8696 // 8697 // API parameter values that are decorated as "sensitive" in the API will not 8698 // be included in the string output. The member name will be present, but the 8699 // value will be replaced with "sensitive". 8700 func (s RuleOption) GoString() string { 8701 return s.String() 8702 } 8703 8704 // Validate inspects the fields of the type to determine if they are valid. 8705 func (s *RuleOption) Validate() error { 8706 invalidParams := request.ErrInvalidParams{Context: "RuleOption"} 8707 if s.Keyword == nil { 8708 invalidParams.Add(request.NewErrParamRequired("Keyword")) 8709 } 8710 if s.Keyword != nil && len(*s.Keyword) < 1 { 8711 invalidParams.Add(request.NewErrParamMinLen("Keyword", 1)) 8712 } 8713 8714 if invalidParams.Len() > 0 { 8715 return invalidParams 8716 } 8717 return nil 8718 } 8719 8720 // SetKeyword sets the Keyword field's value. 8721 func (s *RuleOption) SetKeyword(v string) *RuleOption { 8722 s.Keyword = &v 8723 return s 8724 } 8725 8726 // SetSettings sets the Settings field's value. 8727 func (s *RuleOption) SetSettings(v []*string) *RuleOption { 8728 s.Settings = v 8729 return s 8730 } 8731 8732 // Settings that are available for use in the rules in the RuleGroup where this 8733 // is defined. 8734 type RuleVariables struct { 8735 _ struct{} `type:"structure"` 8736 8737 // A list of IP addresses and address ranges, in CIDR notation. 8738 IPSets map[string]*IPSet `type:"map"` 8739 8740 // A list of port ranges. 8741 PortSets map[string]*PortSet `type:"map"` 8742 } 8743 8744 // String returns the string representation. 8745 // 8746 // API parameter values that are decorated as "sensitive" in the API will not 8747 // be included in the string output. The member name will be present, but the 8748 // value will be replaced with "sensitive". 8749 func (s RuleVariables) String() string { 8750 return awsutil.Prettify(s) 8751 } 8752 8753 // GoString returns the string representation. 8754 // 8755 // API parameter values that are decorated as "sensitive" in the API will not 8756 // be included in the string output. The member name will be present, but the 8757 // value will be replaced with "sensitive". 8758 func (s RuleVariables) GoString() string { 8759 return s.String() 8760 } 8761 8762 // Validate inspects the fields of the type to determine if they are valid. 8763 func (s *RuleVariables) Validate() error { 8764 invalidParams := request.ErrInvalidParams{Context: "RuleVariables"} 8765 if s.IPSets != nil { 8766 for i, v := range s.IPSets { 8767 if v == nil { 8768 continue 8769 } 8770 if err := v.Validate(); err != nil { 8771 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IPSets", i), err.(request.ErrInvalidParams)) 8772 } 8773 } 8774 } 8775 8776 if invalidParams.Len() > 0 { 8777 return invalidParams 8778 } 8779 return nil 8780 } 8781 8782 // SetIPSets sets the IPSets field's value. 8783 func (s *RuleVariables) SetIPSets(v map[string]*IPSet) *RuleVariables { 8784 s.IPSets = v 8785 return s 8786 } 8787 8788 // SetPortSets sets the PortSets field's value. 8789 func (s *RuleVariables) SetPortSets(v map[string]*PortSet) *RuleVariables { 8790 s.PortSets = v 8791 return s 8792 } 8793 8794 // The stateless or stateful rules definitions for use in a single rule group. 8795 // Each rule group requires a single RulesSource. You can use an instance of 8796 // this for either stateless rules or stateful rules. 8797 type RulesSource struct { 8798 _ struct{} `type:"structure"` 8799 8800 // Stateful inspection criteria for a domain list rule group. 8801 RulesSourceList *RulesSourceList `type:"structure"` 8802 8803 // Stateful inspection criteria, provided in Suricata compatible intrusion prevention 8804 // system (IPS) rules. Suricata is an open-source network IPS that includes 8805 // a standard rule-based language for network traffic inspection. 8806 // 8807 // These rules contain the inspection criteria and the action to take for traffic 8808 // that matches the criteria, so this type of rule group doesn't have a separate 8809 // action setting. 8810 RulesString *string `type:"string"` 8811 8812 // An array of individual stateful rules inspection criteria to be used together 8813 // in a stateful rule group. Use this option to specify simple Suricata rules 8814 // with protocol, source and destination, ports, direction, and rule options. 8815 // For information about the Suricata Rules format, see Rules Format (https://suricata.readthedocs.io/en/suricata-5.0.0/rules/intro.html#). 8816 StatefulRules []*StatefulRule `type:"list"` 8817 8818 // Stateless inspection criteria to be used in a stateless rule group. 8819 StatelessRulesAndCustomActions *StatelessRulesAndCustomActions `type:"structure"` 8820 } 8821 8822 // String returns the string representation. 8823 // 8824 // API parameter values that are decorated as "sensitive" in the API will not 8825 // be included in the string output. The member name will be present, but the 8826 // value will be replaced with "sensitive". 8827 func (s RulesSource) String() string { 8828 return awsutil.Prettify(s) 8829 } 8830 8831 // GoString returns the string representation. 8832 // 8833 // API parameter values that are decorated as "sensitive" in the API will not 8834 // be included in the string output. The member name will be present, but the 8835 // value will be replaced with "sensitive". 8836 func (s RulesSource) GoString() string { 8837 return s.String() 8838 } 8839 8840 // Validate inspects the fields of the type to determine if they are valid. 8841 func (s *RulesSource) Validate() error { 8842 invalidParams := request.ErrInvalidParams{Context: "RulesSource"} 8843 if s.RulesSourceList != nil { 8844 if err := s.RulesSourceList.Validate(); err != nil { 8845 invalidParams.AddNested("RulesSourceList", err.(request.ErrInvalidParams)) 8846 } 8847 } 8848 if s.StatefulRules != nil { 8849 for i, v := range s.StatefulRules { 8850 if v == nil { 8851 continue 8852 } 8853 if err := v.Validate(); err != nil { 8854 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StatefulRules", i), err.(request.ErrInvalidParams)) 8855 } 8856 } 8857 } 8858 if s.StatelessRulesAndCustomActions != nil { 8859 if err := s.StatelessRulesAndCustomActions.Validate(); err != nil { 8860 invalidParams.AddNested("StatelessRulesAndCustomActions", err.(request.ErrInvalidParams)) 8861 } 8862 } 8863 8864 if invalidParams.Len() > 0 { 8865 return invalidParams 8866 } 8867 return nil 8868 } 8869 8870 // SetRulesSourceList sets the RulesSourceList field's value. 8871 func (s *RulesSource) SetRulesSourceList(v *RulesSourceList) *RulesSource { 8872 s.RulesSourceList = v 8873 return s 8874 } 8875 8876 // SetRulesString sets the RulesString field's value. 8877 func (s *RulesSource) SetRulesString(v string) *RulesSource { 8878 s.RulesString = &v 8879 return s 8880 } 8881 8882 // SetStatefulRules sets the StatefulRules field's value. 8883 func (s *RulesSource) SetStatefulRules(v []*StatefulRule) *RulesSource { 8884 s.StatefulRules = v 8885 return s 8886 } 8887 8888 // SetStatelessRulesAndCustomActions sets the StatelessRulesAndCustomActions field's value. 8889 func (s *RulesSource) SetStatelessRulesAndCustomActions(v *StatelessRulesAndCustomActions) *RulesSource { 8890 s.StatelessRulesAndCustomActions = v 8891 return s 8892 } 8893 8894 // Stateful inspection criteria for a domain list rule group. 8895 // 8896 // For HTTPS traffic, domain filtering is SNI-based. It uses the server name 8897 // indicator extension of the TLS handshake. 8898 // 8899 // By default, Network Firewall domain list inspection only includes traffic 8900 // coming from the VPC where you deploy the firewall. To inspect traffic from 8901 // IP addresses outside of the deployment VPC, you set the HOME_NET rule variable 8902 // to include the CIDR range of the deployment VPC plus the other CIDR ranges. 8903 // For more information, see RuleVariables in this guide and Stateful domain 8904 // list rule groups in AWS Network Firewall (https://docs.aws.amazon.com/network-firewall/latest/developerguide/stateful-rule-groups-domain-names.html) 8905 // in the Network Firewall Developer Guide. 8906 type RulesSourceList struct { 8907 _ struct{} `type:"structure"` 8908 8909 // Whether you want to allow or deny access to the domains in your target list. 8910 // 8911 // GeneratedRulesType is a required field 8912 GeneratedRulesType *string `type:"string" required:"true" enum:"GeneratedRulesType"` 8913 8914 // The protocols you want to inspect. Specify TLS_SNI for HTTPS. Specify HTTP_HOST 8915 // for HTTP. You can specify either or both. 8916 // 8917 // TargetTypes is a required field 8918 TargetTypes []*string `type:"list" required:"true"` 8919 8920 // The domains that you want to inspect for in your traffic flows. To provide 8921 // multiple domains, separate them with commas. Valid domain specifications 8922 // are the following: 8923 // 8924 // * Explicit names. For example, abc.example.com matches only the domain 8925 // abc.example.com. 8926 // 8927 // * Names that use a domain wildcard, which you indicate with an initial 8928 // '.'. For example,.example.com matches example.com and matches all subdomains 8929 // of example.com, such as abc.example.com and www.example.com. 8930 // 8931 // Targets is a required field 8932 Targets []*string `type:"list" required:"true"` 8933 } 8934 8935 // String returns the string representation. 8936 // 8937 // API parameter values that are decorated as "sensitive" in the API will not 8938 // be included in the string output. The member name will be present, but the 8939 // value will be replaced with "sensitive". 8940 func (s RulesSourceList) String() string { 8941 return awsutil.Prettify(s) 8942 } 8943 8944 // GoString returns the string representation. 8945 // 8946 // API parameter values that are decorated as "sensitive" in the API will not 8947 // be included in the string output. The member name will be present, but the 8948 // value will be replaced with "sensitive". 8949 func (s RulesSourceList) GoString() string { 8950 return s.String() 8951 } 8952 8953 // Validate inspects the fields of the type to determine if they are valid. 8954 func (s *RulesSourceList) Validate() error { 8955 invalidParams := request.ErrInvalidParams{Context: "RulesSourceList"} 8956 if s.GeneratedRulesType == nil { 8957 invalidParams.Add(request.NewErrParamRequired("GeneratedRulesType")) 8958 } 8959 if s.TargetTypes == nil { 8960 invalidParams.Add(request.NewErrParamRequired("TargetTypes")) 8961 } 8962 if s.Targets == nil { 8963 invalidParams.Add(request.NewErrParamRequired("Targets")) 8964 } 8965 8966 if invalidParams.Len() > 0 { 8967 return invalidParams 8968 } 8969 return nil 8970 } 8971 8972 // SetGeneratedRulesType sets the GeneratedRulesType field's value. 8973 func (s *RulesSourceList) SetGeneratedRulesType(v string) *RulesSourceList { 8974 s.GeneratedRulesType = &v 8975 return s 8976 } 8977 8978 // SetTargetTypes sets the TargetTypes field's value. 8979 func (s *RulesSourceList) SetTargetTypes(v []*string) *RulesSourceList { 8980 s.TargetTypes = v 8981 return s 8982 } 8983 8984 // SetTargets sets the Targets field's value. 8985 func (s *RulesSourceList) SetTargets(v []*string) *RulesSourceList { 8986 s.Targets = v 8987 return s 8988 } 8989 8990 // Configuration settings for the handling of the stateful rule groups in a 8991 // firewall policy. 8992 type StatefulEngineOptions struct { 8993 _ struct{} `type:"structure"` 8994 8995 // Indicates how to manage the order of stateful rule evaluation for the policy. 8996 // By default, Network Firewall leaves the rule evaluation order up to the Suricata 8997 // rule processing engine. If you set this to STRICT_ORDER, your rules are evaluated 8998 // in the exact order that you provide them in the policy. With strict ordering, 8999 // the rule groups are evaluated by order of priority, starting from the lowest 9000 // number, and the rules in each rule group are processed in the order that 9001 // they're defined. 9002 RuleOrder *string `type:"string" enum:"RuleOrder"` 9003 } 9004 9005 // String returns the string representation. 9006 // 9007 // API parameter values that are decorated as "sensitive" in the API will not 9008 // be included in the string output. The member name will be present, but the 9009 // value will be replaced with "sensitive". 9010 func (s StatefulEngineOptions) String() string { 9011 return awsutil.Prettify(s) 9012 } 9013 9014 // GoString returns the string representation. 9015 // 9016 // API parameter values that are decorated as "sensitive" in the API will not 9017 // be included in the string output. The member name will be present, but the 9018 // value will be replaced with "sensitive". 9019 func (s StatefulEngineOptions) GoString() string { 9020 return s.String() 9021 } 9022 9023 // SetRuleOrder sets the RuleOrder field's value. 9024 func (s *StatefulEngineOptions) SetRuleOrder(v string) *StatefulEngineOptions { 9025 s.RuleOrder = &v 9026 return s 9027 } 9028 9029 // A single Suricata rules specification, for use in a stateful rule group. 9030 // Use this option to specify a simple Suricata rule with protocol, source and 9031 // destination, ports, direction, and rule options. For information about the 9032 // Suricata Rules format, see Rules Format (https://suricata.readthedocs.io/en/suricata-5.0.0/rules/intro.html#). 9033 type StatefulRule struct { 9034 _ struct{} `type:"structure"` 9035 9036 // Defines what Network Firewall should do with the packets in a traffic flow 9037 // when the flow matches the stateful rule criteria. For all actions, Network 9038 // Firewall performs the specified action and discontinues stateful inspection 9039 // of the traffic flow. 9040 // 9041 // The actions for a stateful rule are defined as follows: 9042 // 9043 // * PASS - Permits the packets to go to the intended destination. 9044 // 9045 // * DROP - Blocks the packets from going to the intended destination and 9046 // sends an alert log message, if alert logging is configured in the Firewall 9047 // LoggingConfiguration. 9048 // 9049 // * ALERT - Permits the packets to go to the intended destination and sends 9050 // an alert log message, if alert logging is configured in the Firewall LoggingConfiguration. 9051 // You can use this action to test a rule that you intend to use to drop 9052 // traffic. You can enable the rule with ALERT action, verify in the logs 9053 // that the rule is filtering as you want, then change the action to DROP. 9054 // 9055 // Action is a required field 9056 Action *string `type:"string" required:"true" enum:"StatefulAction"` 9057 9058 // The stateful inspection criteria for this rule, used to inspect traffic flows. 9059 // 9060 // Header is a required field 9061 Header *Header `type:"structure" required:"true"` 9062 9063 // Additional options for the rule. These are the Suricata RuleOptions settings. 9064 // 9065 // RuleOptions is a required field 9066 RuleOptions []*RuleOption `type:"list" required:"true"` 9067 } 9068 9069 // String returns the string representation. 9070 // 9071 // API parameter values that are decorated as "sensitive" in the API will not 9072 // be included in the string output. The member name will be present, but the 9073 // value will be replaced with "sensitive". 9074 func (s StatefulRule) String() string { 9075 return awsutil.Prettify(s) 9076 } 9077 9078 // GoString returns the string representation. 9079 // 9080 // API parameter values that are decorated as "sensitive" in the API will not 9081 // be included in the string output. The member name will be present, but the 9082 // value will be replaced with "sensitive". 9083 func (s StatefulRule) GoString() string { 9084 return s.String() 9085 } 9086 9087 // Validate inspects the fields of the type to determine if they are valid. 9088 func (s *StatefulRule) Validate() error { 9089 invalidParams := request.ErrInvalidParams{Context: "StatefulRule"} 9090 if s.Action == nil { 9091 invalidParams.Add(request.NewErrParamRequired("Action")) 9092 } 9093 if s.Header == nil { 9094 invalidParams.Add(request.NewErrParamRequired("Header")) 9095 } 9096 if s.RuleOptions == nil { 9097 invalidParams.Add(request.NewErrParamRequired("RuleOptions")) 9098 } 9099 if s.Header != nil { 9100 if err := s.Header.Validate(); err != nil { 9101 invalidParams.AddNested("Header", err.(request.ErrInvalidParams)) 9102 } 9103 } 9104 if s.RuleOptions != nil { 9105 for i, v := range s.RuleOptions { 9106 if v == nil { 9107 continue 9108 } 9109 if err := v.Validate(); err != nil { 9110 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RuleOptions", i), err.(request.ErrInvalidParams)) 9111 } 9112 } 9113 } 9114 9115 if invalidParams.Len() > 0 { 9116 return invalidParams 9117 } 9118 return nil 9119 } 9120 9121 // SetAction sets the Action field's value. 9122 func (s *StatefulRule) SetAction(v string) *StatefulRule { 9123 s.Action = &v 9124 return s 9125 } 9126 9127 // SetHeader sets the Header field's value. 9128 func (s *StatefulRule) SetHeader(v *Header) *StatefulRule { 9129 s.Header = v 9130 return s 9131 } 9132 9133 // SetRuleOptions sets the RuleOptions field's value. 9134 func (s *StatefulRule) SetRuleOptions(v []*RuleOption) *StatefulRule { 9135 s.RuleOptions = v 9136 return s 9137 } 9138 9139 // Identifier for a single stateful rule group, used in a firewall policy to 9140 // refer to a rule group. 9141 type StatefulRuleGroupReference struct { 9142 _ struct{} `type:"structure"` 9143 9144 // An integer setting that indicates the order in which to run the stateful 9145 // rule groups in a single FirewallPolicy. This setting only applies to firewall 9146 // policies that specify the STRICT_ORDER rule order in the stateful engine 9147 // options settings. 9148 // 9149 // Network Firewall evalutes each stateful rule group against a packet starting 9150 // with the group that has the lowest priority setting. You must ensure that 9151 // the priority settings are unique within each policy. 9152 // 9153 // You can change the priority settings of your rule groups at any time. To 9154 // make it easier to insert rule groups later, number them so there's a wide 9155 // range in between, for example use 100, 200, and so on. 9156 Priority *int64 `min:"1" type:"integer"` 9157 9158 // The Amazon Resource Name (ARN) of the stateful rule group. 9159 // 9160 // ResourceArn is a required field 9161 ResourceArn *string `min:"1" type:"string" required:"true"` 9162 } 9163 9164 // String returns the string representation. 9165 // 9166 // API parameter values that are decorated as "sensitive" in the API will not 9167 // be included in the string output. The member name will be present, but the 9168 // value will be replaced with "sensitive". 9169 func (s StatefulRuleGroupReference) String() string { 9170 return awsutil.Prettify(s) 9171 } 9172 9173 // GoString returns the string representation. 9174 // 9175 // API parameter values that are decorated as "sensitive" in the API will not 9176 // be included in the string output. The member name will be present, but the 9177 // value will be replaced with "sensitive". 9178 func (s StatefulRuleGroupReference) GoString() string { 9179 return s.String() 9180 } 9181 9182 // Validate inspects the fields of the type to determine if they are valid. 9183 func (s *StatefulRuleGroupReference) Validate() error { 9184 invalidParams := request.ErrInvalidParams{Context: "StatefulRuleGroupReference"} 9185 if s.Priority != nil && *s.Priority < 1 { 9186 invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) 9187 } 9188 if s.ResourceArn == nil { 9189 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 9190 } 9191 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 9192 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 9193 } 9194 9195 if invalidParams.Len() > 0 { 9196 return invalidParams 9197 } 9198 return nil 9199 } 9200 9201 // SetPriority sets the Priority field's value. 9202 func (s *StatefulRuleGroupReference) SetPriority(v int64) *StatefulRuleGroupReference { 9203 s.Priority = &v 9204 return s 9205 } 9206 9207 // SetResourceArn sets the ResourceArn field's value. 9208 func (s *StatefulRuleGroupReference) SetResourceArn(v string) *StatefulRuleGroupReference { 9209 s.ResourceArn = &v 9210 return s 9211 } 9212 9213 // Additional options governing how Network Firewall handles the rule group. 9214 // You can only use these for stateful rule groups. 9215 type StatefulRuleOptions struct { 9216 _ struct{} `type:"structure"` 9217 9218 // Indicates how to manage the order of the rule evaluation for the rule group. 9219 // By default, Network Firewall leaves the rule evaluation order up to the Suricata 9220 // rule processing engine. If you set this to STRICT_ORDER, your rules are evaluated 9221 // in the exact order that they're listed in your Suricata rules string. 9222 RuleOrder *string `type:"string" enum:"RuleOrder"` 9223 } 9224 9225 // String returns the string representation. 9226 // 9227 // API parameter values that are decorated as "sensitive" in the API will not 9228 // be included in the string output. The member name will be present, but the 9229 // value will be replaced with "sensitive". 9230 func (s StatefulRuleOptions) String() string { 9231 return awsutil.Prettify(s) 9232 } 9233 9234 // GoString returns the string representation. 9235 // 9236 // API parameter values that are decorated as "sensitive" in the API will not 9237 // be included in the string output. The member name will be present, but the 9238 // value will be replaced with "sensitive". 9239 func (s StatefulRuleOptions) GoString() string { 9240 return s.String() 9241 } 9242 9243 // SetRuleOrder sets the RuleOrder field's value. 9244 func (s *StatefulRuleOptions) SetRuleOrder(v string) *StatefulRuleOptions { 9245 s.RuleOrder = &v 9246 return s 9247 } 9248 9249 // A single stateless rule. This is used in StatelessRulesAndCustomActions. 9250 type StatelessRule struct { 9251 _ struct{} `type:"structure"` 9252 9253 // Indicates the order in which to run this rule relative to all of the rules 9254 // that are defined for a stateless rule group. Network Firewall evaluates the 9255 // rules in a rule group starting with the lowest priority setting. You must 9256 // ensure that the priority settings are unique for the rule group. 9257 // 9258 // Each stateless rule group uses exactly one StatelessRulesAndCustomActions 9259 // object, and each StatelessRulesAndCustomActions contains exactly one StatelessRules 9260 // object. To ensure unique priority settings for your rule groups, set unique 9261 // priorities for the stateless rules that you define inside any single StatelessRules 9262 // object. 9263 // 9264 // You can change the priority settings of your rules at any time. To make it 9265 // easier to insert rules later, number them so there's a wide range in between, 9266 // for example use 100, 200, and so on. 9267 // 9268 // Priority is a required field 9269 Priority *int64 `min:"1" type:"integer" required:"true"` 9270 9271 // Defines the stateless 5-tuple packet inspection criteria and the action to 9272 // take on a packet that matches the criteria. 9273 // 9274 // RuleDefinition is a required field 9275 RuleDefinition *RuleDefinition `type:"structure" required:"true"` 9276 } 9277 9278 // String returns the string representation. 9279 // 9280 // API parameter values that are decorated as "sensitive" in the API will not 9281 // be included in the string output. The member name will be present, but the 9282 // value will be replaced with "sensitive". 9283 func (s StatelessRule) String() string { 9284 return awsutil.Prettify(s) 9285 } 9286 9287 // GoString returns the string representation. 9288 // 9289 // API parameter values that are decorated as "sensitive" in the API will not 9290 // be included in the string output. The member name will be present, but the 9291 // value will be replaced with "sensitive". 9292 func (s StatelessRule) GoString() string { 9293 return s.String() 9294 } 9295 9296 // Validate inspects the fields of the type to determine if they are valid. 9297 func (s *StatelessRule) Validate() error { 9298 invalidParams := request.ErrInvalidParams{Context: "StatelessRule"} 9299 if s.Priority == nil { 9300 invalidParams.Add(request.NewErrParamRequired("Priority")) 9301 } 9302 if s.Priority != nil && *s.Priority < 1 { 9303 invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) 9304 } 9305 if s.RuleDefinition == nil { 9306 invalidParams.Add(request.NewErrParamRequired("RuleDefinition")) 9307 } 9308 if s.RuleDefinition != nil { 9309 if err := s.RuleDefinition.Validate(); err != nil { 9310 invalidParams.AddNested("RuleDefinition", err.(request.ErrInvalidParams)) 9311 } 9312 } 9313 9314 if invalidParams.Len() > 0 { 9315 return invalidParams 9316 } 9317 return nil 9318 } 9319 9320 // SetPriority sets the Priority field's value. 9321 func (s *StatelessRule) SetPriority(v int64) *StatelessRule { 9322 s.Priority = &v 9323 return s 9324 } 9325 9326 // SetRuleDefinition sets the RuleDefinition field's value. 9327 func (s *StatelessRule) SetRuleDefinition(v *RuleDefinition) *StatelessRule { 9328 s.RuleDefinition = v 9329 return s 9330 } 9331 9332 // Identifier for a single stateless rule group, used in a firewall policy to 9333 // refer to the rule group. 9334 type StatelessRuleGroupReference struct { 9335 _ struct{} `type:"structure"` 9336 9337 // An integer setting that indicates the order in which to run the stateless 9338 // rule groups in a single FirewallPolicy. Network Firewall applies each stateless 9339 // rule group to a packet starting with the group that has the lowest priority 9340 // setting. You must ensure that the priority settings are unique within each 9341 // policy. 9342 // 9343 // Priority is a required field 9344 Priority *int64 `min:"1" type:"integer" required:"true"` 9345 9346 // The Amazon Resource Name (ARN) of the stateless rule group. 9347 // 9348 // ResourceArn is a required field 9349 ResourceArn *string `min:"1" type:"string" required:"true"` 9350 } 9351 9352 // String returns the string representation. 9353 // 9354 // API parameter values that are decorated as "sensitive" in the API will not 9355 // be included in the string output. The member name will be present, but the 9356 // value will be replaced with "sensitive". 9357 func (s StatelessRuleGroupReference) String() string { 9358 return awsutil.Prettify(s) 9359 } 9360 9361 // GoString returns the string representation. 9362 // 9363 // API parameter values that are decorated as "sensitive" in the API will not 9364 // be included in the string output. The member name will be present, but the 9365 // value will be replaced with "sensitive". 9366 func (s StatelessRuleGroupReference) GoString() string { 9367 return s.String() 9368 } 9369 9370 // Validate inspects the fields of the type to determine if they are valid. 9371 func (s *StatelessRuleGroupReference) Validate() error { 9372 invalidParams := request.ErrInvalidParams{Context: "StatelessRuleGroupReference"} 9373 if s.Priority == nil { 9374 invalidParams.Add(request.NewErrParamRequired("Priority")) 9375 } 9376 if s.Priority != nil && *s.Priority < 1 { 9377 invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) 9378 } 9379 if s.ResourceArn == nil { 9380 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 9381 } 9382 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 9383 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 9384 } 9385 9386 if invalidParams.Len() > 0 { 9387 return invalidParams 9388 } 9389 return nil 9390 } 9391 9392 // SetPriority sets the Priority field's value. 9393 func (s *StatelessRuleGroupReference) SetPriority(v int64) *StatelessRuleGroupReference { 9394 s.Priority = &v 9395 return s 9396 } 9397 9398 // SetResourceArn sets the ResourceArn field's value. 9399 func (s *StatelessRuleGroupReference) SetResourceArn(v string) *StatelessRuleGroupReference { 9400 s.ResourceArn = &v 9401 return s 9402 } 9403 9404 // Stateless inspection criteria. Each stateless rule group uses exactly one 9405 // of these data types to define its stateless rules. 9406 type StatelessRulesAndCustomActions struct { 9407 _ struct{} `type:"structure"` 9408 9409 // Defines an array of individual custom action definitions that are available 9410 // for use by the stateless rules in this StatelessRulesAndCustomActions specification. 9411 // You name each custom action that you define, and then you can use it by name 9412 // in your StatelessRule RuleDefinition Actions specification. 9413 CustomActions []*CustomAction `type:"list"` 9414 9415 // Defines the set of stateless rules for use in a stateless rule group. 9416 // 9417 // StatelessRules is a required field 9418 StatelessRules []*StatelessRule `type:"list" required:"true"` 9419 } 9420 9421 // String returns the string representation. 9422 // 9423 // API parameter values that are decorated as "sensitive" in the API will not 9424 // be included in the string output. The member name will be present, but the 9425 // value will be replaced with "sensitive". 9426 func (s StatelessRulesAndCustomActions) String() string { 9427 return awsutil.Prettify(s) 9428 } 9429 9430 // GoString returns the string representation. 9431 // 9432 // API parameter values that are decorated as "sensitive" in the API will not 9433 // be included in the string output. The member name will be present, but the 9434 // value will be replaced with "sensitive". 9435 func (s StatelessRulesAndCustomActions) GoString() string { 9436 return s.String() 9437 } 9438 9439 // Validate inspects the fields of the type to determine if they are valid. 9440 func (s *StatelessRulesAndCustomActions) Validate() error { 9441 invalidParams := request.ErrInvalidParams{Context: "StatelessRulesAndCustomActions"} 9442 if s.StatelessRules == nil { 9443 invalidParams.Add(request.NewErrParamRequired("StatelessRules")) 9444 } 9445 if s.CustomActions != nil { 9446 for i, v := range s.CustomActions { 9447 if v == nil { 9448 continue 9449 } 9450 if err := v.Validate(); err != nil { 9451 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomActions", i), err.(request.ErrInvalidParams)) 9452 } 9453 } 9454 } 9455 if s.StatelessRules != nil { 9456 for i, v := range s.StatelessRules { 9457 if v == nil { 9458 continue 9459 } 9460 if err := v.Validate(); err != nil { 9461 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StatelessRules", i), err.(request.ErrInvalidParams)) 9462 } 9463 } 9464 } 9465 9466 if invalidParams.Len() > 0 { 9467 return invalidParams 9468 } 9469 return nil 9470 } 9471 9472 // SetCustomActions sets the CustomActions field's value. 9473 func (s *StatelessRulesAndCustomActions) SetCustomActions(v []*CustomAction) *StatelessRulesAndCustomActions { 9474 s.CustomActions = v 9475 return s 9476 } 9477 9478 // SetStatelessRules sets the StatelessRules field's value. 9479 func (s *StatelessRulesAndCustomActions) SetStatelessRules(v []*StatelessRule) *StatelessRulesAndCustomActions { 9480 s.StatelessRules = v 9481 return s 9482 } 9483 9484 // The ID for a subnet that you want to associate with the firewall. This is 9485 // used with CreateFirewall and AssociateSubnets. AWS Network Firewall creates 9486 // an instance of the associated firewall in each subnet that you specify, to 9487 // filter traffic in the subnet's Availability Zone. 9488 type SubnetMapping struct { 9489 _ struct{} `type:"structure"` 9490 9491 // The unique identifier for the subnet. 9492 // 9493 // SubnetId is a required field 9494 SubnetId *string `type:"string" required:"true"` 9495 } 9496 9497 // String returns the string representation. 9498 // 9499 // API parameter values that are decorated as "sensitive" in the API will not 9500 // be included in the string output. The member name will be present, but the 9501 // value will be replaced with "sensitive". 9502 func (s SubnetMapping) String() string { 9503 return awsutil.Prettify(s) 9504 } 9505 9506 // GoString returns the string representation. 9507 // 9508 // API parameter values that are decorated as "sensitive" in the API will not 9509 // be included in the string output. The member name will be present, but the 9510 // value will be replaced with "sensitive". 9511 func (s SubnetMapping) GoString() string { 9512 return s.String() 9513 } 9514 9515 // Validate inspects the fields of the type to determine if they are valid. 9516 func (s *SubnetMapping) Validate() error { 9517 invalidParams := request.ErrInvalidParams{Context: "SubnetMapping"} 9518 if s.SubnetId == nil { 9519 invalidParams.Add(request.NewErrParamRequired("SubnetId")) 9520 } 9521 9522 if invalidParams.Len() > 0 { 9523 return invalidParams 9524 } 9525 return nil 9526 } 9527 9528 // SetSubnetId sets the SubnetId field's value. 9529 func (s *SubnetMapping) SetSubnetId(v string) *SubnetMapping { 9530 s.SubnetId = &v 9531 return s 9532 } 9533 9534 // The status of the firewall endpoint and firewall policy configuration for 9535 // a single VPC subnet. 9536 // 9537 // For each VPC subnet that you associate with a firewall, AWS Network Firewall 9538 // does the following: 9539 // 9540 // * Instantiates a firewall endpoint in the subnet, ready to take traffic. 9541 // 9542 // * Configures the endpoint with the current firewall policy settings, to 9543 // provide the filtering behavior for the endpoint. 9544 // 9545 // When you update a firewall, for example to add a subnet association or change 9546 // a rule group in the firewall policy, the affected sync states reflect out-of-sync 9547 // or not ready status until the changes are complete. 9548 type SyncState struct { 9549 _ struct{} `type:"structure"` 9550 9551 // The attachment status of the firewall's association with a single VPC subnet. 9552 // For each configured subnet, Network Firewall creates the attachment by instantiating 9553 // the firewall endpoint in the subnet so that it's ready to take traffic. This 9554 // is part of the FirewallStatus. 9555 Attachment *Attachment `type:"structure"` 9556 9557 // The configuration status of the firewall endpoint in a single VPC subnet. 9558 // Network Firewall provides each endpoint with the rules that are configured 9559 // in the firewall policy. Each time you add a subnet or modify the associated 9560 // firewall policy, Network Firewall synchronizes the rules in the endpoint, 9561 // so it can properly filter network traffic. This is part of the FirewallStatus. 9562 Config map[string]*PerObjectStatus `type:"map"` 9563 } 9564 9565 // String returns the string representation. 9566 // 9567 // API parameter values that are decorated as "sensitive" in the API will not 9568 // be included in the string output. The member name will be present, but the 9569 // value will be replaced with "sensitive". 9570 func (s SyncState) String() string { 9571 return awsutil.Prettify(s) 9572 } 9573 9574 // GoString returns the string representation. 9575 // 9576 // API parameter values that are decorated as "sensitive" in the API will not 9577 // be included in the string output. The member name will be present, but the 9578 // value will be replaced with "sensitive". 9579 func (s SyncState) GoString() string { 9580 return s.String() 9581 } 9582 9583 // SetAttachment sets the Attachment field's value. 9584 func (s *SyncState) SetAttachment(v *Attachment) *SyncState { 9585 s.Attachment = v 9586 return s 9587 } 9588 9589 // SetConfig sets the Config field's value. 9590 func (s *SyncState) SetConfig(v map[string]*PerObjectStatus) *SyncState { 9591 s.Config = v 9592 return s 9593 } 9594 9595 // TCP flags and masks to inspect packets for, used in stateless rules MatchAttributes 9596 // settings. 9597 type TCPFlagField struct { 9598 _ struct{} `type:"structure"` 9599 9600 // Used in conjunction with the Masks setting to define the flags that must 9601 // be set and flags that must not be set in order for the packet to match. This 9602 // setting can only specify values that are also specified in the Masks setting. 9603 // 9604 // For the flags that are specified in the masks setting, the following must 9605 // be true for the packet to match: 9606 // 9607 // * The ones that are set in this flags setting must be set in the packet. 9608 // 9609 // * The ones that are not set in this flags setting must also not be set 9610 // in the packet. 9611 // 9612 // Flags is a required field 9613 Flags []*string `type:"list" required:"true"` 9614 9615 // The set of flags to consider in the inspection. To inspect all flags in the 9616 // valid values list, leave this with no setting. 9617 Masks []*string `type:"list"` 9618 } 9619 9620 // String returns the string representation. 9621 // 9622 // API parameter values that are decorated as "sensitive" in the API will not 9623 // be included in the string output. The member name will be present, but the 9624 // value will be replaced with "sensitive". 9625 func (s TCPFlagField) String() string { 9626 return awsutil.Prettify(s) 9627 } 9628 9629 // GoString returns the string representation. 9630 // 9631 // API parameter values that are decorated as "sensitive" in the API will not 9632 // be included in the string output. The member name will be present, but the 9633 // value will be replaced with "sensitive". 9634 func (s TCPFlagField) GoString() string { 9635 return s.String() 9636 } 9637 9638 // Validate inspects the fields of the type to determine if they are valid. 9639 func (s *TCPFlagField) Validate() error { 9640 invalidParams := request.ErrInvalidParams{Context: "TCPFlagField"} 9641 if s.Flags == nil { 9642 invalidParams.Add(request.NewErrParamRequired("Flags")) 9643 } 9644 9645 if invalidParams.Len() > 0 { 9646 return invalidParams 9647 } 9648 return nil 9649 } 9650 9651 // SetFlags sets the Flags field's value. 9652 func (s *TCPFlagField) SetFlags(v []*string) *TCPFlagField { 9653 s.Flags = v 9654 return s 9655 } 9656 9657 // SetMasks sets the Masks field's value. 9658 func (s *TCPFlagField) SetMasks(v []*string) *TCPFlagField { 9659 s.Masks = v 9660 return s 9661 } 9662 9663 // A key:value pair associated with an AWS resource. The key:value pair can 9664 // be anything you define. Typically, the tag key represents a category (such 9665 // as "environment") and the tag value represents a specific value within that 9666 // category (such as "test," "development," or "production"). You can add up 9667 // to 50 tags to each AWS resource. 9668 type Tag struct { 9669 _ struct{} `type:"structure"` 9670 9671 // The part of the key:value pair that defines a tag. You can use a tag key 9672 // to describe a category of information, such as "customer." Tag keys are case-sensitive. 9673 // 9674 // Key is a required field 9675 Key *string `min:"1" type:"string" required:"true"` 9676 9677 // The part of the key:value pair that defines a tag. You can use a tag value 9678 // to describe a specific value within a category, such as "companyA" or "companyB." 9679 // Tag values are case-sensitive. 9680 // 9681 // Value is a required field 9682 Value *string `type:"string" required:"true"` 9683 } 9684 9685 // String returns the string representation. 9686 // 9687 // API parameter values that are decorated as "sensitive" in the API will not 9688 // be included in the string output. The member name will be present, but the 9689 // value will be replaced with "sensitive". 9690 func (s Tag) String() string { 9691 return awsutil.Prettify(s) 9692 } 9693 9694 // GoString returns the string representation. 9695 // 9696 // API parameter values that are decorated as "sensitive" in the API will not 9697 // be included in the string output. The member name will be present, but the 9698 // value will be replaced with "sensitive". 9699 func (s Tag) GoString() string { 9700 return s.String() 9701 } 9702 9703 // Validate inspects the fields of the type to determine if they are valid. 9704 func (s *Tag) Validate() error { 9705 invalidParams := request.ErrInvalidParams{Context: "Tag"} 9706 if s.Key == nil { 9707 invalidParams.Add(request.NewErrParamRequired("Key")) 9708 } 9709 if s.Key != nil && len(*s.Key) < 1 { 9710 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 9711 } 9712 if s.Value == nil { 9713 invalidParams.Add(request.NewErrParamRequired("Value")) 9714 } 9715 9716 if invalidParams.Len() > 0 { 9717 return invalidParams 9718 } 9719 return nil 9720 } 9721 9722 // SetKey sets the Key field's value. 9723 func (s *Tag) SetKey(v string) *Tag { 9724 s.Key = &v 9725 return s 9726 } 9727 9728 // SetValue sets the Value field's value. 9729 func (s *Tag) SetValue(v string) *Tag { 9730 s.Value = &v 9731 return s 9732 } 9733 9734 type TagResourceInput struct { 9735 _ struct{} `type:"structure"` 9736 9737 // The Amazon Resource Name (ARN) of the resource. 9738 // 9739 // ResourceArn is a required field 9740 ResourceArn *string `min:"1" type:"string" required:"true"` 9741 9742 // Tags is a required field 9743 Tags []*Tag `min:"1" type:"list" required:"true"` 9744 } 9745 9746 // String returns the string representation. 9747 // 9748 // API parameter values that are decorated as "sensitive" in the API will not 9749 // be included in the string output. The member name will be present, but the 9750 // value will be replaced with "sensitive". 9751 func (s TagResourceInput) String() string { 9752 return awsutil.Prettify(s) 9753 } 9754 9755 // GoString returns the string representation. 9756 // 9757 // API parameter values that are decorated as "sensitive" in the API will not 9758 // be included in the string output. The member name will be present, but the 9759 // value will be replaced with "sensitive". 9760 func (s TagResourceInput) GoString() string { 9761 return s.String() 9762 } 9763 9764 // Validate inspects the fields of the type to determine if they are valid. 9765 func (s *TagResourceInput) Validate() error { 9766 invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} 9767 if s.ResourceArn == nil { 9768 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 9769 } 9770 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 9771 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 9772 } 9773 if s.Tags == nil { 9774 invalidParams.Add(request.NewErrParamRequired("Tags")) 9775 } 9776 if s.Tags != nil && len(s.Tags) < 1 { 9777 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 9778 } 9779 if s.Tags != nil { 9780 for i, v := range s.Tags { 9781 if v == nil { 9782 continue 9783 } 9784 if err := v.Validate(); err != nil { 9785 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 9786 } 9787 } 9788 } 9789 9790 if invalidParams.Len() > 0 { 9791 return invalidParams 9792 } 9793 return nil 9794 } 9795 9796 // SetResourceArn sets the ResourceArn field's value. 9797 func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { 9798 s.ResourceArn = &v 9799 return s 9800 } 9801 9802 // SetTags sets the Tags field's value. 9803 func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { 9804 s.Tags = v 9805 return s 9806 } 9807 9808 type TagResourceOutput struct { 9809 _ struct{} `type:"structure"` 9810 } 9811 9812 // String returns the string representation. 9813 // 9814 // API parameter values that are decorated as "sensitive" in the API will not 9815 // be included in the string output. The member name will be present, but the 9816 // value will be replaced with "sensitive". 9817 func (s TagResourceOutput) String() string { 9818 return awsutil.Prettify(s) 9819 } 9820 9821 // GoString returns the string representation. 9822 // 9823 // API parameter values that are decorated as "sensitive" in the API will not 9824 // be included in the string output. The member name will be present, but the 9825 // value will be replaced with "sensitive". 9826 func (s TagResourceOutput) GoString() string { 9827 return s.String() 9828 } 9829 9830 // Unable to process the request due to throttling limitations. 9831 type ThrottlingException struct { 9832 _ struct{} `type:"structure"` 9833 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 9834 9835 Message_ *string `locationName:"Message" type:"string"` 9836 } 9837 9838 // String returns the string representation. 9839 // 9840 // API parameter values that are decorated as "sensitive" in the API will not 9841 // be included in the string output. The member name will be present, but the 9842 // value will be replaced with "sensitive". 9843 func (s ThrottlingException) String() string { 9844 return awsutil.Prettify(s) 9845 } 9846 9847 // GoString returns the string representation. 9848 // 9849 // API parameter values that are decorated as "sensitive" in the API will not 9850 // be included in the string output. The member name will be present, but the 9851 // value will be replaced with "sensitive". 9852 func (s ThrottlingException) GoString() string { 9853 return s.String() 9854 } 9855 9856 func newErrorThrottlingException(v protocol.ResponseMetadata) error { 9857 return &ThrottlingException{ 9858 RespMetadata: v, 9859 } 9860 } 9861 9862 // Code returns the exception type name. 9863 func (s *ThrottlingException) Code() string { 9864 return "ThrottlingException" 9865 } 9866 9867 // Message returns the exception's message. 9868 func (s *ThrottlingException) Message() string { 9869 if s.Message_ != nil { 9870 return *s.Message_ 9871 } 9872 return "" 9873 } 9874 9875 // OrigErr always returns nil, satisfies awserr.Error interface. 9876 func (s *ThrottlingException) OrigErr() error { 9877 return nil 9878 } 9879 9880 func (s *ThrottlingException) Error() string { 9881 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 9882 } 9883 9884 // Status code returns the HTTP status code for the request's response error. 9885 func (s *ThrottlingException) StatusCode() int { 9886 return s.RespMetadata.StatusCode 9887 } 9888 9889 // RequestID returns the service's response RequestID for request. 9890 func (s *ThrottlingException) RequestID() string { 9891 return s.RespMetadata.RequestID 9892 } 9893 9894 // The operation you requested isn't supported by Network Firewall. 9895 type UnsupportedOperationException struct { 9896 _ struct{} `type:"structure"` 9897 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 9898 9899 Message_ *string `locationName:"Message" type:"string"` 9900 } 9901 9902 // String returns the string representation. 9903 // 9904 // API parameter values that are decorated as "sensitive" in the API will not 9905 // be included in the string output. The member name will be present, but the 9906 // value will be replaced with "sensitive". 9907 func (s UnsupportedOperationException) String() string { 9908 return awsutil.Prettify(s) 9909 } 9910 9911 // GoString returns the string representation. 9912 // 9913 // API parameter values that are decorated as "sensitive" in the API will not 9914 // be included in the string output. The member name will be present, but the 9915 // value will be replaced with "sensitive". 9916 func (s UnsupportedOperationException) GoString() string { 9917 return s.String() 9918 } 9919 9920 func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error { 9921 return &UnsupportedOperationException{ 9922 RespMetadata: v, 9923 } 9924 } 9925 9926 // Code returns the exception type name. 9927 func (s *UnsupportedOperationException) Code() string { 9928 return "UnsupportedOperationException" 9929 } 9930 9931 // Message returns the exception's message. 9932 func (s *UnsupportedOperationException) Message() string { 9933 if s.Message_ != nil { 9934 return *s.Message_ 9935 } 9936 return "" 9937 } 9938 9939 // OrigErr always returns nil, satisfies awserr.Error interface. 9940 func (s *UnsupportedOperationException) OrigErr() error { 9941 return nil 9942 } 9943 9944 func (s *UnsupportedOperationException) Error() string { 9945 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 9946 } 9947 9948 // Status code returns the HTTP status code for the request's response error. 9949 func (s *UnsupportedOperationException) StatusCode() int { 9950 return s.RespMetadata.StatusCode 9951 } 9952 9953 // RequestID returns the service's response RequestID for request. 9954 func (s *UnsupportedOperationException) RequestID() string { 9955 return s.RespMetadata.RequestID 9956 } 9957 9958 type UntagResourceInput struct { 9959 _ struct{} `type:"structure"` 9960 9961 // The Amazon Resource Name (ARN) of the resource. 9962 // 9963 // ResourceArn is a required field 9964 ResourceArn *string `min:"1" type:"string" required:"true"` 9965 9966 // TagKeys is a required field 9967 TagKeys []*string `min:"1" type:"list" required:"true"` 9968 } 9969 9970 // String returns the string representation. 9971 // 9972 // API parameter values that are decorated as "sensitive" in the API will not 9973 // be included in the string output. The member name will be present, but the 9974 // value will be replaced with "sensitive". 9975 func (s UntagResourceInput) String() string { 9976 return awsutil.Prettify(s) 9977 } 9978 9979 // GoString returns the string representation. 9980 // 9981 // API parameter values that are decorated as "sensitive" in the API will not 9982 // be included in the string output. The member name will be present, but the 9983 // value will be replaced with "sensitive". 9984 func (s UntagResourceInput) GoString() string { 9985 return s.String() 9986 } 9987 9988 // Validate inspects the fields of the type to determine if they are valid. 9989 func (s *UntagResourceInput) Validate() error { 9990 invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} 9991 if s.ResourceArn == nil { 9992 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 9993 } 9994 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 9995 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 9996 } 9997 if s.TagKeys == nil { 9998 invalidParams.Add(request.NewErrParamRequired("TagKeys")) 9999 } 10000 if s.TagKeys != nil && len(s.TagKeys) < 1 { 10001 invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1)) 10002 } 10003 10004 if invalidParams.Len() > 0 { 10005 return invalidParams 10006 } 10007 return nil 10008 } 10009 10010 // SetResourceArn sets the ResourceArn field's value. 10011 func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { 10012 s.ResourceArn = &v 10013 return s 10014 } 10015 10016 // SetTagKeys sets the TagKeys field's value. 10017 func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { 10018 s.TagKeys = v 10019 return s 10020 } 10021 10022 type UntagResourceOutput struct { 10023 _ struct{} `type:"structure"` 10024 } 10025 10026 // String returns the string representation. 10027 // 10028 // API parameter values that are decorated as "sensitive" in the API will not 10029 // be included in the string output. The member name will be present, but the 10030 // value will be replaced with "sensitive". 10031 func (s UntagResourceOutput) String() string { 10032 return awsutil.Prettify(s) 10033 } 10034 10035 // GoString returns the string representation. 10036 // 10037 // API parameter values that are decorated as "sensitive" in the API will not 10038 // be included in the string output. The member name will be present, but the 10039 // value will be replaced with "sensitive". 10040 func (s UntagResourceOutput) GoString() string { 10041 return s.String() 10042 } 10043 10044 type UpdateFirewallDeleteProtectionInput struct { 10045 _ struct{} `type:"structure"` 10046 10047 // A flag indicating whether it is possible to delete the firewall. A setting 10048 // of TRUE indicates that the firewall is protected against deletion. Use this 10049 // setting to protect against accidentally deleting a firewall that is in use. 10050 // When you create a firewall, the operation initializes this flag to TRUE. 10051 // 10052 // DeleteProtection is a required field 10053 DeleteProtection *bool `type:"boolean" required:"true"` 10054 10055 // The Amazon Resource Name (ARN) of the firewall. 10056 // 10057 // You must specify the ARN or the name, and you can specify both. 10058 FirewallArn *string `min:"1" type:"string"` 10059 10060 // The descriptive name of the firewall. You can't change the name of a firewall 10061 // after you create it. 10062 // 10063 // You must specify the ARN or the name, and you can specify both. 10064 FirewallName *string `min:"1" type:"string"` 10065 10066 // An optional token that you can use for optimistic locking. Network Firewall 10067 // returns a token to your requests that access the firewall. The token marks 10068 // the state of the firewall resource at the time of the request. 10069 // 10070 // To make an unconditional change to the firewall, omit the token in your update 10071 // request. Without the token, Network Firewall performs your updates regardless 10072 // of whether the firewall has changed since you last retrieved it. 10073 // 10074 // To make a conditional change to the firewall, provide the token in your update 10075 // request. Network Firewall uses the token to ensure that the firewall hasn't 10076 // changed since you last retrieved it. If it has changed, the operation fails 10077 // with an InvalidTokenException. If this happens, retrieve the firewall again 10078 // to get a current copy of it with a new token. Reapply your changes as needed, 10079 // then try the operation again using the new token. 10080 UpdateToken *string `min:"1" type:"string"` 10081 } 10082 10083 // String returns the string representation. 10084 // 10085 // API parameter values that are decorated as "sensitive" in the API will not 10086 // be included in the string output. The member name will be present, but the 10087 // value will be replaced with "sensitive". 10088 func (s UpdateFirewallDeleteProtectionInput) String() string { 10089 return awsutil.Prettify(s) 10090 } 10091 10092 // GoString returns the string representation. 10093 // 10094 // API parameter values that are decorated as "sensitive" in the API will not 10095 // be included in the string output. The member name will be present, but the 10096 // value will be replaced with "sensitive". 10097 func (s UpdateFirewallDeleteProtectionInput) GoString() string { 10098 return s.String() 10099 } 10100 10101 // Validate inspects the fields of the type to determine if they are valid. 10102 func (s *UpdateFirewallDeleteProtectionInput) Validate() error { 10103 invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallDeleteProtectionInput"} 10104 if s.DeleteProtection == nil { 10105 invalidParams.Add(request.NewErrParamRequired("DeleteProtection")) 10106 } 10107 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 10108 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 10109 } 10110 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 10111 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 10112 } 10113 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 10114 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 10115 } 10116 10117 if invalidParams.Len() > 0 { 10118 return invalidParams 10119 } 10120 return nil 10121 } 10122 10123 // SetDeleteProtection sets the DeleteProtection field's value. 10124 func (s *UpdateFirewallDeleteProtectionInput) SetDeleteProtection(v bool) *UpdateFirewallDeleteProtectionInput { 10125 s.DeleteProtection = &v 10126 return s 10127 } 10128 10129 // SetFirewallArn sets the FirewallArn field's value. 10130 func (s *UpdateFirewallDeleteProtectionInput) SetFirewallArn(v string) *UpdateFirewallDeleteProtectionInput { 10131 s.FirewallArn = &v 10132 return s 10133 } 10134 10135 // SetFirewallName sets the FirewallName field's value. 10136 func (s *UpdateFirewallDeleteProtectionInput) SetFirewallName(v string) *UpdateFirewallDeleteProtectionInput { 10137 s.FirewallName = &v 10138 return s 10139 } 10140 10141 // SetUpdateToken sets the UpdateToken field's value. 10142 func (s *UpdateFirewallDeleteProtectionInput) SetUpdateToken(v string) *UpdateFirewallDeleteProtectionInput { 10143 s.UpdateToken = &v 10144 return s 10145 } 10146 10147 type UpdateFirewallDeleteProtectionOutput struct { 10148 _ struct{} `type:"structure"` 10149 10150 DeleteProtection *bool `type:"boolean"` 10151 10152 // The Amazon Resource Name (ARN) of the firewall. 10153 FirewallArn *string `min:"1" type:"string"` 10154 10155 // The descriptive name of the firewall. You can't change the name of a firewall 10156 // after you create it. 10157 FirewallName *string `min:"1" type:"string"` 10158 10159 // An optional token that you can use for optimistic locking. Network Firewall 10160 // returns a token to your requests that access the firewall. The token marks 10161 // the state of the firewall resource at the time of the request. 10162 // 10163 // To make an unconditional change to the firewall, omit the token in your update 10164 // request. Without the token, Network Firewall performs your updates regardless 10165 // of whether the firewall has changed since you last retrieved it. 10166 // 10167 // To make a conditional change to the firewall, provide the token in your update 10168 // request. Network Firewall uses the token to ensure that the firewall hasn't 10169 // changed since you last retrieved it. If it has changed, the operation fails 10170 // with an InvalidTokenException. If this happens, retrieve the firewall again 10171 // to get a current copy of it with a new token. Reapply your changes as needed, 10172 // then try the operation again using the new token. 10173 UpdateToken *string `min:"1" type:"string"` 10174 } 10175 10176 // String returns the string representation. 10177 // 10178 // API parameter values that are decorated as "sensitive" in the API will not 10179 // be included in the string output. The member name will be present, but the 10180 // value will be replaced with "sensitive". 10181 func (s UpdateFirewallDeleteProtectionOutput) String() string { 10182 return awsutil.Prettify(s) 10183 } 10184 10185 // GoString returns the string representation. 10186 // 10187 // API parameter values that are decorated as "sensitive" in the API will not 10188 // be included in the string output. The member name will be present, but the 10189 // value will be replaced with "sensitive". 10190 func (s UpdateFirewallDeleteProtectionOutput) GoString() string { 10191 return s.String() 10192 } 10193 10194 // SetDeleteProtection sets the DeleteProtection field's value. 10195 func (s *UpdateFirewallDeleteProtectionOutput) SetDeleteProtection(v bool) *UpdateFirewallDeleteProtectionOutput { 10196 s.DeleteProtection = &v 10197 return s 10198 } 10199 10200 // SetFirewallArn sets the FirewallArn field's value. 10201 func (s *UpdateFirewallDeleteProtectionOutput) SetFirewallArn(v string) *UpdateFirewallDeleteProtectionOutput { 10202 s.FirewallArn = &v 10203 return s 10204 } 10205 10206 // SetFirewallName sets the FirewallName field's value. 10207 func (s *UpdateFirewallDeleteProtectionOutput) SetFirewallName(v string) *UpdateFirewallDeleteProtectionOutput { 10208 s.FirewallName = &v 10209 return s 10210 } 10211 10212 // SetUpdateToken sets the UpdateToken field's value. 10213 func (s *UpdateFirewallDeleteProtectionOutput) SetUpdateToken(v string) *UpdateFirewallDeleteProtectionOutput { 10214 s.UpdateToken = &v 10215 return s 10216 } 10217 10218 type UpdateFirewallDescriptionInput struct { 10219 _ struct{} `type:"structure"` 10220 10221 // The new description for the firewall. If you omit this setting, Network Firewall 10222 // removes the description for the firewall. 10223 Description *string `type:"string"` 10224 10225 // The Amazon Resource Name (ARN) of the firewall. 10226 // 10227 // You must specify the ARN or the name, and you can specify both. 10228 FirewallArn *string `min:"1" type:"string"` 10229 10230 // The descriptive name of the firewall. You can't change the name of a firewall 10231 // after you create it. 10232 // 10233 // You must specify the ARN or the name, and you can specify both. 10234 FirewallName *string `min:"1" type:"string"` 10235 10236 // An optional token that you can use for optimistic locking. Network Firewall 10237 // returns a token to your requests that access the firewall. The token marks 10238 // the state of the firewall resource at the time of the request. 10239 // 10240 // To make an unconditional change to the firewall, omit the token in your update 10241 // request. Without the token, Network Firewall performs your updates regardless 10242 // of whether the firewall has changed since you last retrieved it. 10243 // 10244 // To make a conditional change to the firewall, provide the token in your update 10245 // request. Network Firewall uses the token to ensure that the firewall hasn't 10246 // changed since you last retrieved it. If it has changed, the operation fails 10247 // with an InvalidTokenException. If this happens, retrieve the firewall again 10248 // to get a current copy of it with a new token. Reapply your changes as needed, 10249 // then try the operation again using the new token. 10250 UpdateToken *string `min:"1" type:"string"` 10251 } 10252 10253 // String returns the string representation. 10254 // 10255 // API parameter values that are decorated as "sensitive" in the API will not 10256 // be included in the string output. The member name will be present, but the 10257 // value will be replaced with "sensitive". 10258 func (s UpdateFirewallDescriptionInput) String() string { 10259 return awsutil.Prettify(s) 10260 } 10261 10262 // GoString returns the string representation. 10263 // 10264 // API parameter values that are decorated as "sensitive" in the API will not 10265 // be included in the string output. The member name will be present, but the 10266 // value will be replaced with "sensitive". 10267 func (s UpdateFirewallDescriptionInput) GoString() string { 10268 return s.String() 10269 } 10270 10271 // Validate inspects the fields of the type to determine if they are valid. 10272 func (s *UpdateFirewallDescriptionInput) Validate() error { 10273 invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallDescriptionInput"} 10274 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 10275 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 10276 } 10277 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 10278 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 10279 } 10280 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 10281 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 10282 } 10283 10284 if invalidParams.Len() > 0 { 10285 return invalidParams 10286 } 10287 return nil 10288 } 10289 10290 // SetDescription sets the Description field's value. 10291 func (s *UpdateFirewallDescriptionInput) SetDescription(v string) *UpdateFirewallDescriptionInput { 10292 s.Description = &v 10293 return s 10294 } 10295 10296 // SetFirewallArn sets the FirewallArn field's value. 10297 func (s *UpdateFirewallDescriptionInput) SetFirewallArn(v string) *UpdateFirewallDescriptionInput { 10298 s.FirewallArn = &v 10299 return s 10300 } 10301 10302 // SetFirewallName sets the FirewallName field's value. 10303 func (s *UpdateFirewallDescriptionInput) SetFirewallName(v string) *UpdateFirewallDescriptionInput { 10304 s.FirewallName = &v 10305 return s 10306 } 10307 10308 // SetUpdateToken sets the UpdateToken field's value. 10309 func (s *UpdateFirewallDescriptionInput) SetUpdateToken(v string) *UpdateFirewallDescriptionInput { 10310 s.UpdateToken = &v 10311 return s 10312 } 10313 10314 type UpdateFirewallDescriptionOutput struct { 10315 _ struct{} `type:"structure"` 10316 10317 // A description of the firewall. 10318 Description *string `type:"string"` 10319 10320 // The Amazon Resource Name (ARN) of the firewall. 10321 FirewallArn *string `min:"1" type:"string"` 10322 10323 // The descriptive name of the firewall. You can't change the name of a firewall 10324 // after you create it. 10325 FirewallName *string `min:"1" type:"string"` 10326 10327 // An optional token that you can use for optimistic locking. Network Firewall 10328 // returns a token to your requests that access the firewall. The token marks 10329 // the state of the firewall resource at the time of the request. 10330 // 10331 // To make an unconditional change to the firewall, omit the token in your update 10332 // request. Without the token, Network Firewall performs your updates regardless 10333 // of whether the firewall has changed since you last retrieved it. 10334 // 10335 // To make a conditional change to the firewall, provide the token in your update 10336 // request. Network Firewall uses the token to ensure that the firewall hasn't 10337 // changed since you last retrieved it. If it has changed, the operation fails 10338 // with an InvalidTokenException. If this happens, retrieve the firewall again 10339 // to get a current copy of it with a new token. Reapply your changes as needed, 10340 // then try the operation again using the new token. 10341 UpdateToken *string `min:"1" type:"string"` 10342 } 10343 10344 // String returns the string representation. 10345 // 10346 // API parameter values that are decorated as "sensitive" in the API will not 10347 // be included in the string output. The member name will be present, but the 10348 // value will be replaced with "sensitive". 10349 func (s UpdateFirewallDescriptionOutput) String() string { 10350 return awsutil.Prettify(s) 10351 } 10352 10353 // GoString returns the string representation. 10354 // 10355 // API parameter values that are decorated as "sensitive" in the API will not 10356 // be included in the string output. The member name will be present, but the 10357 // value will be replaced with "sensitive". 10358 func (s UpdateFirewallDescriptionOutput) GoString() string { 10359 return s.String() 10360 } 10361 10362 // SetDescription sets the Description field's value. 10363 func (s *UpdateFirewallDescriptionOutput) SetDescription(v string) *UpdateFirewallDescriptionOutput { 10364 s.Description = &v 10365 return s 10366 } 10367 10368 // SetFirewallArn sets the FirewallArn field's value. 10369 func (s *UpdateFirewallDescriptionOutput) SetFirewallArn(v string) *UpdateFirewallDescriptionOutput { 10370 s.FirewallArn = &v 10371 return s 10372 } 10373 10374 // SetFirewallName sets the FirewallName field's value. 10375 func (s *UpdateFirewallDescriptionOutput) SetFirewallName(v string) *UpdateFirewallDescriptionOutput { 10376 s.FirewallName = &v 10377 return s 10378 } 10379 10380 // SetUpdateToken sets the UpdateToken field's value. 10381 func (s *UpdateFirewallDescriptionOutput) SetUpdateToken(v string) *UpdateFirewallDescriptionOutput { 10382 s.UpdateToken = &v 10383 return s 10384 } 10385 10386 type UpdateFirewallPolicyChangeProtectionInput struct { 10387 _ struct{} `type:"structure"` 10388 10389 // The Amazon Resource Name (ARN) of the firewall. 10390 // 10391 // You must specify the ARN or the name, and you can specify both. 10392 FirewallArn *string `min:"1" type:"string"` 10393 10394 // The descriptive name of the firewall. You can't change the name of a firewall 10395 // after you create it. 10396 // 10397 // You must specify the ARN or the name, and you can specify both. 10398 FirewallName *string `min:"1" type:"string"` 10399 10400 // A setting indicating whether the firewall is protected against a change to 10401 // the firewall policy association. Use this setting to protect against accidentally 10402 // modifying the firewall policy for a firewall that is in use. When you create 10403 // a firewall, the operation initializes this setting to TRUE. 10404 // 10405 // FirewallPolicyChangeProtection is a required field 10406 FirewallPolicyChangeProtection *bool `type:"boolean" required:"true"` 10407 10408 // An optional token that you can use for optimistic locking. Network Firewall 10409 // returns a token to your requests that access the firewall. The token marks 10410 // the state of the firewall resource at the time of the request. 10411 // 10412 // To make an unconditional change to the firewall, omit the token in your update 10413 // request. Without the token, Network Firewall performs your updates regardless 10414 // of whether the firewall has changed since you last retrieved it. 10415 // 10416 // To make a conditional change to the firewall, provide the token in your update 10417 // request. Network Firewall uses the token to ensure that the firewall hasn't 10418 // changed since you last retrieved it. If it has changed, the operation fails 10419 // with an InvalidTokenException. If this happens, retrieve the firewall again 10420 // to get a current copy of it with a new token. Reapply your changes as needed, 10421 // then try the operation again using the new token. 10422 UpdateToken *string `min:"1" type:"string"` 10423 } 10424 10425 // String returns the string representation. 10426 // 10427 // API parameter values that are decorated as "sensitive" in the API will not 10428 // be included in the string output. The member name will be present, but the 10429 // value will be replaced with "sensitive". 10430 func (s UpdateFirewallPolicyChangeProtectionInput) String() string { 10431 return awsutil.Prettify(s) 10432 } 10433 10434 // GoString returns the string representation. 10435 // 10436 // API parameter values that are decorated as "sensitive" in the API will not 10437 // be included in the string output. The member name will be present, but the 10438 // value will be replaced with "sensitive". 10439 func (s UpdateFirewallPolicyChangeProtectionInput) GoString() string { 10440 return s.String() 10441 } 10442 10443 // Validate inspects the fields of the type to determine if they are valid. 10444 func (s *UpdateFirewallPolicyChangeProtectionInput) Validate() error { 10445 invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallPolicyChangeProtectionInput"} 10446 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 10447 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 10448 } 10449 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 10450 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 10451 } 10452 if s.FirewallPolicyChangeProtection == nil { 10453 invalidParams.Add(request.NewErrParamRequired("FirewallPolicyChangeProtection")) 10454 } 10455 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 10456 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 10457 } 10458 10459 if invalidParams.Len() > 0 { 10460 return invalidParams 10461 } 10462 return nil 10463 } 10464 10465 // SetFirewallArn sets the FirewallArn field's value. 10466 func (s *UpdateFirewallPolicyChangeProtectionInput) SetFirewallArn(v string) *UpdateFirewallPolicyChangeProtectionInput { 10467 s.FirewallArn = &v 10468 return s 10469 } 10470 10471 // SetFirewallName sets the FirewallName field's value. 10472 func (s *UpdateFirewallPolicyChangeProtectionInput) SetFirewallName(v string) *UpdateFirewallPolicyChangeProtectionInput { 10473 s.FirewallName = &v 10474 return s 10475 } 10476 10477 // SetFirewallPolicyChangeProtection sets the FirewallPolicyChangeProtection field's value. 10478 func (s *UpdateFirewallPolicyChangeProtectionInput) SetFirewallPolicyChangeProtection(v bool) *UpdateFirewallPolicyChangeProtectionInput { 10479 s.FirewallPolicyChangeProtection = &v 10480 return s 10481 } 10482 10483 // SetUpdateToken sets the UpdateToken field's value. 10484 func (s *UpdateFirewallPolicyChangeProtectionInput) SetUpdateToken(v string) *UpdateFirewallPolicyChangeProtectionInput { 10485 s.UpdateToken = &v 10486 return s 10487 } 10488 10489 type UpdateFirewallPolicyChangeProtectionOutput struct { 10490 _ struct{} `type:"structure"` 10491 10492 // The Amazon Resource Name (ARN) of the firewall. 10493 FirewallArn *string `min:"1" type:"string"` 10494 10495 // The descriptive name of the firewall. You can't change the name of a firewall 10496 // after you create it. 10497 FirewallName *string `min:"1" type:"string"` 10498 10499 // A setting indicating whether the firewall is protected against a change to 10500 // the firewall policy association. Use this setting to protect against accidentally 10501 // modifying the firewall policy for a firewall that is in use. When you create 10502 // a firewall, the operation initializes this setting to TRUE. 10503 FirewallPolicyChangeProtection *bool `type:"boolean"` 10504 10505 // An optional token that you can use for optimistic locking. Network Firewall 10506 // returns a token to your requests that access the firewall. The token marks 10507 // the state of the firewall resource at the time of the request. 10508 // 10509 // To make an unconditional change to the firewall, omit the token in your update 10510 // request. Without the token, Network Firewall performs your updates regardless 10511 // of whether the firewall has changed since you last retrieved it. 10512 // 10513 // To make a conditional change to the firewall, provide the token in your update 10514 // request. Network Firewall uses the token to ensure that the firewall hasn't 10515 // changed since you last retrieved it. If it has changed, the operation fails 10516 // with an InvalidTokenException. If this happens, retrieve the firewall again 10517 // to get a current copy of it with a new token. Reapply your changes as needed, 10518 // then try the operation again using the new token. 10519 UpdateToken *string `min:"1" type:"string"` 10520 } 10521 10522 // String returns the string representation. 10523 // 10524 // API parameter values that are decorated as "sensitive" in the API will not 10525 // be included in the string output. The member name will be present, but the 10526 // value will be replaced with "sensitive". 10527 func (s UpdateFirewallPolicyChangeProtectionOutput) String() string { 10528 return awsutil.Prettify(s) 10529 } 10530 10531 // GoString returns the string representation. 10532 // 10533 // API parameter values that are decorated as "sensitive" in the API will not 10534 // be included in the string output. The member name will be present, but the 10535 // value will be replaced with "sensitive". 10536 func (s UpdateFirewallPolicyChangeProtectionOutput) GoString() string { 10537 return s.String() 10538 } 10539 10540 // SetFirewallArn sets the FirewallArn field's value. 10541 func (s *UpdateFirewallPolicyChangeProtectionOutput) SetFirewallArn(v string) *UpdateFirewallPolicyChangeProtectionOutput { 10542 s.FirewallArn = &v 10543 return s 10544 } 10545 10546 // SetFirewallName sets the FirewallName field's value. 10547 func (s *UpdateFirewallPolicyChangeProtectionOutput) SetFirewallName(v string) *UpdateFirewallPolicyChangeProtectionOutput { 10548 s.FirewallName = &v 10549 return s 10550 } 10551 10552 // SetFirewallPolicyChangeProtection sets the FirewallPolicyChangeProtection field's value. 10553 func (s *UpdateFirewallPolicyChangeProtectionOutput) SetFirewallPolicyChangeProtection(v bool) *UpdateFirewallPolicyChangeProtectionOutput { 10554 s.FirewallPolicyChangeProtection = &v 10555 return s 10556 } 10557 10558 // SetUpdateToken sets the UpdateToken field's value. 10559 func (s *UpdateFirewallPolicyChangeProtectionOutput) SetUpdateToken(v string) *UpdateFirewallPolicyChangeProtectionOutput { 10560 s.UpdateToken = &v 10561 return s 10562 } 10563 10564 type UpdateFirewallPolicyInput struct { 10565 _ struct{} `type:"structure"` 10566 10567 // A description of the firewall policy. 10568 Description *string `type:"string"` 10569 10570 // Indicates whether you want Network Firewall to just check the validity of 10571 // the request, rather than run the request. 10572 // 10573 // If set to TRUE, Network Firewall checks whether the request can run successfully, 10574 // but doesn't actually make the requested changes. The call returns the value 10575 // that the request would return if you ran it with dry run set to FALSE, but 10576 // doesn't make additions or changes to your resources. This option allows you 10577 // to make sure that you have the required permissions to run the request and 10578 // that your request parameters are valid. 10579 // 10580 // If set to FALSE, Network Firewall makes the requested changes to your resources. 10581 DryRun *bool `type:"boolean"` 10582 10583 // The updated firewall policy to use for the firewall. 10584 // 10585 // FirewallPolicy is a required field 10586 FirewallPolicy *FirewallPolicy `type:"structure" required:"true"` 10587 10588 // The Amazon Resource Name (ARN) of the firewall policy. 10589 // 10590 // You must specify the ARN or the name, and you can specify both. 10591 FirewallPolicyArn *string `min:"1" type:"string"` 10592 10593 // The descriptive name of the firewall policy. You can't change the name of 10594 // a firewall policy after you create it. 10595 // 10596 // You must specify the ARN or the name, and you can specify both. 10597 FirewallPolicyName *string `min:"1" type:"string"` 10598 10599 // A token used for optimistic locking. Network Firewall returns a token to 10600 // your requests that access the firewall policy. The token marks the state 10601 // of the policy resource at the time of the request. 10602 // 10603 // To make changes to the policy, you provide the token in your request. Network 10604 // Firewall uses the token to ensure that the policy hasn't changed since you 10605 // last retrieved it. If it has changed, the operation fails with an InvalidTokenException. 10606 // If this happens, retrieve the firewall policy again to get a current copy 10607 // of it with current token. Reapply your changes as needed, then try the operation 10608 // again using the new token. 10609 // 10610 // UpdateToken is a required field 10611 UpdateToken *string `min:"1" type:"string" required:"true"` 10612 } 10613 10614 // String returns the string representation. 10615 // 10616 // API parameter values that are decorated as "sensitive" in the API will not 10617 // be included in the string output. The member name will be present, but the 10618 // value will be replaced with "sensitive". 10619 func (s UpdateFirewallPolicyInput) String() string { 10620 return awsutil.Prettify(s) 10621 } 10622 10623 // GoString returns the string representation. 10624 // 10625 // API parameter values that are decorated as "sensitive" in the API will not 10626 // be included in the string output. The member name will be present, but the 10627 // value will be replaced with "sensitive". 10628 func (s UpdateFirewallPolicyInput) GoString() string { 10629 return s.String() 10630 } 10631 10632 // Validate inspects the fields of the type to determine if they are valid. 10633 func (s *UpdateFirewallPolicyInput) Validate() error { 10634 invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallPolicyInput"} 10635 if s.FirewallPolicy == nil { 10636 invalidParams.Add(request.NewErrParamRequired("FirewallPolicy")) 10637 } 10638 if s.FirewallPolicyArn != nil && len(*s.FirewallPolicyArn) < 1 { 10639 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyArn", 1)) 10640 } 10641 if s.FirewallPolicyName != nil && len(*s.FirewallPolicyName) < 1 { 10642 invalidParams.Add(request.NewErrParamMinLen("FirewallPolicyName", 1)) 10643 } 10644 if s.UpdateToken == nil { 10645 invalidParams.Add(request.NewErrParamRequired("UpdateToken")) 10646 } 10647 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 10648 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 10649 } 10650 if s.FirewallPolicy != nil { 10651 if err := s.FirewallPolicy.Validate(); err != nil { 10652 invalidParams.AddNested("FirewallPolicy", err.(request.ErrInvalidParams)) 10653 } 10654 } 10655 10656 if invalidParams.Len() > 0 { 10657 return invalidParams 10658 } 10659 return nil 10660 } 10661 10662 // SetDescription sets the Description field's value. 10663 func (s *UpdateFirewallPolicyInput) SetDescription(v string) *UpdateFirewallPolicyInput { 10664 s.Description = &v 10665 return s 10666 } 10667 10668 // SetDryRun sets the DryRun field's value. 10669 func (s *UpdateFirewallPolicyInput) SetDryRun(v bool) *UpdateFirewallPolicyInput { 10670 s.DryRun = &v 10671 return s 10672 } 10673 10674 // SetFirewallPolicy sets the FirewallPolicy field's value. 10675 func (s *UpdateFirewallPolicyInput) SetFirewallPolicy(v *FirewallPolicy) *UpdateFirewallPolicyInput { 10676 s.FirewallPolicy = v 10677 return s 10678 } 10679 10680 // SetFirewallPolicyArn sets the FirewallPolicyArn field's value. 10681 func (s *UpdateFirewallPolicyInput) SetFirewallPolicyArn(v string) *UpdateFirewallPolicyInput { 10682 s.FirewallPolicyArn = &v 10683 return s 10684 } 10685 10686 // SetFirewallPolicyName sets the FirewallPolicyName field's value. 10687 func (s *UpdateFirewallPolicyInput) SetFirewallPolicyName(v string) *UpdateFirewallPolicyInput { 10688 s.FirewallPolicyName = &v 10689 return s 10690 } 10691 10692 // SetUpdateToken sets the UpdateToken field's value. 10693 func (s *UpdateFirewallPolicyInput) SetUpdateToken(v string) *UpdateFirewallPolicyInput { 10694 s.UpdateToken = &v 10695 return s 10696 } 10697 10698 type UpdateFirewallPolicyOutput struct { 10699 _ struct{} `type:"structure"` 10700 10701 // The high-level properties of a firewall policy. This, along with the FirewallPolicy, 10702 // define the policy. You can retrieve all objects for a firewall policy by 10703 // calling DescribeFirewallPolicy. 10704 // 10705 // FirewallPolicyResponse is a required field 10706 FirewallPolicyResponse *FirewallPolicyResponse `type:"structure" required:"true"` 10707 10708 // A token used for optimistic locking. Network Firewall returns a token to 10709 // your requests that access the firewall policy. The token marks the state 10710 // of the policy resource at the time of the request. 10711 // 10712 // To make changes to the policy, you provide the token in your request. Network 10713 // Firewall uses the token to ensure that the policy hasn't changed since you 10714 // last retrieved it. If it has changed, the operation fails with an InvalidTokenException. 10715 // If this happens, retrieve the firewall policy again to get a current copy 10716 // of it with current token. Reapply your changes as needed, then try the operation 10717 // again using the new token. 10718 // 10719 // UpdateToken is a required field 10720 UpdateToken *string `min:"1" type:"string" required:"true"` 10721 } 10722 10723 // String returns the string representation. 10724 // 10725 // API parameter values that are decorated as "sensitive" in the API will not 10726 // be included in the string output. The member name will be present, but the 10727 // value will be replaced with "sensitive". 10728 func (s UpdateFirewallPolicyOutput) String() string { 10729 return awsutil.Prettify(s) 10730 } 10731 10732 // GoString returns the string representation. 10733 // 10734 // API parameter values that are decorated as "sensitive" in the API will not 10735 // be included in the string output. The member name will be present, but the 10736 // value will be replaced with "sensitive". 10737 func (s UpdateFirewallPolicyOutput) GoString() string { 10738 return s.String() 10739 } 10740 10741 // SetFirewallPolicyResponse sets the FirewallPolicyResponse field's value. 10742 func (s *UpdateFirewallPolicyOutput) SetFirewallPolicyResponse(v *FirewallPolicyResponse) *UpdateFirewallPolicyOutput { 10743 s.FirewallPolicyResponse = v 10744 return s 10745 } 10746 10747 // SetUpdateToken sets the UpdateToken field's value. 10748 func (s *UpdateFirewallPolicyOutput) SetUpdateToken(v string) *UpdateFirewallPolicyOutput { 10749 s.UpdateToken = &v 10750 return s 10751 } 10752 10753 type UpdateLoggingConfigurationInput struct { 10754 _ struct{} `type:"structure"` 10755 10756 // The Amazon Resource Name (ARN) of the firewall. 10757 // 10758 // You must specify the ARN or the name, and you can specify both. 10759 FirewallArn *string `min:"1" type:"string"` 10760 10761 // The descriptive name of the firewall. You can't change the name of a firewall 10762 // after you create it. 10763 // 10764 // You must specify the ARN or the name, and you can specify both. 10765 FirewallName *string `min:"1" type:"string"` 10766 10767 // Defines how Network Firewall performs logging for a firewall. If you omit 10768 // this setting, Network Firewall disables logging for the firewall. 10769 LoggingConfiguration *LoggingConfiguration `type:"structure"` 10770 } 10771 10772 // String returns the string representation. 10773 // 10774 // API parameter values that are decorated as "sensitive" in the API will not 10775 // be included in the string output. The member name will be present, but the 10776 // value will be replaced with "sensitive". 10777 func (s UpdateLoggingConfigurationInput) String() string { 10778 return awsutil.Prettify(s) 10779 } 10780 10781 // GoString returns the string representation. 10782 // 10783 // API parameter values that are decorated as "sensitive" in the API will not 10784 // be included in the string output. The member name will be present, but the 10785 // value will be replaced with "sensitive". 10786 func (s UpdateLoggingConfigurationInput) GoString() string { 10787 return s.String() 10788 } 10789 10790 // Validate inspects the fields of the type to determine if they are valid. 10791 func (s *UpdateLoggingConfigurationInput) Validate() error { 10792 invalidParams := request.ErrInvalidParams{Context: "UpdateLoggingConfigurationInput"} 10793 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 10794 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 10795 } 10796 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 10797 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 10798 } 10799 if s.LoggingConfiguration != nil { 10800 if err := s.LoggingConfiguration.Validate(); err != nil { 10801 invalidParams.AddNested("LoggingConfiguration", err.(request.ErrInvalidParams)) 10802 } 10803 } 10804 10805 if invalidParams.Len() > 0 { 10806 return invalidParams 10807 } 10808 return nil 10809 } 10810 10811 // SetFirewallArn sets the FirewallArn field's value. 10812 func (s *UpdateLoggingConfigurationInput) SetFirewallArn(v string) *UpdateLoggingConfigurationInput { 10813 s.FirewallArn = &v 10814 return s 10815 } 10816 10817 // SetFirewallName sets the FirewallName field's value. 10818 func (s *UpdateLoggingConfigurationInput) SetFirewallName(v string) *UpdateLoggingConfigurationInput { 10819 s.FirewallName = &v 10820 return s 10821 } 10822 10823 // SetLoggingConfiguration sets the LoggingConfiguration field's value. 10824 func (s *UpdateLoggingConfigurationInput) SetLoggingConfiguration(v *LoggingConfiguration) *UpdateLoggingConfigurationInput { 10825 s.LoggingConfiguration = v 10826 return s 10827 } 10828 10829 type UpdateLoggingConfigurationOutput struct { 10830 _ struct{} `type:"structure"` 10831 10832 // The Amazon Resource Name (ARN) of the firewall. 10833 FirewallArn *string `min:"1" type:"string"` 10834 10835 // The descriptive name of the firewall. You can't change the name of a firewall 10836 // after you create it. 10837 FirewallName *string `min:"1" type:"string"` 10838 10839 // Defines how AWS Network Firewall performs logging for a Firewall. 10840 LoggingConfiguration *LoggingConfiguration `type:"structure"` 10841 } 10842 10843 // String returns the string representation. 10844 // 10845 // API parameter values that are decorated as "sensitive" in the API will not 10846 // be included in the string output. The member name will be present, but the 10847 // value will be replaced with "sensitive". 10848 func (s UpdateLoggingConfigurationOutput) String() string { 10849 return awsutil.Prettify(s) 10850 } 10851 10852 // GoString returns the string representation. 10853 // 10854 // API parameter values that are decorated as "sensitive" in the API will not 10855 // be included in the string output. The member name will be present, but the 10856 // value will be replaced with "sensitive". 10857 func (s UpdateLoggingConfigurationOutput) GoString() string { 10858 return s.String() 10859 } 10860 10861 // SetFirewallArn sets the FirewallArn field's value. 10862 func (s *UpdateLoggingConfigurationOutput) SetFirewallArn(v string) *UpdateLoggingConfigurationOutput { 10863 s.FirewallArn = &v 10864 return s 10865 } 10866 10867 // SetFirewallName sets the FirewallName field's value. 10868 func (s *UpdateLoggingConfigurationOutput) SetFirewallName(v string) *UpdateLoggingConfigurationOutput { 10869 s.FirewallName = &v 10870 return s 10871 } 10872 10873 // SetLoggingConfiguration sets the LoggingConfiguration field's value. 10874 func (s *UpdateLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *UpdateLoggingConfigurationOutput { 10875 s.LoggingConfiguration = v 10876 return s 10877 } 10878 10879 type UpdateRuleGroupInput struct { 10880 _ struct{} `type:"structure"` 10881 10882 // A description of the rule group. 10883 Description *string `type:"string"` 10884 10885 // Indicates whether you want Network Firewall to just check the validity of 10886 // the request, rather than run the request. 10887 // 10888 // If set to TRUE, Network Firewall checks whether the request can run successfully, 10889 // but doesn't actually make the requested changes. The call returns the value 10890 // that the request would return if you ran it with dry run set to FALSE, but 10891 // doesn't make additions or changes to your resources. This option allows you 10892 // to make sure that you have the required permissions to run the request and 10893 // that your request parameters are valid. 10894 // 10895 // If set to FALSE, Network Firewall makes the requested changes to your resources. 10896 DryRun *bool `type:"boolean"` 10897 10898 // An object that defines the rule group rules. 10899 // 10900 // You must provide either this rule group setting or a Rules setting, but not 10901 // both. 10902 RuleGroup *RuleGroup `type:"structure"` 10903 10904 // The Amazon Resource Name (ARN) of the rule group. 10905 // 10906 // You must specify the ARN or the name, and you can specify both. 10907 RuleGroupArn *string `min:"1" type:"string"` 10908 10909 // The descriptive name of the rule group. You can't change the name of a rule 10910 // group after you create it. 10911 // 10912 // You must specify the ARN or the name, and you can specify both. 10913 RuleGroupName *string `min:"1" type:"string"` 10914 10915 // A string containing stateful rule group rules specifications in Suricata 10916 // flat format, with one rule per line. Use this to import your existing Suricata 10917 // compatible rule groups. 10918 // 10919 // You must provide either this rules setting or a populated RuleGroup setting, 10920 // but not both. 10921 // 10922 // You can provide your rule group specification in Suricata flat format through 10923 // this setting when you create or update your rule group. The call response 10924 // returns a RuleGroup object that Network Firewall has populated from your 10925 // string. 10926 Rules *string `type:"string"` 10927 10928 // Indicates whether the rule group is stateless or stateful. If the rule group 10929 // is stateless, it contains stateless rules. If it is stateful, it contains 10930 // stateful rules. 10931 // 10932 // This setting is required for requests that do not include the RuleGroupARN. 10933 Type *string `type:"string" enum:"RuleGroupType"` 10934 10935 // A token used for optimistic locking. Network Firewall returns a token to 10936 // your requests that access the rule group. The token marks the state of the 10937 // rule group resource at the time of the request. 10938 // 10939 // To make changes to the rule group, you provide the token in your request. 10940 // Network Firewall uses the token to ensure that the rule group hasn't changed 10941 // since you last retrieved it. If it has changed, the operation fails with 10942 // an InvalidTokenException. If this happens, retrieve the rule group again 10943 // to get a current copy of it with a current token. Reapply your changes as 10944 // needed, then try the operation again using the new token. 10945 // 10946 // UpdateToken is a required field 10947 UpdateToken *string `min:"1" type:"string" required:"true"` 10948 } 10949 10950 // String returns the string representation. 10951 // 10952 // API parameter values that are decorated as "sensitive" in the API will not 10953 // be included in the string output. The member name will be present, but the 10954 // value will be replaced with "sensitive". 10955 func (s UpdateRuleGroupInput) String() string { 10956 return awsutil.Prettify(s) 10957 } 10958 10959 // GoString returns the string representation. 10960 // 10961 // API parameter values that are decorated as "sensitive" in the API will not 10962 // be included in the string output. The member name will be present, but the 10963 // value will be replaced with "sensitive". 10964 func (s UpdateRuleGroupInput) GoString() string { 10965 return s.String() 10966 } 10967 10968 // Validate inspects the fields of the type to determine if they are valid. 10969 func (s *UpdateRuleGroupInput) Validate() error { 10970 invalidParams := request.ErrInvalidParams{Context: "UpdateRuleGroupInput"} 10971 if s.RuleGroupArn != nil && len(*s.RuleGroupArn) < 1 { 10972 invalidParams.Add(request.NewErrParamMinLen("RuleGroupArn", 1)) 10973 } 10974 if s.RuleGroupName != nil && len(*s.RuleGroupName) < 1 { 10975 invalidParams.Add(request.NewErrParamMinLen("RuleGroupName", 1)) 10976 } 10977 if s.UpdateToken == nil { 10978 invalidParams.Add(request.NewErrParamRequired("UpdateToken")) 10979 } 10980 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 10981 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 10982 } 10983 if s.RuleGroup != nil { 10984 if err := s.RuleGroup.Validate(); err != nil { 10985 invalidParams.AddNested("RuleGroup", err.(request.ErrInvalidParams)) 10986 } 10987 } 10988 10989 if invalidParams.Len() > 0 { 10990 return invalidParams 10991 } 10992 return nil 10993 } 10994 10995 // SetDescription sets the Description field's value. 10996 func (s *UpdateRuleGroupInput) SetDescription(v string) *UpdateRuleGroupInput { 10997 s.Description = &v 10998 return s 10999 } 11000 11001 // SetDryRun sets the DryRun field's value. 11002 func (s *UpdateRuleGroupInput) SetDryRun(v bool) *UpdateRuleGroupInput { 11003 s.DryRun = &v 11004 return s 11005 } 11006 11007 // SetRuleGroup sets the RuleGroup field's value. 11008 func (s *UpdateRuleGroupInput) SetRuleGroup(v *RuleGroup) *UpdateRuleGroupInput { 11009 s.RuleGroup = v 11010 return s 11011 } 11012 11013 // SetRuleGroupArn sets the RuleGroupArn field's value. 11014 func (s *UpdateRuleGroupInput) SetRuleGroupArn(v string) *UpdateRuleGroupInput { 11015 s.RuleGroupArn = &v 11016 return s 11017 } 11018 11019 // SetRuleGroupName sets the RuleGroupName field's value. 11020 func (s *UpdateRuleGroupInput) SetRuleGroupName(v string) *UpdateRuleGroupInput { 11021 s.RuleGroupName = &v 11022 return s 11023 } 11024 11025 // SetRules sets the Rules field's value. 11026 func (s *UpdateRuleGroupInput) SetRules(v string) *UpdateRuleGroupInput { 11027 s.Rules = &v 11028 return s 11029 } 11030 11031 // SetType sets the Type field's value. 11032 func (s *UpdateRuleGroupInput) SetType(v string) *UpdateRuleGroupInput { 11033 s.Type = &v 11034 return s 11035 } 11036 11037 // SetUpdateToken sets the UpdateToken field's value. 11038 func (s *UpdateRuleGroupInput) SetUpdateToken(v string) *UpdateRuleGroupInput { 11039 s.UpdateToken = &v 11040 return s 11041 } 11042 11043 type UpdateRuleGroupOutput struct { 11044 _ struct{} `type:"structure"` 11045 11046 // The high-level properties of a rule group. This, along with the RuleGroup, 11047 // define the rule group. You can retrieve all objects for a rule group by calling 11048 // DescribeRuleGroup. 11049 // 11050 // RuleGroupResponse is a required field 11051 RuleGroupResponse *RuleGroupResponse `type:"structure" required:"true"` 11052 11053 // A token used for optimistic locking. Network Firewall returns a token to 11054 // your requests that access the rule group. The token marks the state of the 11055 // rule group resource at the time of the request. 11056 // 11057 // To make changes to the rule group, you provide the token in your request. 11058 // Network Firewall uses the token to ensure that the rule group hasn't changed 11059 // since you last retrieved it. If it has changed, the operation fails with 11060 // an InvalidTokenException. If this happens, retrieve the rule group again 11061 // to get a current copy of it with a current token. Reapply your changes as 11062 // needed, then try the operation again using the new token. 11063 // 11064 // UpdateToken is a required field 11065 UpdateToken *string `min:"1" type:"string" required:"true"` 11066 } 11067 11068 // String returns the string representation. 11069 // 11070 // API parameter values that are decorated as "sensitive" in the API will not 11071 // be included in the string output. The member name will be present, but the 11072 // value will be replaced with "sensitive". 11073 func (s UpdateRuleGroupOutput) String() string { 11074 return awsutil.Prettify(s) 11075 } 11076 11077 // GoString returns the string representation. 11078 // 11079 // API parameter values that are decorated as "sensitive" in the API will not 11080 // be included in the string output. The member name will be present, but the 11081 // value will be replaced with "sensitive". 11082 func (s UpdateRuleGroupOutput) GoString() string { 11083 return s.String() 11084 } 11085 11086 // SetRuleGroupResponse sets the RuleGroupResponse field's value. 11087 func (s *UpdateRuleGroupOutput) SetRuleGroupResponse(v *RuleGroupResponse) *UpdateRuleGroupOutput { 11088 s.RuleGroupResponse = v 11089 return s 11090 } 11091 11092 // SetUpdateToken sets the UpdateToken field's value. 11093 func (s *UpdateRuleGroupOutput) SetUpdateToken(v string) *UpdateRuleGroupOutput { 11094 s.UpdateToken = &v 11095 return s 11096 } 11097 11098 type UpdateSubnetChangeProtectionInput struct { 11099 _ struct{} `type:"structure"` 11100 11101 // The Amazon Resource Name (ARN) of the firewall. 11102 // 11103 // You must specify the ARN or the name, and you can specify both. 11104 FirewallArn *string `min:"1" type:"string"` 11105 11106 // The descriptive name of the firewall. You can't change the name of a firewall 11107 // after you create it. 11108 // 11109 // You must specify the ARN or the name, and you can specify both. 11110 FirewallName *string `min:"1" type:"string"` 11111 11112 // A setting indicating whether the firewall is protected against changes to 11113 // the subnet associations. Use this setting to protect against accidentally 11114 // modifying the subnet associations for a firewall that is in use. When you 11115 // create a firewall, the operation initializes this setting to TRUE. 11116 // 11117 // SubnetChangeProtection is a required field 11118 SubnetChangeProtection *bool `type:"boolean" required:"true"` 11119 11120 // An optional token that you can use for optimistic locking. Network Firewall 11121 // returns a token to your requests that access the firewall. The token marks 11122 // the state of the firewall resource at the time of the request. 11123 // 11124 // To make an unconditional change to the firewall, omit the token in your update 11125 // request. Without the token, Network Firewall performs your updates regardless 11126 // of whether the firewall has changed since you last retrieved it. 11127 // 11128 // To make a conditional change to the firewall, provide the token in your update 11129 // request. Network Firewall uses the token to ensure that the firewall hasn't 11130 // changed since you last retrieved it. If it has changed, the operation fails 11131 // with an InvalidTokenException. If this happens, retrieve the firewall again 11132 // to get a current copy of it with a new token. Reapply your changes as needed, 11133 // then try the operation again using the new token. 11134 UpdateToken *string `min:"1" type:"string"` 11135 } 11136 11137 // String returns the string representation. 11138 // 11139 // API parameter values that are decorated as "sensitive" in the API will not 11140 // be included in the string output. The member name will be present, but the 11141 // value will be replaced with "sensitive". 11142 func (s UpdateSubnetChangeProtectionInput) String() string { 11143 return awsutil.Prettify(s) 11144 } 11145 11146 // GoString returns the string representation. 11147 // 11148 // API parameter values that are decorated as "sensitive" in the API will not 11149 // be included in the string output. The member name will be present, but the 11150 // value will be replaced with "sensitive". 11151 func (s UpdateSubnetChangeProtectionInput) GoString() string { 11152 return s.String() 11153 } 11154 11155 // Validate inspects the fields of the type to determine if they are valid. 11156 func (s *UpdateSubnetChangeProtectionInput) Validate() error { 11157 invalidParams := request.ErrInvalidParams{Context: "UpdateSubnetChangeProtectionInput"} 11158 if s.FirewallArn != nil && len(*s.FirewallArn) < 1 { 11159 invalidParams.Add(request.NewErrParamMinLen("FirewallArn", 1)) 11160 } 11161 if s.FirewallName != nil && len(*s.FirewallName) < 1 { 11162 invalidParams.Add(request.NewErrParamMinLen("FirewallName", 1)) 11163 } 11164 if s.SubnetChangeProtection == nil { 11165 invalidParams.Add(request.NewErrParamRequired("SubnetChangeProtection")) 11166 } 11167 if s.UpdateToken != nil && len(*s.UpdateToken) < 1 { 11168 invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1)) 11169 } 11170 11171 if invalidParams.Len() > 0 { 11172 return invalidParams 11173 } 11174 return nil 11175 } 11176 11177 // SetFirewallArn sets the FirewallArn field's value. 11178 func (s *UpdateSubnetChangeProtectionInput) SetFirewallArn(v string) *UpdateSubnetChangeProtectionInput { 11179 s.FirewallArn = &v 11180 return s 11181 } 11182 11183 // SetFirewallName sets the FirewallName field's value. 11184 func (s *UpdateSubnetChangeProtectionInput) SetFirewallName(v string) *UpdateSubnetChangeProtectionInput { 11185 s.FirewallName = &v 11186 return s 11187 } 11188 11189 // SetSubnetChangeProtection sets the SubnetChangeProtection field's value. 11190 func (s *UpdateSubnetChangeProtectionInput) SetSubnetChangeProtection(v bool) *UpdateSubnetChangeProtectionInput { 11191 s.SubnetChangeProtection = &v 11192 return s 11193 } 11194 11195 // SetUpdateToken sets the UpdateToken field's value. 11196 func (s *UpdateSubnetChangeProtectionInput) SetUpdateToken(v string) *UpdateSubnetChangeProtectionInput { 11197 s.UpdateToken = &v 11198 return s 11199 } 11200 11201 type UpdateSubnetChangeProtectionOutput struct { 11202 _ struct{} `type:"structure"` 11203 11204 // The Amazon Resource Name (ARN) of the firewall. 11205 FirewallArn *string `min:"1" type:"string"` 11206 11207 // The descriptive name of the firewall. You can't change the name of a firewall 11208 // after you create it. 11209 FirewallName *string `min:"1" type:"string"` 11210 11211 // A setting indicating whether the firewall is protected against changes to 11212 // the subnet associations. Use this setting to protect against accidentally 11213 // modifying the subnet associations for a firewall that is in use. When you 11214 // create a firewall, the operation initializes this setting to TRUE. 11215 SubnetChangeProtection *bool `type:"boolean"` 11216 11217 // An optional token that you can use for optimistic locking. Network Firewall 11218 // returns a token to your requests that access the firewall. The token marks 11219 // the state of the firewall resource at the time of the request. 11220 // 11221 // To make an unconditional change to the firewall, omit the token in your update 11222 // request. Without the token, Network Firewall performs your updates regardless 11223 // of whether the firewall has changed since you last retrieved it. 11224 // 11225 // To make a conditional change to the firewall, provide the token in your update 11226 // request. Network Firewall uses the token to ensure that the firewall hasn't 11227 // changed since you last retrieved it. If it has changed, the operation fails 11228 // with an InvalidTokenException. If this happens, retrieve the firewall again 11229 // to get a current copy of it with a new token. Reapply your changes as needed, 11230 // then try the operation again using the new token. 11231 UpdateToken *string `min:"1" type:"string"` 11232 } 11233 11234 // String returns the string representation. 11235 // 11236 // API parameter values that are decorated as "sensitive" in the API will not 11237 // be included in the string output. The member name will be present, but the 11238 // value will be replaced with "sensitive". 11239 func (s UpdateSubnetChangeProtectionOutput) String() string { 11240 return awsutil.Prettify(s) 11241 } 11242 11243 // GoString returns the string representation. 11244 // 11245 // API parameter values that are decorated as "sensitive" in the API will not 11246 // be included in the string output. The member name will be present, but the 11247 // value will be replaced with "sensitive". 11248 func (s UpdateSubnetChangeProtectionOutput) GoString() string { 11249 return s.String() 11250 } 11251 11252 // SetFirewallArn sets the FirewallArn field's value. 11253 func (s *UpdateSubnetChangeProtectionOutput) SetFirewallArn(v string) *UpdateSubnetChangeProtectionOutput { 11254 s.FirewallArn = &v 11255 return s 11256 } 11257 11258 // SetFirewallName sets the FirewallName field's value. 11259 func (s *UpdateSubnetChangeProtectionOutput) SetFirewallName(v string) *UpdateSubnetChangeProtectionOutput { 11260 s.FirewallName = &v 11261 return s 11262 } 11263 11264 // SetSubnetChangeProtection sets the SubnetChangeProtection field's value. 11265 func (s *UpdateSubnetChangeProtectionOutput) SetSubnetChangeProtection(v bool) *UpdateSubnetChangeProtectionOutput { 11266 s.SubnetChangeProtection = &v 11267 return s 11268 } 11269 11270 // SetUpdateToken sets the UpdateToken field's value. 11271 func (s *UpdateSubnetChangeProtectionOutput) SetUpdateToken(v string) *UpdateSubnetChangeProtectionOutput { 11272 s.UpdateToken = &v 11273 return s 11274 } 11275 11276 const ( 11277 // AttachmentStatusCreating is a AttachmentStatus enum value 11278 AttachmentStatusCreating = "CREATING" 11279 11280 // AttachmentStatusDeleting is a AttachmentStatus enum value 11281 AttachmentStatusDeleting = "DELETING" 11282 11283 // AttachmentStatusScaling is a AttachmentStatus enum value 11284 AttachmentStatusScaling = "SCALING" 11285 11286 // AttachmentStatusReady is a AttachmentStatus enum value 11287 AttachmentStatusReady = "READY" 11288 ) 11289 11290 // AttachmentStatus_Values returns all elements of the AttachmentStatus enum 11291 func AttachmentStatus_Values() []string { 11292 return []string{ 11293 AttachmentStatusCreating, 11294 AttachmentStatusDeleting, 11295 AttachmentStatusScaling, 11296 AttachmentStatusReady, 11297 } 11298 } 11299 11300 const ( 11301 // ConfigurationSyncStatePending is a ConfigurationSyncState enum value 11302 ConfigurationSyncStatePending = "PENDING" 11303 11304 // ConfigurationSyncStateInSync is a ConfigurationSyncState enum value 11305 ConfigurationSyncStateInSync = "IN_SYNC" 11306 ) 11307 11308 // ConfigurationSyncState_Values returns all elements of the ConfigurationSyncState enum 11309 func ConfigurationSyncState_Values() []string { 11310 return []string{ 11311 ConfigurationSyncStatePending, 11312 ConfigurationSyncStateInSync, 11313 } 11314 } 11315 11316 const ( 11317 // FirewallStatusValueProvisioning is a FirewallStatusValue enum value 11318 FirewallStatusValueProvisioning = "PROVISIONING" 11319 11320 // FirewallStatusValueDeleting is a FirewallStatusValue enum value 11321 FirewallStatusValueDeleting = "DELETING" 11322 11323 // FirewallStatusValueReady is a FirewallStatusValue enum value 11324 FirewallStatusValueReady = "READY" 11325 ) 11326 11327 // FirewallStatusValue_Values returns all elements of the FirewallStatusValue enum 11328 func FirewallStatusValue_Values() []string { 11329 return []string{ 11330 FirewallStatusValueProvisioning, 11331 FirewallStatusValueDeleting, 11332 FirewallStatusValueReady, 11333 } 11334 } 11335 11336 const ( 11337 // GeneratedRulesTypeAllowlist is a GeneratedRulesType enum value 11338 GeneratedRulesTypeAllowlist = "ALLOWLIST" 11339 11340 // GeneratedRulesTypeDenylist is a GeneratedRulesType enum value 11341 GeneratedRulesTypeDenylist = "DENYLIST" 11342 ) 11343 11344 // GeneratedRulesType_Values returns all elements of the GeneratedRulesType enum 11345 func GeneratedRulesType_Values() []string { 11346 return []string{ 11347 GeneratedRulesTypeAllowlist, 11348 GeneratedRulesTypeDenylist, 11349 } 11350 } 11351 11352 const ( 11353 // LogDestinationTypeS3 is a LogDestinationType enum value 11354 LogDestinationTypeS3 = "S3" 11355 11356 // LogDestinationTypeCloudWatchLogs is a LogDestinationType enum value 11357 LogDestinationTypeCloudWatchLogs = "CloudWatchLogs" 11358 11359 // LogDestinationTypeKinesisDataFirehose is a LogDestinationType enum value 11360 LogDestinationTypeKinesisDataFirehose = "KinesisDataFirehose" 11361 ) 11362 11363 // LogDestinationType_Values returns all elements of the LogDestinationType enum 11364 func LogDestinationType_Values() []string { 11365 return []string{ 11366 LogDestinationTypeS3, 11367 LogDestinationTypeCloudWatchLogs, 11368 LogDestinationTypeKinesisDataFirehose, 11369 } 11370 } 11371 11372 const ( 11373 // LogTypeAlert is a LogType enum value 11374 LogTypeAlert = "ALERT" 11375 11376 // LogTypeFlow is a LogType enum value 11377 LogTypeFlow = "FLOW" 11378 ) 11379 11380 // LogType_Values returns all elements of the LogType enum 11381 func LogType_Values() []string { 11382 return []string{ 11383 LogTypeAlert, 11384 LogTypeFlow, 11385 } 11386 } 11387 11388 const ( 11389 // PerObjectSyncStatusPending is a PerObjectSyncStatus enum value 11390 PerObjectSyncStatusPending = "PENDING" 11391 11392 // PerObjectSyncStatusInSync is a PerObjectSyncStatus enum value 11393 PerObjectSyncStatusInSync = "IN_SYNC" 11394 ) 11395 11396 // PerObjectSyncStatus_Values returns all elements of the PerObjectSyncStatus enum 11397 func PerObjectSyncStatus_Values() []string { 11398 return []string{ 11399 PerObjectSyncStatusPending, 11400 PerObjectSyncStatusInSync, 11401 } 11402 } 11403 11404 const ( 11405 // ResourceStatusActive is a ResourceStatus enum value 11406 ResourceStatusActive = "ACTIVE" 11407 11408 // ResourceStatusDeleting is a ResourceStatus enum value 11409 ResourceStatusDeleting = "DELETING" 11410 ) 11411 11412 // ResourceStatus_Values returns all elements of the ResourceStatus enum 11413 func ResourceStatus_Values() []string { 11414 return []string{ 11415 ResourceStatusActive, 11416 ResourceStatusDeleting, 11417 } 11418 } 11419 11420 const ( 11421 // RuleGroupTypeStateless is a RuleGroupType enum value 11422 RuleGroupTypeStateless = "STATELESS" 11423 11424 // RuleGroupTypeStateful is a RuleGroupType enum value 11425 RuleGroupTypeStateful = "STATEFUL" 11426 ) 11427 11428 // RuleGroupType_Values returns all elements of the RuleGroupType enum 11429 func RuleGroupType_Values() []string { 11430 return []string{ 11431 RuleGroupTypeStateless, 11432 RuleGroupTypeStateful, 11433 } 11434 } 11435 11436 const ( 11437 // RuleOrderDefaultActionOrder is a RuleOrder enum value 11438 RuleOrderDefaultActionOrder = "DEFAULT_ACTION_ORDER" 11439 11440 // RuleOrderStrictOrder is a RuleOrder enum value 11441 RuleOrderStrictOrder = "STRICT_ORDER" 11442 ) 11443 11444 // RuleOrder_Values returns all elements of the RuleOrder enum 11445 func RuleOrder_Values() []string { 11446 return []string{ 11447 RuleOrderDefaultActionOrder, 11448 RuleOrderStrictOrder, 11449 } 11450 } 11451 11452 const ( 11453 // StatefulActionPass is a StatefulAction enum value 11454 StatefulActionPass = "PASS" 11455 11456 // StatefulActionDrop is a StatefulAction enum value 11457 StatefulActionDrop = "DROP" 11458 11459 // StatefulActionAlert is a StatefulAction enum value 11460 StatefulActionAlert = "ALERT" 11461 ) 11462 11463 // StatefulAction_Values returns all elements of the StatefulAction enum 11464 func StatefulAction_Values() []string { 11465 return []string{ 11466 StatefulActionPass, 11467 StatefulActionDrop, 11468 StatefulActionAlert, 11469 } 11470 } 11471 11472 const ( 11473 // StatefulRuleDirectionForward is a StatefulRuleDirection enum value 11474 StatefulRuleDirectionForward = "FORWARD" 11475 11476 // StatefulRuleDirectionAny is a StatefulRuleDirection enum value 11477 StatefulRuleDirectionAny = "ANY" 11478 ) 11479 11480 // StatefulRuleDirection_Values returns all elements of the StatefulRuleDirection enum 11481 func StatefulRuleDirection_Values() []string { 11482 return []string{ 11483 StatefulRuleDirectionForward, 11484 StatefulRuleDirectionAny, 11485 } 11486 } 11487 11488 const ( 11489 // StatefulRuleProtocolIp is a StatefulRuleProtocol enum value 11490 StatefulRuleProtocolIp = "IP" 11491 11492 // StatefulRuleProtocolTcp is a StatefulRuleProtocol enum value 11493 StatefulRuleProtocolTcp = "TCP" 11494 11495 // StatefulRuleProtocolUdp is a StatefulRuleProtocol enum value 11496 StatefulRuleProtocolUdp = "UDP" 11497 11498 // StatefulRuleProtocolIcmp is a StatefulRuleProtocol enum value 11499 StatefulRuleProtocolIcmp = "ICMP" 11500 11501 // StatefulRuleProtocolHttp is a StatefulRuleProtocol enum value 11502 StatefulRuleProtocolHttp = "HTTP" 11503 11504 // StatefulRuleProtocolFtp is a StatefulRuleProtocol enum value 11505 StatefulRuleProtocolFtp = "FTP" 11506 11507 // StatefulRuleProtocolTls is a StatefulRuleProtocol enum value 11508 StatefulRuleProtocolTls = "TLS" 11509 11510 // StatefulRuleProtocolSmb is a StatefulRuleProtocol enum value 11511 StatefulRuleProtocolSmb = "SMB" 11512 11513 // StatefulRuleProtocolDns is a StatefulRuleProtocol enum value 11514 StatefulRuleProtocolDns = "DNS" 11515 11516 // StatefulRuleProtocolDcerpc is a StatefulRuleProtocol enum value 11517 StatefulRuleProtocolDcerpc = "DCERPC" 11518 11519 // StatefulRuleProtocolSsh is a StatefulRuleProtocol enum value 11520 StatefulRuleProtocolSsh = "SSH" 11521 11522 // StatefulRuleProtocolSmtp is a StatefulRuleProtocol enum value 11523 StatefulRuleProtocolSmtp = "SMTP" 11524 11525 // StatefulRuleProtocolImap is a StatefulRuleProtocol enum value 11526 StatefulRuleProtocolImap = "IMAP" 11527 11528 // StatefulRuleProtocolMsn is a StatefulRuleProtocol enum value 11529 StatefulRuleProtocolMsn = "MSN" 11530 11531 // StatefulRuleProtocolKrb5 is a StatefulRuleProtocol enum value 11532 StatefulRuleProtocolKrb5 = "KRB5" 11533 11534 // StatefulRuleProtocolIkev2 is a StatefulRuleProtocol enum value 11535 StatefulRuleProtocolIkev2 = "IKEV2" 11536 11537 // StatefulRuleProtocolTftp is a StatefulRuleProtocol enum value 11538 StatefulRuleProtocolTftp = "TFTP" 11539 11540 // StatefulRuleProtocolNtp is a StatefulRuleProtocol enum value 11541 StatefulRuleProtocolNtp = "NTP" 11542 11543 // StatefulRuleProtocolDhcp is a StatefulRuleProtocol enum value 11544 StatefulRuleProtocolDhcp = "DHCP" 11545 ) 11546 11547 // StatefulRuleProtocol_Values returns all elements of the StatefulRuleProtocol enum 11548 func StatefulRuleProtocol_Values() []string { 11549 return []string{ 11550 StatefulRuleProtocolIp, 11551 StatefulRuleProtocolTcp, 11552 StatefulRuleProtocolUdp, 11553 StatefulRuleProtocolIcmp, 11554 StatefulRuleProtocolHttp, 11555 StatefulRuleProtocolFtp, 11556 StatefulRuleProtocolTls, 11557 StatefulRuleProtocolSmb, 11558 StatefulRuleProtocolDns, 11559 StatefulRuleProtocolDcerpc, 11560 StatefulRuleProtocolSsh, 11561 StatefulRuleProtocolSmtp, 11562 StatefulRuleProtocolImap, 11563 StatefulRuleProtocolMsn, 11564 StatefulRuleProtocolKrb5, 11565 StatefulRuleProtocolIkev2, 11566 StatefulRuleProtocolTftp, 11567 StatefulRuleProtocolNtp, 11568 StatefulRuleProtocolDhcp, 11569 } 11570 } 11571 11572 const ( 11573 // TCPFlagFin is a TCPFlag enum value 11574 TCPFlagFin = "FIN" 11575 11576 // TCPFlagSyn is a TCPFlag enum value 11577 TCPFlagSyn = "SYN" 11578 11579 // TCPFlagRst is a TCPFlag enum value 11580 TCPFlagRst = "RST" 11581 11582 // TCPFlagPsh is a TCPFlag enum value 11583 TCPFlagPsh = "PSH" 11584 11585 // TCPFlagAck is a TCPFlag enum value 11586 TCPFlagAck = "ACK" 11587 11588 // TCPFlagUrg is a TCPFlag enum value 11589 TCPFlagUrg = "URG" 11590 11591 // TCPFlagEce is a TCPFlag enum value 11592 TCPFlagEce = "ECE" 11593 11594 // TCPFlagCwr is a TCPFlag enum value 11595 TCPFlagCwr = "CWR" 11596 ) 11597 11598 // TCPFlag_Values returns all elements of the TCPFlag enum 11599 func TCPFlag_Values() []string { 11600 return []string{ 11601 TCPFlagFin, 11602 TCPFlagSyn, 11603 TCPFlagRst, 11604 TCPFlagPsh, 11605 TCPFlagAck, 11606 TCPFlagUrg, 11607 TCPFlagEce, 11608 TCPFlagCwr, 11609 } 11610 } 11611 11612 const ( 11613 // TargetTypeTlsSni is a TargetType enum value 11614 TargetTypeTlsSni = "TLS_SNI" 11615 11616 // TargetTypeHttpHost is a TargetType enum value 11617 TargetTypeHttpHost = "HTTP_HOST" 11618 ) 11619 11620 // TargetType_Values returns all elements of the TargetType enum 11621 func TargetType_Values() []string { 11622 return []string{ 11623 TargetTypeTlsSni, 11624 TargetTypeHttpHost, 11625 } 11626 }