github.com/aavshr/aws-sdk-go@v1.41.3/service/route53resolver/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package route53resolver
     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 opAssociateFirewallRuleGroup = "AssociateFirewallRuleGroup"
    16  
    17  // AssociateFirewallRuleGroupRequest generates a "aws/request.Request" representing the
    18  // client's request for the AssociateFirewallRuleGroup 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 AssociateFirewallRuleGroup for more information on using the AssociateFirewallRuleGroup
    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 AssociateFirewallRuleGroupRequest method.
    33  //    req, resp := client.AssociateFirewallRuleGroupRequest(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/route53resolver-2018-04-01/AssociateFirewallRuleGroup
    41  func (c *Route53Resolver) AssociateFirewallRuleGroupRequest(input *AssociateFirewallRuleGroupInput) (req *request.Request, output *AssociateFirewallRuleGroupOutput) {
    42  	op := &request.Operation{
    43  		Name:       opAssociateFirewallRuleGroup,
    44  		HTTPMethod: "POST",
    45  		HTTPPath:   "/",
    46  	}
    47  
    48  	if input == nil {
    49  		input = &AssociateFirewallRuleGroupInput{}
    50  	}
    51  
    52  	output = &AssociateFirewallRuleGroupOutput{}
    53  	req = c.newRequest(op, input, output)
    54  	return
    55  }
    56  
    57  // AssociateFirewallRuleGroup API operation for Amazon Route 53 Resolver.
    58  //
    59  // Associates a FirewallRuleGroup with a VPC, to provide DNS filtering for the
    60  // VPC.
    61  //
    62  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    63  // with awserr.Error's Code and Message methods to get detailed information about
    64  // the error.
    65  //
    66  // See the AWS API reference guide for Amazon Route 53 Resolver's
    67  // API operation AssociateFirewallRuleGroup for usage and error information.
    68  //
    69  // Returned Error Types:
    70  //   * ResourceNotFoundException
    71  //   The specified resource doesn't exist.
    72  //
    73  //   * ValidationException
    74  //
    75  //   * LimitExceededException
    76  //   The request caused one or more limits to be exceeded.
    77  //
    78  //   * ConflictException
    79  //
    80  //   * AccessDeniedException
    81  //   The current account doesn't have the IAM permissions required to perform
    82  //   the specified Resolver operation.
    83  //
    84  //   * InternalServiceErrorException
    85  //   We encountered an unknown error. Try again in a few minutes.
    86  //
    87  //   * ThrottlingException
    88  //   The request was throttled. Try again in a few minutes.
    89  //
    90  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateFirewallRuleGroup
    91  func (c *Route53Resolver) AssociateFirewallRuleGroup(input *AssociateFirewallRuleGroupInput) (*AssociateFirewallRuleGroupOutput, error) {
    92  	req, out := c.AssociateFirewallRuleGroupRequest(input)
    93  	return out, req.Send()
    94  }
    95  
    96  // AssociateFirewallRuleGroupWithContext is the same as AssociateFirewallRuleGroup with the addition of
    97  // the ability to pass a context and additional request options.
    98  //
    99  // See AssociateFirewallRuleGroup for details on how to use this API operation.
   100  //
   101  // The context must be non-nil and will be used for request cancellation. If
   102  // the context is nil a panic will occur. In the future the SDK may create
   103  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   104  // for more information on using Contexts.
   105  func (c *Route53Resolver) AssociateFirewallRuleGroupWithContext(ctx aws.Context, input *AssociateFirewallRuleGroupInput, opts ...request.Option) (*AssociateFirewallRuleGroupOutput, error) {
   106  	req, out := c.AssociateFirewallRuleGroupRequest(input)
   107  	req.SetContext(ctx)
   108  	req.ApplyOptions(opts...)
   109  	return out, req.Send()
   110  }
   111  
   112  const opAssociateResolverEndpointIpAddress = "AssociateResolverEndpointIpAddress"
   113  
   114  // AssociateResolverEndpointIpAddressRequest generates a "aws/request.Request" representing the
   115  // client's request for the AssociateResolverEndpointIpAddress operation. The "output" return
   116  // value will be populated with the request's response once the request completes
   117  // successfully.
   118  //
   119  // Use "Send" method on the returned Request to send the API call to the service.
   120  // the "output" return value is not valid until after Send returns without error.
   121  //
   122  // See AssociateResolverEndpointIpAddress for more information on using the AssociateResolverEndpointIpAddress
   123  // API call, and error handling.
   124  //
   125  // This method is useful when you want to inject custom logic or configuration
   126  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   127  //
   128  //
   129  //    // Example sending a request using the AssociateResolverEndpointIpAddressRequest method.
   130  //    req, resp := client.AssociateResolverEndpointIpAddressRequest(params)
   131  //
   132  //    err := req.Send()
   133  //    if err == nil { // resp is now filled
   134  //        fmt.Println(resp)
   135  //    }
   136  //
   137  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverEndpointIpAddress
   138  func (c *Route53Resolver) AssociateResolverEndpointIpAddressRequest(input *AssociateResolverEndpointIpAddressInput) (req *request.Request, output *AssociateResolverEndpointIpAddressOutput) {
   139  	op := &request.Operation{
   140  		Name:       opAssociateResolverEndpointIpAddress,
   141  		HTTPMethod: "POST",
   142  		HTTPPath:   "/",
   143  	}
   144  
   145  	if input == nil {
   146  		input = &AssociateResolverEndpointIpAddressInput{}
   147  	}
   148  
   149  	output = &AssociateResolverEndpointIpAddressOutput{}
   150  	req = c.newRequest(op, input, output)
   151  	return
   152  }
   153  
   154  // AssociateResolverEndpointIpAddress API operation for Amazon Route 53 Resolver.
   155  //
   156  // Adds IP addresses to an inbound or an outbound Resolver endpoint. If you
   157  // want to add more than one IP address, submit one AssociateResolverEndpointIpAddress
   158  // request for each IP address.
   159  //
   160  // To remove an IP address from an endpoint, see DisassociateResolverEndpointIpAddress
   161  // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverEndpointIpAddress.html).
   162  //
   163  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   164  // with awserr.Error's Code and Message methods to get detailed information about
   165  // the error.
   166  //
   167  // See the AWS API reference guide for Amazon Route 53 Resolver's
   168  // API operation AssociateResolverEndpointIpAddress for usage and error information.
   169  //
   170  // Returned Error Types:
   171  //   * ResourceNotFoundException
   172  //   The specified resource doesn't exist.
   173  //
   174  //   * InvalidParameterException
   175  //   One or more parameters in this request are not valid.
   176  //
   177  //   * InvalidRequestException
   178  //   The request is invalid.
   179  //
   180  //   * ResourceExistsException
   181  //   The resource that you tried to create already exists.
   182  //
   183  //   * InternalServiceErrorException
   184  //   We encountered an unknown error. Try again in a few minutes.
   185  //
   186  //   * LimitExceededException
   187  //   The request caused one or more limits to be exceeded.
   188  //
   189  //   * ThrottlingException
   190  //   The request was throttled. Try again in a few minutes.
   191  //
   192  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverEndpointIpAddress
   193  func (c *Route53Resolver) AssociateResolverEndpointIpAddress(input *AssociateResolverEndpointIpAddressInput) (*AssociateResolverEndpointIpAddressOutput, error) {
   194  	req, out := c.AssociateResolverEndpointIpAddressRequest(input)
   195  	return out, req.Send()
   196  }
   197  
   198  // AssociateResolverEndpointIpAddressWithContext is the same as AssociateResolverEndpointIpAddress with the addition of
   199  // the ability to pass a context and additional request options.
   200  //
   201  // See AssociateResolverEndpointIpAddress for details on how to use this API operation.
   202  //
   203  // The context must be non-nil and will be used for request cancellation. If
   204  // the context is nil a panic will occur. In the future the SDK may create
   205  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   206  // for more information on using Contexts.
   207  func (c *Route53Resolver) AssociateResolverEndpointIpAddressWithContext(ctx aws.Context, input *AssociateResolverEndpointIpAddressInput, opts ...request.Option) (*AssociateResolverEndpointIpAddressOutput, error) {
   208  	req, out := c.AssociateResolverEndpointIpAddressRequest(input)
   209  	req.SetContext(ctx)
   210  	req.ApplyOptions(opts...)
   211  	return out, req.Send()
   212  }
   213  
   214  const opAssociateResolverQueryLogConfig = "AssociateResolverQueryLogConfig"
   215  
   216  // AssociateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
   217  // client's request for the AssociateResolverQueryLogConfig operation. The "output" return
   218  // value will be populated with the request's response once the request completes
   219  // successfully.
   220  //
   221  // Use "Send" method on the returned Request to send the API call to the service.
   222  // the "output" return value is not valid until after Send returns without error.
   223  //
   224  // See AssociateResolverQueryLogConfig for more information on using the AssociateResolverQueryLogConfig
   225  // API call, and error handling.
   226  //
   227  // This method is useful when you want to inject custom logic or configuration
   228  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   229  //
   230  //
   231  //    // Example sending a request using the AssociateResolverQueryLogConfigRequest method.
   232  //    req, resp := client.AssociateResolverQueryLogConfigRequest(params)
   233  //
   234  //    err := req.Send()
   235  //    if err == nil { // resp is now filled
   236  //        fmt.Println(resp)
   237  //    }
   238  //
   239  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverQueryLogConfig
   240  func (c *Route53Resolver) AssociateResolverQueryLogConfigRequest(input *AssociateResolverQueryLogConfigInput) (req *request.Request, output *AssociateResolverQueryLogConfigOutput) {
   241  	op := &request.Operation{
   242  		Name:       opAssociateResolverQueryLogConfig,
   243  		HTTPMethod: "POST",
   244  		HTTPPath:   "/",
   245  	}
   246  
   247  	if input == nil {
   248  		input = &AssociateResolverQueryLogConfigInput{}
   249  	}
   250  
   251  	output = &AssociateResolverQueryLogConfigOutput{}
   252  	req = c.newRequest(op, input, output)
   253  	return
   254  }
   255  
   256  // AssociateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
   257  //
   258  // Associates an Amazon VPC with a specified query logging configuration. Route
   259  // 53 Resolver logs DNS queries that originate in all of the Amazon VPCs that
   260  // are associated with a specified query logging configuration. To associate
   261  // more than one VPC with a configuration, submit one AssociateResolverQueryLogConfig
   262  // request for each VPC.
   263  //
   264  // The VPCs that you associate with a query logging configuration must be in
   265  // the same Region as the configuration.
   266  //
   267  // To remove a VPC from a query logging configuration, see DisassociateResolverQueryLogConfig
   268  // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html).
   269  //
   270  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   271  // with awserr.Error's Code and Message methods to get detailed information about
   272  // the error.
   273  //
   274  // See the AWS API reference guide for Amazon Route 53 Resolver's
   275  // API operation AssociateResolverQueryLogConfig for usage and error information.
   276  //
   277  // Returned Error Types:
   278  //   * InvalidParameterException
   279  //   One or more parameters in this request are not valid.
   280  //
   281  //   * ResourceNotFoundException
   282  //   The specified resource doesn't exist.
   283  //
   284  //   * InvalidRequestException
   285  //   The request is invalid.
   286  //
   287  //   * ResourceExistsException
   288  //   The resource that you tried to create already exists.
   289  //
   290  //   * LimitExceededException
   291  //   The request caused one or more limits to be exceeded.
   292  //
   293  //   * InternalServiceErrorException
   294  //   We encountered an unknown error. Try again in a few minutes.
   295  //
   296  //   * ThrottlingException
   297  //   The request was throttled. Try again in a few minutes.
   298  //
   299  //   * AccessDeniedException
   300  //   The current account doesn't have the IAM permissions required to perform
   301  //   the specified Resolver operation.
   302  //
   303  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverQueryLogConfig
   304  func (c *Route53Resolver) AssociateResolverQueryLogConfig(input *AssociateResolverQueryLogConfigInput) (*AssociateResolverQueryLogConfigOutput, error) {
   305  	req, out := c.AssociateResolverQueryLogConfigRequest(input)
   306  	return out, req.Send()
   307  }
   308  
   309  // AssociateResolverQueryLogConfigWithContext is the same as AssociateResolverQueryLogConfig with the addition of
   310  // the ability to pass a context and additional request options.
   311  //
   312  // See AssociateResolverQueryLogConfig for details on how to use this API operation.
   313  //
   314  // The context must be non-nil and will be used for request cancellation. If
   315  // the context is nil a panic will occur. In the future the SDK may create
   316  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   317  // for more information on using Contexts.
   318  func (c *Route53Resolver) AssociateResolverQueryLogConfigWithContext(ctx aws.Context, input *AssociateResolverQueryLogConfigInput, opts ...request.Option) (*AssociateResolverQueryLogConfigOutput, error) {
   319  	req, out := c.AssociateResolverQueryLogConfigRequest(input)
   320  	req.SetContext(ctx)
   321  	req.ApplyOptions(opts...)
   322  	return out, req.Send()
   323  }
   324  
   325  const opAssociateResolverRule = "AssociateResolverRule"
   326  
   327  // AssociateResolverRuleRequest generates a "aws/request.Request" representing the
   328  // client's request for the AssociateResolverRule operation. The "output" return
   329  // value will be populated with the request's response once the request completes
   330  // successfully.
   331  //
   332  // Use "Send" method on the returned Request to send the API call to the service.
   333  // the "output" return value is not valid until after Send returns without error.
   334  //
   335  // See AssociateResolverRule for more information on using the AssociateResolverRule
   336  // API call, and error handling.
   337  //
   338  // This method is useful when you want to inject custom logic or configuration
   339  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   340  //
   341  //
   342  //    // Example sending a request using the AssociateResolverRuleRequest method.
   343  //    req, resp := client.AssociateResolverRuleRequest(params)
   344  //
   345  //    err := req.Send()
   346  //    if err == nil { // resp is now filled
   347  //        fmt.Println(resp)
   348  //    }
   349  //
   350  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverRule
   351  func (c *Route53Resolver) AssociateResolverRuleRequest(input *AssociateResolverRuleInput) (req *request.Request, output *AssociateResolverRuleOutput) {
   352  	op := &request.Operation{
   353  		Name:       opAssociateResolverRule,
   354  		HTTPMethod: "POST",
   355  		HTTPPath:   "/",
   356  	}
   357  
   358  	if input == nil {
   359  		input = &AssociateResolverRuleInput{}
   360  	}
   361  
   362  	output = &AssociateResolverRuleOutput{}
   363  	req = c.newRequest(op, input, output)
   364  	return
   365  }
   366  
   367  // AssociateResolverRule API operation for Amazon Route 53 Resolver.
   368  //
   369  // Associates a Resolver rule with a VPC. When you associate a rule with a VPC,
   370  // Resolver forwards all DNS queries for the domain name that is specified in
   371  // the rule and that originate in the VPC. The queries are forwarded to the
   372  // IP addresses for the DNS resolvers that are specified in the rule. For more
   373  // information about rules, see CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html).
   374  //
   375  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   376  // with awserr.Error's Code and Message methods to get detailed information about
   377  // the error.
   378  //
   379  // See the AWS API reference guide for Amazon Route 53 Resolver's
   380  // API operation AssociateResolverRule for usage and error information.
   381  //
   382  // Returned Error Types:
   383  //   * ResourceNotFoundException
   384  //   The specified resource doesn't exist.
   385  //
   386  //   * InvalidRequestException
   387  //   The request is invalid.
   388  //
   389  //   * LimitExceededException
   390  //   The request caused one or more limits to be exceeded.
   391  //
   392  //   * InvalidParameterException
   393  //   One or more parameters in this request are not valid.
   394  //
   395  //   * ResourceUnavailableException
   396  //   The specified resource isn't available.
   397  //
   398  //   * ResourceExistsException
   399  //   The resource that you tried to create already exists.
   400  //
   401  //   * InternalServiceErrorException
   402  //   We encountered an unknown error. Try again in a few minutes.
   403  //
   404  //   * ThrottlingException
   405  //   The request was throttled. Try again in a few minutes.
   406  //
   407  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverRule
   408  func (c *Route53Resolver) AssociateResolverRule(input *AssociateResolverRuleInput) (*AssociateResolverRuleOutput, error) {
   409  	req, out := c.AssociateResolverRuleRequest(input)
   410  	return out, req.Send()
   411  }
   412  
   413  // AssociateResolverRuleWithContext is the same as AssociateResolverRule with the addition of
   414  // the ability to pass a context and additional request options.
   415  //
   416  // See AssociateResolverRule for details on how to use this API operation.
   417  //
   418  // The context must be non-nil and will be used for request cancellation. If
   419  // the context is nil a panic will occur. In the future the SDK may create
   420  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   421  // for more information on using Contexts.
   422  func (c *Route53Resolver) AssociateResolverRuleWithContext(ctx aws.Context, input *AssociateResolverRuleInput, opts ...request.Option) (*AssociateResolverRuleOutput, error) {
   423  	req, out := c.AssociateResolverRuleRequest(input)
   424  	req.SetContext(ctx)
   425  	req.ApplyOptions(opts...)
   426  	return out, req.Send()
   427  }
   428  
   429  const opCreateFirewallDomainList = "CreateFirewallDomainList"
   430  
   431  // CreateFirewallDomainListRequest generates a "aws/request.Request" representing the
   432  // client's request for the CreateFirewallDomainList operation. The "output" return
   433  // value will be populated with the request's response once the request completes
   434  // successfully.
   435  //
   436  // Use "Send" method on the returned Request to send the API call to the service.
   437  // the "output" return value is not valid until after Send returns without error.
   438  //
   439  // See CreateFirewallDomainList for more information on using the CreateFirewallDomainList
   440  // API call, and error handling.
   441  //
   442  // This method is useful when you want to inject custom logic or configuration
   443  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   444  //
   445  //
   446  //    // Example sending a request using the CreateFirewallDomainListRequest method.
   447  //    req, resp := client.CreateFirewallDomainListRequest(params)
   448  //
   449  //    err := req.Send()
   450  //    if err == nil { // resp is now filled
   451  //        fmt.Println(resp)
   452  //    }
   453  //
   454  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallDomainList
   455  func (c *Route53Resolver) CreateFirewallDomainListRequest(input *CreateFirewallDomainListInput) (req *request.Request, output *CreateFirewallDomainListOutput) {
   456  	op := &request.Operation{
   457  		Name:       opCreateFirewallDomainList,
   458  		HTTPMethod: "POST",
   459  		HTTPPath:   "/",
   460  	}
   461  
   462  	if input == nil {
   463  		input = &CreateFirewallDomainListInput{}
   464  	}
   465  
   466  	output = &CreateFirewallDomainListOutput{}
   467  	req = c.newRequest(op, input, output)
   468  	return
   469  }
   470  
   471  // CreateFirewallDomainList API operation for Amazon Route 53 Resolver.
   472  //
   473  // Creates an empty firewall domain list for use in DNS Firewall rules. You
   474  // can populate the domains for the new list with a file, using ImportFirewallDomains,
   475  // or with domain strings, using UpdateFirewallDomains.
   476  //
   477  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   478  // with awserr.Error's Code and Message methods to get detailed information about
   479  // the error.
   480  //
   481  // See the AWS API reference guide for Amazon Route 53 Resolver's
   482  // API operation CreateFirewallDomainList for usage and error information.
   483  //
   484  // Returned Error Types:
   485  //   * LimitExceededException
   486  //   The request caused one or more limits to be exceeded.
   487  //
   488  //   * ValidationException
   489  //
   490  //   * AccessDeniedException
   491  //   The current account doesn't have the IAM permissions required to perform
   492  //   the specified Resolver operation.
   493  //
   494  //   * InternalServiceErrorException
   495  //   We encountered an unknown error. Try again in a few minutes.
   496  //
   497  //   * ThrottlingException
   498  //   The request was throttled. Try again in a few minutes.
   499  //
   500  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallDomainList
   501  func (c *Route53Resolver) CreateFirewallDomainList(input *CreateFirewallDomainListInput) (*CreateFirewallDomainListOutput, error) {
   502  	req, out := c.CreateFirewallDomainListRequest(input)
   503  	return out, req.Send()
   504  }
   505  
   506  // CreateFirewallDomainListWithContext is the same as CreateFirewallDomainList with the addition of
   507  // the ability to pass a context and additional request options.
   508  //
   509  // See CreateFirewallDomainList for details on how to use this API operation.
   510  //
   511  // The context must be non-nil and will be used for request cancellation. If
   512  // the context is nil a panic will occur. In the future the SDK may create
   513  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   514  // for more information on using Contexts.
   515  func (c *Route53Resolver) CreateFirewallDomainListWithContext(ctx aws.Context, input *CreateFirewallDomainListInput, opts ...request.Option) (*CreateFirewallDomainListOutput, error) {
   516  	req, out := c.CreateFirewallDomainListRequest(input)
   517  	req.SetContext(ctx)
   518  	req.ApplyOptions(opts...)
   519  	return out, req.Send()
   520  }
   521  
   522  const opCreateFirewallRule = "CreateFirewallRule"
   523  
   524  // CreateFirewallRuleRequest generates a "aws/request.Request" representing the
   525  // client's request for the CreateFirewallRule operation. The "output" return
   526  // value will be populated with the request's response once the request completes
   527  // successfully.
   528  //
   529  // Use "Send" method on the returned Request to send the API call to the service.
   530  // the "output" return value is not valid until after Send returns without error.
   531  //
   532  // See CreateFirewallRule for more information on using the CreateFirewallRule
   533  // API call, and error handling.
   534  //
   535  // This method is useful when you want to inject custom logic or configuration
   536  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   537  //
   538  //
   539  //    // Example sending a request using the CreateFirewallRuleRequest method.
   540  //    req, resp := client.CreateFirewallRuleRequest(params)
   541  //
   542  //    err := req.Send()
   543  //    if err == nil { // resp is now filled
   544  //        fmt.Println(resp)
   545  //    }
   546  //
   547  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRule
   548  func (c *Route53Resolver) CreateFirewallRuleRequest(input *CreateFirewallRuleInput) (req *request.Request, output *CreateFirewallRuleOutput) {
   549  	op := &request.Operation{
   550  		Name:       opCreateFirewallRule,
   551  		HTTPMethod: "POST",
   552  		HTTPPath:   "/",
   553  	}
   554  
   555  	if input == nil {
   556  		input = &CreateFirewallRuleInput{}
   557  	}
   558  
   559  	output = &CreateFirewallRuleOutput{}
   560  	req = c.newRequest(op, input, output)
   561  	return
   562  }
   563  
   564  // CreateFirewallRule API operation for Amazon Route 53 Resolver.
   565  //
   566  // Creates a single DNS Firewall rule in the specified rule group, using the
   567  // specified domain list.
   568  //
   569  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   570  // with awserr.Error's Code and Message methods to get detailed information about
   571  // the error.
   572  //
   573  // See the AWS API reference guide for Amazon Route 53 Resolver's
   574  // API operation CreateFirewallRule for usage and error information.
   575  //
   576  // Returned Error Types:
   577  //   * ResourceNotFoundException
   578  //   The specified resource doesn't exist.
   579  //
   580  //   * ValidationException
   581  //
   582  //   * LimitExceededException
   583  //   The request caused one or more limits to be exceeded.
   584  //
   585  //   * AccessDeniedException
   586  //   The current account doesn't have the IAM permissions required to perform
   587  //   the specified Resolver operation.
   588  //
   589  //   * InternalServiceErrorException
   590  //   We encountered an unknown error. Try again in a few minutes.
   591  //
   592  //   * ThrottlingException
   593  //   The request was throttled. Try again in a few minutes.
   594  //
   595  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRule
   596  func (c *Route53Resolver) CreateFirewallRule(input *CreateFirewallRuleInput) (*CreateFirewallRuleOutput, error) {
   597  	req, out := c.CreateFirewallRuleRequest(input)
   598  	return out, req.Send()
   599  }
   600  
   601  // CreateFirewallRuleWithContext is the same as CreateFirewallRule with the addition of
   602  // the ability to pass a context and additional request options.
   603  //
   604  // See CreateFirewallRule for details on how to use this API operation.
   605  //
   606  // The context must be non-nil and will be used for request cancellation. If
   607  // the context is nil a panic will occur. In the future the SDK may create
   608  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   609  // for more information on using Contexts.
   610  func (c *Route53Resolver) CreateFirewallRuleWithContext(ctx aws.Context, input *CreateFirewallRuleInput, opts ...request.Option) (*CreateFirewallRuleOutput, error) {
   611  	req, out := c.CreateFirewallRuleRequest(input)
   612  	req.SetContext(ctx)
   613  	req.ApplyOptions(opts...)
   614  	return out, req.Send()
   615  }
   616  
   617  const opCreateFirewallRuleGroup = "CreateFirewallRuleGroup"
   618  
   619  // CreateFirewallRuleGroupRequest generates a "aws/request.Request" representing the
   620  // client's request for the CreateFirewallRuleGroup operation. The "output" return
   621  // value will be populated with the request's response once the request completes
   622  // successfully.
   623  //
   624  // Use "Send" method on the returned Request to send the API call to the service.
   625  // the "output" return value is not valid until after Send returns without error.
   626  //
   627  // See CreateFirewallRuleGroup for more information on using the CreateFirewallRuleGroup
   628  // API call, and error handling.
   629  //
   630  // This method is useful when you want to inject custom logic or configuration
   631  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   632  //
   633  //
   634  //    // Example sending a request using the CreateFirewallRuleGroupRequest method.
   635  //    req, resp := client.CreateFirewallRuleGroupRequest(params)
   636  //
   637  //    err := req.Send()
   638  //    if err == nil { // resp is now filled
   639  //        fmt.Println(resp)
   640  //    }
   641  //
   642  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleGroup
   643  func (c *Route53Resolver) CreateFirewallRuleGroupRequest(input *CreateFirewallRuleGroupInput) (req *request.Request, output *CreateFirewallRuleGroupOutput) {
   644  	op := &request.Operation{
   645  		Name:       opCreateFirewallRuleGroup,
   646  		HTTPMethod: "POST",
   647  		HTTPPath:   "/",
   648  	}
   649  
   650  	if input == nil {
   651  		input = &CreateFirewallRuleGroupInput{}
   652  	}
   653  
   654  	output = &CreateFirewallRuleGroupOutput{}
   655  	req = c.newRequest(op, input, output)
   656  	return
   657  }
   658  
   659  // CreateFirewallRuleGroup API operation for Amazon Route 53 Resolver.
   660  //
   661  // Creates an empty DNS Firewall rule group for filtering DNS network traffic
   662  // in a VPC. You can add rules to the new rule group by calling CreateFirewallRule.
   663  //
   664  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   665  // with awserr.Error's Code and Message methods to get detailed information about
   666  // the error.
   667  //
   668  // See the AWS API reference guide for Amazon Route 53 Resolver's
   669  // API operation CreateFirewallRuleGroup for usage and error information.
   670  //
   671  // Returned Error Types:
   672  //   * LimitExceededException
   673  //   The request caused one or more limits to be exceeded.
   674  //
   675  //   * ValidationException
   676  //
   677  //   * AccessDeniedException
   678  //   The current account doesn't have the IAM permissions required to perform
   679  //   the specified Resolver operation.
   680  //
   681  //   * InternalServiceErrorException
   682  //   We encountered an unknown error. Try again in a few minutes.
   683  //
   684  //   * ThrottlingException
   685  //   The request was throttled. Try again in a few minutes.
   686  //
   687  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleGroup
   688  func (c *Route53Resolver) CreateFirewallRuleGroup(input *CreateFirewallRuleGroupInput) (*CreateFirewallRuleGroupOutput, error) {
   689  	req, out := c.CreateFirewallRuleGroupRequest(input)
   690  	return out, req.Send()
   691  }
   692  
   693  // CreateFirewallRuleGroupWithContext is the same as CreateFirewallRuleGroup with the addition of
   694  // the ability to pass a context and additional request options.
   695  //
   696  // See CreateFirewallRuleGroup for details on how to use this API operation.
   697  //
   698  // The context must be non-nil and will be used for request cancellation. If
   699  // the context is nil a panic will occur. In the future the SDK may create
   700  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   701  // for more information on using Contexts.
   702  func (c *Route53Resolver) CreateFirewallRuleGroupWithContext(ctx aws.Context, input *CreateFirewallRuleGroupInput, opts ...request.Option) (*CreateFirewallRuleGroupOutput, error) {
   703  	req, out := c.CreateFirewallRuleGroupRequest(input)
   704  	req.SetContext(ctx)
   705  	req.ApplyOptions(opts...)
   706  	return out, req.Send()
   707  }
   708  
   709  const opCreateResolverEndpoint = "CreateResolverEndpoint"
   710  
   711  // CreateResolverEndpointRequest generates a "aws/request.Request" representing the
   712  // client's request for the CreateResolverEndpoint operation. The "output" return
   713  // value will be populated with the request's response once the request completes
   714  // successfully.
   715  //
   716  // Use "Send" method on the returned Request to send the API call to the service.
   717  // the "output" return value is not valid until after Send returns without error.
   718  //
   719  // See CreateResolverEndpoint for more information on using the CreateResolverEndpoint
   720  // API call, and error handling.
   721  //
   722  // This method is useful when you want to inject custom logic or configuration
   723  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   724  //
   725  //
   726  //    // Example sending a request using the CreateResolverEndpointRequest method.
   727  //    req, resp := client.CreateResolverEndpointRequest(params)
   728  //
   729  //    err := req.Send()
   730  //    if err == nil { // resp is now filled
   731  //        fmt.Println(resp)
   732  //    }
   733  //
   734  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverEndpoint
   735  func (c *Route53Resolver) CreateResolverEndpointRequest(input *CreateResolverEndpointInput) (req *request.Request, output *CreateResolverEndpointOutput) {
   736  	op := &request.Operation{
   737  		Name:       opCreateResolverEndpoint,
   738  		HTTPMethod: "POST",
   739  		HTTPPath:   "/",
   740  	}
   741  
   742  	if input == nil {
   743  		input = &CreateResolverEndpointInput{}
   744  	}
   745  
   746  	output = &CreateResolverEndpointOutput{}
   747  	req = c.newRequest(op, input, output)
   748  	return
   749  }
   750  
   751  // CreateResolverEndpoint API operation for Amazon Route 53 Resolver.
   752  //
   753  // Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound
   754  // and outbound:
   755  //
   756  //    * An inbound Resolver endpoint forwards DNS queries to the DNS service
   757  //    for a VPC from your network.
   758  //
   759  //    * An outbound Resolver endpoint forwards DNS queries from the DNS service
   760  //    for a VPC to your network.
   761  //
   762  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   763  // with awserr.Error's Code and Message methods to get detailed information about
   764  // the error.
   765  //
   766  // See the AWS API reference guide for Amazon Route 53 Resolver's
   767  // API operation CreateResolverEndpoint for usage and error information.
   768  //
   769  // Returned Error Types:
   770  //   * InvalidParameterException
   771  //   One or more parameters in this request are not valid.
   772  //
   773  //   * ResourceNotFoundException
   774  //   The specified resource doesn't exist.
   775  //
   776  //   * InvalidRequestException
   777  //   The request is invalid.
   778  //
   779  //   * ResourceExistsException
   780  //   The resource that you tried to create already exists.
   781  //
   782  //   * LimitExceededException
   783  //   The request caused one or more limits to be exceeded.
   784  //
   785  //   * InternalServiceErrorException
   786  //   We encountered an unknown error. Try again in a few minutes.
   787  //
   788  //   * ThrottlingException
   789  //   The request was throttled. Try again in a few minutes.
   790  //
   791  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverEndpoint
   792  func (c *Route53Resolver) CreateResolverEndpoint(input *CreateResolverEndpointInput) (*CreateResolverEndpointOutput, error) {
   793  	req, out := c.CreateResolverEndpointRequest(input)
   794  	return out, req.Send()
   795  }
   796  
   797  // CreateResolverEndpointWithContext is the same as CreateResolverEndpoint with the addition of
   798  // the ability to pass a context and additional request options.
   799  //
   800  // See CreateResolverEndpoint for details on how to use this API operation.
   801  //
   802  // The context must be non-nil and will be used for request cancellation. If
   803  // the context is nil a panic will occur. In the future the SDK may create
   804  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   805  // for more information on using Contexts.
   806  func (c *Route53Resolver) CreateResolverEndpointWithContext(ctx aws.Context, input *CreateResolverEndpointInput, opts ...request.Option) (*CreateResolverEndpointOutput, error) {
   807  	req, out := c.CreateResolverEndpointRequest(input)
   808  	req.SetContext(ctx)
   809  	req.ApplyOptions(opts...)
   810  	return out, req.Send()
   811  }
   812  
   813  const opCreateResolverQueryLogConfig = "CreateResolverQueryLogConfig"
   814  
   815  // CreateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
   816  // client's request for the CreateResolverQueryLogConfig operation. The "output" return
   817  // value will be populated with the request's response once the request completes
   818  // successfully.
   819  //
   820  // Use "Send" method on the returned Request to send the API call to the service.
   821  // the "output" return value is not valid until after Send returns without error.
   822  //
   823  // See CreateResolverQueryLogConfig for more information on using the CreateResolverQueryLogConfig
   824  // API call, and error handling.
   825  //
   826  // This method is useful when you want to inject custom logic or configuration
   827  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   828  //
   829  //
   830  //    // Example sending a request using the CreateResolverQueryLogConfigRequest method.
   831  //    req, resp := client.CreateResolverQueryLogConfigRequest(params)
   832  //
   833  //    err := req.Send()
   834  //    if err == nil { // resp is now filled
   835  //        fmt.Println(resp)
   836  //    }
   837  //
   838  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverQueryLogConfig
   839  func (c *Route53Resolver) CreateResolverQueryLogConfigRequest(input *CreateResolverQueryLogConfigInput) (req *request.Request, output *CreateResolverQueryLogConfigOutput) {
   840  	op := &request.Operation{
   841  		Name:       opCreateResolverQueryLogConfig,
   842  		HTTPMethod: "POST",
   843  		HTTPPath:   "/",
   844  	}
   845  
   846  	if input == nil {
   847  		input = &CreateResolverQueryLogConfigInput{}
   848  	}
   849  
   850  	output = &CreateResolverQueryLogConfigOutput{}
   851  	req = c.newRequest(op, input, output)
   852  	return
   853  }
   854  
   855  // CreateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
   856  //
   857  // Creates a Resolver query logging configuration, which defines where you want
   858  // Resolver to save DNS query logs that originate in your VPCs. Resolver can
   859  // log queries only for VPCs that are in the same Region as the query logging
   860  // configuration.
   861  //
   862  // To specify which VPCs you want to log queries for, you use AssociateResolverQueryLogConfig.
   863  // For more information, see AssociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html).
   864  //
   865  // You can optionally use Resource Access Manager (RAM) to share a query logging
   866  // configuration with other Amazon Web Services accounts. The other accounts
   867  // can then associate VPCs with the configuration. The query logs that Resolver
   868  // creates for a configuration include all DNS queries that originate in all
   869  // VPCs that are associated with the configuration.
   870  //
   871  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   872  // with awserr.Error's Code and Message methods to get detailed information about
   873  // the error.
   874  //
   875  // See the AWS API reference guide for Amazon Route 53 Resolver's
   876  // API operation CreateResolverQueryLogConfig for usage and error information.
   877  //
   878  // Returned Error Types:
   879  //   * InvalidParameterException
   880  //   One or more parameters in this request are not valid.
   881  //
   882  //   * ResourceNotFoundException
   883  //   The specified resource doesn't exist.
   884  //
   885  //   * InvalidRequestException
   886  //   The request is invalid.
   887  //
   888  //   * ResourceExistsException
   889  //   The resource that you tried to create already exists.
   890  //
   891  //   * LimitExceededException
   892  //   The request caused one or more limits to be exceeded.
   893  //
   894  //   * InternalServiceErrorException
   895  //   We encountered an unknown error. Try again in a few minutes.
   896  //
   897  //   * ThrottlingException
   898  //   The request was throttled. Try again in a few minutes.
   899  //
   900  //   * AccessDeniedException
   901  //   The current account doesn't have the IAM permissions required to perform
   902  //   the specified Resolver operation.
   903  //
   904  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverQueryLogConfig
   905  func (c *Route53Resolver) CreateResolverQueryLogConfig(input *CreateResolverQueryLogConfigInput) (*CreateResolverQueryLogConfigOutput, error) {
   906  	req, out := c.CreateResolverQueryLogConfigRequest(input)
   907  	return out, req.Send()
   908  }
   909  
   910  // CreateResolverQueryLogConfigWithContext is the same as CreateResolverQueryLogConfig with the addition of
   911  // the ability to pass a context and additional request options.
   912  //
   913  // See CreateResolverQueryLogConfig for details on how to use this API operation.
   914  //
   915  // The context must be non-nil and will be used for request cancellation. If
   916  // the context is nil a panic will occur. In the future the SDK may create
   917  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   918  // for more information on using Contexts.
   919  func (c *Route53Resolver) CreateResolverQueryLogConfigWithContext(ctx aws.Context, input *CreateResolverQueryLogConfigInput, opts ...request.Option) (*CreateResolverQueryLogConfigOutput, error) {
   920  	req, out := c.CreateResolverQueryLogConfigRequest(input)
   921  	req.SetContext(ctx)
   922  	req.ApplyOptions(opts...)
   923  	return out, req.Send()
   924  }
   925  
   926  const opCreateResolverRule = "CreateResolverRule"
   927  
   928  // CreateResolverRuleRequest generates a "aws/request.Request" representing the
   929  // client's request for the CreateResolverRule operation. The "output" return
   930  // value will be populated with the request's response once the request completes
   931  // successfully.
   932  //
   933  // Use "Send" method on the returned Request to send the API call to the service.
   934  // the "output" return value is not valid until after Send returns without error.
   935  //
   936  // See CreateResolverRule for more information on using the CreateResolverRule
   937  // API call, and error handling.
   938  //
   939  // This method is useful when you want to inject custom logic or configuration
   940  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   941  //
   942  //
   943  //    // Example sending a request using the CreateResolverRuleRequest method.
   944  //    req, resp := client.CreateResolverRuleRequest(params)
   945  //
   946  //    err := req.Send()
   947  //    if err == nil { // resp is now filled
   948  //        fmt.Println(resp)
   949  //    }
   950  //
   951  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverRule
   952  func (c *Route53Resolver) CreateResolverRuleRequest(input *CreateResolverRuleInput) (req *request.Request, output *CreateResolverRuleOutput) {
   953  	op := &request.Operation{
   954  		Name:       opCreateResolverRule,
   955  		HTTPMethod: "POST",
   956  		HTTPPath:   "/",
   957  	}
   958  
   959  	if input == nil {
   960  		input = &CreateResolverRuleInput{}
   961  	}
   962  
   963  	output = &CreateResolverRuleOutput{}
   964  	req = c.newRequest(op, input, output)
   965  	return
   966  }
   967  
   968  // CreateResolverRule API operation for Amazon Route 53 Resolver.
   969  //
   970  // For DNS queries that originate in your VPCs, specifies which Resolver endpoint
   971  // the queries pass through, one domain name that you want to forward to your
   972  // network, and the IP addresses of the DNS resolvers in your network.
   973  //
   974  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   975  // with awserr.Error's Code and Message methods to get detailed information about
   976  // the error.
   977  //
   978  // See the AWS API reference guide for Amazon Route 53 Resolver's
   979  // API operation CreateResolverRule for usage and error information.
   980  //
   981  // Returned Error Types:
   982  //   * InvalidParameterException
   983  //   One or more parameters in this request are not valid.
   984  //
   985  //   * InvalidRequestException
   986  //   The request is invalid.
   987  //
   988  //   * LimitExceededException
   989  //   The request caused one or more limits to be exceeded.
   990  //
   991  //   * ResourceNotFoundException
   992  //   The specified resource doesn't exist.
   993  //
   994  //   * ResourceExistsException
   995  //   The resource that you tried to create already exists.
   996  //
   997  //   * ResourceUnavailableException
   998  //   The specified resource isn't available.
   999  //
  1000  //   * InternalServiceErrorException
  1001  //   We encountered an unknown error. Try again in a few minutes.
  1002  //
  1003  //   * ThrottlingException
  1004  //   The request was throttled. Try again in a few minutes.
  1005  //
  1006  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverRule
  1007  func (c *Route53Resolver) CreateResolverRule(input *CreateResolverRuleInput) (*CreateResolverRuleOutput, error) {
  1008  	req, out := c.CreateResolverRuleRequest(input)
  1009  	return out, req.Send()
  1010  }
  1011  
  1012  // CreateResolverRuleWithContext is the same as CreateResolverRule with the addition of
  1013  // the ability to pass a context and additional request options.
  1014  //
  1015  // See CreateResolverRule for details on how to use this API operation.
  1016  //
  1017  // The context must be non-nil and will be used for request cancellation. If
  1018  // the context is nil a panic will occur. In the future the SDK may create
  1019  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1020  // for more information on using Contexts.
  1021  func (c *Route53Resolver) CreateResolverRuleWithContext(ctx aws.Context, input *CreateResolverRuleInput, opts ...request.Option) (*CreateResolverRuleOutput, error) {
  1022  	req, out := c.CreateResolverRuleRequest(input)
  1023  	req.SetContext(ctx)
  1024  	req.ApplyOptions(opts...)
  1025  	return out, req.Send()
  1026  }
  1027  
  1028  const opDeleteFirewallDomainList = "DeleteFirewallDomainList"
  1029  
  1030  // DeleteFirewallDomainListRequest generates a "aws/request.Request" representing the
  1031  // client's request for the DeleteFirewallDomainList operation. The "output" return
  1032  // value will be populated with the request's response once the request completes
  1033  // successfully.
  1034  //
  1035  // Use "Send" method on the returned Request to send the API call to the service.
  1036  // the "output" return value is not valid until after Send returns without error.
  1037  //
  1038  // See DeleteFirewallDomainList for more information on using the DeleteFirewallDomainList
  1039  // API call, and error handling.
  1040  //
  1041  // This method is useful when you want to inject custom logic or configuration
  1042  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1043  //
  1044  //
  1045  //    // Example sending a request using the DeleteFirewallDomainListRequest method.
  1046  //    req, resp := client.DeleteFirewallDomainListRequest(params)
  1047  //
  1048  //    err := req.Send()
  1049  //    if err == nil { // resp is now filled
  1050  //        fmt.Println(resp)
  1051  //    }
  1052  //
  1053  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallDomainList
  1054  func (c *Route53Resolver) DeleteFirewallDomainListRequest(input *DeleteFirewallDomainListInput) (req *request.Request, output *DeleteFirewallDomainListOutput) {
  1055  	op := &request.Operation{
  1056  		Name:       opDeleteFirewallDomainList,
  1057  		HTTPMethod: "POST",
  1058  		HTTPPath:   "/",
  1059  	}
  1060  
  1061  	if input == nil {
  1062  		input = &DeleteFirewallDomainListInput{}
  1063  	}
  1064  
  1065  	output = &DeleteFirewallDomainListOutput{}
  1066  	req = c.newRequest(op, input, output)
  1067  	return
  1068  }
  1069  
  1070  // DeleteFirewallDomainList API operation for Amazon Route 53 Resolver.
  1071  //
  1072  // Deletes the specified domain list.
  1073  //
  1074  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1075  // with awserr.Error's Code and Message methods to get detailed information about
  1076  // the error.
  1077  //
  1078  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1079  // API operation DeleteFirewallDomainList for usage and error information.
  1080  //
  1081  // Returned Error Types:
  1082  //   * ResourceNotFoundException
  1083  //   The specified resource doesn't exist.
  1084  //
  1085  //   * ConflictException
  1086  //
  1087  //   * AccessDeniedException
  1088  //   The current account doesn't have the IAM permissions required to perform
  1089  //   the specified Resolver operation.
  1090  //
  1091  //   * InternalServiceErrorException
  1092  //   We encountered an unknown error. Try again in a few minutes.
  1093  //
  1094  //   * ThrottlingException
  1095  //   The request was throttled. Try again in a few minutes.
  1096  //
  1097  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallDomainList
  1098  func (c *Route53Resolver) DeleteFirewallDomainList(input *DeleteFirewallDomainListInput) (*DeleteFirewallDomainListOutput, error) {
  1099  	req, out := c.DeleteFirewallDomainListRequest(input)
  1100  	return out, req.Send()
  1101  }
  1102  
  1103  // DeleteFirewallDomainListWithContext is the same as DeleteFirewallDomainList with the addition of
  1104  // the ability to pass a context and additional request options.
  1105  //
  1106  // See DeleteFirewallDomainList for details on how to use this API operation.
  1107  //
  1108  // The context must be non-nil and will be used for request cancellation. If
  1109  // the context is nil a panic will occur. In the future the SDK may create
  1110  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1111  // for more information on using Contexts.
  1112  func (c *Route53Resolver) DeleteFirewallDomainListWithContext(ctx aws.Context, input *DeleteFirewallDomainListInput, opts ...request.Option) (*DeleteFirewallDomainListOutput, error) {
  1113  	req, out := c.DeleteFirewallDomainListRequest(input)
  1114  	req.SetContext(ctx)
  1115  	req.ApplyOptions(opts...)
  1116  	return out, req.Send()
  1117  }
  1118  
  1119  const opDeleteFirewallRule = "DeleteFirewallRule"
  1120  
  1121  // DeleteFirewallRuleRequest generates a "aws/request.Request" representing the
  1122  // client's request for the DeleteFirewallRule operation. The "output" return
  1123  // value will be populated with the request's response once the request completes
  1124  // successfully.
  1125  //
  1126  // Use "Send" method on the returned Request to send the API call to the service.
  1127  // the "output" return value is not valid until after Send returns without error.
  1128  //
  1129  // See DeleteFirewallRule for more information on using the DeleteFirewallRule
  1130  // API call, and error handling.
  1131  //
  1132  // This method is useful when you want to inject custom logic or configuration
  1133  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1134  //
  1135  //
  1136  //    // Example sending a request using the DeleteFirewallRuleRequest method.
  1137  //    req, resp := client.DeleteFirewallRuleRequest(params)
  1138  //
  1139  //    err := req.Send()
  1140  //    if err == nil { // resp is now filled
  1141  //        fmt.Println(resp)
  1142  //    }
  1143  //
  1144  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRule
  1145  func (c *Route53Resolver) DeleteFirewallRuleRequest(input *DeleteFirewallRuleInput) (req *request.Request, output *DeleteFirewallRuleOutput) {
  1146  	op := &request.Operation{
  1147  		Name:       opDeleteFirewallRule,
  1148  		HTTPMethod: "POST",
  1149  		HTTPPath:   "/",
  1150  	}
  1151  
  1152  	if input == nil {
  1153  		input = &DeleteFirewallRuleInput{}
  1154  	}
  1155  
  1156  	output = &DeleteFirewallRuleOutput{}
  1157  	req = c.newRequest(op, input, output)
  1158  	return
  1159  }
  1160  
  1161  // DeleteFirewallRule API operation for Amazon Route 53 Resolver.
  1162  //
  1163  // Deletes the specified firewall rule.
  1164  //
  1165  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1166  // with awserr.Error's Code and Message methods to get detailed information about
  1167  // the error.
  1168  //
  1169  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1170  // API operation DeleteFirewallRule for usage and error information.
  1171  //
  1172  // Returned Error Types:
  1173  //   * ResourceNotFoundException
  1174  //   The specified resource doesn't exist.
  1175  //
  1176  //   * AccessDeniedException
  1177  //   The current account doesn't have the IAM permissions required to perform
  1178  //   the specified Resolver operation.
  1179  //
  1180  //   * InternalServiceErrorException
  1181  //   We encountered an unknown error. Try again in a few minutes.
  1182  //
  1183  //   * ThrottlingException
  1184  //   The request was throttled. Try again in a few minutes.
  1185  //
  1186  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRule
  1187  func (c *Route53Resolver) DeleteFirewallRule(input *DeleteFirewallRuleInput) (*DeleteFirewallRuleOutput, error) {
  1188  	req, out := c.DeleteFirewallRuleRequest(input)
  1189  	return out, req.Send()
  1190  }
  1191  
  1192  // DeleteFirewallRuleWithContext is the same as DeleteFirewallRule with the addition of
  1193  // the ability to pass a context and additional request options.
  1194  //
  1195  // See DeleteFirewallRule for details on how to use this API operation.
  1196  //
  1197  // The context must be non-nil and will be used for request cancellation. If
  1198  // the context is nil a panic will occur. In the future the SDK may create
  1199  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1200  // for more information on using Contexts.
  1201  func (c *Route53Resolver) DeleteFirewallRuleWithContext(ctx aws.Context, input *DeleteFirewallRuleInput, opts ...request.Option) (*DeleteFirewallRuleOutput, error) {
  1202  	req, out := c.DeleteFirewallRuleRequest(input)
  1203  	req.SetContext(ctx)
  1204  	req.ApplyOptions(opts...)
  1205  	return out, req.Send()
  1206  }
  1207  
  1208  const opDeleteFirewallRuleGroup = "DeleteFirewallRuleGroup"
  1209  
  1210  // DeleteFirewallRuleGroupRequest generates a "aws/request.Request" representing the
  1211  // client's request for the DeleteFirewallRuleGroup operation. The "output" return
  1212  // value will be populated with the request's response once the request completes
  1213  // successfully.
  1214  //
  1215  // Use "Send" method on the returned Request to send the API call to the service.
  1216  // the "output" return value is not valid until after Send returns without error.
  1217  //
  1218  // See DeleteFirewallRuleGroup for more information on using the DeleteFirewallRuleGroup
  1219  // API call, and error handling.
  1220  //
  1221  // This method is useful when you want to inject custom logic or configuration
  1222  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1223  //
  1224  //
  1225  //    // Example sending a request using the DeleteFirewallRuleGroupRequest method.
  1226  //    req, resp := client.DeleteFirewallRuleGroupRequest(params)
  1227  //
  1228  //    err := req.Send()
  1229  //    if err == nil { // resp is now filled
  1230  //        fmt.Println(resp)
  1231  //    }
  1232  //
  1233  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRuleGroup
  1234  func (c *Route53Resolver) DeleteFirewallRuleGroupRequest(input *DeleteFirewallRuleGroupInput) (req *request.Request, output *DeleteFirewallRuleGroupOutput) {
  1235  	op := &request.Operation{
  1236  		Name:       opDeleteFirewallRuleGroup,
  1237  		HTTPMethod: "POST",
  1238  		HTTPPath:   "/",
  1239  	}
  1240  
  1241  	if input == nil {
  1242  		input = &DeleteFirewallRuleGroupInput{}
  1243  	}
  1244  
  1245  	output = &DeleteFirewallRuleGroupOutput{}
  1246  	req = c.newRequest(op, input, output)
  1247  	return
  1248  }
  1249  
  1250  // DeleteFirewallRuleGroup API operation for Amazon Route 53 Resolver.
  1251  //
  1252  // Deletes the specified firewall rule group.
  1253  //
  1254  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1255  // with awserr.Error's Code and Message methods to get detailed information about
  1256  // the error.
  1257  //
  1258  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1259  // API operation DeleteFirewallRuleGroup for usage and error information.
  1260  //
  1261  // Returned Error Types:
  1262  //   * ResourceNotFoundException
  1263  //   The specified resource doesn't exist.
  1264  //
  1265  //   * ConflictException
  1266  //
  1267  //   * ValidationException
  1268  //
  1269  //   * AccessDeniedException
  1270  //   The current account doesn't have the IAM permissions required to perform
  1271  //   the specified Resolver operation.
  1272  //
  1273  //   * InternalServiceErrorException
  1274  //   We encountered an unknown error. Try again in a few minutes.
  1275  //
  1276  //   * ThrottlingException
  1277  //   The request was throttled. Try again in a few minutes.
  1278  //
  1279  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRuleGroup
  1280  func (c *Route53Resolver) DeleteFirewallRuleGroup(input *DeleteFirewallRuleGroupInput) (*DeleteFirewallRuleGroupOutput, error) {
  1281  	req, out := c.DeleteFirewallRuleGroupRequest(input)
  1282  	return out, req.Send()
  1283  }
  1284  
  1285  // DeleteFirewallRuleGroupWithContext is the same as DeleteFirewallRuleGroup with the addition of
  1286  // the ability to pass a context and additional request options.
  1287  //
  1288  // See DeleteFirewallRuleGroup for details on how to use this API operation.
  1289  //
  1290  // The context must be non-nil and will be used for request cancellation. If
  1291  // the context is nil a panic will occur. In the future the SDK may create
  1292  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1293  // for more information on using Contexts.
  1294  func (c *Route53Resolver) DeleteFirewallRuleGroupWithContext(ctx aws.Context, input *DeleteFirewallRuleGroupInput, opts ...request.Option) (*DeleteFirewallRuleGroupOutput, error) {
  1295  	req, out := c.DeleteFirewallRuleGroupRequest(input)
  1296  	req.SetContext(ctx)
  1297  	req.ApplyOptions(opts...)
  1298  	return out, req.Send()
  1299  }
  1300  
  1301  const opDeleteResolverEndpoint = "DeleteResolverEndpoint"
  1302  
  1303  // DeleteResolverEndpointRequest generates a "aws/request.Request" representing the
  1304  // client's request for the DeleteResolverEndpoint operation. The "output" return
  1305  // value will be populated with the request's response once the request completes
  1306  // successfully.
  1307  //
  1308  // Use "Send" method on the returned Request to send the API call to the service.
  1309  // the "output" return value is not valid until after Send returns without error.
  1310  //
  1311  // See DeleteResolverEndpoint for more information on using the DeleteResolverEndpoint
  1312  // API call, and error handling.
  1313  //
  1314  // This method is useful when you want to inject custom logic or configuration
  1315  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1316  //
  1317  //
  1318  //    // Example sending a request using the DeleteResolverEndpointRequest method.
  1319  //    req, resp := client.DeleteResolverEndpointRequest(params)
  1320  //
  1321  //    err := req.Send()
  1322  //    if err == nil { // resp is now filled
  1323  //        fmt.Println(resp)
  1324  //    }
  1325  //
  1326  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverEndpoint
  1327  func (c *Route53Resolver) DeleteResolverEndpointRequest(input *DeleteResolverEndpointInput) (req *request.Request, output *DeleteResolverEndpointOutput) {
  1328  	op := &request.Operation{
  1329  		Name:       opDeleteResolverEndpoint,
  1330  		HTTPMethod: "POST",
  1331  		HTTPPath:   "/",
  1332  	}
  1333  
  1334  	if input == nil {
  1335  		input = &DeleteResolverEndpointInput{}
  1336  	}
  1337  
  1338  	output = &DeleteResolverEndpointOutput{}
  1339  	req = c.newRequest(op, input, output)
  1340  	return
  1341  }
  1342  
  1343  // DeleteResolverEndpoint API operation for Amazon Route 53 Resolver.
  1344  //
  1345  // Deletes a Resolver endpoint. The effect of deleting a Resolver endpoint depends
  1346  // on whether it's an inbound or an outbound Resolver endpoint:
  1347  //
  1348  //    * Inbound: DNS queries from your network are no longer routed to the DNS
  1349  //    service for the specified VPC.
  1350  //
  1351  //    * Outbound: DNS queries from a VPC are no longer routed to your network.
  1352  //
  1353  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1354  // with awserr.Error's Code and Message methods to get detailed information about
  1355  // the error.
  1356  //
  1357  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1358  // API operation DeleteResolverEndpoint for usage and error information.
  1359  //
  1360  // Returned Error Types:
  1361  //   * ResourceNotFoundException
  1362  //   The specified resource doesn't exist.
  1363  //
  1364  //   * InvalidParameterException
  1365  //   One or more parameters in this request are not valid.
  1366  //
  1367  //   * InvalidRequestException
  1368  //   The request is invalid.
  1369  //
  1370  //   * InternalServiceErrorException
  1371  //   We encountered an unknown error. Try again in a few minutes.
  1372  //
  1373  //   * ThrottlingException
  1374  //   The request was throttled. Try again in a few minutes.
  1375  //
  1376  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverEndpoint
  1377  func (c *Route53Resolver) DeleteResolverEndpoint(input *DeleteResolverEndpointInput) (*DeleteResolverEndpointOutput, error) {
  1378  	req, out := c.DeleteResolverEndpointRequest(input)
  1379  	return out, req.Send()
  1380  }
  1381  
  1382  // DeleteResolverEndpointWithContext is the same as DeleteResolverEndpoint with the addition of
  1383  // the ability to pass a context and additional request options.
  1384  //
  1385  // See DeleteResolverEndpoint for details on how to use this API operation.
  1386  //
  1387  // The context must be non-nil and will be used for request cancellation. If
  1388  // the context is nil a panic will occur. In the future the SDK may create
  1389  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1390  // for more information on using Contexts.
  1391  func (c *Route53Resolver) DeleteResolverEndpointWithContext(ctx aws.Context, input *DeleteResolverEndpointInput, opts ...request.Option) (*DeleteResolverEndpointOutput, error) {
  1392  	req, out := c.DeleteResolverEndpointRequest(input)
  1393  	req.SetContext(ctx)
  1394  	req.ApplyOptions(opts...)
  1395  	return out, req.Send()
  1396  }
  1397  
  1398  const opDeleteResolverQueryLogConfig = "DeleteResolverQueryLogConfig"
  1399  
  1400  // DeleteResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
  1401  // client's request for the DeleteResolverQueryLogConfig operation. The "output" return
  1402  // value will be populated with the request's response once the request completes
  1403  // successfully.
  1404  //
  1405  // Use "Send" method on the returned Request to send the API call to the service.
  1406  // the "output" return value is not valid until after Send returns without error.
  1407  //
  1408  // See DeleteResolverQueryLogConfig for more information on using the DeleteResolverQueryLogConfig
  1409  // API call, and error handling.
  1410  //
  1411  // This method is useful when you want to inject custom logic or configuration
  1412  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1413  //
  1414  //
  1415  //    // Example sending a request using the DeleteResolverQueryLogConfigRequest method.
  1416  //    req, resp := client.DeleteResolverQueryLogConfigRequest(params)
  1417  //
  1418  //    err := req.Send()
  1419  //    if err == nil { // resp is now filled
  1420  //        fmt.Println(resp)
  1421  //    }
  1422  //
  1423  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverQueryLogConfig
  1424  func (c *Route53Resolver) DeleteResolverQueryLogConfigRequest(input *DeleteResolverQueryLogConfigInput) (req *request.Request, output *DeleteResolverQueryLogConfigOutput) {
  1425  	op := &request.Operation{
  1426  		Name:       opDeleteResolverQueryLogConfig,
  1427  		HTTPMethod: "POST",
  1428  		HTTPPath:   "/",
  1429  	}
  1430  
  1431  	if input == nil {
  1432  		input = &DeleteResolverQueryLogConfigInput{}
  1433  	}
  1434  
  1435  	output = &DeleteResolverQueryLogConfigOutput{}
  1436  	req = c.newRequest(op, input, output)
  1437  	return
  1438  }
  1439  
  1440  // DeleteResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
  1441  //
  1442  // Deletes a query logging configuration. When you delete a configuration, Resolver
  1443  // stops logging DNS queries for all of the Amazon VPCs that are associated
  1444  // with the configuration. This also applies if the query logging configuration
  1445  // is shared with other Amazon Web Services accounts, and the other accounts
  1446  // have associated VPCs with the shared configuration.
  1447  //
  1448  // Before you can delete a query logging configuration, you must first disassociate
  1449  // all VPCs from the configuration. See DisassociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html).
  1450  //
  1451  // If you used Resource Access Manager (RAM) to share a query logging configuration
  1452  // with other accounts, you must stop sharing the configuration before you can
  1453  // delete a configuration. The accounts that you shared the configuration with
  1454  // can first disassociate VPCs that they associated with the configuration,
  1455  // but that's not necessary. If you stop sharing the configuration, those VPCs
  1456  // are automatically disassociated from the configuration.
  1457  //
  1458  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1459  // with awserr.Error's Code and Message methods to get detailed information about
  1460  // the error.
  1461  //
  1462  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1463  // API operation DeleteResolverQueryLogConfig for usage and error information.
  1464  //
  1465  // Returned Error Types:
  1466  //   * ResourceNotFoundException
  1467  //   The specified resource doesn't exist.
  1468  //
  1469  //   * InvalidParameterException
  1470  //   One or more parameters in this request are not valid.
  1471  //
  1472  //   * InvalidRequestException
  1473  //   The request is invalid.
  1474  //
  1475  //   * InternalServiceErrorException
  1476  //   We encountered an unknown error. Try again in a few minutes.
  1477  //
  1478  //   * ThrottlingException
  1479  //   The request was throttled. Try again in a few minutes.
  1480  //
  1481  //   * AccessDeniedException
  1482  //   The current account doesn't have the IAM permissions required to perform
  1483  //   the specified Resolver operation.
  1484  //
  1485  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverQueryLogConfig
  1486  func (c *Route53Resolver) DeleteResolverQueryLogConfig(input *DeleteResolverQueryLogConfigInput) (*DeleteResolverQueryLogConfigOutput, error) {
  1487  	req, out := c.DeleteResolverQueryLogConfigRequest(input)
  1488  	return out, req.Send()
  1489  }
  1490  
  1491  // DeleteResolverQueryLogConfigWithContext is the same as DeleteResolverQueryLogConfig with the addition of
  1492  // the ability to pass a context and additional request options.
  1493  //
  1494  // See DeleteResolverQueryLogConfig for details on how to use this API operation.
  1495  //
  1496  // The context must be non-nil and will be used for request cancellation. If
  1497  // the context is nil a panic will occur. In the future the SDK may create
  1498  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1499  // for more information on using Contexts.
  1500  func (c *Route53Resolver) DeleteResolverQueryLogConfigWithContext(ctx aws.Context, input *DeleteResolverQueryLogConfigInput, opts ...request.Option) (*DeleteResolverQueryLogConfigOutput, error) {
  1501  	req, out := c.DeleteResolverQueryLogConfigRequest(input)
  1502  	req.SetContext(ctx)
  1503  	req.ApplyOptions(opts...)
  1504  	return out, req.Send()
  1505  }
  1506  
  1507  const opDeleteResolverRule = "DeleteResolverRule"
  1508  
  1509  // DeleteResolverRuleRequest generates a "aws/request.Request" representing the
  1510  // client's request for the DeleteResolverRule operation. The "output" return
  1511  // value will be populated with the request's response once the request completes
  1512  // successfully.
  1513  //
  1514  // Use "Send" method on the returned Request to send the API call to the service.
  1515  // the "output" return value is not valid until after Send returns without error.
  1516  //
  1517  // See DeleteResolverRule for more information on using the DeleteResolverRule
  1518  // API call, and error handling.
  1519  //
  1520  // This method is useful when you want to inject custom logic or configuration
  1521  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1522  //
  1523  //
  1524  //    // Example sending a request using the DeleteResolverRuleRequest method.
  1525  //    req, resp := client.DeleteResolverRuleRequest(params)
  1526  //
  1527  //    err := req.Send()
  1528  //    if err == nil { // resp is now filled
  1529  //        fmt.Println(resp)
  1530  //    }
  1531  //
  1532  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverRule
  1533  func (c *Route53Resolver) DeleteResolverRuleRequest(input *DeleteResolverRuleInput) (req *request.Request, output *DeleteResolverRuleOutput) {
  1534  	op := &request.Operation{
  1535  		Name:       opDeleteResolverRule,
  1536  		HTTPMethod: "POST",
  1537  		HTTPPath:   "/",
  1538  	}
  1539  
  1540  	if input == nil {
  1541  		input = &DeleteResolverRuleInput{}
  1542  	}
  1543  
  1544  	output = &DeleteResolverRuleOutput{}
  1545  	req = c.newRequest(op, input, output)
  1546  	return
  1547  }
  1548  
  1549  // DeleteResolverRule API operation for Amazon Route 53 Resolver.
  1550  //
  1551  // Deletes a Resolver rule. Before you can delete a Resolver rule, you must
  1552  // disassociate it from all the VPCs that you associated the Resolver rule with.
  1553  // For more information, see DisassociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html).
  1554  //
  1555  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1556  // with awserr.Error's Code and Message methods to get detailed information about
  1557  // the error.
  1558  //
  1559  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1560  // API operation DeleteResolverRule for usage and error information.
  1561  //
  1562  // Returned Error Types:
  1563  //   * InvalidParameterException
  1564  //   One or more parameters in this request are not valid.
  1565  //
  1566  //   * ResourceNotFoundException
  1567  //   The specified resource doesn't exist.
  1568  //
  1569  //   * ResourceInUseException
  1570  //   The resource that you tried to update or delete is currently in use.
  1571  //
  1572  //   * InternalServiceErrorException
  1573  //   We encountered an unknown error. Try again in a few minutes.
  1574  //
  1575  //   * ThrottlingException
  1576  //   The request was throttled. Try again in a few minutes.
  1577  //
  1578  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverRule
  1579  func (c *Route53Resolver) DeleteResolverRule(input *DeleteResolverRuleInput) (*DeleteResolverRuleOutput, error) {
  1580  	req, out := c.DeleteResolverRuleRequest(input)
  1581  	return out, req.Send()
  1582  }
  1583  
  1584  // DeleteResolverRuleWithContext is the same as DeleteResolverRule with the addition of
  1585  // the ability to pass a context and additional request options.
  1586  //
  1587  // See DeleteResolverRule for details on how to use this API operation.
  1588  //
  1589  // The context must be non-nil and will be used for request cancellation. If
  1590  // the context is nil a panic will occur. In the future the SDK may create
  1591  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1592  // for more information on using Contexts.
  1593  func (c *Route53Resolver) DeleteResolverRuleWithContext(ctx aws.Context, input *DeleteResolverRuleInput, opts ...request.Option) (*DeleteResolverRuleOutput, error) {
  1594  	req, out := c.DeleteResolverRuleRequest(input)
  1595  	req.SetContext(ctx)
  1596  	req.ApplyOptions(opts...)
  1597  	return out, req.Send()
  1598  }
  1599  
  1600  const opDisassociateFirewallRuleGroup = "DisassociateFirewallRuleGroup"
  1601  
  1602  // DisassociateFirewallRuleGroupRequest generates a "aws/request.Request" representing the
  1603  // client's request for the DisassociateFirewallRuleGroup operation. The "output" return
  1604  // value will be populated with the request's response once the request completes
  1605  // successfully.
  1606  //
  1607  // Use "Send" method on the returned Request to send the API call to the service.
  1608  // the "output" return value is not valid until after Send returns without error.
  1609  //
  1610  // See DisassociateFirewallRuleGroup for more information on using the DisassociateFirewallRuleGroup
  1611  // API call, and error handling.
  1612  //
  1613  // This method is useful when you want to inject custom logic or configuration
  1614  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1615  //
  1616  //
  1617  //    // Example sending a request using the DisassociateFirewallRuleGroupRequest method.
  1618  //    req, resp := client.DisassociateFirewallRuleGroupRequest(params)
  1619  //
  1620  //    err := req.Send()
  1621  //    if err == nil { // resp is now filled
  1622  //        fmt.Println(resp)
  1623  //    }
  1624  //
  1625  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateFirewallRuleGroup
  1626  func (c *Route53Resolver) DisassociateFirewallRuleGroupRequest(input *DisassociateFirewallRuleGroupInput) (req *request.Request, output *DisassociateFirewallRuleGroupOutput) {
  1627  	op := &request.Operation{
  1628  		Name:       opDisassociateFirewallRuleGroup,
  1629  		HTTPMethod: "POST",
  1630  		HTTPPath:   "/",
  1631  	}
  1632  
  1633  	if input == nil {
  1634  		input = &DisassociateFirewallRuleGroupInput{}
  1635  	}
  1636  
  1637  	output = &DisassociateFirewallRuleGroupOutput{}
  1638  	req = c.newRequest(op, input, output)
  1639  	return
  1640  }
  1641  
  1642  // DisassociateFirewallRuleGroup API operation for Amazon Route 53 Resolver.
  1643  //
  1644  // Disassociates a FirewallRuleGroup from a VPC, to remove DNS filtering from
  1645  // the VPC.
  1646  //
  1647  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1648  // with awserr.Error's Code and Message methods to get detailed information about
  1649  // the error.
  1650  //
  1651  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1652  // API operation DisassociateFirewallRuleGroup for usage and error information.
  1653  //
  1654  // Returned Error Types:
  1655  //   * ResourceNotFoundException
  1656  //   The specified resource doesn't exist.
  1657  //
  1658  //   * ValidationException
  1659  //
  1660  //   * AccessDeniedException
  1661  //   The current account doesn't have the IAM permissions required to perform
  1662  //   the specified Resolver operation.
  1663  //
  1664  //   * ConflictException
  1665  //
  1666  //   * InternalServiceErrorException
  1667  //   We encountered an unknown error. Try again in a few minutes.
  1668  //
  1669  //   * ThrottlingException
  1670  //   The request was throttled. Try again in a few minutes.
  1671  //
  1672  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateFirewallRuleGroup
  1673  func (c *Route53Resolver) DisassociateFirewallRuleGroup(input *DisassociateFirewallRuleGroupInput) (*DisassociateFirewallRuleGroupOutput, error) {
  1674  	req, out := c.DisassociateFirewallRuleGroupRequest(input)
  1675  	return out, req.Send()
  1676  }
  1677  
  1678  // DisassociateFirewallRuleGroupWithContext is the same as DisassociateFirewallRuleGroup with the addition of
  1679  // the ability to pass a context and additional request options.
  1680  //
  1681  // See DisassociateFirewallRuleGroup for details on how to use this API operation.
  1682  //
  1683  // The context must be non-nil and will be used for request cancellation. If
  1684  // the context is nil a panic will occur. In the future the SDK may create
  1685  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1686  // for more information on using Contexts.
  1687  func (c *Route53Resolver) DisassociateFirewallRuleGroupWithContext(ctx aws.Context, input *DisassociateFirewallRuleGroupInput, opts ...request.Option) (*DisassociateFirewallRuleGroupOutput, error) {
  1688  	req, out := c.DisassociateFirewallRuleGroupRequest(input)
  1689  	req.SetContext(ctx)
  1690  	req.ApplyOptions(opts...)
  1691  	return out, req.Send()
  1692  }
  1693  
  1694  const opDisassociateResolverEndpointIpAddress = "DisassociateResolverEndpointIpAddress"
  1695  
  1696  // DisassociateResolverEndpointIpAddressRequest generates a "aws/request.Request" representing the
  1697  // client's request for the DisassociateResolverEndpointIpAddress operation. The "output" return
  1698  // value will be populated with the request's response once the request completes
  1699  // successfully.
  1700  //
  1701  // Use "Send" method on the returned Request to send the API call to the service.
  1702  // the "output" return value is not valid until after Send returns without error.
  1703  //
  1704  // See DisassociateResolverEndpointIpAddress for more information on using the DisassociateResolverEndpointIpAddress
  1705  // API call, and error handling.
  1706  //
  1707  // This method is useful when you want to inject custom logic or configuration
  1708  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1709  //
  1710  //
  1711  //    // Example sending a request using the DisassociateResolverEndpointIpAddressRequest method.
  1712  //    req, resp := client.DisassociateResolverEndpointIpAddressRequest(params)
  1713  //
  1714  //    err := req.Send()
  1715  //    if err == nil { // resp is now filled
  1716  //        fmt.Println(resp)
  1717  //    }
  1718  //
  1719  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverEndpointIpAddress
  1720  func (c *Route53Resolver) DisassociateResolverEndpointIpAddressRequest(input *DisassociateResolverEndpointIpAddressInput) (req *request.Request, output *DisassociateResolverEndpointIpAddressOutput) {
  1721  	op := &request.Operation{
  1722  		Name:       opDisassociateResolverEndpointIpAddress,
  1723  		HTTPMethod: "POST",
  1724  		HTTPPath:   "/",
  1725  	}
  1726  
  1727  	if input == nil {
  1728  		input = &DisassociateResolverEndpointIpAddressInput{}
  1729  	}
  1730  
  1731  	output = &DisassociateResolverEndpointIpAddressOutput{}
  1732  	req = c.newRequest(op, input, output)
  1733  	return
  1734  }
  1735  
  1736  // DisassociateResolverEndpointIpAddress API operation for Amazon Route 53 Resolver.
  1737  //
  1738  // Removes IP addresses from an inbound or an outbound Resolver endpoint. If
  1739  // you want to remove more than one IP address, submit one DisassociateResolverEndpointIpAddress
  1740  // request for each IP address.
  1741  //
  1742  // To add an IP address to an endpoint, see AssociateResolverEndpointIpAddress
  1743  // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverEndpointIpAddress.html).
  1744  //
  1745  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1746  // with awserr.Error's Code and Message methods to get detailed information about
  1747  // the error.
  1748  //
  1749  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1750  // API operation DisassociateResolverEndpointIpAddress for usage and error information.
  1751  //
  1752  // Returned Error Types:
  1753  //   * ResourceNotFoundException
  1754  //   The specified resource doesn't exist.
  1755  //
  1756  //   * InvalidParameterException
  1757  //   One or more parameters in this request are not valid.
  1758  //
  1759  //   * InvalidRequestException
  1760  //   The request is invalid.
  1761  //
  1762  //   * ResourceExistsException
  1763  //   The resource that you tried to create already exists.
  1764  //
  1765  //   * InternalServiceErrorException
  1766  //   We encountered an unknown error. Try again in a few minutes.
  1767  //
  1768  //   * ThrottlingException
  1769  //   The request was throttled. Try again in a few minutes.
  1770  //
  1771  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverEndpointIpAddress
  1772  func (c *Route53Resolver) DisassociateResolverEndpointIpAddress(input *DisassociateResolverEndpointIpAddressInput) (*DisassociateResolverEndpointIpAddressOutput, error) {
  1773  	req, out := c.DisassociateResolverEndpointIpAddressRequest(input)
  1774  	return out, req.Send()
  1775  }
  1776  
  1777  // DisassociateResolverEndpointIpAddressWithContext is the same as DisassociateResolverEndpointIpAddress with the addition of
  1778  // the ability to pass a context and additional request options.
  1779  //
  1780  // See DisassociateResolverEndpointIpAddress for details on how to use this API operation.
  1781  //
  1782  // The context must be non-nil and will be used for request cancellation. If
  1783  // the context is nil a panic will occur. In the future the SDK may create
  1784  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1785  // for more information on using Contexts.
  1786  func (c *Route53Resolver) DisassociateResolverEndpointIpAddressWithContext(ctx aws.Context, input *DisassociateResolverEndpointIpAddressInput, opts ...request.Option) (*DisassociateResolverEndpointIpAddressOutput, error) {
  1787  	req, out := c.DisassociateResolverEndpointIpAddressRequest(input)
  1788  	req.SetContext(ctx)
  1789  	req.ApplyOptions(opts...)
  1790  	return out, req.Send()
  1791  }
  1792  
  1793  const opDisassociateResolverQueryLogConfig = "DisassociateResolverQueryLogConfig"
  1794  
  1795  // DisassociateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
  1796  // client's request for the DisassociateResolverQueryLogConfig operation. The "output" return
  1797  // value will be populated with the request's response once the request completes
  1798  // successfully.
  1799  //
  1800  // Use "Send" method on the returned Request to send the API call to the service.
  1801  // the "output" return value is not valid until after Send returns without error.
  1802  //
  1803  // See DisassociateResolverQueryLogConfig for more information on using the DisassociateResolverQueryLogConfig
  1804  // API call, and error handling.
  1805  //
  1806  // This method is useful when you want to inject custom logic or configuration
  1807  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1808  //
  1809  //
  1810  //    // Example sending a request using the DisassociateResolverQueryLogConfigRequest method.
  1811  //    req, resp := client.DisassociateResolverQueryLogConfigRequest(params)
  1812  //
  1813  //    err := req.Send()
  1814  //    if err == nil { // resp is now filled
  1815  //        fmt.Println(resp)
  1816  //    }
  1817  //
  1818  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverQueryLogConfig
  1819  func (c *Route53Resolver) DisassociateResolverQueryLogConfigRequest(input *DisassociateResolverQueryLogConfigInput) (req *request.Request, output *DisassociateResolverQueryLogConfigOutput) {
  1820  	op := &request.Operation{
  1821  		Name:       opDisassociateResolverQueryLogConfig,
  1822  		HTTPMethod: "POST",
  1823  		HTTPPath:   "/",
  1824  	}
  1825  
  1826  	if input == nil {
  1827  		input = &DisassociateResolverQueryLogConfigInput{}
  1828  	}
  1829  
  1830  	output = &DisassociateResolverQueryLogConfigOutput{}
  1831  	req = c.newRequest(op, input, output)
  1832  	return
  1833  }
  1834  
  1835  // DisassociateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
  1836  //
  1837  // Disassociates a VPC from a query logging configuration.
  1838  //
  1839  // Before you can delete a query logging configuration, you must first disassociate
  1840  // all VPCs from the configuration. If you used Resource Access Manager (RAM)
  1841  // to share a query logging configuration with other accounts, VPCs can be disassociated
  1842  // from the configuration in the following ways:
  1843  //
  1844  //    * The accounts that you shared the configuration with can disassociate
  1845  //    VPCs from the configuration.
  1846  //
  1847  //    * You can stop sharing the configuration.
  1848  //
  1849  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1850  // with awserr.Error's Code and Message methods to get detailed information about
  1851  // the error.
  1852  //
  1853  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1854  // API operation DisassociateResolverQueryLogConfig for usage and error information.
  1855  //
  1856  // Returned Error Types:
  1857  //   * ResourceNotFoundException
  1858  //   The specified resource doesn't exist.
  1859  //
  1860  //   * InvalidParameterException
  1861  //   One or more parameters in this request are not valid.
  1862  //
  1863  //   * InvalidRequestException
  1864  //   The request is invalid.
  1865  //
  1866  //   * InternalServiceErrorException
  1867  //   We encountered an unknown error. Try again in a few minutes.
  1868  //
  1869  //   * ThrottlingException
  1870  //   The request was throttled. Try again in a few minutes.
  1871  //
  1872  //   * AccessDeniedException
  1873  //   The current account doesn't have the IAM permissions required to perform
  1874  //   the specified Resolver operation.
  1875  //
  1876  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverQueryLogConfig
  1877  func (c *Route53Resolver) DisassociateResolverQueryLogConfig(input *DisassociateResolverQueryLogConfigInput) (*DisassociateResolverQueryLogConfigOutput, error) {
  1878  	req, out := c.DisassociateResolverQueryLogConfigRequest(input)
  1879  	return out, req.Send()
  1880  }
  1881  
  1882  // DisassociateResolverQueryLogConfigWithContext is the same as DisassociateResolverQueryLogConfig with the addition of
  1883  // the ability to pass a context and additional request options.
  1884  //
  1885  // See DisassociateResolverQueryLogConfig for details on how to use this API operation.
  1886  //
  1887  // The context must be non-nil and will be used for request cancellation. If
  1888  // the context is nil a panic will occur. In the future the SDK may create
  1889  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1890  // for more information on using Contexts.
  1891  func (c *Route53Resolver) DisassociateResolverQueryLogConfigWithContext(ctx aws.Context, input *DisassociateResolverQueryLogConfigInput, opts ...request.Option) (*DisassociateResolverQueryLogConfigOutput, error) {
  1892  	req, out := c.DisassociateResolverQueryLogConfigRequest(input)
  1893  	req.SetContext(ctx)
  1894  	req.ApplyOptions(opts...)
  1895  	return out, req.Send()
  1896  }
  1897  
  1898  const opDisassociateResolverRule = "DisassociateResolverRule"
  1899  
  1900  // DisassociateResolverRuleRequest generates a "aws/request.Request" representing the
  1901  // client's request for the DisassociateResolverRule operation. The "output" return
  1902  // value will be populated with the request's response once the request completes
  1903  // successfully.
  1904  //
  1905  // Use "Send" method on the returned Request to send the API call to the service.
  1906  // the "output" return value is not valid until after Send returns without error.
  1907  //
  1908  // See DisassociateResolverRule for more information on using the DisassociateResolverRule
  1909  // API call, and error handling.
  1910  //
  1911  // This method is useful when you want to inject custom logic or configuration
  1912  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1913  //
  1914  //
  1915  //    // Example sending a request using the DisassociateResolverRuleRequest method.
  1916  //    req, resp := client.DisassociateResolverRuleRequest(params)
  1917  //
  1918  //    err := req.Send()
  1919  //    if err == nil { // resp is now filled
  1920  //        fmt.Println(resp)
  1921  //    }
  1922  //
  1923  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverRule
  1924  func (c *Route53Resolver) DisassociateResolverRuleRequest(input *DisassociateResolverRuleInput) (req *request.Request, output *DisassociateResolverRuleOutput) {
  1925  	op := &request.Operation{
  1926  		Name:       opDisassociateResolverRule,
  1927  		HTTPMethod: "POST",
  1928  		HTTPPath:   "/",
  1929  	}
  1930  
  1931  	if input == nil {
  1932  		input = &DisassociateResolverRuleInput{}
  1933  	}
  1934  
  1935  	output = &DisassociateResolverRuleOutput{}
  1936  	req = c.newRequest(op, input, output)
  1937  	return
  1938  }
  1939  
  1940  // DisassociateResolverRule API operation for Amazon Route 53 Resolver.
  1941  //
  1942  // Removes the association between a specified Resolver rule and a specified
  1943  // VPC.
  1944  //
  1945  // If you disassociate a Resolver rule from a VPC, Resolver stops forwarding
  1946  // DNS queries for the domain name that you specified in the Resolver rule.
  1947  //
  1948  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1949  // with awserr.Error's Code and Message methods to get detailed information about
  1950  // the error.
  1951  //
  1952  // See the AWS API reference guide for Amazon Route 53 Resolver's
  1953  // API operation DisassociateResolverRule for usage and error information.
  1954  //
  1955  // Returned Error Types:
  1956  //   * ResourceNotFoundException
  1957  //   The specified resource doesn't exist.
  1958  //
  1959  //   * InvalidParameterException
  1960  //   One or more parameters in this request are not valid.
  1961  //
  1962  //   * InternalServiceErrorException
  1963  //   We encountered an unknown error. Try again in a few minutes.
  1964  //
  1965  //   * ThrottlingException
  1966  //   The request was throttled. Try again in a few minutes.
  1967  //
  1968  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverRule
  1969  func (c *Route53Resolver) DisassociateResolverRule(input *DisassociateResolverRuleInput) (*DisassociateResolverRuleOutput, error) {
  1970  	req, out := c.DisassociateResolverRuleRequest(input)
  1971  	return out, req.Send()
  1972  }
  1973  
  1974  // DisassociateResolverRuleWithContext is the same as DisassociateResolverRule with the addition of
  1975  // the ability to pass a context and additional request options.
  1976  //
  1977  // See DisassociateResolverRule for details on how to use this API operation.
  1978  //
  1979  // The context must be non-nil and will be used for request cancellation. If
  1980  // the context is nil a panic will occur. In the future the SDK may create
  1981  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1982  // for more information on using Contexts.
  1983  func (c *Route53Resolver) DisassociateResolverRuleWithContext(ctx aws.Context, input *DisassociateResolverRuleInput, opts ...request.Option) (*DisassociateResolverRuleOutput, error) {
  1984  	req, out := c.DisassociateResolverRuleRequest(input)
  1985  	req.SetContext(ctx)
  1986  	req.ApplyOptions(opts...)
  1987  	return out, req.Send()
  1988  }
  1989  
  1990  const opGetFirewallConfig = "GetFirewallConfig"
  1991  
  1992  // GetFirewallConfigRequest generates a "aws/request.Request" representing the
  1993  // client's request for the GetFirewallConfig operation. The "output" return
  1994  // value will be populated with the request's response once the request completes
  1995  // successfully.
  1996  //
  1997  // Use "Send" method on the returned Request to send the API call to the service.
  1998  // the "output" return value is not valid until after Send returns without error.
  1999  //
  2000  // See GetFirewallConfig for more information on using the GetFirewallConfig
  2001  // API call, and error handling.
  2002  //
  2003  // This method is useful when you want to inject custom logic or configuration
  2004  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2005  //
  2006  //
  2007  //    // Example sending a request using the GetFirewallConfigRequest method.
  2008  //    req, resp := client.GetFirewallConfigRequest(params)
  2009  //
  2010  //    err := req.Send()
  2011  //    if err == nil { // resp is now filled
  2012  //        fmt.Println(resp)
  2013  //    }
  2014  //
  2015  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallConfig
  2016  func (c *Route53Resolver) GetFirewallConfigRequest(input *GetFirewallConfigInput) (req *request.Request, output *GetFirewallConfigOutput) {
  2017  	op := &request.Operation{
  2018  		Name:       opGetFirewallConfig,
  2019  		HTTPMethod: "POST",
  2020  		HTTPPath:   "/",
  2021  	}
  2022  
  2023  	if input == nil {
  2024  		input = &GetFirewallConfigInput{}
  2025  	}
  2026  
  2027  	output = &GetFirewallConfigOutput{}
  2028  	req = c.newRequest(op, input, output)
  2029  	return
  2030  }
  2031  
  2032  // GetFirewallConfig API operation for Amazon Route 53 Resolver.
  2033  //
  2034  // Retrieves the configuration of the firewall behavior provided by DNS Firewall
  2035  // for a single VPC from Amazon Virtual Private Cloud (Amazon VPC).
  2036  //
  2037  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2038  // with awserr.Error's Code and Message methods to get detailed information about
  2039  // the error.
  2040  //
  2041  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2042  // API operation GetFirewallConfig for usage and error information.
  2043  //
  2044  // Returned Error Types:
  2045  //   * ResourceNotFoundException
  2046  //   The specified resource doesn't exist.
  2047  //
  2048  //   * AccessDeniedException
  2049  //   The current account doesn't have the IAM permissions required to perform
  2050  //   the specified Resolver operation.
  2051  //
  2052  //   * InternalServiceErrorException
  2053  //   We encountered an unknown error. Try again in a few minutes.
  2054  //
  2055  //   * ThrottlingException
  2056  //   The request was throttled. Try again in a few minutes.
  2057  //
  2058  //   * ValidationException
  2059  //
  2060  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallConfig
  2061  func (c *Route53Resolver) GetFirewallConfig(input *GetFirewallConfigInput) (*GetFirewallConfigOutput, error) {
  2062  	req, out := c.GetFirewallConfigRequest(input)
  2063  	return out, req.Send()
  2064  }
  2065  
  2066  // GetFirewallConfigWithContext is the same as GetFirewallConfig with the addition of
  2067  // the ability to pass a context and additional request options.
  2068  //
  2069  // See GetFirewallConfig for details on how to use this API operation.
  2070  //
  2071  // The context must be non-nil and will be used for request cancellation. If
  2072  // the context is nil a panic will occur. In the future the SDK may create
  2073  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2074  // for more information on using Contexts.
  2075  func (c *Route53Resolver) GetFirewallConfigWithContext(ctx aws.Context, input *GetFirewallConfigInput, opts ...request.Option) (*GetFirewallConfigOutput, error) {
  2076  	req, out := c.GetFirewallConfigRequest(input)
  2077  	req.SetContext(ctx)
  2078  	req.ApplyOptions(opts...)
  2079  	return out, req.Send()
  2080  }
  2081  
  2082  const opGetFirewallDomainList = "GetFirewallDomainList"
  2083  
  2084  // GetFirewallDomainListRequest generates a "aws/request.Request" representing the
  2085  // client's request for the GetFirewallDomainList operation. The "output" return
  2086  // value will be populated with the request's response once the request completes
  2087  // successfully.
  2088  //
  2089  // Use "Send" method on the returned Request to send the API call to the service.
  2090  // the "output" return value is not valid until after Send returns without error.
  2091  //
  2092  // See GetFirewallDomainList for more information on using the GetFirewallDomainList
  2093  // API call, and error handling.
  2094  //
  2095  // This method is useful when you want to inject custom logic or configuration
  2096  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2097  //
  2098  //
  2099  //    // Example sending a request using the GetFirewallDomainListRequest method.
  2100  //    req, resp := client.GetFirewallDomainListRequest(params)
  2101  //
  2102  //    err := req.Send()
  2103  //    if err == nil { // resp is now filled
  2104  //        fmt.Println(resp)
  2105  //    }
  2106  //
  2107  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallDomainList
  2108  func (c *Route53Resolver) GetFirewallDomainListRequest(input *GetFirewallDomainListInput) (req *request.Request, output *GetFirewallDomainListOutput) {
  2109  	op := &request.Operation{
  2110  		Name:       opGetFirewallDomainList,
  2111  		HTTPMethod: "POST",
  2112  		HTTPPath:   "/",
  2113  	}
  2114  
  2115  	if input == nil {
  2116  		input = &GetFirewallDomainListInput{}
  2117  	}
  2118  
  2119  	output = &GetFirewallDomainListOutput{}
  2120  	req = c.newRequest(op, input, output)
  2121  	return
  2122  }
  2123  
  2124  // GetFirewallDomainList API operation for Amazon Route 53 Resolver.
  2125  //
  2126  // Retrieves the specified firewall domain list.
  2127  //
  2128  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2129  // with awserr.Error's Code and Message methods to get detailed information about
  2130  // the error.
  2131  //
  2132  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2133  // API operation GetFirewallDomainList for usage and error information.
  2134  //
  2135  // Returned Error Types:
  2136  //   * ResourceNotFoundException
  2137  //   The specified resource doesn't exist.
  2138  //
  2139  //   * AccessDeniedException
  2140  //   The current account doesn't have the IAM permissions required to perform
  2141  //   the specified Resolver operation.
  2142  //
  2143  //   * InternalServiceErrorException
  2144  //   We encountered an unknown error. Try again in a few minutes.
  2145  //
  2146  //   * ThrottlingException
  2147  //   The request was throttled. Try again in a few minutes.
  2148  //
  2149  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallDomainList
  2150  func (c *Route53Resolver) GetFirewallDomainList(input *GetFirewallDomainListInput) (*GetFirewallDomainListOutput, error) {
  2151  	req, out := c.GetFirewallDomainListRequest(input)
  2152  	return out, req.Send()
  2153  }
  2154  
  2155  // GetFirewallDomainListWithContext is the same as GetFirewallDomainList with the addition of
  2156  // the ability to pass a context and additional request options.
  2157  //
  2158  // See GetFirewallDomainList for details on how to use this API operation.
  2159  //
  2160  // The context must be non-nil and will be used for request cancellation. If
  2161  // the context is nil a panic will occur. In the future the SDK may create
  2162  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2163  // for more information on using Contexts.
  2164  func (c *Route53Resolver) GetFirewallDomainListWithContext(ctx aws.Context, input *GetFirewallDomainListInput, opts ...request.Option) (*GetFirewallDomainListOutput, error) {
  2165  	req, out := c.GetFirewallDomainListRequest(input)
  2166  	req.SetContext(ctx)
  2167  	req.ApplyOptions(opts...)
  2168  	return out, req.Send()
  2169  }
  2170  
  2171  const opGetFirewallRuleGroup = "GetFirewallRuleGroup"
  2172  
  2173  // GetFirewallRuleGroupRequest generates a "aws/request.Request" representing the
  2174  // client's request for the GetFirewallRuleGroup operation. The "output" return
  2175  // value will be populated with the request's response once the request completes
  2176  // successfully.
  2177  //
  2178  // Use "Send" method on the returned Request to send the API call to the service.
  2179  // the "output" return value is not valid until after Send returns without error.
  2180  //
  2181  // See GetFirewallRuleGroup for more information on using the GetFirewallRuleGroup
  2182  // API call, and error handling.
  2183  //
  2184  // This method is useful when you want to inject custom logic or configuration
  2185  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2186  //
  2187  //
  2188  //    // Example sending a request using the GetFirewallRuleGroupRequest method.
  2189  //    req, resp := client.GetFirewallRuleGroupRequest(params)
  2190  //
  2191  //    err := req.Send()
  2192  //    if err == nil { // resp is now filled
  2193  //        fmt.Println(resp)
  2194  //    }
  2195  //
  2196  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroup
  2197  func (c *Route53Resolver) GetFirewallRuleGroupRequest(input *GetFirewallRuleGroupInput) (req *request.Request, output *GetFirewallRuleGroupOutput) {
  2198  	op := &request.Operation{
  2199  		Name:       opGetFirewallRuleGroup,
  2200  		HTTPMethod: "POST",
  2201  		HTTPPath:   "/",
  2202  	}
  2203  
  2204  	if input == nil {
  2205  		input = &GetFirewallRuleGroupInput{}
  2206  	}
  2207  
  2208  	output = &GetFirewallRuleGroupOutput{}
  2209  	req = c.newRequest(op, input, output)
  2210  	return
  2211  }
  2212  
  2213  // GetFirewallRuleGroup API operation for Amazon Route 53 Resolver.
  2214  //
  2215  // Retrieves the specified firewall rule group.
  2216  //
  2217  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2218  // with awserr.Error's Code and Message methods to get detailed information about
  2219  // the error.
  2220  //
  2221  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2222  // API operation GetFirewallRuleGroup for usage and error information.
  2223  //
  2224  // Returned Error Types:
  2225  //   * ResourceNotFoundException
  2226  //   The specified resource doesn't exist.
  2227  //
  2228  //   * AccessDeniedException
  2229  //   The current account doesn't have the IAM permissions required to perform
  2230  //   the specified Resolver operation.
  2231  //
  2232  //   * InternalServiceErrorException
  2233  //   We encountered an unknown error. Try again in a few minutes.
  2234  //
  2235  //   * ThrottlingException
  2236  //   The request was throttled. Try again in a few minutes.
  2237  //
  2238  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroup
  2239  func (c *Route53Resolver) GetFirewallRuleGroup(input *GetFirewallRuleGroupInput) (*GetFirewallRuleGroupOutput, error) {
  2240  	req, out := c.GetFirewallRuleGroupRequest(input)
  2241  	return out, req.Send()
  2242  }
  2243  
  2244  // GetFirewallRuleGroupWithContext is the same as GetFirewallRuleGroup with the addition of
  2245  // the ability to pass a context and additional request options.
  2246  //
  2247  // See GetFirewallRuleGroup for details on how to use this API operation.
  2248  //
  2249  // The context must be non-nil and will be used for request cancellation. If
  2250  // the context is nil a panic will occur. In the future the SDK may create
  2251  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2252  // for more information on using Contexts.
  2253  func (c *Route53Resolver) GetFirewallRuleGroupWithContext(ctx aws.Context, input *GetFirewallRuleGroupInput, opts ...request.Option) (*GetFirewallRuleGroupOutput, error) {
  2254  	req, out := c.GetFirewallRuleGroupRequest(input)
  2255  	req.SetContext(ctx)
  2256  	req.ApplyOptions(opts...)
  2257  	return out, req.Send()
  2258  }
  2259  
  2260  const opGetFirewallRuleGroupAssociation = "GetFirewallRuleGroupAssociation"
  2261  
  2262  // GetFirewallRuleGroupAssociationRequest generates a "aws/request.Request" representing the
  2263  // client's request for the GetFirewallRuleGroupAssociation operation. The "output" return
  2264  // value will be populated with the request's response once the request completes
  2265  // successfully.
  2266  //
  2267  // Use "Send" method on the returned Request to send the API call to the service.
  2268  // the "output" return value is not valid until after Send returns without error.
  2269  //
  2270  // See GetFirewallRuleGroupAssociation for more information on using the GetFirewallRuleGroupAssociation
  2271  // API call, and error handling.
  2272  //
  2273  // This method is useful when you want to inject custom logic or configuration
  2274  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2275  //
  2276  //
  2277  //    // Example sending a request using the GetFirewallRuleGroupAssociationRequest method.
  2278  //    req, resp := client.GetFirewallRuleGroupAssociationRequest(params)
  2279  //
  2280  //    err := req.Send()
  2281  //    if err == nil { // resp is now filled
  2282  //        fmt.Println(resp)
  2283  //    }
  2284  //
  2285  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupAssociation
  2286  func (c *Route53Resolver) GetFirewallRuleGroupAssociationRequest(input *GetFirewallRuleGroupAssociationInput) (req *request.Request, output *GetFirewallRuleGroupAssociationOutput) {
  2287  	op := &request.Operation{
  2288  		Name:       opGetFirewallRuleGroupAssociation,
  2289  		HTTPMethod: "POST",
  2290  		HTTPPath:   "/",
  2291  	}
  2292  
  2293  	if input == nil {
  2294  		input = &GetFirewallRuleGroupAssociationInput{}
  2295  	}
  2296  
  2297  	output = &GetFirewallRuleGroupAssociationOutput{}
  2298  	req = c.newRequest(op, input, output)
  2299  	return
  2300  }
  2301  
  2302  // GetFirewallRuleGroupAssociation API operation for Amazon Route 53 Resolver.
  2303  //
  2304  // Retrieves a firewall rule group association, which enables DNS filtering
  2305  // for a VPC with one rule group. A VPC can have more than one firewall rule
  2306  // group association, and a rule group can be associated with more than one
  2307  // VPC.
  2308  //
  2309  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2310  // with awserr.Error's Code and Message methods to get detailed information about
  2311  // the error.
  2312  //
  2313  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2314  // API operation GetFirewallRuleGroupAssociation for usage and error information.
  2315  //
  2316  // Returned Error Types:
  2317  //   * ResourceNotFoundException
  2318  //   The specified resource doesn't exist.
  2319  //
  2320  //   * AccessDeniedException
  2321  //   The current account doesn't have the IAM permissions required to perform
  2322  //   the specified Resolver operation.
  2323  //
  2324  //   * InternalServiceErrorException
  2325  //   We encountered an unknown error. Try again in a few minutes.
  2326  //
  2327  //   * ThrottlingException
  2328  //   The request was throttled. Try again in a few minutes.
  2329  //
  2330  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupAssociation
  2331  func (c *Route53Resolver) GetFirewallRuleGroupAssociation(input *GetFirewallRuleGroupAssociationInput) (*GetFirewallRuleGroupAssociationOutput, error) {
  2332  	req, out := c.GetFirewallRuleGroupAssociationRequest(input)
  2333  	return out, req.Send()
  2334  }
  2335  
  2336  // GetFirewallRuleGroupAssociationWithContext is the same as GetFirewallRuleGroupAssociation with the addition of
  2337  // the ability to pass a context and additional request options.
  2338  //
  2339  // See GetFirewallRuleGroupAssociation for details on how to use this API operation.
  2340  //
  2341  // The context must be non-nil and will be used for request cancellation. If
  2342  // the context is nil a panic will occur. In the future the SDK may create
  2343  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2344  // for more information on using Contexts.
  2345  func (c *Route53Resolver) GetFirewallRuleGroupAssociationWithContext(ctx aws.Context, input *GetFirewallRuleGroupAssociationInput, opts ...request.Option) (*GetFirewallRuleGroupAssociationOutput, error) {
  2346  	req, out := c.GetFirewallRuleGroupAssociationRequest(input)
  2347  	req.SetContext(ctx)
  2348  	req.ApplyOptions(opts...)
  2349  	return out, req.Send()
  2350  }
  2351  
  2352  const opGetFirewallRuleGroupPolicy = "GetFirewallRuleGroupPolicy"
  2353  
  2354  // GetFirewallRuleGroupPolicyRequest generates a "aws/request.Request" representing the
  2355  // client's request for the GetFirewallRuleGroupPolicy operation. The "output" return
  2356  // value will be populated with the request's response once the request completes
  2357  // successfully.
  2358  //
  2359  // Use "Send" method on the returned Request to send the API call to the service.
  2360  // the "output" return value is not valid until after Send returns without error.
  2361  //
  2362  // See GetFirewallRuleGroupPolicy for more information on using the GetFirewallRuleGroupPolicy
  2363  // API call, and error handling.
  2364  //
  2365  // This method is useful when you want to inject custom logic or configuration
  2366  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2367  //
  2368  //
  2369  //    // Example sending a request using the GetFirewallRuleGroupPolicyRequest method.
  2370  //    req, resp := client.GetFirewallRuleGroupPolicyRequest(params)
  2371  //
  2372  //    err := req.Send()
  2373  //    if err == nil { // resp is now filled
  2374  //        fmt.Println(resp)
  2375  //    }
  2376  //
  2377  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupPolicy
  2378  func (c *Route53Resolver) GetFirewallRuleGroupPolicyRequest(input *GetFirewallRuleGroupPolicyInput) (req *request.Request, output *GetFirewallRuleGroupPolicyOutput) {
  2379  	op := &request.Operation{
  2380  		Name:       opGetFirewallRuleGroupPolicy,
  2381  		HTTPMethod: "POST",
  2382  		HTTPPath:   "/",
  2383  	}
  2384  
  2385  	if input == nil {
  2386  		input = &GetFirewallRuleGroupPolicyInput{}
  2387  	}
  2388  
  2389  	output = &GetFirewallRuleGroupPolicyOutput{}
  2390  	req = c.newRequest(op, input, output)
  2391  	return
  2392  }
  2393  
  2394  // GetFirewallRuleGroupPolicy API operation for Amazon Route 53 Resolver.
  2395  //
  2396  // Returns the Identity and Access Management (Amazon Web Services IAM) policy
  2397  // for sharing the specified rule group. You can use the policy to share the
  2398  // rule group using Resource Access Manager (RAM).
  2399  //
  2400  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2401  // with awserr.Error's Code and Message methods to get detailed information about
  2402  // the error.
  2403  //
  2404  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2405  // API operation GetFirewallRuleGroupPolicy for usage and error information.
  2406  //
  2407  // Returned Error Types:
  2408  //   * ValidationException
  2409  //
  2410  //   * ResourceNotFoundException
  2411  //   The specified resource doesn't exist.
  2412  //
  2413  //   * AccessDeniedException
  2414  //   The current account doesn't have the IAM permissions required to perform
  2415  //   the specified Resolver operation.
  2416  //
  2417  //   * InternalServiceErrorException
  2418  //   We encountered an unknown error. Try again in a few minutes.
  2419  //
  2420  //   * ThrottlingException
  2421  //   The request was throttled. Try again in a few minutes.
  2422  //
  2423  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupPolicy
  2424  func (c *Route53Resolver) GetFirewallRuleGroupPolicy(input *GetFirewallRuleGroupPolicyInput) (*GetFirewallRuleGroupPolicyOutput, error) {
  2425  	req, out := c.GetFirewallRuleGroupPolicyRequest(input)
  2426  	return out, req.Send()
  2427  }
  2428  
  2429  // GetFirewallRuleGroupPolicyWithContext is the same as GetFirewallRuleGroupPolicy with the addition of
  2430  // the ability to pass a context and additional request options.
  2431  //
  2432  // See GetFirewallRuleGroupPolicy for details on how to use this API operation.
  2433  //
  2434  // The context must be non-nil and will be used for request cancellation. If
  2435  // the context is nil a panic will occur. In the future the SDK may create
  2436  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2437  // for more information on using Contexts.
  2438  func (c *Route53Resolver) GetFirewallRuleGroupPolicyWithContext(ctx aws.Context, input *GetFirewallRuleGroupPolicyInput, opts ...request.Option) (*GetFirewallRuleGroupPolicyOutput, error) {
  2439  	req, out := c.GetFirewallRuleGroupPolicyRequest(input)
  2440  	req.SetContext(ctx)
  2441  	req.ApplyOptions(opts...)
  2442  	return out, req.Send()
  2443  }
  2444  
  2445  const opGetResolverDnssecConfig = "GetResolverDnssecConfig"
  2446  
  2447  // GetResolverDnssecConfigRequest generates a "aws/request.Request" representing the
  2448  // client's request for the GetResolverDnssecConfig operation. The "output" return
  2449  // value will be populated with the request's response once the request completes
  2450  // successfully.
  2451  //
  2452  // Use "Send" method on the returned Request to send the API call to the service.
  2453  // the "output" return value is not valid until after Send returns without error.
  2454  //
  2455  // See GetResolverDnssecConfig for more information on using the GetResolverDnssecConfig
  2456  // API call, and error handling.
  2457  //
  2458  // This method is useful when you want to inject custom logic or configuration
  2459  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2460  //
  2461  //
  2462  //    // Example sending a request using the GetResolverDnssecConfigRequest method.
  2463  //    req, resp := client.GetResolverDnssecConfigRequest(params)
  2464  //
  2465  //    err := req.Send()
  2466  //    if err == nil { // resp is now filled
  2467  //        fmt.Println(resp)
  2468  //    }
  2469  //
  2470  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
  2471  func (c *Route53Resolver) GetResolverDnssecConfigRequest(input *GetResolverDnssecConfigInput) (req *request.Request, output *GetResolverDnssecConfigOutput) {
  2472  	op := &request.Operation{
  2473  		Name:       opGetResolverDnssecConfig,
  2474  		HTTPMethod: "POST",
  2475  		HTTPPath:   "/",
  2476  	}
  2477  
  2478  	if input == nil {
  2479  		input = &GetResolverDnssecConfigInput{}
  2480  	}
  2481  
  2482  	output = &GetResolverDnssecConfigOutput{}
  2483  	req = c.newRequest(op, input, output)
  2484  	return
  2485  }
  2486  
  2487  // GetResolverDnssecConfig API operation for Amazon Route 53 Resolver.
  2488  //
  2489  // Gets DNSSEC validation information for a specified resource.
  2490  //
  2491  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2492  // with awserr.Error's Code and Message methods to get detailed information about
  2493  // the error.
  2494  //
  2495  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2496  // API operation GetResolverDnssecConfig for usage and error information.
  2497  //
  2498  // Returned Error Types:
  2499  //   * InvalidParameterException
  2500  //   One or more parameters in this request are not valid.
  2501  //
  2502  //   * ResourceNotFoundException
  2503  //   The specified resource doesn't exist.
  2504  //
  2505  //   * InvalidRequestException
  2506  //   The request is invalid.
  2507  //
  2508  //   * InternalServiceErrorException
  2509  //   We encountered an unknown error. Try again in a few minutes.
  2510  //
  2511  //   * ThrottlingException
  2512  //   The request was throttled. Try again in a few minutes.
  2513  //
  2514  //   * AccessDeniedException
  2515  //   The current account doesn't have the IAM permissions required to perform
  2516  //   the specified Resolver operation.
  2517  //
  2518  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
  2519  func (c *Route53Resolver) GetResolverDnssecConfig(input *GetResolverDnssecConfigInput) (*GetResolverDnssecConfigOutput, error) {
  2520  	req, out := c.GetResolverDnssecConfigRequest(input)
  2521  	return out, req.Send()
  2522  }
  2523  
  2524  // GetResolverDnssecConfigWithContext is the same as GetResolverDnssecConfig with the addition of
  2525  // the ability to pass a context and additional request options.
  2526  //
  2527  // See GetResolverDnssecConfig for details on how to use this API operation.
  2528  //
  2529  // The context must be non-nil and will be used for request cancellation. If
  2530  // the context is nil a panic will occur. In the future the SDK may create
  2531  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2532  // for more information on using Contexts.
  2533  func (c *Route53Resolver) GetResolverDnssecConfigWithContext(ctx aws.Context, input *GetResolverDnssecConfigInput, opts ...request.Option) (*GetResolverDnssecConfigOutput, error) {
  2534  	req, out := c.GetResolverDnssecConfigRequest(input)
  2535  	req.SetContext(ctx)
  2536  	req.ApplyOptions(opts...)
  2537  	return out, req.Send()
  2538  }
  2539  
  2540  const opGetResolverEndpoint = "GetResolverEndpoint"
  2541  
  2542  // GetResolverEndpointRequest generates a "aws/request.Request" representing the
  2543  // client's request for the GetResolverEndpoint operation. The "output" return
  2544  // value will be populated with the request's response once the request completes
  2545  // successfully.
  2546  //
  2547  // Use "Send" method on the returned Request to send the API call to the service.
  2548  // the "output" return value is not valid until after Send returns without error.
  2549  //
  2550  // See GetResolverEndpoint for more information on using the GetResolverEndpoint
  2551  // API call, and error handling.
  2552  //
  2553  // This method is useful when you want to inject custom logic or configuration
  2554  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2555  //
  2556  //
  2557  //    // Example sending a request using the GetResolverEndpointRequest method.
  2558  //    req, resp := client.GetResolverEndpointRequest(params)
  2559  //
  2560  //    err := req.Send()
  2561  //    if err == nil { // resp is now filled
  2562  //        fmt.Println(resp)
  2563  //    }
  2564  //
  2565  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
  2566  func (c *Route53Resolver) GetResolverEndpointRequest(input *GetResolverEndpointInput) (req *request.Request, output *GetResolverEndpointOutput) {
  2567  	op := &request.Operation{
  2568  		Name:       opGetResolverEndpoint,
  2569  		HTTPMethod: "POST",
  2570  		HTTPPath:   "/",
  2571  	}
  2572  
  2573  	if input == nil {
  2574  		input = &GetResolverEndpointInput{}
  2575  	}
  2576  
  2577  	output = &GetResolverEndpointOutput{}
  2578  	req = c.newRequest(op, input, output)
  2579  	return
  2580  }
  2581  
  2582  // GetResolverEndpoint API operation for Amazon Route 53 Resolver.
  2583  //
  2584  // Gets information about a specified Resolver endpoint, such as whether it's
  2585  // an inbound or an outbound Resolver endpoint, and the current status of the
  2586  // endpoint.
  2587  //
  2588  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2589  // with awserr.Error's Code and Message methods to get detailed information about
  2590  // the error.
  2591  //
  2592  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2593  // API operation GetResolverEndpoint for usage and error information.
  2594  //
  2595  // Returned Error Types:
  2596  //   * ResourceNotFoundException
  2597  //   The specified resource doesn't exist.
  2598  //
  2599  //   * InvalidParameterException
  2600  //   One or more parameters in this request are not valid.
  2601  //
  2602  //   * InternalServiceErrorException
  2603  //   We encountered an unknown error. Try again in a few minutes.
  2604  //
  2605  //   * ThrottlingException
  2606  //   The request was throttled. Try again in a few minutes.
  2607  //
  2608  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
  2609  func (c *Route53Resolver) GetResolverEndpoint(input *GetResolverEndpointInput) (*GetResolverEndpointOutput, error) {
  2610  	req, out := c.GetResolverEndpointRequest(input)
  2611  	return out, req.Send()
  2612  }
  2613  
  2614  // GetResolverEndpointWithContext is the same as GetResolverEndpoint with the addition of
  2615  // the ability to pass a context and additional request options.
  2616  //
  2617  // See GetResolverEndpoint for details on how to use this API operation.
  2618  //
  2619  // The context must be non-nil and will be used for request cancellation. If
  2620  // the context is nil a panic will occur. In the future the SDK may create
  2621  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2622  // for more information on using Contexts.
  2623  func (c *Route53Resolver) GetResolverEndpointWithContext(ctx aws.Context, input *GetResolverEndpointInput, opts ...request.Option) (*GetResolverEndpointOutput, error) {
  2624  	req, out := c.GetResolverEndpointRequest(input)
  2625  	req.SetContext(ctx)
  2626  	req.ApplyOptions(opts...)
  2627  	return out, req.Send()
  2628  }
  2629  
  2630  const opGetResolverQueryLogConfig = "GetResolverQueryLogConfig"
  2631  
  2632  // GetResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
  2633  // client's request for the GetResolverQueryLogConfig operation. The "output" return
  2634  // value will be populated with the request's response once the request completes
  2635  // successfully.
  2636  //
  2637  // Use "Send" method on the returned Request to send the API call to the service.
  2638  // the "output" return value is not valid until after Send returns without error.
  2639  //
  2640  // See GetResolverQueryLogConfig for more information on using the GetResolverQueryLogConfig
  2641  // API call, and error handling.
  2642  //
  2643  // This method is useful when you want to inject custom logic or configuration
  2644  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2645  //
  2646  //
  2647  //    // Example sending a request using the GetResolverQueryLogConfigRequest method.
  2648  //    req, resp := client.GetResolverQueryLogConfigRequest(params)
  2649  //
  2650  //    err := req.Send()
  2651  //    if err == nil { // resp is now filled
  2652  //        fmt.Println(resp)
  2653  //    }
  2654  //
  2655  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
  2656  func (c *Route53Resolver) GetResolverQueryLogConfigRequest(input *GetResolverQueryLogConfigInput) (req *request.Request, output *GetResolverQueryLogConfigOutput) {
  2657  	op := &request.Operation{
  2658  		Name:       opGetResolverQueryLogConfig,
  2659  		HTTPMethod: "POST",
  2660  		HTTPPath:   "/",
  2661  	}
  2662  
  2663  	if input == nil {
  2664  		input = &GetResolverQueryLogConfigInput{}
  2665  	}
  2666  
  2667  	output = &GetResolverQueryLogConfigOutput{}
  2668  	req = c.newRequest(op, input, output)
  2669  	return
  2670  }
  2671  
  2672  // GetResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
  2673  //
  2674  // Gets information about a specified Resolver query logging configuration,
  2675  // such as the number of VPCs that the configuration is logging queries for
  2676  // and the location that logs are sent to.
  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 Amazon Route 53 Resolver's
  2683  // API operation GetResolverQueryLogConfig for usage and error information.
  2684  //
  2685  // Returned Error Types:
  2686  //   * ResourceNotFoundException
  2687  //   The specified resource doesn't exist.
  2688  //
  2689  //   * InvalidRequestException
  2690  //   The request is invalid.
  2691  //
  2692  //   * InvalidParameterException
  2693  //   One or more parameters in this request are not valid.
  2694  //
  2695  //   * InternalServiceErrorException
  2696  //   We encountered an unknown error. Try again in a few minutes.
  2697  //
  2698  //   * ThrottlingException
  2699  //   The request was throttled. Try again in a few minutes.
  2700  //
  2701  //   * AccessDeniedException
  2702  //   The current account doesn't have the IAM permissions required to perform
  2703  //   the specified Resolver operation.
  2704  //
  2705  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
  2706  func (c *Route53Resolver) GetResolverQueryLogConfig(input *GetResolverQueryLogConfigInput) (*GetResolverQueryLogConfigOutput, error) {
  2707  	req, out := c.GetResolverQueryLogConfigRequest(input)
  2708  	return out, req.Send()
  2709  }
  2710  
  2711  // GetResolverQueryLogConfigWithContext is the same as GetResolverQueryLogConfig with the addition of
  2712  // the ability to pass a context and additional request options.
  2713  //
  2714  // See GetResolverQueryLogConfig for details on how to use this API operation.
  2715  //
  2716  // The context must be non-nil and will be used for request cancellation. If
  2717  // the context is nil a panic will occur. In the future the SDK may create
  2718  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2719  // for more information on using Contexts.
  2720  func (c *Route53Resolver) GetResolverQueryLogConfigWithContext(ctx aws.Context, input *GetResolverQueryLogConfigInput, opts ...request.Option) (*GetResolverQueryLogConfigOutput, error) {
  2721  	req, out := c.GetResolverQueryLogConfigRequest(input)
  2722  	req.SetContext(ctx)
  2723  	req.ApplyOptions(opts...)
  2724  	return out, req.Send()
  2725  }
  2726  
  2727  const opGetResolverQueryLogConfigAssociation = "GetResolverQueryLogConfigAssociation"
  2728  
  2729  // GetResolverQueryLogConfigAssociationRequest generates a "aws/request.Request" representing the
  2730  // client's request for the GetResolverQueryLogConfigAssociation operation. The "output" return
  2731  // value will be populated with the request's response once the request completes
  2732  // successfully.
  2733  //
  2734  // Use "Send" method on the returned Request to send the API call to the service.
  2735  // the "output" return value is not valid until after Send returns without error.
  2736  //
  2737  // See GetResolverQueryLogConfigAssociation for more information on using the GetResolverQueryLogConfigAssociation
  2738  // API call, and error handling.
  2739  //
  2740  // This method is useful when you want to inject custom logic or configuration
  2741  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2742  //
  2743  //
  2744  //    // Example sending a request using the GetResolverQueryLogConfigAssociationRequest method.
  2745  //    req, resp := client.GetResolverQueryLogConfigAssociationRequest(params)
  2746  //
  2747  //    err := req.Send()
  2748  //    if err == nil { // resp is now filled
  2749  //        fmt.Println(resp)
  2750  //    }
  2751  //
  2752  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
  2753  func (c *Route53Resolver) GetResolverQueryLogConfigAssociationRequest(input *GetResolverQueryLogConfigAssociationInput) (req *request.Request, output *GetResolverQueryLogConfigAssociationOutput) {
  2754  	op := &request.Operation{
  2755  		Name:       opGetResolverQueryLogConfigAssociation,
  2756  		HTTPMethod: "POST",
  2757  		HTTPPath:   "/",
  2758  	}
  2759  
  2760  	if input == nil {
  2761  		input = &GetResolverQueryLogConfigAssociationInput{}
  2762  	}
  2763  
  2764  	output = &GetResolverQueryLogConfigAssociationOutput{}
  2765  	req = c.newRequest(op, input, output)
  2766  	return
  2767  }
  2768  
  2769  // GetResolverQueryLogConfigAssociation API operation for Amazon Route 53 Resolver.
  2770  //
  2771  // Gets information about a specified association between a Resolver query logging
  2772  // configuration and an Amazon VPC. When you associate a VPC with a query logging
  2773  // configuration, Resolver logs DNS queries that originate in that VPC.
  2774  //
  2775  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2776  // with awserr.Error's Code and Message methods to get detailed information about
  2777  // the error.
  2778  //
  2779  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2780  // API operation GetResolverQueryLogConfigAssociation for usage and error information.
  2781  //
  2782  // Returned Error Types:
  2783  //   * ResourceNotFoundException
  2784  //   The specified resource doesn't exist.
  2785  //
  2786  //   * InvalidRequestException
  2787  //   The request is invalid.
  2788  //
  2789  //   * InvalidParameterException
  2790  //   One or more parameters in this request are not valid.
  2791  //
  2792  //   * InternalServiceErrorException
  2793  //   We encountered an unknown error. Try again in a few minutes.
  2794  //
  2795  //   * ThrottlingException
  2796  //   The request was throttled. Try again in a few minutes.
  2797  //
  2798  //   * AccessDeniedException
  2799  //   The current account doesn't have the IAM permissions required to perform
  2800  //   the specified Resolver operation.
  2801  //
  2802  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
  2803  func (c *Route53Resolver) GetResolverQueryLogConfigAssociation(input *GetResolverQueryLogConfigAssociationInput) (*GetResolverQueryLogConfigAssociationOutput, error) {
  2804  	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
  2805  	return out, req.Send()
  2806  }
  2807  
  2808  // GetResolverQueryLogConfigAssociationWithContext is the same as GetResolverQueryLogConfigAssociation with the addition of
  2809  // the ability to pass a context and additional request options.
  2810  //
  2811  // See GetResolverQueryLogConfigAssociation for details on how to use this API operation.
  2812  //
  2813  // The context must be non-nil and will be used for request cancellation. If
  2814  // the context is nil a panic will occur. In the future the SDK may create
  2815  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2816  // for more information on using Contexts.
  2817  func (c *Route53Resolver) GetResolverQueryLogConfigAssociationWithContext(ctx aws.Context, input *GetResolverQueryLogConfigAssociationInput, opts ...request.Option) (*GetResolverQueryLogConfigAssociationOutput, error) {
  2818  	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
  2819  	req.SetContext(ctx)
  2820  	req.ApplyOptions(opts...)
  2821  	return out, req.Send()
  2822  }
  2823  
  2824  const opGetResolverQueryLogConfigPolicy = "GetResolverQueryLogConfigPolicy"
  2825  
  2826  // GetResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
  2827  // client's request for the GetResolverQueryLogConfigPolicy operation. The "output" return
  2828  // value will be populated with the request's response once the request completes
  2829  // successfully.
  2830  //
  2831  // Use "Send" method on the returned Request to send the API call to the service.
  2832  // the "output" return value is not valid until after Send returns without error.
  2833  //
  2834  // See GetResolverQueryLogConfigPolicy for more information on using the GetResolverQueryLogConfigPolicy
  2835  // API call, and error handling.
  2836  //
  2837  // This method is useful when you want to inject custom logic or configuration
  2838  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2839  //
  2840  //
  2841  //    // Example sending a request using the GetResolverQueryLogConfigPolicyRequest method.
  2842  //    req, resp := client.GetResolverQueryLogConfigPolicyRequest(params)
  2843  //
  2844  //    err := req.Send()
  2845  //    if err == nil { // resp is now filled
  2846  //        fmt.Println(resp)
  2847  //    }
  2848  //
  2849  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
  2850  func (c *Route53Resolver) GetResolverQueryLogConfigPolicyRequest(input *GetResolverQueryLogConfigPolicyInput) (req *request.Request, output *GetResolverQueryLogConfigPolicyOutput) {
  2851  	op := &request.Operation{
  2852  		Name:       opGetResolverQueryLogConfigPolicy,
  2853  		HTTPMethod: "POST",
  2854  		HTTPPath:   "/",
  2855  	}
  2856  
  2857  	if input == nil {
  2858  		input = &GetResolverQueryLogConfigPolicyInput{}
  2859  	}
  2860  
  2861  	output = &GetResolverQueryLogConfigPolicyOutput{}
  2862  	req = c.newRequest(op, input, output)
  2863  	return
  2864  }
  2865  
  2866  // GetResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
  2867  //
  2868  // Gets information about a query logging policy. A query logging policy specifies
  2869  // the Resolver query logging operations and resources that you want to allow
  2870  // another Amazon Web Services account to be able to use.
  2871  //
  2872  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2873  // with awserr.Error's Code and Message methods to get detailed information about
  2874  // the error.
  2875  //
  2876  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2877  // API operation GetResolverQueryLogConfigPolicy for usage and error information.
  2878  //
  2879  // Returned Error Types:
  2880  //   * InvalidParameterException
  2881  //   One or more parameters in this request are not valid.
  2882  //
  2883  //   * InvalidRequestException
  2884  //   The request is invalid.
  2885  //
  2886  //   * UnknownResourceException
  2887  //   The specified resource doesn't exist.
  2888  //
  2889  //   * InternalServiceErrorException
  2890  //   We encountered an unknown error. Try again in a few minutes.
  2891  //
  2892  //   * AccessDeniedException
  2893  //   The current account doesn't have the IAM permissions required to perform
  2894  //   the specified Resolver operation.
  2895  //
  2896  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
  2897  func (c *Route53Resolver) GetResolverQueryLogConfigPolicy(input *GetResolverQueryLogConfigPolicyInput) (*GetResolverQueryLogConfigPolicyOutput, error) {
  2898  	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
  2899  	return out, req.Send()
  2900  }
  2901  
  2902  // GetResolverQueryLogConfigPolicyWithContext is the same as GetResolverQueryLogConfigPolicy with the addition of
  2903  // the ability to pass a context and additional request options.
  2904  //
  2905  // See GetResolverQueryLogConfigPolicy for details on how to use this API operation.
  2906  //
  2907  // The context must be non-nil and will be used for request cancellation. If
  2908  // the context is nil a panic will occur. In the future the SDK may create
  2909  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2910  // for more information on using Contexts.
  2911  func (c *Route53Resolver) GetResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *GetResolverQueryLogConfigPolicyInput, opts ...request.Option) (*GetResolverQueryLogConfigPolicyOutput, error) {
  2912  	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
  2913  	req.SetContext(ctx)
  2914  	req.ApplyOptions(opts...)
  2915  	return out, req.Send()
  2916  }
  2917  
  2918  const opGetResolverRule = "GetResolverRule"
  2919  
  2920  // GetResolverRuleRequest generates a "aws/request.Request" representing the
  2921  // client's request for the GetResolverRule operation. The "output" return
  2922  // value will be populated with the request's response once the request completes
  2923  // successfully.
  2924  //
  2925  // Use "Send" method on the returned Request to send the API call to the service.
  2926  // the "output" return value is not valid until after Send returns without error.
  2927  //
  2928  // See GetResolverRule for more information on using the GetResolverRule
  2929  // API call, and error handling.
  2930  //
  2931  // This method is useful when you want to inject custom logic or configuration
  2932  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2933  //
  2934  //
  2935  //    // Example sending a request using the GetResolverRuleRequest method.
  2936  //    req, resp := client.GetResolverRuleRequest(params)
  2937  //
  2938  //    err := req.Send()
  2939  //    if err == nil { // resp is now filled
  2940  //        fmt.Println(resp)
  2941  //    }
  2942  //
  2943  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
  2944  func (c *Route53Resolver) GetResolverRuleRequest(input *GetResolverRuleInput) (req *request.Request, output *GetResolverRuleOutput) {
  2945  	op := &request.Operation{
  2946  		Name:       opGetResolverRule,
  2947  		HTTPMethod: "POST",
  2948  		HTTPPath:   "/",
  2949  	}
  2950  
  2951  	if input == nil {
  2952  		input = &GetResolverRuleInput{}
  2953  	}
  2954  
  2955  	output = &GetResolverRuleOutput{}
  2956  	req = c.newRequest(op, input, output)
  2957  	return
  2958  }
  2959  
  2960  // GetResolverRule API operation for Amazon Route 53 Resolver.
  2961  //
  2962  // Gets information about a specified Resolver rule, such as the domain name
  2963  // that the rule forwards DNS queries for and the ID of the outbound Resolver
  2964  // endpoint that the rule is associated with.
  2965  //
  2966  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2967  // with awserr.Error's Code and Message methods to get detailed information about
  2968  // the error.
  2969  //
  2970  // See the AWS API reference guide for Amazon Route 53 Resolver's
  2971  // API operation GetResolverRule for usage and error information.
  2972  //
  2973  // Returned Error Types:
  2974  //   * ResourceNotFoundException
  2975  //   The specified resource doesn't exist.
  2976  //
  2977  //   * InvalidParameterException
  2978  //   One or more parameters in this request are not valid.
  2979  //
  2980  //   * InternalServiceErrorException
  2981  //   We encountered an unknown error. Try again in a few minutes.
  2982  //
  2983  //   * ThrottlingException
  2984  //   The request was throttled. Try again in a few minutes.
  2985  //
  2986  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
  2987  func (c *Route53Resolver) GetResolverRule(input *GetResolverRuleInput) (*GetResolverRuleOutput, error) {
  2988  	req, out := c.GetResolverRuleRequest(input)
  2989  	return out, req.Send()
  2990  }
  2991  
  2992  // GetResolverRuleWithContext is the same as GetResolverRule with the addition of
  2993  // the ability to pass a context and additional request options.
  2994  //
  2995  // See GetResolverRule for details on how to use this API operation.
  2996  //
  2997  // The context must be non-nil and will be used for request cancellation. If
  2998  // the context is nil a panic will occur. In the future the SDK may create
  2999  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3000  // for more information on using Contexts.
  3001  func (c *Route53Resolver) GetResolverRuleWithContext(ctx aws.Context, input *GetResolverRuleInput, opts ...request.Option) (*GetResolverRuleOutput, error) {
  3002  	req, out := c.GetResolverRuleRequest(input)
  3003  	req.SetContext(ctx)
  3004  	req.ApplyOptions(opts...)
  3005  	return out, req.Send()
  3006  }
  3007  
  3008  const opGetResolverRuleAssociation = "GetResolverRuleAssociation"
  3009  
  3010  // GetResolverRuleAssociationRequest generates a "aws/request.Request" representing the
  3011  // client's request for the GetResolverRuleAssociation operation. The "output" return
  3012  // value will be populated with the request's response once the request completes
  3013  // successfully.
  3014  //
  3015  // Use "Send" method on the returned Request to send the API call to the service.
  3016  // the "output" return value is not valid until after Send returns without error.
  3017  //
  3018  // See GetResolverRuleAssociation for more information on using the GetResolverRuleAssociation
  3019  // API call, and error handling.
  3020  //
  3021  // This method is useful when you want to inject custom logic or configuration
  3022  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3023  //
  3024  //
  3025  //    // Example sending a request using the GetResolverRuleAssociationRequest method.
  3026  //    req, resp := client.GetResolverRuleAssociationRequest(params)
  3027  //
  3028  //    err := req.Send()
  3029  //    if err == nil { // resp is now filled
  3030  //        fmt.Println(resp)
  3031  //    }
  3032  //
  3033  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
  3034  func (c *Route53Resolver) GetResolverRuleAssociationRequest(input *GetResolverRuleAssociationInput) (req *request.Request, output *GetResolverRuleAssociationOutput) {
  3035  	op := &request.Operation{
  3036  		Name:       opGetResolverRuleAssociation,
  3037  		HTTPMethod: "POST",
  3038  		HTTPPath:   "/",
  3039  	}
  3040  
  3041  	if input == nil {
  3042  		input = &GetResolverRuleAssociationInput{}
  3043  	}
  3044  
  3045  	output = &GetResolverRuleAssociationOutput{}
  3046  	req = c.newRequest(op, input, output)
  3047  	return
  3048  }
  3049  
  3050  // GetResolverRuleAssociation API operation for Amazon Route 53 Resolver.
  3051  //
  3052  // Gets information about an association between a specified Resolver rule and
  3053  // a VPC. You associate a Resolver rule and a VPC using AssociateResolverRule
  3054  // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html).
  3055  //
  3056  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3057  // with awserr.Error's Code and Message methods to get detailed information about
  3058  // the error.
  3059  //
  3060  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3061  // API operation GetResolverRuleAssociation for usage and error information.
  3062  //
  3063  // Returned Error Types:
  3064  //   * ResourceNotFoundException
  3065  //   The specified resource doesn't exist.
  3066  //
  3067  //   * InvalidParameterException
  3068  //   One or more parameters in this request are not valid.
  3069  //
  3070  //   * InternalServiceErrorException
  3071  //   We encountered an unknown error. Try again in a few minutes.
  3072  //
  3073  //   * ThrottlingException
  3074  //   The request was throttled. Try again in a few minutes.
  3075  //
  3076  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
  3077  func (c *Route53Resolver) GetResolverRuleAssociation(input *GetResolverRuleAssociationInput) (*GetResolverRuleAssociationOutput, error) {
  3078  	req, out := c.GetResolverRuleAssociationRequest(input)
  3079  	return out, req.Send()
  3080  }
  3081  
  3082  // GetResolverRuleAssociationWithContext is the same as GetResolverRuleAssociation with the addition of
  3083  // the ability to pass a context and additional request options.
  3084  //
  3085  // See GetResolverRuleAssociation for details on how to use this API operation.
  3086  //
  3087  // The context must be non-nil and will be used for request cancellation. If
  3088  // the context is nil a panic will occur. In the future the SDK may create
  3089  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3090  // for more information on using Contexts.
  3091  func (c *Route53Resolver) GetResolverRuleAssociationWithContext(ctx aws.Context, input *GetResolverRuleAssociationInput, opts ...request.Option) (*GetResolverRuleAssociationOutput, error) {
  3092  	req, out := c.GetResolverRuleAssociationRequest(input)
  3093  	req.SetContext(ctx)
  3094  	req.ApplyOptions(opts...)
  3095  	return out, req.Send()
  3096  }
  3097  
  3098  const opGetResolverRulePolicy = "GetResolverRulePolicy"
  3099  
  3100  // GetResolverRulePolicyRequest generates a "aws/request.Request" representing the
  3101  // client's request for the GetResolverRulePolicy operation. The "output" return
  3102  // value will be populated with the request's response once the request completes
  3103  // successfully.
  3104  //
  3105  // Use "Send" method on the returned Request to send the API call to the service.
  3106  // the "output" return value is not valid until after Send returns without error.
  3107  //
  3108  // See GetResolverRulePolicy for more information on using the GetResolverRulePolicy
  3109  // API call, and error handling.
  3110  //
  3111  // This method is useful when you want to inject custom logic or configuration
  3112  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3113  //
  3114  //
  3115  //    // Example sending a request using the GetResolverRulePolicyRequest method.
  3116  //    req, resp := client.GetResolverRulePolicyRequest(params)
  3117  //
  3118  //    err := req.Send()
  3119  //    if err == nil { // resp is now filled
  3120  //        fmt.Println(resp)
  3121  //    }
  3122  //
  3123  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
  3124  func (c *Route53Resolver) GetResolverRulePolicyRequest(input *GetResolverRulePolicyInput) (req *request.Request, output *GetResolverRulePolicyOutput) {
  3125  	op := &request.Operation{
  3126  		Name:       opGetResolverRulePolicy,
  3127  		HTTPMethod: "POST",
  3128  		HTTPPath:   "/",
  3129  	}
  3130  
  3131  	if input == nil {
  3132  		input = &GetResolverRulePolicyInput{}
  3133  	}
  3134  
  3135  	output = &GetResolverRulePolicyOutput{}
  3136  	req = c.newRequest(op, input, output)
  3137  	return
  3138  }
  3139  
  3140  // GetResolverRulePolicy API operation for Amazon Route 53 Resolver.
  3141  //
  3142  // Gets information about the Resolver rule policy for a specified rule. A Resolver
  3143  // rule policy includes the rule that you want to share with another account,
  3144  // the account that you want to share the rule with, and the Resolver operations
  3145  // that you want to allow the account to use.
  3146  //
  3147  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3148  // with awserr.Error's Code and Message methods to get detailed information about
  3149  // the error.
  3150  //
  3151  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3152  // API operation GetResolverRulePolicy for usage and error information.
  3153  //
  3154  // Returned Error Types:
  3155  //   * InvalidParameterException
  3156  //   One or more parameters in this request are not valid.
  3157  //
  3158  //   * UnknownResourceException
  3159  //   The specified resource doesn't exist.
  3160  //
  3161  //   * InternalServiceErrorException
  3162  //   We encountered an unknown error. Try again in a few minutes.
  3163  //
  3164  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
  3165  func (c *Route53Resolver) GetResolverRulePolicy(input *GetResolverRulePolicyInput) (*GetResolverRulePolicyOutput, error) {
  3166  	req, out := c.GetResolverRulePolicyRequest(input)
  3167  	return out, req.Send()
  3168  }
  3169  
  3170  // GetResolverRulePolicyWithContext is the same as GetResolverRulePolicy with the addition of
  3171  // the ability to pass a context and additional request options.
  3172  //
  3173  // See GetResolverRulePolicy for details on how to use this API operation.
  3174  //
  3175  // The context must be non-nil and will be used for request cancellation. If
  3176  // the context is nil a panic will occur. In the future the SDK may create
  3177  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3178  // for more information on using Contexts.
  3179  func (c *Route53Resolver) GetResolverRulePolicyWithContext(ctx aws.Context, input *GetResolverRulePolicyInput, opts ...request.Option) (*GetResolverRulePolicyOutput, error) {
  3180  	req, out := c.GetResolverRulePolicyRequest(input)
  3181  	req.SetContext(ctx)
  3182  	req.ApplyOptions(opts...)
  3183  	return out, req.Send()
  3184  }
  3185  
  3186  const opImportFirewallDomains = "ImportFirewallDomains"
  3187  
  3188  // ImportFirewallDomainsRequest generates a "aws/request.Request" representing the
  3189  // client's request for the ImportFirewallDomains operation. The "output" return
  3190  // value will be populated with the request's response once the request completes
  3191  // successfully.
  3192  //
  3193  // Use "Send" method on the returned Request to send the API call to the service.
  3194  // the "output" return value is not valid until after Send returns without error.
  3195  //
  3196  // See ImportFirewallDomains for more information on using the ImportFirewallDomains
  3197  // API call, and error handling.
  3198  //
  3199  // This method is useful when you want to inject custom logic or configuration
  3200  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3201  //
  3202  //
  3203  //    // Example sending a request using the ImportFirewallDomainsRequest method.
  3204  //    req, resp := client.ImportFirewallDomainsRequest(params)
  3205  //
  3206  //    err := req.Send()
  3207  //    if err == nil { // resp is now filled
  3208  //        fmt.Println(resp)
  3209  //    }
  3210  //
  3211  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ImportFirewallDomains
  3212  func (c *Route53Resolver) ImportFirewallDomainsRequest(input *ImportFirewallDomainsInput) (req *request.Request, output *ImportFirewallDomainsOutput) {
  3213  	op := &request.Operation{
  3214  		Name:       opImportFirewallDomains,
  3215  		HTTPMethod: "POST",
  3216  		HTTPPath:   "/",
  3217  	}
  3218  
  3219  	if input == nil {
  3220  		input = &ImportFirewallDomainsInput{}
  3221  	}
  3222  
  3223  	output = &ImportFirewallDomainsOutput{}
  3224  	req = c.newRequest(op, input, output)
  3225  	return
  3226  }
  3227  
  3228  // ImportFirewallDomains API operation for Amazon Route 53 Resolver.
  3229  //
  3230  // Imports domain names from a file into a domain list, for use in a DNS firewall
  3231  // rule group.
  3232  //
  3233  // Each domain specification in your domain list must satisfy the following
  3234  // requirements:
  3235  //
  3236  //    * It can optionally start with * (asterisk).
  3237  //
  3238  //    * With the exception of the optional starting asterisk, it must only contain
  3239  //    the following characters: A-Z, a-z, 0-9, - (hyphen).
  3240  //
  3241  //    * It must be from 1-255 characters in length.
  3242  //
  3243  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3244  // with awserr.Error's Code and Message methods to get detailed information about
  3245  // the error.
  3246  //
  3247  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3248  // API operation ImportFirewallDomains for usage and error information.
  3249  //
  3250  // Returned Error Types:
  3251  //   * ValidationException
  3252  //
  3253  //   * AccessDeniedException
  3254  //   The current account doesn't have the IAM permissions required to perform
  3255  //   the specified Resolver operation.
  3256  //
  3257  //   * ResourceNotFoundException
  3258  //   The specified resource doesn't exist.
  3259  //
  3260  //   * LimitExceededException
  3261  //   The request caused one or more limits to be exceeded.
  3262  //
  3263  //   * ConflictException
  3264  //
  3265  //   * InternalServiceErrorException
  3266  //   We encountered an unknown error. Try again in a few minutes.
  3267  //
  3268  //   * ThrottlingException
  3269  //   The request was throttled. Try again in a few minutes.
  3270  //
  3271  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ImportFirewallDomains
  3272  func (c *Route53Resolver) ImportFirewallDomains(input *ImportFirewallDomainsInput) (*ImportFirewallDomainsOutput, error) {
  3273  	req, out := c.ImportFirewallDomainsRequest(input)
  3274  	return out, req.Send()
  3275  }
  3276  
  3277  // ImportFirewallDomainsWithContext is the same as ImportFirewallDomains with the addition of
  3278  // the ability to pass a context and additional request options.
  3279  //
  3280  // See ImportFirewallDomains for details on how to use this API operation.
  3281  //
  3282  // The context must be non-nil and will be used for request cancellation. If
  3283  // the context is nil a panic will occur. In the future the SDK may create
  3284  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3285  // for more information on using Contexts.
  3286  func (c *Route53Resolver) ImportFirewallDomainsWithContext(ctx aws.Context, input *ImportFirewallDomainsInput, opts ...request.Option) (*ImportFirewallDomainsOutput, error) {
  3287  	req, out := c.ImportFirewallDomainsRequest(input)
  3288  	req.SetContext(ctx)
  3289  	req.ApplyOptions(opts...)
  3290  	return out, req.Send()
  3291  }
  3292  
  3293  const opListFirewallConfigs = "ListFirewallConfigs"
  3294  
  3295  // ListFirewallConfigsRequest generates a "aws/request.Request" representing the
  3296  // client's request for the ListFirewallConfigs operation. The "output" return
  3297  // value will be populated with the request's response once the request completes
  3298  // successfully.
  3299  //
  3300  // Use "Send" method on the returned Request to send the API call to the service.
  3301  // the "output" return value is not valid until after Send returns without error.
  3302  //
  3303  // See ListFirewallConfigs for more information on using the ListFirewallConfigs
  3304  // API call, and error handling.
  3305  //
  3306  // This method is useful when you want to inject custom logic or configuration
  3307  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3308  //
  3309  //
  3310  //    // Example sending a request using the ListFirewallConfigsRequest method.
  3311  //    req, resp := client.ListFirewallConfigsRequest(params)
  3312  //
  3313  //    err := req.Send()
  3314  //    if err == nil { // resp is now filled
  3315  //        fmt.Println(resp)
  3316  //    }
  3317  //
  3318  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallConfigs
  3319  func (c *Route53Resolver) ListFirewallConfigsRequest(input *ListFirewallConfigsInput) (req *request.Request, output *ListFirewallConfigsOutput) {
  3320  	op := &request.Operation{
  3321  		Name:       opListFirewallConfigs,
  3322  		HTTPMethod: "POST",
  3323  		HTTPPath:   "/",
  3324  		Paginator: &request.Paginator{
  3325  			InputTokens:     []string{"NextToken"},
  3326  			OutputTokens:    []string{"NextToken"},
  3327  			LimitToken:      "MaxResults",
  3328  			TruncationToken: "",
  3329  		},
  3330  	}
  3331  
  3332  	if input == nil {
  3333  		input = &ListFirewallConfigsInput{}
  3334  	}
  3335  
  3336  	output = &ListFirewallConfigsOutput{}
  3337  	req = c.newRequest(op, input, output)
  3338  	return
  3339  }
  3340  
  3341  // ListFirewallConfigs API operation for Amazon Route 53 Resolver.
  3342  //
  3343  // Retrieves the firewall configurations that you have defined. DNS Firewall
  3344  // uses the configurations to manage firewall behavior for your VPCs.
  3345  //
  3346  // A single call might return only a partial list of the configurations. For
  3347  // information, see MaxResults.
  3348  //
  3349  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3350  // with awserr.Error's Code and Message methods to get detailed information about
  3351  // the error.
  3352  //
  3353  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3354  // API operation ListFirewallConfigs for usage and error information.
  3355  //
  3356  // Returned Error Types:
  3357  //   * ValidationException
  3358  //
  3359  //   * AccessDeniedException
  3360  //   The current account doesn't have the IAM permissions required to perform
  3361  //   the specified Resolver operation.
  3362  //
  3363  //   * InternalServiceErrorException
  3364  //   We encountered an unknown error. Try again in a few minutes.
  3365  //
  3366  //   * ThrottlingException
  3367  //   The request was throttled. Try again in a few minutes.
  3368  //
  3369  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallConfigs
  3370  func (c *Route53Resolver) ListFirewallConfigs(input *ListFirewallConfigsInput) (*ListFirewallConfigsOutput, error) {
  3371  	req, out := c.ListFirewallConfigsRequest(input)
  3372  	return out, req.Send()
  3373  }
  3374  
  3375  // ListFirewallConfigsWithContext is the same as ListFirewallConfigs with the addition of
  3376  // the ability to pass a context and additional request options.
  3377  //
  3378  // See ListFirewallConfigs for details on how to use this API operation.
  3379  //
  3380  // The context must be non-nil and will be used for request cancellation. If
  3381  // the context is nil a panic will occur. In the future the SDK may create
  3382  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3383  // for more information on using Contexts.
  3384  func (c *Route53Resolver) ListFirewallConfigsWithContext(ctx aws.Context, input *ListFirewallConfigsInput, opts ...request.Option) (*ListFirewallConfigsOutput, error) {
  3385  	req, out := c.ListFirewallConfigsRequest(input)
  3386  	req.SetContext(ctx)
  3387  	req.ApplyOptions(opts...)
  3388  	return out, req.Send()
  3389  }
  3390  
  3391  // ListFirewallConfigsPages iterates over the pages of a ListFirewallConfigs operation,
  3392  // calling the "fn" function with the response data for each page. To stop
  3393  // iterating, return false from the fn function.
  3394  //
  3395  // See ListFirewallConfigs method for more information on how to use this operation.
  3396  //
  3397  // Note: This operation can generate multiple requests to a service.
  3398  //
  3399  //    // Example iterating over at most 3 pages of a ListFirewallConfigs operation.
  3400  //    pageNum := 0
  3401  //    err := client.ListFirewallConfigsPages(params,
  3402  //        func(page *route53resolver.ListFirewallConfigsOutput, lastPage bool) bool {
  3403  //            pageNum++
  3404  //            fmt.Println(page)
  3405  //            return pageNum <= 3
  3406  //        })
  3407  //
  3408  func (c *Route53Resolver) ListFirewallConfigsPages(input *ListFirewallConfigsInput, fn func(*ListFirewallConfigsOutput, bool) bool) error {
  3409  	return c.ListFirewallConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
  3410  }
  3411  
  3412  // ListFirewallConfigsPagesWithContext same as ListFirewallConfigsPages except
  3413  // it takes a Context and allows setting request options on the pages.
  3414  //
  3415  // The context must be non-nil and will be used for request cancellation. If
  3416  // the context is nil a panic will occur. In the future the SDK may create
  3417  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3418  // for more information on using Contexts.
  3419  func (c *Route53Resolver) ListFirewallConfigsPagesWithContext(ctx aws.Context, input *ListFirewallConfigsInput, fn func(*ListFirewallConfigsOutput, bool) bool, opts ...request.Option) error {
  3420  	p := request.Pagination{
  3421  		NewRequest: func() (*request.Request, error) {
  3422  			var inCpy *ListFirewallConfigsInput
  3423  			if input != nil {
  3424  				tmp := *input
  3425  				inCpy = &tmp
  3426  			}
  3427  			req, _ := c.ListFirewallConfigsRequest(inCpy)
  3428  			req.SetContext(ctx)
  3429  			req.ApplyOptions(opts...)
  3430  			return req, nil
  3431  		},
  3432  	}
  3433  
  3434  	for p.Next() {
  3435  		if !fn(p.Page().(*ListFirewallConfigsOutput), !p.HasNextPage()) {
  3436  			break
  3437  		}
  3438  	}
  3439  
  3440  	return p.Err()
  3441  }
  3442  
  3443  const opListFirewallDomainLists = "ListFirewallDomainLists"
  3444  
  3445  // ListFirewallDomainListsRequest generates a "aws/request.Request" representing the
  3446  // client's request for the ListFirewallDomainLists operation. The "output" return
  3447  // value will be populated with the request's response once the request completes
  3448  // successfully.
  3449  //
  3450  // Use "Send" method on the returned Request to send the API call to the service.
  3451  // the "output" return value is not valid until after Send returns without error.
  3452  //
  3453  // See ListFirewallDomainLists for more information on using the ListFirewallDomainLists
  3454  // API call, and error handling.
  3455  //
  3456  // This method is useful when you want to inject custom logic or configuration
  3457  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3458  //
  3459  //
  3460  //    // Example sending a request using the ListFirewallDomainListsRequest method.
  3461  //    req, resp := client.ListFirewallDomainListsRequest(params)
  3462  //
  3463  //    err := req.Send()
  3464  //    if err == nil { // resp is now filled
  3465  //        fmt.Println(resp)
  3466  //    }
  3467  //
  3468  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomainLists
  3469  func (c *Route53Resolver) ListFirewallDomainListsRequest(input *ListFirewallDomainListsInput) (req *request.Request, output *ListFirewallDomainListsOutput) {
  3470  	op := &request.Operation{
  3471  		Name:       opListFirewallDomainLists,
  3472  		HTTPMethod: "POST",
  3473  		HTTPPath:   "/",
  3474  		Paginator: &request.Paginator{
  3475  			InputTokens:     []string{"NextToken"},
  3476  			OutputTokens:    []string{"NextToken"},
  3477  			LimitToken:      "MaxResults",
  3478  			TruncationToken: "",
  3479  		},
  3480  	}
  3481  
  3482  	if input == nil {
  3483  		input = &ListFirewallDomainListsInput{}
  3484  	}
  3485  
  3486  	output = &ListFirewallDomainListsOutput{}
  3487  	req = c.newRequest(op, input, output)
  3488  	return
  3489  }
  3490  
  3491  // ListFirewallDomainLists API operation for Amazon Route 53 Resolver.
  3492  //
  3493  // Retrieves the firewall domain lists that you have defined. For each firewall
  3494  // domain list, you can retrieve the domains that are defined for a list by
  3495  // calling ListFirewallDomains.
  3496  //
  3497  // A single call to this list operation might return only a partial list of
  3498  // the domain lists. For information, see MaxResults.
  3499  //
  3500  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3501  // with awserr.Error's Code and Message methods to get detailed information about
  3502  // the error.
  3503  //
  3504  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3505  // API operation ListFirewallDomainLists for usage and error information.
  3506  //
  3507  // Returned Error Types:
  3508  //   * ValidationException
  3509  //
  3510  //   * AccessDeniedException
  3511  //   The current account doesn't have the IAM permissions required to perform
  3512  //   the specified Resolver operation.
  3513  //
  3514  //   * InternalServiceErrorException
  3515  //   We encountered an unknown error. Try again in a few minutes.
  3516  //
  3517  //   * ThrottlingException
  3518  //   The request was throttled. Try again in a few minutes.
  3519  //
  3520  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomainLists
  3521  func (c *Route53Resolver) ListFirewallDomainLists(input *ListFirewallDomainListsInput) (*ListFirewallDomainListsOutput, error) {
  3522  	req, out := c.ListFirewallDomainListsRequest(input)
  3523  	return out, req.Send()
  3524  }
  3525  
  3526  // ListFirewallDomainListsWithContext is the same as ListFirewallDomainLists with the addition of
  3527  // the ability to pass a context and additional request options.
  3528  //
  3529  // See ListFirewallDomainLists for details on how to use this API operation.
  3530  //
  3531  // The context must be non-nil and will be used for request cancellation. If
  3532  // the context is nil a panic will occur. In the future the SDK may create
  3533  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3534  // for more information on using Contexts.
  3535  func (c *Route53Resolver) ListFirewallDomainListsWithContext(ctx aws.Context, input *ListFirewallDomainListsInput, opts ...request.Option) (*ListFirewallDomainListsOutput, error) {
  3536  	req, out := c.ListFirewallDomainListsRequest(input)
  3537  	req.SetContext(ctx)
  3538  	req.ApplyOptions(opts...)
  3539  	return out, req.Send()
  3540  }
  3541  
  3542  // ListFirewallDomainListsPages iterates over the pages of a ListFirewallDomainLists operation,
  3543  // calling the "fn" function with the response data for each page. To stop
  3544  // iterating, return false from the fn function.
  3545  //
  3546  // See ListFirewallDomainLists method for more information on how to use this operation.
  3547  //
  3548  // Note: This operation can generate multiple requests to a service.
  3549  //
  3550  //    // Example iterating over at most 3 pages of a ListFirewallDomainLists operation.
  3551  //    pageNum := 0
  3552  //    err := client.ListFirewallDomainListsPages(params,
  3553  //        func(page *route53resolver.ListFirewallDomainListsOutput, lastPage bool) bool {
  3554  //            pageNum++
  3555  //            fmt.Println(page)
  3556  //            return pageNum <= 3
  3557  //        })
  3558  //
  3559  func (c *Route53Resolver) ListFirewallDomainListsPages(input *ListFirewallDomainListsInput, fn func(*ListFirewallDomainListsOutput, bool) bool) error {
  3560  	return c.ListFirewallDomainListsPagesWithContext(aws.BackgroundContext(), input, fn)
  3561  }
  3562  
  3563  // ListFirewallDomainListsPagesWithContext same as ListFirewallDomainListsPages except
  3564  // it takes a Context and allows setting request options on the pages.
  3565  //
  3566  // The context must be non-nil and will be used for request cancellation. If
  3567  // the context is nil a panic will occur. In the future the SDK may create
  3568  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3569  // for more information on using Contexts.
  3570  func (c *Route53Resolver) ListFirewallDomainListsPagesWithContext(ctx aws.Context, input *ListFirewallDomainListsInput, fn func(*ListFirewallDomainListsOutput, bool) bool, opts ...request.Option) error {
  3571  	p := request.Pagination{
  3572  		NewRequest: func() (*request.Request, error) {
  3573  			var inCpy *ListFirewallDomainListsInput
  3574  			if input != nil {
  3575  				tmp := *input
  3576  				inCpy = &tmp
  3577  			}
  3578  			req, _ := c.ListFirewallDomainListsRequest(inCpy)
  3579  			req.SetContext(ctx)
  3580  			req.ApplyOptions(opts...)
  3581  			return req, nil
  3582  		},
  3583  	}
  3584  
  3585  	for p.Next() {
  3586  		if !fn(p.Page().(*ListFirewallDomainListsOutput), !p.HasNextPage()) {
  3587  			break
  3588  		}
  3589  	}
  3590  
  3591  	return p.Err()
  3592  }
  3593  
  3594  const opListFirewallDomains = "ListFirewallDomains"
  3595  
  3596  // ListFirewallDomainsRequest generates a "aws/request.Request" representing the
  3597  // client's request for the ListFirewallDomains operation. The "output" return
  3598  // value will be populated with the request's response once the request completes
  3599  // successfully.
  3600  //
  3601  // Use "Send" method on the returned Request to send the API call to the service.
  3602  // the "output" return value is not valid until after Send returns without error.
  3603  //
  3604  // See ListFirewallDomains for more information on using the ListFirewallDomains
  3605  // API call, and error handling.
  3606  //
  3607  // This method is useful when you want to inject custom logic or configuration
  3608  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3609  //
  3610  //
  3611  //    // Example sending a request using the ListFirewallDomainsRequest method.
  3612  //    req, resp := client.ListFirewallDomainsRequest(params)
  3613  //
  3614  //    err := req.Send()
  3615  //    if err == nil { // resp is now filled
  3616  //        fmt.Println(resp)
  3617  //    }
  3618  //
  3619  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomains
  3620  func (c *Route53Resolver) ListFirewallDomainsRequest(input *ListFirewallDomainsInput) (req *request.Request, output *ListFirewallDomainsOutput) {
  3621  	op := &request.Operation{
  3622  		Name:       opListFirewallDomains,
  3623  		HTTPMethod: "POST",
  3624  		HTTPPath:   "/",
  3625  		Paginator: &request.Paginator{
  3626  			InputTokens:     []string{"NextToken"},
  3627  			OutputTokens:    []string{"NextToken"},
  3628  			LimitToken:      "MaxResults",
  3629  			TruncationToken: "",
  3630  		},
  3631  	}
  3632  
  3633  	if input == nil {
  3634  		input = &ListFirewallDomainsInput{}
  3635  	}
  3636  
  3637  	output = &ListFirewallDomainsOutput{}
  3638  	req = c.newRequest(op, input, output)
  3639  	return
  3640  }
  3641  
  3642  // ListFirewallDomains API operation for Amazon Route 53 Resolver.
  3643  //
  3644  // Retrieves the domains that you have defined for the specified firewall domain
  3645  // list.
  3646  //
  3647  // A single call might return only a partial list of the domains. For information,
  3648  // see MaxResults.
  3649  //
  3650  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3651  // with awserr.Error's Code and Message methods to get detailed information about
  3652  // the error.
  3653  //
  3654  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3655  // API operation ListFirewallDomains for usage and error information.
  3656  //
  3657  // Returned Error Types:
  3658  //   * ResourceNotFoundException
  3659  //   The specified resource doesn't exist.
  3660  //
  3661  //   * ValidationException
  3662  //
  3663  //   * AccessDeniedException
  3664  //   The current account doesn't have the IAM permissions required to perform
  3665  //   the specified Resolver operation.
  3666  //
  3667  //   * InternalServiceErrorException
  3668  //   We encountered an unknown error. Try again in a few minutes.
  3669  //
  3670  //   * ThrottlingException
  3671  //   The request was throttled. Try again in a few minutes.
  3672  //
  3673  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomains
  3674  func (c *Route53Resolver) ListFirewallDomains(input *ListFirewallDomainsInput) (*ListFirewallDomainsOutput, error) {
  3675  	req, out := c.ListFirewallDomainsRequest(input)
  3676  	return out, req.Send()
  3677  }
  3678  
  3679  // ListFirewallDomainsWithContext is the same as ListFirewallDomains with the addition of
  3680  // the ability to pass a context and additional request options.
  3681  //
  3682  // See ListFirewallDomains for details on how to use this API operation.
  3683  //
  3684  // The context must be non-nil and will be used for request cancellation. If
  3685  // the context is nil a panic will occur. In the future the SDK may create
  3686  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3687  // for more information on using Contexts.
  3688  func (c *Route53Resolver) ListFirewallDomainsWithContext(ctx aws.Context, input *ListFirewallDomainsInput, opts ...request.Option) (*ListFirewallDomainsOutput, error) {
  3689  	req, out := c.ListFirewallDomainsRequest(input)
  3690  	req.SetContext(ctx)
  3691  	req.ApplyOptions(opts...)
  3692  	return out, req.Send()
  3693  }
  3694  
  3695  // ListFirewallDomainsPages iterates over the pages of a ListFirewallDomains operation,
  3696  // calling the "fn" function with the response data for each page. To stop
  3697  // iterating, return false from the fn function.
  3698  //
  3699  // See ListFirewallDomains method for more information on how to use this operation.
  3700  //
  3701  // Note: This operation can generate multiple requests to a service.
  3702  //
  3703  //    // Example iterating over at most 3 pages of a ListFirewallDomains operation.
  3704  //    pageNum := 0
  3705  //    err := client.ListFirewallDomainsPages(params,
  3706  //        func(page *route53resolver.ListFirewallDomainsOutput, lastPage bool) bool {
  3707  //            pageNum++
  3708  //            fmt.Println(page)
  3709  //            return pageNum <= 3
  3710  //        })
  3711  //
  3712  func (c *Route53Resolver) ListFirewallDomainsPages(input *ListFirewallDomainsInput, fn func(*ListFirewallDomainsOutput, bool) bool) error {
  3713  	return c.ListFirewallDomainsPagesWithContext(aws.BackgroundContext(), input, fn)
  3714  }
  3715  
  3716  // ListFirewallDomainsPagesWithContext same as ListFirewallDomainsPages except
  3717  // it takes a Context and allows setting request options on the pages.
  3718  //
  3719  // The context must be non-nil and will be used for request cancellation. If
  3720  // the context is nil a panic will occur. In the future the SDK may create
  3721  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3722  // for more information on using Contexts.
  3723  func (c *Route53Resolver) ListFirewallDomainsPagesWithContext(ctx aws.Context, input *ListFirewallDomainsInput, fn func(*ListFirewallDomainsOutput, bool) bool, opts ...request.Option) error {
  3724  	p := request.Pagination{
  3725  		NewRequest: func() (*request.Request, error) {
  3726  			var inCpy *ListFirewallDomainsInput
  3727  			if input != nil {
  3728  				tmp := *input
  3729  				inCpy = &tmp
  3730  			}
  3731  			req, _ := c.ListFirewallDomainsRequest(inCpy)
  3732  			req.SetContext(ctx)
  3733  			req.ApplyOptions(opts...)
  3734  			return req, nil
  3735  		},
  3736  	}
  3737  
  3738  	for p.Next() {
  3739  		if !fn(p.Page().(*ListFirewallDomainsOutput), !p.HasNextPage()) {
  3740  			break
  3741  		}
  3742  	}
  3743  
  3744  	return p.Err()
  3745  }
  3746  
  3747  const opListFirewallRuleGroupAssociations = "ListFirewallRuleGroupAssociations"
  3748  
  3749  // ListFirewallRuleGroupAssociationsRequest generates a "aws/request.Request" representing the
  3750  // client's request for the ListFirewallRuleGroupAssociations operation. The "output" return
  3751  // value will be populated with the request's response once the request completes
  3752  // successfully.
  3753  //
  3754  // Use "Send" method on the returned Request to send the API call to the service.
  3755  // the "output" return value is not valid until after Send returns without error.
  3756  //
  3757  // See ListFirewallRuleGroupAssociations for more information on using the ListFirewallRuleGroupAssociations
  3758  // API call, and error handling.
  3759  //
  3760  // This method is useful when you want to inject custom logic or configuration
  3761  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3762  //
  3763  //
  3764  //    // Example sending a request using the ListFirewallRuleGroupAssociationsRequest method.
  3765  //    req, resp := client.ListFirewallRuleGroupAssociationsRequest(params)
  3766  //
  3767  //    err := req.Send()
  3768  //    if err == nil { // resp is now filled
  3769  //        fmt.Println(resp)
  3770  //    }
  3771  //
  3772  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroupAssociations
  3773  func (c *Route53Resolver) ListFirewallRuleGroupAssociationsRequest(input *ListFirewallRuleGroupAssociationsInput) (req *request.Request, output *ListFirewallRuleGroupAssociationsOutput) {
  3774  	op := &request.Operation{
  3775  		Name:       opListFirewallRuleGroupAssociations,
  3776  		HTTPMethod: "POST",
  3777  		HTTPPath:   "/",
  3778  		Paginator: &request.Paginator{
  3779  			InputTokens:     []string{"NextToken"},
  3780  			OutputTokens:    []string{"NextToken"},
  3781  			LimitToken:      "MaxResults",
  3782  			TruncationToken: "",
  3783  		},
  3784  	}
  3785  
  3786  	if input == nil {
  3787  		input = &ListFirewallRuleGroupAssociationsInput{}
  3788  	}
  3789  
  3790  	output = &ListFirewallRuleGroupAssociationsOutput{}
  3791  	req = c.newRequest(op, input, output)
  3792  	return
  3793  }
  3794  
  3795  // ListFirewallRuleGroupAssociations API operation for Amazon Route 53 Resolver.
  3796  //
  3797  // Retrieves the firewall rule group associations that you have defined. Each
  3798  // association enables DNS filtering for a VPC with one rule group.
  3799  //
  3800  // A single call might return only a partial list of the associations. For information,
  3801  // see MaxResults.
  3802  //
  3803  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3804  // with awserr.Error's Code and Message methods to get detailed information about
  3805  // the error.
  3806  //
  3807  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3808  // API operation ListFirewallRuleGroupAssociations for usage and error information.
  3809  //
  3810  // Returned Error Types:
  3811  //   * ValidationException
  3812  //
  3813  //   * AccessDeniedException
  3814  //   The current account doesn't have the IAM permissions required to perform
  3815  //   the specified Resolver operation.
  3816  //
  3817  //   * InternalServiceErrorException
  3818  //   We encountered an unknown error. Try again in a few minutes.
  3819  //
  3820  //   * ThrottlingException
  3821  //   The request was throttled. Try again in a few minutes.
  3822  //
  3823  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroupAssociations
  3824  func (c *Route53Resolver) ListFirewallRuleGroupAssociations(input *ListFirewallRuleGroupAssociationsInput) (*ListFirewallRuleGroupAssociationsOutput, error) {
  3825  	req, out := c.ListFirewallRuleGroupAssociationsRequest(input)
  3826  	return out, req.Send()
  3827  }
  3828  
  3829  // ListFirewallRuleGroupAssociationsWithContext is the same as ListFirewallRuleGroupAssociations with the addition of
  3830  // the ability to pass a context and additional request options.
  3831  //
  3832  // See ListFirewallRuleGroupAssociations for details on how to use this API operation.
  3833  //
  3834  // The context must be non-nil and will be used for request cancellation. If
  3835  // the context is nil a panic will occur. In the future the SDK may create
  3836  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3837  // for more information on using Contexts.
  3838  func (c *Route53Resolver) ListFirewallRuleGroupAssociationsWithContext(ctx aws.Context, input *ListFirewallRuleGroupAssociationsInput, opts ...request.Option) (*ListFirewallRuleGroupAssociationsOutput, error) {
  3839  	req, out := c.ListFirewallRuleGroupAssociationsRequest(input)
  3840  	req.SetContext(ctx)
  3841  	req.ApplyOptions(opts...)
  3842  	return out, req.Send()
  3843  }
  3844  
  3845  // ListFirewallRuleGroupAssociationsPages iterates over the pages of a ListFirewallRuleGroupAssociations operation,
  3846  // calling the "fn" function with the response data for each page. To stop
  3847  // iterating, return false from the fn function.
  3848  //
  3849  // See ListFirewallRuleGroupAssociations method for more information on how to use this operation.
  3850  //
  3851  // Note: This operation can generate multiple requests to a service.
  3852  //
  3853  //    // Example iterating over at most 3 pages of a ListFirewallRuleGroupAssociations operation.
  3854  //    pageNum := 0
  3855  //    err := client.ListFirewallRuleGroupAssociationsPages(params,
  3856  //        func(page *route53resolver.ListFirewallRuleGroupAssociationsOutput, lastPage bool) bool {
  3857  //            pageNum++
  3858  //            fmt.Println(page)
  3859  //            return pageNum <= 3
  3860  //        })
  3861  //
  3862  func (c *Route53Resolver) ListFirewallRuleGroupAssociationsPages(input *ListFirewallRuleGroupAssociationsInput, fn func(*ListFirewallRuleGroupAssociationsOutput, bool) bool) error {
  3863  	return c.ListFirewallRuleGroupAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
  3864  }
  3865  
  3866  // ListFirewallRuleGroupAssociationsPagesWithContext same as ListFirewallRuleGroupAssociationsPages except
  3867  // it takes a Context and allows setting request options on the pages.
  3868  //
  3869  // The context must be non-nil and will be used for request cancellation. If
  3870  // the context is nil a panic will occur. In the future the SDK may create
  3871  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3872  // for more information on using Contexts.
  3873  func (c *Route53Resolver) ListFirewallRuleGroupAssociationsPagesWithContext(ctx aws.Context, input *ListFirewallRuleGroupAssociationsInput, fn func(*ListFirewallRuleGroupAssociationsOutput, bool) bool, opts ...request.Option) error {
  3874  	p := request.Pagination{
  3875  		NewRequest: func() (*request.Request, error) {
  3876  			var inCpy *ListFirewallRuleGroupAssociationsInput
  3877  			if input != nil {
  3878  				tmp := *input
  3879  				inCpy = &tmp
  3880  			}
  3881  			req, _ := c.ListFirewallRuleGroupAssociationsRequest(inCpy)
  3882  			req.SetContext(ctx)
  3883  			req.ApplyOptions(opts...)
  3884  			return req, nil
  3885  		},
  3886  	}
  3887  
  3888  	for p.Next() {
  3889  		if !fn(p.Page().(*ListFirewallRuleGroupAssociationsOutput), !p.HasNextPage()) {
  3890  			break
  3891  		}
  3892  	}
  3893  
  3894  	return p.Err()
  3895  }
  3896  
  3897  const opListFirewallRuleGroups = "ListFirewallRuleGroups"
  3898  
  3899  // ListFirewallRuleGroupsRequest generates a "aws/request.Request" representing the
  3900  // client's request for the ListFirewallRuleGroups operation. The "output" return
  3901  // value will be populated with the request's response once the request completes
  3902  // successfully.
  3903  //
  3904  // Use "Send" method on the returned Request to send the API call to the service.
  3905  // the "output" return value is not valid until after Send returns without error.
  3906  //
  3907  // See ListFirewallRuleGroups for more information on using the ListFirewallRuleGroups
  3908  // API call, and error handling.
  3909  //
  3910  // This method is useful when you want to inject custom logic or configuration
  3911  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3912  //
  3913  //
  3914  //    // Example sending a request using the ListFirewallRuleGroupsRequest method.
  3915  //    req, resp := client.ListFirewallRuleGroupsRequest(params)
  3916  //
  3917  //    err := req.Send()
  3918  //    if err == nil { // resp is now filled
  3919  //        fmt.Println(resp)
  3920  //    }
  3921  //
  3922  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroups
  3923  func (c *Route53Resolver) ListFirewallRuleGroupsRequest(input *ListFirewallRuleGroupsInput) (req *request.Request, output *ListFirewallRuleGroupsOutput) {
  3924  	op := &request.Operation{
  3925  		Name:       opListFirewallRuleGroups,
  3926  		HTTPMethod: "POST",
  3927  		HTTPPath:   "/",
  3928  		Paginator: &request.Paginator{
  3929  			InputTokens:     []string{"NextToken"},
  3930  			OutputTokens:    []string{"NextToken"},
  3931  			LimitToken:      "MaxResults",
  3932  			TruncationToken: "",
  3933  		},
  3934  	}
  3935  
  3936  	if input == nil {
  3937  		input = &ListFirewallRuleGroupsInput{}
  3938  	}
  3939  
  3940  	output = &ListFirewallRuleGroupsOutput{}
  3941  	req = c.newRequest(op, input, output)
  3942  	return
  3943  }
  3944  
  3945  // ListFirewallRuleGroups API operation for Amazon Route 53 Resolver.
  3946  //
  3947  // Retrieves the minimal high-level information for the rule groups that you
  3948  // have defined.
  3949  //
  3950  // A single call might return only a partial list of the rule groups. For information,
  3951  // see MaxResults.
  3952  //
  3953  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3954  // with awserr.Error's Code and Message methods to get detailed information about
  3955  // the error.
  3956  //
  3957  // See the AWS API reference guide for Amazon Route 53 Resolver's
  3958  // API operation ListFirewallRuleGroups for usage and error information.
  3959  //
  3960  // Returned Error Types:
  3961  //   * ValidationException
  3962  //
  3963  //   * AccessDeniedException
  3964  //   The current account doesn't have the IAM permissions required to perform
  3965  //   the specified Resolver operation.
  3966  //
  3967  //   * InternalServiceErrorException
  3968  //   We encountered an unknown error. Try again in a few minutes.
  3969  //
  3970  //   * ThrottlingException
  3971  //   The request was throttled. Try again in a few minutes.
  3972  //
  3973  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroups
  3974  func (c *Route53Resolver) ListFirewallRuleGroups(input *ListFirewallRuleGroupsInput) (*ListFirewallRuleGroupsOutput, error) {
  3975  	req, out := c.ListFirewallRuleGroupsRequest(input)
  3976  	return out, req.Send()
  3977  }
  3978  
  3979  // ListFirewallRuleGroupsWithContext is the same as ListFirewallRuleGroups with the addition of
  3980  // the ability to pass a context and additional request options.
  3981  //
  3982  // See ListFirewallRuleGroups for details on how to use this API operation.
  3983  //
  3984  // The context must be non-nil and will be used for request cancellation. If
  3985  // the context is nil a panic will occur. In the future the SDK may create
  3986  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3987  // for more information on using Contexts.
  3988  func (c *Route53Resolver) ListFirewallRuleGroupsWithContext(ctx aws.Context, input *ListFirewallRuleGroupsInput, opts ...request.Option) (*ListFirewallRuleGroupsOutput, error) {
  3989  	req, out := c.ListFirewallRuleGroupsRequest(input)
  3990  	req.SetContext(ctx)
  3991  	req.ApplyOptions(opts...)
  3992  	return out, req.Send()
  3993  }
  3994  
  3995  // ListFirewallRuleGroupsPages iterates over the pages of a ListFirewallRuleGroups operation,
  3996  // calling the "fn" function with the response data for each page. To stop
  3997  // iterating, return false from the fn function.
  3998  //
  3999  // See ListFirewallRuleGroups method for more information on how to use this operation.
  4000  //
  4001  // Note: This operation can generate multiple requests to a service.
  4002  //
  4003  //    // Example iterating over at most 3 pages of a ListFirewallRuleGroups operation.
  4004  //    pageNum := 0
  4005  //    err := client.ListFirewallRuleGroupsPages(params,
  4006  //        func(page *route53resolver.ListFirewallRuleGroupsOutput, lastPage bool) bool {
  4007  //            pageNum++
  4008  //            fmt.Println(page)
  4009  //            return pageNum <= 3
  4010  //        })
  4011  //
  4012  func (c *Route53Resolver) ListFirewallRuleGroupsPages(input *ListFirewallRuleGroupsInput, fn func(*ListFirewallRuleGroupsOutput, bool) bool) error {
  4013  	return c.ListFirewallRuleGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
  4014  }
  4015  
  4016  // ListFirewallRuleGroupsPagesWithContext same as ListFirewallRuleGroupsPages except
  4017  // it takes a Context and allows setting request options on the pages.
  4018  //
  4019  // The context must be non-nil and will be used for request cancellation. If
  4020  // the context is nil a panic will occur. In the future the SDK may create
  4021  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4022  // for more information on using Contexts.
  4023  func (c *Route53Resolver) ListFirewallRuleGroupsPagesWithContext(ctx aws.Context, input *ListFirewallRuleGroupsInput, fn func(*ListFirewallRuleGroupsOutput, bool) bool, opts ...request.Option) error {
  4024  	p := request.Pagination{
  4025  		NewRequest: func() (*request.Request, error) {
  4026  			var inCpy *ListFirewallRuleGroupsInput
  4027  			if input != nil {
  4028  				tmp := *input
  4029  				inCpy = &tmp
  4030  			}
  4031  			req, _ := c.ListFirewallRuleGroupsRequest(inCpy)
  4032  			req.SetContext(ctx)
  4033  			req.ApplyOptions(opts...)
  4034  			return req, nil
  4035  		},
  4036  	}
  4037  
  4038  	for p.Next() {
  4039  		if !fn(p.Page().(*ListFirewallRuleGroupsOutput), !p.HasNextPage()) {
  4040  			break
  4041  		}
  4042  	}
  4043  
  4044  	return p.Err()
  4045  }
  4046  
  4047  const opListFirewallRules = "ListFirewallRules"
  4048  
  4049  // ListFirewallRulesRequest generates a "aws/request.Request" representing the
  4050  // client's request for the ListFirewallRules operation. The "output" return
  4051  // value will be populated with the request's response once the request completes
  4052  // successfully.
  4053  //
  4054  // Use "Send" method on the returned Request to send the API call to the service.
  4055  // the "output" return value is not valid until after Send returns without error.
  4056  //
  4057  // See ListFirewallRules for more information on using the ListFirewallRules
  4058  // API call, and error handling.
  4059  //
  4060  // This method is useful when you want to inject custom logic or configuration
  4061  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4062  //
  4063  //
  4064  //    // Example sending a request using the ListFirewallRulesRequest method.
  4065  //    req, resp := client.ListFirewallRulesRequest(params)
  4066  //
  4067  //    err := req.Send()
  4068  //    if err == nil { // resp is now filled
  4069  //        fmt.Println(resp)
  4070  //    }
  4071  //
  4072  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRules
  4073  func (c *Route53Resolver) ListFirewallRulesRequest(input *ListFirewallRulesInput) (req *request.Request, output *ListFirewallRulesOutput) {
  4074  	op := &request.Operation{
  4075  		Name:       opListFirewallRules,
  4076  		HTTPMethod: "POST",
  4077  		HTTPPath:   "/",
  4078  		Paginator: &request.Paginator{
  4079  			InputTokens:     []string{"NextToken"},
  4080  			OutputTokens:    []string{"NextToken"},
  4081  			LimitToken:      "MaxResults",
  4082  			TruncationToken: "",
  4083  		},
  4084  	}
  4085  
  4086  	if input == nil {
  4087  		input = &ListFirewallRulesInput{}
  4088  	}
  4089  
  4090  	output = &ListFirewallRulesOutput{}
  4091  	req = c.newRequest(op, input, output)
  4092  	return
  4093  }
  4094  
  4095  // ListFirewallRules API operation for Amazon Route 53 Resolver.
  4096  //
  4097  // Retrieves the firewall rules that you have defined for the specified firewall
  4098  // rule group. DNS Firewall uses the rules in a rule group to filter DNS network
  4099  // traffic for a VPC.
  4100  //
  4101  // A single call might return only a partial list of the rules. For information,
  4102  // see MaxResults.
  4103  //
  4104  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4105  // with awserr.Error's Code and Message methods to get detailed information about
  4106  // the error.
  4107  //
  4108  // See the AWS API reference guide for Amazon Route 53 Resolver's
  4109  // API operation ListFirewallRules for usage and error information.
  4110  //
  4111  // Returned Error Types:
  4112  //   * ResourceNotFoundException
  4113  //   The specified resource doesn't exist.
  4114  //
  4115  //   * ValidationException
  4116  //
  4117  //   * AccessDeniedException
  4118  //   The current account doesn't have the IAM permissions required to perform
  4119  //   the specified Resolver operation.
  4120  //
  4121  //   * InternalServiceErrorException
  4122  //   We encountered an unknown error. Try again in a few minutes.
  4123  //
  4124  //   * ThrottlingException
  4125  //   The request was throttled. Try again in a few minutes.
  4126  //
  4127  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRules
  4128  func (c *Route53Resolver) ListFirewallRules(input *ListFirewallRulesInput) (*ListFirewallRulesOutput, error) {
  4129  	req, out := c.ListFirewallRulesRequest(input)
  4130  	return out, req.Send()
  4131  }
  4132  
  4133  // ListFirewallRulesWithContext is the same as ListFirewallRules with the addition of
  4134  // the ability to pass a context and additional request options.
  4135  //
  4136  // See ListFirewallRules for details on how to use this API operation.
  4137  //
  4138  // The context must be non-nil and will be used for request cancellation. If
  4139  // the context is nil a panic will occur. In the future the SDK may create
  4140  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4141  // for more information on using Contexts.
  4142  func (c *Route53Resolver) ListFirewallRulesWithContext(ctx aws.Context, input *ListFirewallRulesInput, opts ...request.Option) (*ListFirewallRulesOutput, error) {
  4143  	req, out := c.ListFirewallRulesRequest(input)
  4144  	req.SetContext(ctx)
  4145  	req.ApplyOptions(opts...)
  4146  	return out, req.Send()
  4147  }
  4148  
  4149  // ListFirewallRulesPages iterates over the pages of a ListFirewallRules operation,
  4150  // calling the "fn" function with the response data for each page. To stop
  4151  // iterating, return false from the fn function.
  4152  //
  4153  // See ListFirewallRules method for more information on how to use this operation.
  4154  //
  4155  // Note: This operation can generate multiple requests to a service.
  4156  //
  4157  //    // Example iterating over at most 3 pages of a ListFirewallRules operation.
  4158  //    pageNum := 0
  4159  //    err := client.ListFirewallRulesPages(params,
  4160  //        func(page *route53resolver.ListFirewallRulesOutput, lastPage bool) bool {
  4161  //            pageNum++
  4162  //            fmt.Println(page)
  4163  //            return pageNum <= 3
  4164  //        })
  4165  //
  4166  func (c *Route53Resolver) ListFirewallRulesPages(input *ListFirewallRulesInput, fn func(*ListFirewallRulesOutput, bool) bool) error {
  4167  	return c.ListFirewallRulesPagesWithContext(aws.BackgroundContext(), input, fn)
  4168  }
  4169  
  4170  // ListFirewallRulesPagesWithContext same as ListFirewallRulesPages except
  4171  // it takes a Context and allows setting request options on the pages.
  4172  //
  4173  // The context must be non-nil and will be used for request cancellation. If
  4174  // the context is nil a panic will occur. In the future the SDK may create
  4175  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4176  // for more information on using Contexts.
  4177  func (c *Route53Resolver) ListFirewallRulesPagesWithContext(ctx aws.Context, input *ListFirewallRulesInput, fn func(*ListFirewallRulesOutput, bool) bool, opts ...request.Option) error {
  4178  	p := request.Pagination{
  4179  		NewRequest: func() (*request.Request, error) {
  4180  			var inCpy *ListFirewallRulesInput
  4181  			if input != nil {
  4182  				tmp := *input
  4183  				inCpy = &tmp
  4184  			}
  4185  			req, _ := c.ListFirewallRulesRequest(inCpy)
  4186  			req.SetContext(ctx)
  4187  			req.ApplyOptions(opts...)
  4188  			return req, nil
  4189  		},
  4190  	}
  4191  
  4192  	for p.Next() {
  4193  		if !fn(p.Page().(*ListFirewallRulesOutput), !p.HasNextPage()) {
  4194  			break
  4195  		}
  4196  	}
  4197  
  4198  	return p.Err()
  4199  }
  4200  
  4201  const opListResolverDnssecConfigs = "ListResolverDnssecConfigs"
  4202  
  4203  // ListResolverDnssecConfigsRequest generates a "aws/request.Request" representing the
  4204  // client's request for the ListResolverDnssecConfigs operation. The "output" return
  4205  // value will be populated with the request's response once the request completes
  4206  // successfully.
  4207  //
  4208  // Use "Send" method on the returned Request to send the API call to the service.
  4209  // the "output" return value is not valid until after Send returns without error.
  4210  //
  4211  // See ListResolverDnssecConfigs for more information on using the ListResolverDnssecConfigs
  4212  // API call, and error handling.
  4213  //
  4214  // This method is useful when you want to inject custom logic or configuration
  4215  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4216  //
  4217  //
  4218  //    // Example sending a request using the ListResolverDnssecConfigsRequest method.
  4219  //    req, resp := client.ListResolverDnssecConfigsRequest(params)
  4220  //
  4221  //    err := req.Send()
  4222  //    if err == nil { // resp is now filled
  4223  //        fmt.Println(resp)
  4224  //    }
  4225  //
  4226  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
  4227  func (c *Route53Resolver) ListResolverDnssecConfigsRequest(input *ListResolverDnssecConfigsInput) (req *request.Request, output *ListResolverDnssecConfigsOutput) {
  4228  	op := &request.Operation{
  4229  		Name:       opListResolverDnssecConfigs,
  4230  		HTTPMethod: "POST",
  4231  		HTTPPath:   "/",
  4232  		Paginator: &request.Paginator{
  4233  			InputTokens:     []string{"NextToken"},
  4234  			OutputTokens:    []string{"NextToken"},
  4235  			LimitToken:      "MaxResults",
  4236  			TruncationToken: "",
  4237  		},
  4238  	}
  4239  
  4240  	if input == nil {
  4241  		input = &ListResolverDnssecConfigsInput{}
  4242  	}
  4243  
  4244  	output = &ListResolverDnssecConfigsOutput{}
  4245  	req = c.newRequest(op, input, output)
  4246  	return
  4247  }
  4248  
  4249  // ListResolverDnssecConfigs API operation for Amazon Route 53 Resolver.
  4250  //
  4251  // Lists the configurations for DNSSEC validation that are associated with the
  4252  // current Amazon Web Services account.
  4253  //
  4254  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4255  // with awserr.Error's Code and Message methods to get detailed information about
  4256  // the error.
  4257  //
  4258  // See the AWS API reference guide for Amazon Route 53 Resolver's
  4259  // API operation ListResolverDnssecConfigs for usage and error information.
  4260  //
  4261  // Returned Error Types:
  4262  //   * InvalidNextTokenException
  4263  //   The value that you specified for NextToken in a List request isn't valid.
  4264  //
  4265  //   * InvalidParameterException
  4266  //   One or more parameters in this request are not valid.
  4267  //
  4268  //   * InvalidRequestException
  4269  //   The request is invalid.
  4270  //
  4271  //   * InternalServiceErrorException
  4272  //   We encountered an unknown error. Try again in a few minutes.
  4273  //
  4274  //   * ThrottlingException
  4275  //   The request was throttled. Try again in a few minutes.
  4276  //
  4277  //   * AccessDeniedException
  4278  //   The current account doesn't have the IAM permissions required to perform
  4279  //   the specified Resolver operation.
  4280  //
  4281  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
  4282  func (c *Route53Resolver) ListResolverDnssecConfigs(input *ListResolverDnssecConfigsInput) (*ListResolverDnssecConfigsOutput, error) {
  4283  	req, out := c.ListResolverDnssecConfigsRequest(input)
  4284  	return out, req.Send()
  4285  }
  4286  
  4287  // ListResolverDnssecConfigsWithContext is the same as ListResolverDnssecConfigs with the addition of
  4288  // the ability to pass a context and additional request options.
  4289  //
  4290  // See ListResolverDnssecConfigs for details on how to use this API operation.
  4291  //
  4292  // The context must be non-nil and will be used for request cancellation. If
  4293  // the context is nil a panic will occur. In the future the SDK may create
  4294  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4295  // for more information on using Contexts.
  4296  func (c *Route53Resolver) ListResolverDnssecConfigsWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, opts ...request.Option) (*ListResolverDnssecConfigsOutput, error) {
  4297  	req, out := c.ListResolverDnssecConfigsRequest(input)
  4298  	req.SetContext(ctx)
  4299  	req.ApplyOptions(opts...)
  4300  	return out, req.Send()
  4301  }
  4302  
  4303  // ListResolverDnssecConfigsPages iterates over the pages of a ListResolverDnssecConfigs operation,
  4304  // calling the "fn" function with the response data for each page. To stop
  4305  // iterating, return false from the fn function.
  4306  //
  4307  // See ListResolverDnssecConfigs method for more information on how to use this operation.
  4308  //
  4309  // Note: This operation can generate multiple requests to a service.
  4310  //
  4311  //    // Example iterating over at most 3 pages of a ListResolverDnssecConfigs operation.
  4312  //    pageNum := 0
  4313  //    err := client.ListResolverDnssecConfigsPages(params,
  4314  //        func(page *route53resolver.ListResolverDnssecConfigsOutput, lastPage bool) bool {
  4315  //            pageNum++
  4316  //            fmt.Println(page)
  4317  //            return pageNum <= 3
  4318  //        })
  4319  //
  4320  func (c *Route53Resolver) ListResolverDnssecConfigsPages(input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool) error {
  4321  	return c.ListResolverDnssecConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
  4322  }
  4323  
  4324  // ListResolverDnssecConfigsPagesWithContext same as ListResolverDnssecConfigsPages except
  4325  // it takes a Context and allows setting request options on the pages.
  4326  //
  4327  // The context must be non-nil and will be used for request cancellation. If
  4328  // the context is nil a panic will occur. In the future the SDK may create
  4329  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4330  // for more information on using Contexts.
  4331  func (c *Route53Resolver) ListResolverDnssecConfigsPagesWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool, opts ...request.Option) error {
  4332  	p := request.Pagination{
  4333  		NewRequest: func() (*request.Request, error) {
  4334  			var inCpy *ListResolverDnssecConfigsInput
  4335  			if input != nil {
  4336  				tmp := *input
  4337  				inCpy = &tmp
  4338  			}
  4339  			req, _ := c.ListResolverDnssecConfigsRequest(inCpy)
  4340  			req.SetContext(ctx)
  4341  			req.ApplyOptions(opts...)
  4342  			return req, nil
  4343  		},
  4344  	}
  4345  
  4346  	for p.Next() {
  4347  		if !fn(p.Page().(*ListResolverDnssecConfigsOutput), !p.HasNextPage()) {
  4348  			break
  4349  		}
  4350  	}
  4351  
  4352  	return p.Err()
  4353  }
  4354  
  4355  const opListResolverEndpointIpAddresses = "ListResolverEndpointIpAddresses"
  4356  
  4357  // ListResolverEndpointIpAddressesRequest generates a "aws/request.Request" representing the
  4358  // client's request for the ListResolverEndpointIpAddresses operation. The "output" return
  4359  // value will be populated with the request's response once the request completes
  4360  // successfully.
  4361  //
  4362  // Use "Send" method on the returned Request to send the API call to the service.
  4363  // the "output" return value is not valid until after Send returns without error.
  4364  //
  4365  // See ListResolverEndpointIpAddresses for more information on using the ListResolverEndpointIpAddresses
  4366  // API call, and error handling.
  4367  //
  4368  // This method is useful when you want to inject custom logic or configuration
  4369  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4370  //
  4371  //
  4372  //    // Example sending a request using the ListResolverEndpointIpAddressesRequest method.
  4373  //    req, resp := client.ListResolverEndpointIpAddressesRequest(params)
  4374  //
  4375  //    err := req.Send()
  4376  //    if err == nil { // resp is now filled
  4377  //        fmt.Println(resp)
  4378  //    }
  4379  //
  4380  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
  4381  func (c *Route53Resolver) ListResolverEndpointIpAddressesRequest(input *ListResolverEndpointIpAddressesInput) (req *request.Request, output *ListResolverEndpointIpAddressesOutput) {
  4382  	op := &request.Operation{
  4383  		Name:       opListResolverEndpointIpAddresses,
  4384  		HTTPMethod: "POST",
  4385  		HTTPPath:   "/",
  4386  		Paginator: &request.Paginator{
  4387  			InputTokens:     []string{"NextToken"},
  4388  			OutputTokens:    []string{"NextToken"},
  4389  			LimitToken:      "MaxResults",
  4390  			TruncationToken: "",
  4391  		},
  4392  	}
  4393  
  4394  	if input == nil {
  4395  		input = &ListResolverEndpointIpAddressesInput{}
  4396  	}
  4397  
  4398  	output = &ListResolverEndpointIpAddressesOutput{}
  4399  	req = c.newRequest(op, input, output)
  4400  	return
  4401  }
  4402  
  4403  // ListResolverEndpointIpAddresses API operation for Amazon Route 53 Resolver.
  4404  //
  4405  // Gets the IP addresses for a specified Resolver endpoint.
  4406  //
  4407  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4408  // with awserr.Error's Code and Message methods to get detailed information about
  4409  // the error.
  4410  //
  4411  // See the AWS API reference guide for Amazon Route 53 Resolver's
  4412  // API operation ListResolverEndpointIpAddresses for usage and error information.
  4413  //
  4414  // Returned Error Types:
  4415  //   * ResourceNotFoundException
  4416  //   The specified resource doesn't exist.
  4417  //
  4418  //   * InvalidParameterException
  4419  //   One or more parameters in this request are not valid.
  4420  //
  4421  //   * InternalServiceErrorException
  4422  //   We encountered an unknown error. Try again in a few minutes.
  4423  //
  4424  //   * InvalidNextTokenException
  4425  //   The value that you specified for NextToken in a List request isn't valid.
  4426  //
  4427  //   * ThrottlingException
  4428  //   The request was throttled. Try again in a few minutes.
  4429  //
  4430  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
  4431  func (c *Route53Resolver) ListResolverEndpointIpAddresses(input *ListResolverEndpointIpAddressesInput) (*ListResolverEndpointIpAddressesOutput, error) {
  4432  	req, out := c.ListResolverEndpointIpAddressesRequest(input)
  4433  	return out, req.Send()
  4434  }
  4435  
  4436  // ListResolverEndpointIpAddressesWithContext is the same as ListResolverEndpointIpAddresses with the addition of
  4437  // the ability to pass a context and additional request options.
  4438  //
  4439  // See ListResolverEndpointIpAddresses for details on how to use this API operation.
  4440  //
  4441  // The context must be non-nil and will be used for request cancellation. If
  4442  // the context is nil a panic will occur. In the future the SDK may create
  4443  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4444  // for more information on using Contexts.
  4445  func (c *Route53Resolver) ListResolverEndpointIpAddressesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, opts ...request.Option) (*ListResolverEndpointIpAddressesOutput, error) {
  4446  	req, out := c.ListResolverEndpointIpAddressesRequest(input)
  4447  	req.SetContext(ctx)
  4448  	req.ApplyOptions(opts...)
  4449  	return out, req.Send()
  4450  }
  4451  
  4452  // ListResolverEndpointIpAddressesPages iterates over the pages of a ListResolverEndpointIpAddresses operation,
  4453  // calling the "fn" function with the response data for each page. To stop
  4454  // iterating, return false from the fn function.
  4455  //
  4456  // See ListResolverEndpointIpAddresses method for more information on how to use this operation.
  4457  //
  4458  // Note: This operation can generate multiple requests to a service.
  4459  //
  4460  //    // Example iterating over at most 3 pages of a ListResolverEndpointIpAddresses operation.
  4461  //    pageNum := 0
  4462  //    err := client.ListResolverEndpointIpAddressesPages(params,
  4463  //        func(page *route53resolver.ListResolverEndpointIpAddressesOutput, lastPage bool) bool {
  4464  //            pageNum++
  4465  //            fmt.Println(page)
  4466  //            return pageNum <= 3
  4467  //        })
  4468  //
  4469  func (c *Route53Resolver) ListResolverEndpointIpAddressesPages(input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool) error {
  4470  	return c.ListResolverEndpointIpAddressesPagesWithContext(aws.BackgroundContext(), input, fn)
  4471  }
  4472  
  4473  // ListResolverEndpointIpAddressesPagesWithContext same as ListResolverEndpointIpAddressesPages except
  4474  // it takes a Context and allows setting request options on the pages.
  4475  //
  4476  // The context must be non-nil and will be used for request cancellation. If
  4477  // the context is nil a panic will occur. In the future the SDK may create
  4478  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4479  // for more information on using Contexts.
  4480  func (c *Route53Resolver) ListResolverEndpointIpAddressesPagesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool, opts ...request.Option) error {
  4481  	p := request.Pagination{
  4482  		NewRequest: func() (*request.Request, error) {
  4483  			var inCpy *ListResolverEndpointIpAddressesInput
  4484  			if input != nil {
  4485  				tmp := *input
  4486  				inCpy = &tmp
  4487  			}
  4488  			req, _ := c.ListResolverEndpointIpAddressesRequest(inCpy)
  4489  			req.SetContext(ctx)
  4490  			req.ApplyOptions(opts...)
  4491  			return req, nil
  4492  		},
  4493  	}
  4494  
  4495  	for p.Next() {
  4496  		if !fn(p.Page().(*ListResolverEndpointIpAddressesOutput), !p.HasNextPage()) {
  4497  			break
  4498  		}
  4499  	}
  4500  
  4501  	return p.Err()
  4502  }
  4503  
  4504  const opListResolverEndpoints = "ListResolverEndpoints"
  4505  
  4506  // ListResolverEndpointsRequest generates a "aws/request.Request" representing the
  4507  // client's request for the ListResolverEndpoints operation. The "output" return
  4508  // value will be populated with the request's response once the request completes
  4509  // successfully.
  4510  //
  4511  // Use "Send" method on the returned Request to send the API call to the service.
  4512  // the "output" return value is not valid until after Send returns without error.
  4513  //
  4514  // See ListResolverEndpoints for more information on using the ListResolverEndpoints
  4515  // API call, and error handling.
  4516  //
  4517  // This method is useful when you want to inject custom logic or configuration
  4518  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4519  //
  4520  //
  4521  //    // Example sending a request using the ListResolverEndpointsRequest method.
  4522  //    req, resp := client.ListResolverEndpointsRequest(params)
  4523  //
  4524  //    err := req.Send()
  4525  //    if err == nil { // resp is now filled
  4526  //        fmt.Println(resp)
  4527  //    }
  4528  //
  4529  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
  4530  func (c *Route53Resolver) ListResolverEndpointsRequest(input *ListResolverEndpointsInput) (req *request.Request, output *ListResolverEndpointsOutput) {
  4531  	op := &request.Operation{
  4532  		Name:       opListResolverEndpoints,
  4533  		HTTPMethod: "POST",
  4534  		HTTPPath:   "/",
  4535  		Paginator: &request.Paginator{
  4536  			InputTokens:     []string{"NextToken"},
  4537  			OutputTokens:    []string{"NextToken"},
  4538  			LimitToken:      "MaxResults",
  4539  			TruncationToken: "",
  4540  		},
  4541  	}
  4542  
  4543  	if input == nil {
  4544  		input = &ListResolverEndpointsInput{}
  4545  	}
  4546  
  4547  	output = &ListResolverEndpointsOutput{}
  4548  	req = c.newRequest(op, input, output)
  4549  	return
  4550  }
  4551  
  4552  // ListResolverEndpoints API operation for Amazon Route 53 Resolver.
  4553  //
  4554  // Lists all the Resolver endpoints that were created using the current Amazon
  4555  // Web Services account.
  4556  //
  4557  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4558  // with awserr.Error's Code and Message methods to get detailed information about
  4559  // the error.
  4560  //
  4561  // See the AWS API reference guide for Amazon Route 53 Resolver's
  4562  // API operation ListResolverEndpoints for usage and error information.
  4563  //
  4564  // Returned Error Types:
  4565  //   * InvalidNextTokenException
  4566  //   The value that you specified for NextToken in a List request isn't valid.
  4567  //
  4568  //   * InvalidRequestException
  4569  //   The request is invalid.
  4570  //
  4571  //   * InvalidParameterException
  4572  //   One or more parameters in this request are not valid.
  4573  //
  4574  //   * InternalServiceErrorException
  4575  //   We encountered an unknown error. Try again in a few minutes.
  4576  //
  4577  //   * ThrottlingException
  4578  //   The request was throttled. Try again in a few minutes.
  4579  //
  4580  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
  4581  func (c *Route53Resolver) ListResolverEndpoints(input *ListResolverEndpointsInput) (*ListResolverEndpointsOutput, error) {
  4582  	req, out := c.ListResolverEndpointsRequest(input)
  4583  	return out, req.Send()
  4584  }
  4585  
  4586  // ListResolverEndpointsWithContext is the same as ListResolverEndpoints with the addition of
  4587  // the ability to pass a context and additional request options.
  4588  //
  4589  // See ListResolverEndpoints for details on how to use this API operation.
  4590  //
  4591  // The context must be non-nil and will be used for request cancellation. If
  4592  // the context is nil a panic will occur. In the future the SDK may create
  4593  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4594  // for more information on using Contexts.
  4595  func (c *Route53Resolver) ListResolverEndpointsWithContext(ctx aws.Context, input *ListResolverEndpointsInput, opts ...request.Option) (*ListResolverEndpointsOutput, error) {
  4596  	req, out := c.ListResolverEndpointsRequest(input)
  4597  	req.SetContext(ctx)
  4598  	req.ApplyOptions(opts...)
  4599  	return out, req.Send()
  4600  }
  4601  
  4602  // ListResolverEndpointsPages iterates over the pages of a ListResolverEndpoints operation,
  4603  // calling the "fn" function with the response data for each page. To stop
  4604  // iterating, return false from the fn function.
  4605  //
  4606  // See ListResolverEndpoints method for more information on how to use this operation.
  4607  //
  4608  // Note: This operation can generate multiple requests to a service.
  4609  //
  4610  //    // Example iterating over at most 3 pages of a ListResolverEndpoints operation.
  4611  //    pageNum := 0
  4612  //    err := client.ListResolverEndpointsPages(params,
  4613  //        func(page *route53resolver.ListResolverEndpointsOutput, lastPage bool) bool {
  4614  //            pageNum++
  4615  //            fmt.Println(page)
  4616  //            return pageNum <= 3
  4617  //        })
  4618  //
  4619  func (c *Route53Resolver) ListResolverEndpointsPages(input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool) error {
  4620  	return c.ListResolverEndpointsPagesWithContext(aws.BackgroundContext(), input, fn)
  4621  }
  4622  
  4623  // ListResolverEndpointsPagesWithContext same as ListResolverEndpointsPages except
  4624  // it takes a Context and allows setting request options on the pages.
  4625  //
  4626  // The context must be non-nil and will be used for request cancellation. If
  4627  // the context is nil a panic will occur. In the future the SDK may create
  4628  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4629  // for more information on using Contexts.
  4630  func (c *Route53Resolver) ListResolverEndpointsPagesWithContext(ctx aws.Context, input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool, opts ...request.Option) error {
  4631  	p := request.Pagination{
  4632  		NewRequest: func() (*request.Request, error) {
  4633  			var inCpy *ListResolverEndpointsInput
  4634  			if input != nil {
  4635  				tmp := *input
  4636  				inCpy = &tmp
  4637  			}
  4638  			req, _ := c.ListResolverEndpointsRequest(inCpy)
  4639  			req.SetContext(ctx)
  4640  			req.ApplyOptions(opts...)
  4641  			return req, nil
  4642  		},
  4643  	}
  4644  
  4645  	for p.Next() {
  4646  		if !fn(p.Page().(*ListResolverEndpointsOutput), !p.HasNextPage()) {
  4647  			break
  4648  		}
  4649  	}
  4650  
  4651  	return p.Err()
  4652  }
  4653  
  4654  const opListResolverQueryLogConfigAssociations = "ListResolverQueryLogConfigAssociations"
  4655  
  4656  // ListResolverQueryLogConfigAssociationsRequest generates a "aws/request.Request" representing the
  4657  // client's request for the ListResolverQueryLogConfigAssociations operation. The "output" return
  4658  // value will be populated with the request's response once the request completes
  4659  // successfully.
  4660  //
  4661  // Use "Send" method on the returned Request to send the API call to the service.
  4662  // the "output" return value is not valid until after Send returns without error.
  4663  //
  4664  // See ListResolverQueryLogConfigAssociations for more information on using the ListResolverQueryLogConfigAssociations
  4665  // API call, and error handling.
  4666  //
  4667  // This method is useful when you want to inject custom logic or configuration
  4668  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4669  //
  4670  //
  4671  //    // Example sending a request using the ListResolverQueryLogConfigAssociationsRequest method.
  4672  //    req, resp := client.ListResolverQueryLogConfigAssociationsRequest(params)
  4673  //
  4674  //    err := req.Send()
  4675  //    if err == nil { // resp is now filled
  4676  //        fmt.Println(resp)
  4677  //    }
  4678  //
  4679  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
  4680  func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsRequest(input *ListResolverQueryLogConfigAssociationsInput) (req *request.Request, output *ListResolverQueryLogConfigAssociationsOutput) {
  4681  	op := &request.Operation{
  4682  		Name:       opListResolverQueryLogConfigAssociations,
  4683  		HTTPMethod: "POST",
  4684  		HTTPPath:   "/",
  4685  		Paginator: &request.Paginator{
  4686  			InputTokens:     []string{"NextToken"},
  4687  			OutputTokens:    []string{"NextToken"},
  4688  			LimitToken:      "MaxResults",
  4689  			TruncationToken: "",
  4690  		},
  4691  	}
  4692  
  4693  	if input == nil {
  4694  		input = &ListResolverQueryLogConfigAssociationsInput{}
  4695  	}
  4696  
  4697  	output = &ListResolverQueryLogConfigAssociationsOutput{}
  4698  	req = c.newRequest(op, input, output)
  4699  	return
  4700  }
  4701  
  4702  // ListResolverQueryLogConfigAssociations API operation for Amazon Route 53 Resolver.
  4703  //
  4704  // Lists information about associations between Amazon VPCs and query logging
  4705  // configurations.
  4706  //
  4707  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4708  // with awserr.Error's Code and Message methods to get detailed information about
  4709  // the error.
  4710  //
  4711  // See the AWS API reference guide for Amazon Route 53 Resolver's
  4712  // API operation ListResolverQueryLogConfigAssociations for usage and error information.
  4713  //
  4714  // Returned Error Types:
  4715  //   * InvalidParameterException
  4716  //   One or more parameters in this request are not valid.
  4717  //
  4718  //   * InvalidRequestException
  4719  //   The request is invalid.
  4720  //
  4721  //   * LimitExceededException
  4722  //   The request caused one or more limits to be exceeded.
  4723  //
  4724  //   * InternalServiceErrorException
  4725  //   We encountered an unknown error. Try again in a few minutes.
  4726  //
  4727  //   * ThrottlingException
  4728  //   The request was throttled. Try again in a few minutes.
  4729  //
  4730  //   * AccessDeniedException
  4731  //   The current account doesn't have the IAM permissions required to perform
  4732  //   the specified Resolver operation.
  4733  //
  4734  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
  4735  func (c *Route53Resolver) ListResolverQueryLogConfigAssociations(input *ListResolverQueryLogConfigAssociationsInput) (*ListResolverQueryLogConfigAssociationsOutput, error) {
  4736  	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
  4737  	return out, req.Send()
  4738  }
  4739  
  4740  // ListResolverQueryLogConfigAssociationsWithContext is the same as ListResolverQueryLogConfigAssociations with the addition of
  4741  // the ability to pass a context and additional request options.
  4742  //
  4743  // See ListResolverQueryLogConfigAssociations for details on how to use this API operation.
  4744  //
  4745  // The context must be non-nil and will be used for request cancellation. If
  4746  // the context is nil a panic will occur. In the future the SDK may create
  4747  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4748  // for more information on using Contexts.
  4749  func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, opts ...request.Option) (*ListResolverQueryLogConfigAssociationsOutput, error) {
  4750  	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
  4751  	req.SetContext(ctx)
  4752  	req.ApplyOptions(opts...)
  4753  	return out, req.Send()
  4754  }
  4755  
  4756  // ListResolverQueryLogConfigAssociationsPages iterates over the pages of a ListResolverQueryLogConfigAssociations operation,
  4757  // calling the "fn" function with the response data for each page. To stop
  4758  // iterating, return false from the fn function.
  4759  //
  4760  // See ListResolverQueryLogConfigAssociations method for more information on how to use this operation.
  4761  //
  4762  // Note: This operation can generate multiple requests to a service.
  4763  //
  4764  //    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigAssociations operation.
  4765  //    pageNum := 0
  4766  //    err := client.ListResolverQueryLogConfigAssociationsPages(params,
  4767  //        func(page *route53resolver.ListResolverQueryLogConfigAssociationsOutput, lastPage bool) bool {
  4768  //            pageNum++
  4769  //            fmt.Println(page)
  4770  //            return pageNum <= 3
  4771  //        })
  4772  //
  4773  func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPages(input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool) error {
  4774  	return c.ListResolverQueryLogConfigAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
  4775  }
  4776  
  4777  // ListResolverQueryLogConfigAssociationsPagesWithContext same as ListResolverQueryLogConfigAssociationsPages except
  4778  // it takes a Context and allows setting request options on the pages.
  4779  //
  4780  // The context must be non-nil and will be used for request cancellation. If
  4781  // the context is nil a panic will occur. In the future the SDK may create
  4782  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4783  // for more information on using Contexts.
  4784  func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool, opts ...request.Option) error {
  4785  	p := request.Pagination{
  4786  		NewRequest: func() (*request.Request, error) {
  4787  			var inCpy *ListResolverQueryLogConfigAssociationsInput
  4788  			if input != nil {
  4789  				tmp := *input
  4790  				inCpy = &tmp
  4791  			}
  4792  			req, _ := c.ListResolverQueryLogConfigAssociationsRequest(inCpy)
  4793  			req.SetContext(ctx)
  4794  			req.ApplyOptions(opts...)
  4795  			return req, nil
  4796  		},
  4797  	}
  4798  
  4799  	for p.Next() {
  4800  		if !fn(p.Page().(*ListResolverQueryLogConfigAssociationsOutput), !p.HasNextPage()) {
  4801  			break
  4802  		}
  4803  	}
  4804  
  4805  	return p.Err()
  4806  }
  4807  
  4808  const opListResolverQueryLogConfigs = "ListResolverQueryLogConfigs"
  4809  
  4810  // ListResolverQueryLogConfigsRequest generates a "aws/request.Request" representing the
  4811  // client's request for the ListResolverQueryLogConfigs operation. The "output" return
  4812  // value will be populated with the request's response once the request completes
  4813  // successfully.
  4814  //
  4815  // Use "Send" method on the returned Request to send the API call to the service.
  4816  // the "output" return value is not valid until after Send returns without error.
  4817  //
  4818  // See ListResolverQueryLogConfigs for more information on using the ListResolverQueryLogConfigs
  4819  // API call, and error handling.
  4820  //
  4821  // This method is useful when you want to inject custom logic or configuration
  4822  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4823  //
  4824  //
  4825  //    // Example sending a request using the ListResolverQueryLogConfigsRequest method.
  4826  //    req, resp := client.ListResolverQueryLogConfigsRequest(params)
  4827  //
  4828  //    err := req.Send()
  4829  //    if err == nil { // resp is now filled
  4830  //        fmt.Println(resp)
  4831  //    }
  4832  //
  4833  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
  4834  func (c *Route53Resolver) ListResolverQueryLogConfigsRequest(input *ListResolverQueryLogConfigsInput) (req *request.Request, output *ListResolverQueryLogConfigsOutput) {
  4835  	op := &request.Operation{
  4836  		Name:       opListResolverQueryLogConfigs,
  4837  		HTTPMethod: "POST",
  4838  		HTTPPath:   "/",
  4839  		Paginator: &request.Paginator{
  4840  			InputTokens:     []string{"NextToken"},
  4841  			OutputTokens:    []string{"NextToken"},
  4842  			LimitToken:      "MaxResults",
  4843  			TruncationToken: "",
  4844  		},
  4845  	}
  4846  
  4847  	if input == nil {
  4848  		input = &ListResolverQueryLogConfigsInput{}
  4849  	}
  4850  
  4851  	output = &ListResolverQueryLogConfigsOutput{}
  4852  	req = c.newRequest(op, input, output)
  4853  	return
  4854  }
  4855  
  4856  // ListResolverQueryLogConfigs API operation for Amazon Route 53 Resolver.
  4857  //
  4858  // Lists information about the specified query logging configurations. Each
  4859  // configuration defines where you want Resolver to save DNS query logs and
  4860  // specifies the VPCs that you want to log queries for.
  4861  //
  4862  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4863  // with awserr.Error's Code and Message methods to get detailed information about
  4864  // the error.
  4865  //
  4866  // See the AWS API reference guide for Amazon Route 53 Resolver's
  4867  // API operation ListResolverQueryLogConfigs for usage and error information.
  4868  //
  4869  // Returned Error Types:
  4870  //   * InvalidNextTokenException
  4871  //   The value that you specified for NextToken in a List request isn't valid.
  4872  //
  4873  //   * InvalidRequestException
  4874  //   The request is invalid.
  4875  //
  4876  //   * InvalidParameterException
  4877  //   One or more parameters in this request are not valid.
  4878  //
  4879  //   * InternalServiceErrorException
  4880  //   We encountered an unknown error. Try again in a few minutes.
  4881  //
  4882  //   * ThrottlingException
  4883  //   The request was throttled. Try again in a few minutes.
  4884  //
  4885  //   * AccessDeniedException
  4886  //   The current account doesn't have the IAM permissions required to perform
  4887  //   the specified Resolver operation.
  4888  //
  4889  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
  4890  func (c *Route53Resolver) ListResolverQueryLogConfigs(input *ListResolverQueryLogConfigsInput) (*ListResolverQueryLogConfigsOutput, error) {
  4891  	req, out := c.ListResolverQueryLogConfigsRequest(input)
  4892  	return out, req.Send()
  4893  }
  4894  
  4895  // ListResolverQueryLogConfigsWithContext is the same as ListResolverQueryLogConfigs with the addition of
  4896  // the ability to pass a context and additional request options.
  4897  //
  4898  // See ListResolverQueryLogConfigs for details on how to use this API operation.
  4899  //
  4900  // The context must be non-nil and will be used for request cancellation. If
  4901  // the context is nil a panic will occur. In the future the SDK may create
  4902  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4903  // for more information on using Contexts.
  4904  func (c *Route53Resolver) ListResolverQueryLogConfigsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, opts ...request.Option) (*ListResolverQueryLogConfigsOutput, error) {
  4905  	req, out := c.ListResolverQueryLogConfigsRequest(input)
  4906  	req.SetContext(ctx)
  4907  	req.ApplyOptions(opts...)
  4908  	return out, req.Send()
  4909  }
  4910  
  4911  // ListResolverQueryLogConfigsPages iterates over the pages of a ListResolverQueryLogConfigs operation,
  4912  // calling the "fn" function with the response data for each page. To stop
  4913  // iterating, return false from the fn function.
  4914  //
  4915  // See ListResolverQueryLogConfigs method for more information on how to use this operation.
  4916  //
  4917  // Note: This operation can generate multiple requests to a service.
  4918  //
  4919  //    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigs operation.
  4920  //    pageNum := 0
  4921  //    err := client.ListResolverQueryLogConfigsPages(params,
  4922  //        func(page *route53resolver.ListResolverQueryLogConfigsOutput, lastPage bool) bool {
  4923  //            pageNum++
  4924  //            fmt.Println(page)
  4925  //            return pageNum <= 3
  4926  //        })
  4927  //
  4928  func (c *Route53Resolver) ListResolverQueryLogConfigsPages(input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool) error {
  4929  	return c.ListResolverQueryLogConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
  4930  }
  4931  
  4932  // ListResolverQueryLogConfigsPagesWithContext same as ListResolverQueryLogConfigsPages except
  4933  // it takes a Context and allows setting request options on the pages.
  4934  //
  4935  // The context must be non-nil and will be used for request cancellation. If
  4936  // the context is nil a panic will occur. In the future the SDK may create
  4937  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4938  // for more information on using Contexts.
  4939  func (c *Route53Resolver) ListResolverQueryLogConfigsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool, opts ...request.Option) error {
  4940  	p := request.Pagination{
  4941  		NewRequest: func() (*request.Request, error) {
  4942  			var inCpy *ListResolverQueryLogConfigsInput
  4943  			if input != nil {
  4944  				tmp := *input
  4945  				inCpy = &tmp
  4946  			}
  4947  			req, _ := c.ListResolverQueryLogConfigsRequest(inCpy)
  4948  			req.SetContext(ctx)
  4949  			req.ApplyOptions(opts...)
  4950  			return req, nil
  4951  		},
  4952  	}
  4953  
  4954  	for p.Next() {
  4955  		if !fn(p.Page().(*ListResolverQueryLogConfigsOutput), !p.HasNextPage()) {
  4956  			break
  4957  		}
  4958  	}
  4959  
  4960  	return p.Err()
  4961  }
  4962  
  4963  const opListResolverRuleAssociations = "ListResolverRuleAssociations"
  4964  
  4965  // ListResolverRuleAssociationsRequest generates a "aws/request.Request" representing the
  4966  // client's request for the ListResolverRuleAssociations operation. The "output" return
  4967  // value will be populated with the request's response once the request completes
  4968  // successfully.
  4969  //
  4970  // Use "Send" method on the returned Request to send the API call to the service.
  4971  // the "output" return value is not valid until after Send returns without error.
  4972  //
  4973  // See ListResolverRuleAssociations for more information on using the ListResolverRuleAssociations
  4974  // API call, and error handling.
  4975  //
  4976  // This method is useful when you want to inject custom logic or configuration
  4977  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4978  //
  4979  //
  4980  //    // Example sending a request using the ListResolverRuleAssociationsRequest method.
  4981  //    req, resp := client.ListResolverRuleAssociationsRequest(params)
  4982  //
  4983  //    err := req.Send()
  4984  //    if err == nil { // resp is now filled
  4985  //        fmt.Println(resp)
  4986  //    }
  4987  //
  4988  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
  4989  func (c *Route53Resolver) ListResolverRuleAssociationsRequest(input *ListResolverRuleAssociationsInput) (req *request.Request, output *ListResolverRuleAssociationsOutput) {
  4990  	op := &request.Operation{
  4991  		Name:       opListResolverRuleAssociations,
  4992  		HTTPMethod: "POST",
  4993  		HTTPPath:   "/",
  4994  		Paginator: &request.Paginator{
  4995  			InputTokens:     []string{"NextToken"},
  4996  			OutputTokens:    []string{"NextToken"},
  4997  			LimitToken:      "MaxResults",
  4998  			TruncationToken: "",
  4999  		},
  5000  	}
  5001  
  5002  	if input == nil {
  5003  		input = &ListResolverRuleAssociationsInput{}
  5004  	}
  5005  
  5006  	output = &ListResolverRuleAssociationsOutput{}
  5007  	req = c.newRequest(op, input, output)
  5008  	return
  5009  }
  5010  
  5011  // ListResolverRuleAssociations API operation for Amazon Route 53 Resolver.
  5012  //
  5013  // Lists the associations that were created between Resolver rules and VPCs
  5014  // using the current Amazon Web Services account.
  5015  //
  5016  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5017  // with awserr.Error's Code and Message methods to get detailed information about
  5018  // the error.
  5019  //
  5020  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5021  // API operation ListResolverRuleAssociations for usage and error information.
  5022  //
  5023  // Returned Error Types:
  5024  //   * InvalidNextTokenException
  5025  //   The value that you specified for NextToken in a List request isn't valid.
  5026  //
  5027  //   * InvalidRequestException
  5028  //   The request is invalid.
  5029  //
  5030  //   * InvalidParameterException
  5031  //   One or more parameters in this request are not valid.
  5032  //
  5033  //   * InternalServiceErrorException
  5034  //   We encountered an unknown error. Try again in a few minutes.
  5035  //
  5036  //   * ThrottlingException
  5037  //   The request was throttled. Try again in a few minutes.
  5038  //
  5039  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
  5040  func (c *Route53Resolver) ListResolverRuleAssociations(input *ListResolverRuleAssociationsInput) (*ListResolverRuleAssociationsOutput, error) {
  5041  	req, out := c.ListResolverRuleAssociationsRequest(input)
  5042  	return out, req.Send()
  5043  }
  5044  
  5045  // ListResolverRuleAssociationsWithContext is the same as ListResolverRuleAssociations with the addition of
  5046  // the ability to pass a context and additional request options.
  5047  //
  5048  // See ListResolverRuleAssociations for details on how to use this API operation.
  5049  //
  5050  // The context must be non-nil and will be used for request cancellation. If
  5051  // the context is nil a panic will occur. In the future the SDK may create
  5052  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5053  // for more information on using Contexts.
  5054  func (c *Route53Resolver) ListResolverRuleAssociationsWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, opts ...request.Option) (*ListResolverRuleAssociationsOutput, error) {
  5055  	req, out := c.ListResolverRuleAssociationsRequest(input)
  5056  	req.SetContext(ctx)
  5057  	req.ApplyOptions(opts...)
  5058  	return out, req.Send()
  5059  }
  5060  
  5061  // ListResolverRuleAssociationsPages iterates over the pages of a ListResolverRuleAssociations operation,
  5062  // calling the "fn" function with the response data for each page. To stop
  5063  // iterating, return false from the fn function.
  5064  //
  5065  // See ListResolverRuleAssociations method for more information on how to use this operation.
  5066  //
  5067  // Note: This operation can generate multiple requests to a service.
  5068  //
  5069  //    // Example iterating over at most 3 pages of a ListResolverRuleAssociations operation.
  5070  //    pageNum := 0
  5071  //    err := client.ListResolverRuleAssociationsPages(params,
  5072  //        func(page *route53resolver.ListResolverRuleAssociationsOutput, lastPage bool) bool {
  5073  //            pageNum++
  5074  //            fmt.Println(page)
  5075  //            return pageNum <= 3
  5076  //        })
  5077  //
  5078  func (c *Route53Resolver) ListResolverRuleAssociationsPages(input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool) error {
  5079  	return c.ListResolverRuleAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
  5080  }
  5081  
  5082  // ListResolverRuleAssociationsPagesWithContext same as ListResolverRuleAssociationsPages except
  5083  // it takes a Context and allows setting request options on the pages.
  5084  //
  5085  // The context must be non-nil and will be used for request cancellation. If
  5086  // the context is nil a panic will occur. In the future the SDK may create
  5087  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5088  // for more information on using Contexts.
  5089  func (c *Route53Resolver) ListResolverRuleAssociationsPagesWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool, opts ...request.Option) error {
  5090  	p := request.Pagination{
  5091  		NewRequest: func() (*request.Request, error) {
  5092  			var inCpy *ListResolverRuleAssociationsInput
  5093  			if input != nil {
  5094  				tmp := *input
  5095  				inCpy = &tmp
  5096  			}
  5097  			req, _ := c.ListResolverRuleAssociationsRequest(inCpy)
  5098  			req.SetContext(ctx)
  5099  			req.ApplyOptions(opts...)
  5100  			return req, nil
  5101  		},
  5102  	}
  5103  
  5104  	for p.Next() {
  5105  		if !fn(p.Page().(*ListResolverRuleAssociationsOutput), !p.HasNextPage()) {
  5106  			break
  5107  		}
  5108  	}
  5109  
  5110  	return p.Err()
  5111  }
  5112  
  5113  const opListResolverRules = "ListResolverRules"
  5114  
  5115  // ListResolverRulesRequest generates a "aws/request.Request" representing the
  5116  // client's request for the ListResolverRules operation. The "output" return
  5117  // value will be populated with the request's response once the request completes
  5118  // successfully.
  5119  //
  5120  // Use "Send" method on the returned Request to send the API call to the service.
  5121  // the "output" return value is not valid until after Send returns without error.
  5122  //
  5123  // See ListResolverRules for more information on using the ListResolverRules
  5124  // API call, and error handling.
  5125  //
  5126  // This method is useful when you want to inject custom logic or configuration
  5127  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5128  //
  5129  //
  5130  //    // Example sending a request using the ListResolverRulesRequest method.
  5131  //    req, resp := client.ListResolverRulesRequest(params)
  5132  //
  5133  //    err := req.Send()
  5134  //    if err == nil { // resp is now filled
  5135  //        fmt.Println(resp)
  5136  //    }
  5137  //
  5138  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
  5139  func (c *Route53Resolver) ListResolverRulesRequest(input *ListResolverRulesInput) (req *request.Request, output *ListResolverRulesOutput) {
  5140  	op := &request.Operation{
  5141  		Name:       opListResolverRules,
  5142  		HTTPMethod: "POST",
  5143  		HTTPPath:   "/",
  5144  		Paginator: &request.Paginator{
  5145  			InputTokens:     []string{"NextToken"},
  5146  			OutputTokens:    []string{"NextToken"},
  5147  			LimitToken:      "MaxResults",
  5148  			TruncationToken: "",
  5149  		},
  5150  	}
  5151  
  5152  	if input == nil {
  5153  		input = &ListResolverRulesInput{}
  5154  	}
  5155  
  5156  	output = &ListResolverRulesOutput{}
  5157  	req = c.newRequest(op, input, output)
  5158  	return
  5159  }
  5160  
  5161  // ListResolverRules API operation for Amazon Route 53 Resolver.
  5162  //
  5163  // Lists the Resolver rules that were created using the current Amazon Web Services
  5164  // account.
  5165  //
  5166  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5167  // with awserr.Error's Code and Message methods to get detailed information about
  5168  // the error.
  5169  //
  5170  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5171  // API operation ListResolverRules for usage and error information.
  5172  //
  5173  // Returned Error Types:
  5174  //   * InvalidNextTokenException
  5175  //   The value that you specified for NextToken in a List request isn't valid.
  5176  //
  5177  //   * InvalidRequestException
  5178  //   The request is invalid.
  5179  //
  5180  //   * InvalidParameterException
  5181  //   One or more parameters in this request are not valid.
  5182  //
  5183  //   * InternalServiceErrorException
  5184  //   We encountered an unknown error. Try again in a few minutes.
  5185  //
  5186  //   * ThrottlingException
  5187  //   The request was throttled. Try again in a few minutes.
  5188  //
  5189  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
  5190  func (c *Route53Resolver) ListResolverRules(input *ListResolverRulesInput) (*ListResolverRulesOutput, error) {
  5191  	req, out := c.ListResolverRulesRequest(input)
  5192  	return out, req.Send()
  5193  }
  5194  
  5195  // ListResolverRulesWithContext is the same as ListResolverRules with the addition of
  5196  // the ability to pass a context and additional request options.
  5197  //
  5198  // See ListResolverRules for details on how to use this API operation.
  5199  //
  5200  // The context must be non-nil and will be used for request cancellation. If
  5201  // the context is nil a panic will occur. In the future the SDK may create
  5202  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5203  // for more information on using Contexts.
  5204  func (c *Route53Resolver) ListResolverRulesWithContext(ctx aws.Context, input *ListResolverRulesInput, opts ...request.Option) (*ListResolverRulesOutput, error) {
  5205  	req, out := c.ListResolverRulesRequest(input)
  5206  	req.SetContext(ctx)
  5207  	req.ApplyOptions(opts...)
  5208  	return out, req.Send()
  5209  }
  5210  
  5211  // ListResolverRulesPages iterates over the pages of a ListResolverRules operation,
  5212  // calling the "fn" function with the response data for each page. To stop
  5213  // iterating, return false from the fn function.
  5214  //
  5215  // See ListResolverRules method for more information on how to use this operation.
  5216  //
  5217  // Note: This operation can generate multiple requests to a service.
  5218  //
  5219  //    // Example iterating over at most 3 pages of a ListResolverRules operation.
  5220  //    pageNum := 0
  5221  //    err := client.ListResolverRulesPages(params,
  5222  //        func(page *route53resolver.ListResolverRulesOutput, lastPage bool) bool {
  5223  //            pageNum++
  5224  //            fmt.Println(page)
  5225  //            return pageNum <= 3
  5226  //        })
  5227  //
  5228  func (c *Route53Resolver) ListResolverRulesPages(input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool) error {
  5229  	return c.ListResolverRulesPagesWithContext(aws.BackgroundContext(), input, fn)
  5230  }
  5231  
  5232  // ListResolverRulesPagesWithContext same as ListResolverRulesPages except
  5233  // it takes a Context and allows setting request options on the pages.
  5234  //
  5235  // The context must be non-nil and will be used for request cancellation. If
  5236  // the context is nil a panic will occur. In the future the SDK may create
  5237  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5238  // for more information on using Contexts.
  5239  func (c *Route53Resolver) ListResolverRulesPagesWithContext(ctx aws.Context, input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool, opts ...request.Option) error {
  5240  	p := request.Pagination{
  5241  		NewRequest: func() (*request.Request, error) {
  5242  			var inCpy *ListResolverRulesInput
  5243  			if input != nil {
  5244  				tmp := *input
  5245  				inCpy = &tmp
  5246  			}
  5247  			req, _ := c.ListResolverRulesRequest(inCpy)
  5248  			req.SetContext(ctx)
  5249  			req.ApplyOptions(opts...)
  5250  			return req, nil
  5251  		},
  5252  	}
  5253  
  5254  	for p.Next() {
  5255  		if !fn(p.Page().(*ListResolverRulesOutput), !p.HasNextPage()) {
  5256  			break
  5257  		}
  5258  	}
  5259  
  5260  	return p.Err()
  5261  }
  5262  
  5263  const opListTagsForResource = "ListTagsForResource"
  5264  
  5265  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  5266  // client's request for the ListTagsForResource operation. The "output" return
  5267  // value will be populated with the request's response once the request completes
  5268  // successfully.
  5269  //
  5270  // Use "Send" method on the returned Request to send the API call to the service.
  5271  // the "output" return value is not valid until after Send returns without error.
  5272  //
  5273  // See ListTagsForResource for more information on using the ListTagsForResource
  5274  // API call, and error handling.
  5275  //
  5276  // This method is useful when you want to inject custom logic or configuration
  5277  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5278  //
  5279  //
  5280  //    // Example sending a request using the ListTagsForResourceRequest method.
  5281  //    req, resp := client.ListTagsForResourceRequest(params)
  5282  //
  5283  //    err := req.Send()
  5284  //    if err == nil { // resp is now filled
  5285  //        fmt.Println(resp)
  5286  //    }
  5287  //
  5288  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
  5289  func (c *Route53Resolver) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  5290  	op := &request.Operation{
  5291  		Name:       opListTagsForResource,
  5292  		HTTPMethod: "POST",
  5293  		HTTPPath:   "/",
  5294  		Paginator: &request.Paginator{
  5295  			InputTokens:     []string{"NextToken"},
  5296  			OutputTokens:    []string{"NextToken"},
  5297  			LimitToken:      "MaxResults",
  5298  			TruncationToken: "",
  5299  		},
  5300  	}
  5301  
  5302  	if input == nil {
  5303  		input = &ListTagsForResourceInput{}
  5304  	}
  5305  
  5306  	output = &ListTagsForResourceOutput{}
  5307  	req = c.newRequest(op, input, output)
  5308  	return
  5309  }
  5310  
  5311  // ListTagsForResource API operation for Amazon Route 53 Resolver.
  5312  //
  5313  // Lists the tags that you associated with the specified resource.
  5314  //
  5315  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5316  // with awserr.Error's Code and Message methods to get detailed information about
  5317  // the error.
  5318  //
  5319  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5320  // API operation ListTagsForResource for usage and error information.
  5321  //
  5322  // Returned Error Types:
  5323  //   * ResourceNotFoundException
  5324  //   The specified resource doesn't exist.
  5325  //
  5326  //   * InvalidParameterException
  5327  //   One or more parameters in this request are not valid.
  5328  //
  5329  //   * InvalidNextTokenException
  5330  //   The value that you specified for NextToken in a List request isn't valid.
  5331  //
  5332  //   * InvalidRequestException
  5333  //   The request is invalid.
  5334  //
  5335  //   * InternalServiceErrorException
  5336  //   We encountered an unknown error. Try again in a few minutes.
  5337  //
  5338  //   * ThrottlingException
  5339  //   The request was throttled. Try again in a few minutes.
  5340  //
  5341  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
  5342  func (c *Route53Resolver) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  5343  	req, out := c.ListTagsForResourceRequest(input)
  5344  	return out, req.Send()
  5345  }
  5346  
  5347  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  5348  // the ability to pass a context and additional request options.
  5349  //
  5350  // See ListTagsForResource for details on how to use this API operation.
  5351  //
  5352  // The context must be non-nil and will be used for request cancellation. If
  5353  // the context is nil a panic will occur. In the future the SDK may create
  5354  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5355  // for more information on using Contexts.
  5356  func (c *Route53Resolver) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  5357  	req, out := c.ListTagsForResourceRequest(input)
  5358  	req.SetContext(ctx)
  5359  	req.ApplyOptions(opts...)
  5360  	return out, req.Send()
  5361  }
  5362  
  5363  // ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
  5364  // calling the "fn" function with the response data for each page. To stop
  5365  // iterating, return false from the fn function.
  5366  //
  5367  // See ListTagsForResource method for more information on how to use this operation.
  5368  //
  5369  // Note: This operation can generate multiple requests to a service.
  5370  //
  5371  //    // Example iterating over at most 3 pages of a ListTagsForResource operation.
  5372  //    pageNum := 0
  5373  //    err := client.ListTagsForResourcePages(params,
  5374  //        func(page *route53resolver.ListTagsForResourceOutput, lastPage bool) bool {
  5375  //            pageNum++
  5376  //            fmt.Println(page)
  5377  //            return pageNum <= 3
  5378  //        })
  5379  //
  5380  func (c *Route53Resolver) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
  5381  	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
  5382  }
  5383  
  5384  // ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
  5385  // it takes a Context and allows setting request options on the pages.
  5386  //
  5387  // The context must be non-nil and will be used for request cancellation. If
  5388  // the context is nil a panic will occur. In the future the SDK may create
  5389  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5390  // for more information on using Contexts.
  5391  func (c *Route53Resolver) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
  5392  	p := request.Pagination{
  5393  		NewRequest: func() (*request.Request, error) {
  5394  			var inCpy *ListTagsForResourceInput
  5395  			if input != nil {
  5396  				tmp := *input
  5397  				inCpy = &tmp
  5398  			}
  5399  			req, _ := c.ListTagsForResourceRequest(inCpy)
  5400  			req.SetContext(ctx)
  5401  			req.ApplyOptions(opts...)
  5402  			return req, nil
  5403  		},
  5404  	}
  5405  
  5406  	for p.Next() {
  5407  		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
  5408  			break
  5409  		}
  5410  	}
  5411  
  5412  	return p.Err()
  5413  }
  5414  
  5415  const opPutFirewallRuleGroupPolicy = "PutFirewallRuleGroupPolicy"
  5416  
  5417  // PutFirewallRuleGroupPolicyRequest generates a "aws/request.Request" representing the
  5418  // client's request for the PutFirewallRuleGroupPolicy operation. The "output" return
  5419  // value will be populated with the request's response once the request completes
  5420  // successfully.
  5421  //
  5422  // Use "Send" method on the returned Request to send the API call to the service.
  5423  // the "output" return value is not valid until after Send returns without error.
  5424  //
  5425  // See PutFirewallRuleGroupPolicy for more information on using the PutFirewallRuleGroupPolicy
  5426  // API call, and error handling.
  5427  //
  5428  // This method is useful when you want to inject custom logic or configuration
  5429  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5430  //
  5431  //
  5432  //    // Example sending a request using the PutFirewallRuleGroupPolicyRequest method.
  5433  //    req, resp := client.PutFirewallRuleGroupPolicyRequest(params)
  5434  //
  5435  //    err := req.Send()
  5436  //    if err == nil { // resp is now filled
  5437  //        fmt.Println(resp)
  5438  //    }
  5439  //
  5440  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutFirewallRuleGroupPolicy
  5441  func (c *Route53Resolver) PutFirewallRuleGroupPolicyRequest(input *PutFirewallRuleGroupPolicyInput) (req *request.Request, output *PutFirewallRuleGroupPolicyOutput) {
  5442  	op := &request.Operation{
  5443  		Name:       opPutFirewallRuleGroupPolicy,
  5444  		HTTPMethod: "POST",
  5445  		HTTPPath:   "/",
  5446  	}
  5447  
  5448  	if input == nil {
  5449  		input = &PutFirewallRuleGroupPolicyInput{}
  5450  	}
  5451  
  5452  	output = &PutFirewallRuleGroupPolicyOutput{}
  5453  	req = c.newRequest(op, input, output)
  5454  	return
  5455  }
  5456  
  5457  // PutFirewallRuleGroupPolicy API operation for Amazon Route 53 Resolver.
  5458  //
  5459  // Attaches an Identity and Access Management (Amazon Web Services IAM) policy
  5460  // for sharing the rule group. You can use the policy to share the rule group
  5461  // using Resource Access Manager (RAM).
  5462  //
  5463  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5464  // with awserr.Error's Code and Message methods to get detailed information about
  5465  // the error.
  5466  //
  5467  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5468  // API operation PutFirewallRuleGroupPolicy for usage and error information.
  5469  //
  5470  // Returned Error Types:
  5471  //   * ValidationException
  5472  //
  5473  //   * ResourceNotFoundException
  5474  //   The specified resource doesn't exist.
  5475  //
  5476  //   * AccessDeniedException
  5477  //   The current account doesn't have the IAM permissions required to perform
  5478  //   the specified Resolver operation.
  5479  //
  5480  //   * InternalServiceErrorException
  5481  //   We encountered an unknown error. Try again in a few minutes.
  5482  //
  5483  //   * ThrottlingException
  5484  //   The request was throttled. Try again in a few minutes.
  5485  //
  5486  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutFirewallRuleGroupPolicy
  5487  func (c *Route53Resolver) PutFirewallRuleGroupPolicy(input *PutFirewallRuleGroupPolicyInput) (*PutFirewallRuleGroupPolicyOutput, error) {
  5488  	req, out := c.PutFirewallRuleGroupPolicyRequest(input)
  5489  	return out, req.Send()
  5490  }
  5491  
  5492  // PutFirewallRuleGroupPolicyWithContext is the same as PutFirewallRuleGroupPolicy with the addition of
  5493  // the ability to pass a context and additional request options.
  5494  //
  5495  // See PutFirewallRuleGroupPolicy for details on how to use this API operation.
  5496  //
  5497  // The context must be non-nil and will be used for request cancellation. If
  5498  // the context is nil a panic will occur. In the future the SDK may create
  5499  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5500  // for more information on using Contexts.
  5501  func (c *Route53Resolver) PutFirewallRuleGroupPolicyWithContext(ctx aws.Context, input *PutFirewallRuleGroupPolicyInput, opts ...request.Option) (*PutFirewallRuleGroupPolicyOutput, error) {
  5502  	req, out := c.PutFirewallRuleGroupPolicyRequest(input)
  5503  	req.SetContext(ctx)
  5504  	req.ApplyOptions(opts...)
  5505  	return out, req.Send()
  5506  }
  5507  
  5508  const opPutResolverQueryLogConfigPolicy = "PutResolverQueryLogConfigPolicy"
  5509  
  5510  // PutResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
  5511  // client's request for the PutResolverQueryLogConfigPolicy operation. The "output" return
  5512  // value will be populated with the request's response once the request completes
  5513  // successfully.
  5514  //
  5515  // Use "Send" method on the returned Request to send the API call to the service.
  5516  // the "output" return value is not valid until after Send returns without error.
  5517  //
  5518  // See PutResolverQueryLogConfigPolicy for more information on using the PutResolverQueryLogConfigPolicy
  5519  // API call, and error handling.
  5520  //
  5521  // This method is useful when you want to inject custom logic or configuration
  5522  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5523  //
  5524  //
  5525  //    // Example sending a request using the PutResolverQueryLogConfigPolicyRequest method.
  5526  //    req, resp := client.PutResolverQueryLogConfigPolicyRequest(params)
  5527  //
  5528  //    err := req.Send()
  5529  //    if err == nil { // resp is now filled
  5530  //        fmt.Println(resp)
  5531  //    }
  5532  //
  5533  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
  5534  func (c *Route53Resolver) PutResolverQueryLogConfigPolicyRequest(input *PutResolverQueryLogConfigPolicyInput) (req *request.Request, output *PutResolverQueryLogConfigPolicyOutput) {
  5535  	op := &request.Operation{
  5536  		Name:       opPutResolverQueryLogConfigPolicy,
  5537  		HTTPMethod: "POST",
  5538  		HTTPPath:   "/",
  5539  	}
  5540  
  5541  	if input == nil {
  5542  		input = &PutResolverQueryLogConfigPolicyInput{}
  5543  	}
  5544  
  5545  	output = &PutResolverQueryLogConfigPolicyOutput{}
  5546  	req = c.newRequest(op, input, output)
  5547  	return
  5548  }
  5549  
  5550  // PutResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
  5551  //
  5552  // Specifies an Amazon Web Services account that you want to share a query logging
  5553  // configuration with, the query logging configuration that you want to share,
  5554  // and the operations that you want the account to be able to perform on the
  5555  // configuration.
  5556  //
  5557  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5558  // with awserr.Error's Code and Message methods to get detailed information about
  5559  // the error.
  5560  //
  5561  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5562  // API operation PutResolverQueryLogConfigPolicy for usage and error information.
  5563  //
  5564  // Returned Error Types:
  5565  //   * InvalidPolicyDocument
  5566  //   The specified Resolver rule policy is invalid.
  5567  //
  5568  //   * InvalidParameterException
  5569  //   One or more parameters in this request are not valid.
  5570  //
  5571  //   * InvalidRequestException
  5572  //   The request is invalid.
  5573  //
  5574  //   * UnknownResourceException
  5575  //   The specified resource doesn't exist.
  5576  //
  5577  //   * InternalServiceErrorException
  5578  //   We encountered an unknown error. Try again in a few minutes.
  5579  //
  5580  //   * AccessDeniedException
  5581  //   The current account doesn't have the IAM permissions required to perform
  5582  //   the specified Resolver operation.
  5583  //
  5584  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
  5585  func (c *Route53Resolver) PutResolverQueryLogConfigPolicy(input *PutResolverQueryLogConfigPolicyInput) (*PutResolverQueryLogConfigPolicyOutput, error) {
  5586  	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
  5587  	return out, req.Send()
  5588  }
  5589  
  5590  // PutResolverQueryLogConfigPolicyWithContext is the same as PutResolverQueryLogConfigPolicy with the addition of
  5591  // the ability to pass a context and additional request options.
  5592  //
  5593  // See PutResolverQueryLogConfigPolicy for details on how to use this API operation.
  5594  //
  5595  // The context must be non-nil and will be used for request cancellation. If
  5596  // the context is nil a panic will occur. In the future the SDK may create
  5597  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5598  // for more information on using Contexts.
  5599  func (c *Route53Resolver) PutResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *PutResolverQueryLogConfigPolicyInput, opts ...request.Option) (*PutResolverQueryLogConfigPolicyOutput, error) {
  5600  	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
  5601  	req.SetContext(ctx)
  5602  	req.ApplyOptions(opts...)
  5603  	return out, req.Send()
  5604  }
  5605  
  5606  const opPutResolverRulePolicy = "PutResolverRulePolicy"
  5607  
  5608  // PutResolverRulePolicyRequest generates a "aws/request.Request" representing the
  5609  // client's request for the PutResolverRulePolicy operation. The "output" return
  5610  // value will be populated with the request's response once the request completes
  5611  // successfully.
  5612  //
  5613  // Use "Send" method on the returned Request to send the API call to the service.
  5614  // the "output" return value is not valid until after Send returns without error.
  5615  //
  5616  // See PutResolverRulePolicy for more information on using the PutResolverRulePolicy
  5617  // API call, and error handling.
  5618  //
  5619  // This method is useful when you want to inject custom logic or configuration
  5620  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5621  //
  5622  //
  5623  //    // Example sending a request using the PutResolverRulePolicyRequest method.
  5624  //    req, resp := client.PutResolverRulePolicyRequest(params)
  5625  //
  5626  //    err := req.Send()
  5627  //    if err == nil { // resp is now filled
  5628  //        fmt.Println(resp)
  5629  //    }
  5630  //
  5631  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
  5632  func (c *Route53Resolver) PutResolverRulePolicyRequest(input *PutResolverRulePolicyInput) (req *request.Request, output *PutResolverRulePolicyOutput) {
  5633  	op := &request.Operation{
  5634  		Name:       opPutResolverRulePolicy,
  5635  		HTTPMethod: "POST",
  5636  		HTTPPath:   "/",
  5637  	}
  5638  
  5639  	if input == nil {
  5640  		input = &PutResolverRulePolicyInput{}
  5641  	}
  5642  
  5643  	output = &PutResolverRulePolicyOutput{}
  5644  	req = c.newRequest(op, input, output)
  5645  	return
  5646  }
  5647  
  5648  // PutResolverRulePolicy API operation for Amazon Route 53 Resolver.
  5649  //
  5650  // Specifies an Amazon Web Services rule that you want to share with another
  5651  // account, the account that you want to share the rule with, and the operations
  5652  // that you want the account to be able to perform on the rule.
  5653  //
  5654  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5655  // with awserr.Error's Code and Message methods to get detailed information about
  5656  // the error.
  5657  //
  5658  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5659  // API operation PutResolverRulePolicy for usage and error information.
  5660  //
  5661  // Returned Error Types:
  5662  //   * InvalidPolicyDocument
  5663  //   The specified Resolver rule policy is invalid.
  5664  //
  5665  //   * InvalidParameterException
  5666  //   One or more parameters in this request are not valid.
  5667  //
  5668  //   * UnknownResourceException
  5669  //   The specified resource doesn't exist.
  5670  //
  5671  //   * InternalServiceErrorException
  5672  //   We encountered an unknown error. Try again in a few minutes.
  5673  //
  5674  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
  5675  func (c *Route53Resolver) PutResolverRulePolicy(input *PutResolverRulePolicyInput) (*PutResolverRulePolicyOutput, error) {
  5676  	req, out := c.PutResolverRulePolicyRequest(input)
  5677  	return out, req.Send()
  5678  }
  5679  
  5680  // PutResolverRulePolicyWithContext is the same as PutResolverRulePolicy with the addition of
  5681  // the ability to pass a context and additional request options.
  5682  //
  5683  // See PutResolverRulePolicy for details on how to use this API operation.
  5684  //
  5685  // The context must be non-nil and will be used for request cancellation. If
  5686  // the context is nil a panic will occur. In the future the SDK may create
  5687  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5688  // for more information on using Contexts.
  5689  func (c *Route53Resolver) PutResolverRulePolicyWithContext(ctx aws.Context, input *PutResolverRulePolicyInput, opts ...request.Option) (*PutResolverRulePolicyOutput, error) {
  5690  	req, out := c.PutResolverRulePolicyRequest(input)
  5691  	req.SetContext(ctx)
  5692  	req.ApplyOptions(opts...)
  5693  	return out, req.Send()
  5694  }
  5695  
  5696  const opTagResource = "TagResource"
  5697  
  5698  // TagResourceRequest generates a "aws/request.Request" representing the
  5699  // client's request for the TagResource operation. The "output" return
  5700  // value will be populated with the request's response once the request completes
  5701  // successfully.
  5702  //
  5703  // Use "Send" method on the returned Request to send the API call to the service.
  5704  // the "output" return value is not valid until after Send returns without error.
  5705  //
  5706  // See TagResource for more information on using the TagResource
  5707  // API call, and error handling.
  5708  //
  5709  // This method is useful when you want to inject custom logic or configuration
  5710  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5711  //
  5712  //
  5713  //    // Example sending a request using the TagResourceRequest method.
  5714  //    req, resp := client.TagResourceRequest(params)
  5715  //
  5716  //    err := req.Send()
  5717  //    if err == nil { // resp is now filled
  5718  //        fmt.Println(resp)
  5719  //    }
  5720  //
  5721  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
  5722  func (c *Route53Resolver) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  5723  	op := &request.Operation{
  5724  		Name:       opTagResource,
  5725  		HTTPMethod: "POST",
  5726  		HTTPPath:   "/",
  5727  	}
  5728  
  5729  	if input == nil {
  5730  		input = &TagResourceInput{}
  5731  	}
  5732  
  5733  	output = &TagResourceOutput{}
  5734  	req = c.newRequest(op, input, output)
  5735  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5736  	return
  5737  }
  5738  
  5739  // TagResource API operation for Amazon Route 53 Resolver.
  5740  //
  5741  // Adds one or more tags to a specified resource.
  5742  //
  5743  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5744  // with awserr.Error's Code and Message methods to get detailed information about
  5745  // the error.
  5746  //
  5747  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5748  // API operation TagResource for usage and error information.
  5749  //
  5750  // Returned Error Types:
  5751  //   * LimitExceededException
  5752  //   The request caused one or more limits to be exceeded.
  5753  //
  5754  //   * ResourceNotFoundException
  5755  //   The specified resource doesn't exist.
  5756  //
  5757  //   * InvalidParameterException
  5758  //   One or more parameters in this request are not valid.
  5759  //
  5760  //   * InvalidRequestException
  5761  //   The request is invalid.
  5762  //
  5763  //   * InvalidTagException
  5764  //   The specified tag is invalid.
  5765  //
  5766  //   * InternalServiceErrorException
  5767  //   We encountered an unknown error. Try again in a few minutes.
  5768  //
  5769  //   * ThrottlingException
  5770  //   The request was throttled. Try again in a few minutes.
  5771  //
  5772  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
  5773  func (c *Route53Resolver) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  5774  	req, out := c.TagResourceRequest(input)
  5775  	return out, req.Send()
  5776  }
  5777  
  5778  // TagResourceWithContext is the same as TagResource with the addition of
  5779  // the ability to pass a context and additional request options.
  5780  //
  5781  // See TagResource for details on how to use this API operation.
  5782  //
  5783  // The context must be non-nil and will be used for request cancellation. If
  5784  // the context is nil a panic will occur. In the future the SDK may create
  5785  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5786  // for more information on using Contexts.
  5787  func (c *Route53Resolver) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  5788  	req, out := c.TagResourceRequest(input)
  5789  	req.SetContext(ctx)
  5790  	req.ApplyOptions(opts...)
  5791  	return out, req.Send()
  5792  }
  5793  
  5794  const opUntagResource = "UntagResource"
  5795  
  5796  // UntagResourceRequest generates a "aws/request.Request" representing the
  5797  // client's request for the UntagResource operation. The "output" return
  5798  // value will be populated with the request's response once the request completes
  5799  // successfully.
  5800  //
  5801  // Use "Send" method on the returned Request to send the API call to the service.
  5802  // the "output" return value is not valid until after Send returns without error.
  5803  //
  5804  // See UntagResource for more information on using the UntagResource
  5805  // API call, and error handling.
  5806  //
  5807  // This method is useful when you want to inject custom logic or configuration
  5808  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5809  //
  5810  //
  5811  //    // Example sending a request using the UntagResourceRequest method.
  5812  //    req, resp := client.UntagResourceRequest(params)
  5813  //
  5814  //    err := req.Send()
  5815  //    if err == nil { // resp is now filled
  5816  //        fmt.Println(resp)
  5817  //    }
  5818  //
  5819  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
  5820  func (c *Route53Resolver) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  5821  	op := &request.Operation{
  5822  		Name:       opUntagResource,
  5823  		HTTPMethod: "POST",
  5824  		HTTPPath:   "/",
  5825  	}
  5826  
  5827  	if input == nil {
  5828  		input = &UntagResourceInput{}
  5829  	}
  5830  
  5831  	output = &UntagResourceOutput{}
  5832  	req = c.newRequest(op, input, output)
  5833  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5834  	return
  5835  }
  5836  
  5837  // UntagResource API operation for Amazon Route 53 Resolver.
  5838  //
  5839  // Removes one or more tags from a specified resource.
  5840  //
  5841  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5842  // with awserr.Error's Code and Message methods to get detailed information about
  5843  // the error.
  5844  //
  5845  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5846  // API operation UntagResource for usage and error information.
  5847  //
  5848  // Returned Error Types:
  5849  //   * ResourceNotFoundException
  5850  //   The specified resource doesn't exist.
  5851  //
  5852  //   * InvalidParameterException
  5853  //   One or more parameters in this request are not valid.
  5854  //
  5855  //   * InvalidRequestException
  5856  //   The request is invalid.
  5857  //
  5858  //   * InternalServiceErrorException
  5859  //   We encountered an unknown error. Try again in a few minutes.
  5860  //
  5861  //   * ThrottlingException
  5862  //   The request was throttled. Try again in a few minutes.
  5863  //
  5864  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
  5865  func (c *Route53Resolver) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  5866  	req, out := c.UntagResourceRequest(input)
  5867  	return out, req.Send()
  5868  }
  5869  
  5870  // UntagResourceWithContext is the same as UntagResource with the addition of
  5871  // the ability to pass a context and additional request options.
  5872  //
  5873  // See UntagResource for details on how to use this API operation.
  5874  //
  5875  // The context must be non-nil and will be used for request cancellation. If
  5876  // the context is nil a panic will occur. In the future the SDK may create
  5877  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5878  // for more information on using Contexts.
  5879  func (c *Route53Resolver) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  5880  	req, out := c.UntagResourceRequest(input)
  5881  	req.SetContext(ctx)
  5882  	req.ApplyOptions(opts...)
  5883  	return out, req.Send()
  5884  }
  5885  
  5886  const opUpdateFirewallConfig = "UpdateFirewallConfig"
  5887  
  5888  // UpdateFirewallConfigRequest generates a "aws/request.Request" representing the
  5889  // client's request for the UpdateFirewallConfig operation. The "output" return
  5890  // value will be populated with the request's response once the request completes
  5891  // successfully.
  5892  //
  5893  // Use "Send" method on the returned Request to send the API call to the service.
  5894  // the "output" return value is not valid until after Send returns without error.
  5895  //
  5896  // See UpdateFirewallConfig for more information on using the UpdateFirewallConfig
  5897  // API call, and error handling.
  5898  //
  5899  // This method is useful when you want to inject custom logic or configuration
  5900  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5901  //
  5902  //
  5903  //    // Example sending a request using the UpdateFirewallConfigRequest method.
  5904  //    req, resp := client.UpdateFirewallConfigRequest(params)
  5905  //
  5906  //    err := req.Send()
  5907  //    if err == nil { // resp is now filled
  5908  //        fmt.Println(resp)
  5909  //    }
  5910  //
  5911  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallConfig
  5912  func (c *Route53Resolver) UpdateFirewallConfigRequest(input *UpdateFirewallConfigInput) (req *request.Request, output *UpdateFirewallConfigOutput) {
  5913  	op := &request.Operation{
  5914  		Name:       opUpdateFirewallConfig,
  5915  		HTTPMethod: "POST",
  5916  		HTTPPath:   "/",
  5917  	}
  5918  
  5919  	if input == nil {
  5920  		input = &UpdateFirewallConfigInput{}
  5921  	}
  5922  
  5923  	output = &UpdateFirewallConfigOutput{}
  5924  	req = c.newRequest(op, input, output)
  5925  	return
  5926  }
  5927  
  5928  // UpdateFirewallConfig API operation for Amazon Route 53 Resolver.
  5929  //
  5930  // Updates the configuration of the firewall behavior provided by DNS Firewall
  5931  // for a single VPC from Amazon Virtual Private Cloud (Amazon VPC).
  5932  //
  5933  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5934  // with awserr.Error's Code and Message methods to get detailed information about
  5935  // the error.
  5936  //
  5937  // See the AWS API reference guide for Amazon Route 53 Resolver's
  5938  // API operation UpdateFirewallConfig for usage and error information.
  5939  //
  5940  // Returned Error Types:
  5941  //   * ValidationException
  5942  //
  5943  //   * ResourceNotFoundException
  5944  //   The specified resource doesn't exist.
  5945  //
  5946  //   * AccessDeniedException
  5947  //   The current account doesn't have the IAM permissions required to perform
  5948  //   the specified Resolver operation.
  5949  //
  5950  //   * InternalServiceErrorException
  5951  //   We encountered an unknown error. Try again in a few minutes.
  5952  //
  5953  //   * ThrottlingException
  5954  //   The request was throttled. Try again in a few minutes.
  5955  //
  5956  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallConfig
  5957  func (c *Route53Resolver) UpdateFirewallConfig(input *UpdateFirewallConfigInput) (*UpdateFirewallConfigOutput, error) {
  5958  	req, out := c.UpdateFirewallConfigRequest(input)
  5959  	return out, req.Send()
  5960  }
  5961  
  5962  // UpdateFirewallConfigWithContext is the same as UpdateFirewallConfig with the addition of
  5963  // the ability to pass a context and additional request options.
  5964  //
  5965  // See UpdateFirewallConfig for details on how to use this API operation.
  5966  //
  5967  // The context must be non-nil and will be used for request cancellation. If
  5968  // the context is nil a panic will occur. In the future the SDK may create
  5969  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5970  // for more information on using Contexts.
  5971  func (c *Route53Resolver) UpdateFirewallConfigWithContext(ctx aws.Context, input *UpdateFirewallConfigInput, opts ...request.Option) (*UpdateFirewallConfigOutput, error) {
  5972  	req, out := c.UpdateFirewallConfigRequest(input)
  5973  	req.SetContext(ctx)
  5974  	req.ApplyOptions(opts...)
  5975  	return out, req.Send()
  5976  }
  5977  
  5978  const opUpdateFirewallDomains = "UpdateFirewallDomains"
  5979  
  5980  // UpdateFirewallDomainsRequest generates a "aws/request.Request" representing the
  5981  // client's request for the UpdateFirewallDomains operation. The "output" return
  5982  // value will be populated with the request's response once the request completes
  5983  // successfully.
  5984  //
  5985  // Use "Send" method on the returned Request to send the API call to the service.
  5986  // the "output" return value is not valid until after Send returns without error.
  5987  //
  5988  // See UpdateFirewallDomains for more information on using the UpdateFirewallDomains
  5989  // API call, and error handling.
  5990  //
  5991  // This method is useful when you want to inject custom logic or configuration
  5992  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5993  //
  5994  //
  5995  //    // Example sending a request using the UpdateFirewallDomainsRequest method.
  5996  //    req, resp := client.UpdateFirewallDomainsRequest(params)
  5997  //
  5998  //    err := req.Send()
  5999  //    if err == nil { // resp is now filled
  6000  //        fmt.Println(resp)
  6001  //    }
  6002  //
  6003  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallDomains
  6004  func (c *Route53Resolver) UpdateFirewallDomainsRequest(input *UpdateFirewallDomainsInput) (req *request.Request, output *UpdateFirewallDomainsOutput) {
  6005  	op := &request.Operation{
  6006  		Name:       opUpdateFirewallDomains,
  6007  		HTTPMethod: "POST",
  6008  		HTTPPath:   "/",
  6009  	}
  6010  
  6011  	if input == nil {
  6012  		input = &UpdateFirewallDomainsInput{}
  6013  	}
  6014  
  6015  	output = &UpdateFirewallDomainsOutput{}
  6016  	req = c.newRequest(op, input, output)
  6017  	return
  6018  }
  6019  
  6020  // UpdateFirewallDomains API operation for Amazon Route 53 Resolver.
  6021  //
  6022  // Updates the firewall domain list from an array of domain specifications.
  6023  //
  6024  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6025  // with awserr.Error's Code and Message methods to get detailed information about
  6026  // the error.
  6027  //
  6028  // See the AWS API reference guide for Amazon Route 53 Resolver's
  6029  // API operation UpdateFirewallDomains for usage and error information.
  6030  //
  6031  // Returned Error Types:
  6032  //   * ValidationException
  6033  //
  6034  //   * AccessDeniedException
  6035  //   The current account doesn't have the IAM permissions required to perform
  6036  //   the specified Resolver operation.
  6037  //
  6038  //   * ResourceNotFoundException
  6039  //   The specified resource doesn't exist.
  6040  //
  6041  //   * LimitExceededException
  6042  //   The request caused one or more limits to be exceeded.
  6043  //
  6044  //   * ConflictException
  6045  //
  6046  //   * InternalServiceErrorException
  6047  //   We encountered an unknown error. Try again in a few minutes.
  6048  //
  6049  //   * ThrottlingException
  6050  //   The request was throttled. Try again in a few minutes.
  6051  //
  6052  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallDomains
  6053  func (c *Route53Resolver) UpdateFirewallDomains(input *UpdateFirewallDomainsInput) (*UpdateFirewallDomainsOutput, error) {
  6054  	req, out := c.UpdateFirewallDomainsRequest(input)
  6055  	return out, req.Send()
  6056  }
  6057  
  6058  // UpdateFirewallDomainsWithContext is the same as UpdateFirewallDomains with the addition of
  6059  // the ability to pass a context and additional request options.
  6060  //
  6061  // See UpdateFirewallDomains for details on how to use this API operation.
  6062  //
  6063  // The context must be non-nil and will be used for request cancellation. If
  6064  // the context is nil a panic will occur. In the future the SDK may create
  6065  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6066  // for more information on using Contexts.
  6067  func (c *Route53Resolver) UpdateFirewallDomainsWithContext(ctx aws.Context, input *UpdateFirewallDomainsInput, opts ...request.Option) (*UpdateFirewallDomainsOutput, error) {
  6068  	req, out := c.UpdateFirewallDomainsRequest(input)
  6069  	req.SetContext(ctx)
  6070  	req.ApplyOptions(opts...)
  6071  	return out, req.Send()
  6072  }
  6073  
  6074  const opUpdateFirewallRule = "UpdateFirewallRule"
  6075  
  6076  // UpdateFirewallRuleRequest generates a "aws/request.Request" representing the
  6077  // client's request for the UpdateFirewallRule operation. The "output" return
  6078  // value will be populated with the request's response once the request completes
  6079  // successfully.
  6080  //
  6081  // Use "Send" method on the returned Request to send the API call to the service.
  6082  // the "output" return value is not valid until after Send returns without error.
  6083  //
  6084  // See UpdateFirewallRule for more information on using the UpdateFirewallRule
  6085  // API call, and error handling.
  6086  //
  6087  // This method is useful when you want to inject custom logic or configuration
  6088  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6089  //
  6090  //
  6091  //    // Example sending a request using the UpdateFirewallRuleRequest method.
  6092  //    req, resp := client.UpdateFirewallRuleRequest(params)
  6093  //
  6094  //    err := req.Send()
  6095  //    if err == nil { // resp is now filled
  6096  //        fmt.Println(resp)
  6097  //    }
  6098  //
  6099  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRule
  6100  func (c *Route53Resolver) UpdateFirewallRuleRequest(input *UpdateFirewallRuleInput) (req *request.Request, output *UpdateFirewallRuleOutput) {
  6101  	op := &request.Operation{
  6102  		Name:       opUpdateFirewallRule,
  6103  		HTTPMethod: "POST",
  6104  		HTTPPath:   "/",
  6105  	}
  6106  
  6107  	if input == nil {
  6108  		input = &UpdateFirewallRuleInput{}
  6109  	}
  6110  
  6111  	output = &UpdateFirewallRuleOutput{}
  6112  	req = c.newRequest(op, input, output)
  6113  	return
  6114  }
  6115  
  6116  // UpdateFirewallRule API operation for Amazon Route 53 Resolver.
  6117  //
  6118  // Updates the specified firewall rule.
  6119  //
  6120  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6121  // with awserr.Error's Code and Message methods to get detailed information about
  6122  // the error.
  6123  //
  6124  // See the AWS API reference guide for Amazon Route 53 Resolver's
  6125  // API operation UpdateFirewallRule for usage and error information.
  6126  //
  6127  // Returned Error Types:
  6128  //   * ResourceNotFoundException
  6129  //   The specified resource doesn't exist.
  6130  //
  6131  //   * ValidationException
  6132  //
  6133  //   * ConflictException
  6134  //
  6135  //   * AccessDeniedException
  6136  //   The current account doesn't have the IAM permissions required to perform
  6137  //   the specified Resolver operation.
  6138  //
  6139  //   * InternalServiceErrorException
  6140  //   We encountered an unknown error. Try again in a few minutes.
  6141  //
  6142  //   * ThrottlingException
  6143  //   The request was throttled. Try again in a few minutes.
  6144  //
  6145  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRule
  6146  func (c *Route53Resolver) UpdateFirewallRule(input *UpdateFirewallRuleInput) (*UpdateFirewallRuleOutput, error) {
  6147  	req, out := c.UpdateFirewallRuleRequest(input)
  6148  	return out, req.Send()
  6149  }
  6150  
  6151  // UpdateFirewallRuleWithContext is the same as UpdateFirewallRule with the addition of
  6152  // the ability to pass a context and additional request options.
  6153  //
  6154  // See UpdateFirewallRule for details on how to use this API operation.
  6155  //
  6156  // The context must be non-nil and will be used for request cancellation. If
  6157  // the context is nil a panic will occur. In the future the SDK may create
  6158  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6159  // for more information on using Contexts.
  6160  func (c *Route53Resolver) UpdateFirewallRuleWithContext(ctx aws.Context, input *UpdateFirewallRuleInput, opts ...request.Option) (*UpdateFirewallRuleOutput, error) {
  6161  	req, out := c.UpdateFirewallRuleRequest(input)
  6162  	req.SetContext(ctx)
  6163  	req.ApplyOptions(opts...)
  6164  	return out, req.Send()
  6165  }
  6166  
  6167  const opUpdateFirewallRuleGroupAssociation = "UpdateFirewallRuleGroupAssociation"
  6168  
  6169  // UpdateFirewallRuleGroupAssociationRequest generates a "aws/request.Request" representing the
  6170  // client's request for the UpdateFirewallRuleGroupAssociation operation. The "output" return
  6171  // value will be populated with the request's response once the request completes
  6172  // successfully.
  6173  //
  6174  // Use "Send" method on the returned Request to send the API call to the service.
  6175  // the "output" return value is not valid until after Send returns without error.
  6176  //
  6177  // See UpdateFirewallRuleGroupAssociation for more information on using the UpdateFirewallRuleGroupAssociation
  6178  // API call, and error handling.
  6179  //
  6180  // This method is useful when you want to inject custom logic or configuration
  6181  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6182  //
  6183  //
  6184  //    // Example sending a request using the UpdateFirewallRuleGroupAssociationRequest method.
  6185  //    req, resp := client.UpdateFirewallRuleGroupAssociationRequest(params)
  6186  //
  6187  //    err := req.Send()
  6188  //    if err == nil { // resp is now filled
  6189  //        fmt.Println(resp)
  6190  //    }
  6191  //
  6192  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleGroupAssociation
  6193  func (c *Route53Resolver) UpdateFirewallRuleGroupAssociationRequest(input *UpdateFirewallRuleGroupAssociationInput) (req *request.Request, output *UpdateFirewallRuleGroupAssociationOutput) {
  6194  	op := &request.Operation{
  6195  		Name:       opUpdateFirewallRuleGroupAssociation,
  6196  		HTTPMethod: "POST",
  6197  		HTTPPath:   "/",
  6198  	}
  6199  
  6200  	if input == nil {
  6201  		input = &UpdateFirewallRuleGroupAssociationInput{}
  6202  	}
  6203  
  6204  	output = &UpdateFirewallRuleGroupAssociationOutput{}
  6205  	req = c.newRequest(op, input, output)
  6206  	return
  6207  }
  6208  
  6209  // UpdateFirewallRuleGroupAssociation API operation for Amazon Route 53 Resolver.
  6210  //
  6211  // Changes the association of a FirewallRuleGroup with a VPC. The association
  6212  // enables DNS filtering for the VPC.
  6213  //
  6214  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6215  // with awserr.Error's Code and Message methods to get detailed information about
  6216  // the error.
  6217  //
  6218  // See the AWS API reference guide for Amazon Route 53 Resolver's
  6219  // API operation UpdateFirewallRuleGroupAssociation for usage and error information.
  6220  //
  6221  // Returned Error Types:
  6222  //   * ResourceNotFoundException
  6223  //   The specified resource doesn't exist.
  6224  //
  6225  //   * ValidationException
  6226  //
  6227  //   * ConflictException
  6228  //
  6229  //   * AccessDeniedException
  6230  //   The current account doesn't have the IAM permissions required to perform
  6231  //   the specified Resolver operation.
  6232  //
  6233  //   * InternalServiceErrorException
  6234  //   We encountered an unknown error. Try again in a few minutes.
  6235  //
  6236  //   * ThrottlingException
  6237  //   The request was throttled. Try again in a few minutes.
  6238  //
  6239  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleGroupAssociation
  6240  func (c *Route53Resolver) UpdateFirewallRuleGroupAssociation(input *UpdateFirewallRuleGroupAssociationInput) (*UpdateFirewallRuleGroupAssociationOutput, error) {
  6241  	req, out := c.UpdateFirewallRuleGroupAssociationRequest(input)
  6242  	return out, req.Send()
  6243  }
  6244  
  6245  // UpdateFirewallRuleGroupAssociationWithContext is the same as UpdateFirewallRuleGroupAssociation with the addition of
  6246  // the ability to pass a context and additional request options.
  6247  //
  6248  // See UpdateFirewallRuleGroupAssociation for details on how to use this API operation.
  6249  //
  6250  // The context must be non-nil and will be used for request cancellation. If
  6251  // the context is nil a panic will occur. In the future the SDK may create
  6252  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6253  // for more information on using Contexts.
  6254  func (c *Route53Resolver) UpdateFirewallRuleGroupAssociationWithContext(ctx aws.Context, input *UpdateFirewallRuleGroupAssociationInput, opts ...request.Option) (*UpdateFirewallRuleGroupAssociationOutput, error) {
  6255  	req, out := c.UpdateFirewallRuleGroupAssociationRequest(input)
  6256  	req.SetContext(ctx)
  6257  	req.ApplyOptions(opts...)
  6258  	return out, req.Send()
  6259  }
  6260  
  6261  const opUpdateResolverDnssecConfig = "UpdateResolverDnssecConfig"
  6262  
  6263  // UpdateResolverDnssecConfigRequest generates a "aws/request.Request" representing the
  6264  // client's request for the UpdateResolverDnssecConfig operation. The "output" return
  6265  // value will be populated with the request's response once the request completes
  6266  // successfully.
  6267  //
  6268  // Use "Send" method on the returned Request to send the API call to the service.
  6269  // the "output" return value is not valid until after Send returns without error.
  6270  //
  6271  // See UpdateResolverDnssecConfig for more information on using the UpdateResolverDnssecConfig
  6272  // API call, and error handling.
  6273  //
  6274  // This method is useful when you want to inject custom logic or configuration
  6275  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6276  //
  6277  //
  6278  //    // Example sending a request using the UpdateResolverDnssecConfigRequest method.
  6279  //    req, resp := client.UpdateResolverDnssecConfigRequest(params)
  6280  //
  6281  //    err := req.Send()
  6282  //    if err == nil { // resp is now filled
  6283  //        fmt.Println(resp)
  6284  //    }
  6285  //
  6286  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
  6287  func (c *Route53Resolver) UpdateResolverDnssecConfigRequest(input *UpdateResolverDnssecConfigInput) (req *request.Request, output *UpdateResolverDnssecConfigOutput) {
  6288  	op := &request.Operation{
  6289  		Name:       opUpdateResolverDnssecConfig,
  6290  		HTTPMethod: "POST",
  6291  		HTTPPath:   "/",
  6292  	}
  6293  
  6294  	if input == nil {
  6295  		input = &UpdateResolverDnssecConfigInput{}
  6296  	}
  6297  
  6298  	output = &UpdateResolverDnssecConfigOutput{}
  6299  	req = c.newRequest(op, input, output)
  6300  	return
  6301  }
  6302  
  6303  // UpdateResolverDnssecConfig API operation for Amazon Route 53 Resolver.
  6304  //
  6305  // Updates an existing DNSSEC validation configuration. If there is no existing
  6306  // DNSSEC validation configuration, one is created.
  6307  //
  6308  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6309  // with awserr.Error's Code and Message methods to get detailed information about
  6310  // the error.
  6311  //
  6312  // See the AWS API reference guide for Amazon Route 53 Resolver's
  6313  // API operation UpdateResolverDnssecConfig for usage and error information.
  6314  //
  6315  // Returned Error Types:
  6316  //   * InvalidParameterException
  6317  //   One or more parameters in this request are not valid.
  6318  //
  6319  //   * ResourceNotFoundException
  6320  //   The specified resource doesn't exist.
  6321  //
  6322  //   * InvalidRequestException
  6323  //   The request is invalid.
  6324  //
  6325  //   * InternalServiceErrorException
  6326  //   We encountered an unknown error. Try again in a few minutes.
  6327  //
  6328  //   * ThrottlingException
  6329  //   The request was throttled. Try again in a few minutes.
  6330  //
  6331  //   * AccessDeniedException
  6332  //   The current account doesn't have the IAM permissions required to perform
  6333  //   the specified Resolver operation.
  6334  //
  6335  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
  6336  func (c *Route53Resolver) UpdateResolverDnssecConfig(input *UpdateResolverDnssecConfigInput) (*UpdateResolverDnssecConfigOutput, error) {
  6337  	req, out := c.UpdateResolverDnssecConfigRequest(input)
  6338  	return out, req.Send()
  6339  }
  6340  
  6341  // UpdateResolverDnssecConfigWithContext is the same as UpdateResolverDnssecConfig with the addition of
  6342  // the ability to pass a context and additional request options.
  6343  //
  6344  // See UpdateResolverDnssecConfig for details on how to use this API operation.
  6345  //
  6346  // The context must be non-nil and will be used for request cancellation. If
  6347  // the context is nil a panic will occur. In the future the SDK may create
  6348  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6349  // for more information on using Contexts.
  6350  func (c *Route53Resolver) UpdateResolverDnssecConfigWithContext(ctx aws.Context, input *UpdateResolverDnssecConfigInput, opts ...request.Option) (*UpdateResolverDnssecConfigOutput, error) {
  6351  	req, out := c.UpdateResolverDnssecConfigRequest(input)
  6352  	req.SetContext(ctx)
  6353  	req.ApplyOptions(opts...)
  6354  	return out, req.Send()
  6355  }
  6356  
  6357  const opUpdateResolverEndpoint = "UpdateResolverEndpoint"
  6358  
  6359  // UpdateResolverEndpointRequest generates a "aws/request.Request" representing the
  6360  // client's request for the UpdateResolverEndpoint operation. The "output" return
  6361  // value will be populated with the request's response once the request completes
  6362  // successfully.
  6363  //
  6364  // Use "Send" method on the returned Request to send the API call to the service.
  6365  // the "output" return value is not valid until after Send returns without error.
  6366  //
  6367  // See UpdateResolverEndpoint for more information on using the UpdateResolverEndpoint
  6368  // API call, and error handling.
  6369  //
  6370  // This method is useful when you want to inject custom logic or configuration
  6371  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6372  //
  6373  //
  6374  //    // Example sending a request using the UpdateResolverEndpointRequest method.
  6375  //    req, resp := client.UpdateResolverEndpointRequest(params)
  6376  //
  6377  //    err := req.Send()
  6378  //    if err == nil { // resp is now filled
  6379  //        fmt.Println(resp)
  6380  //    }
  6381  //
  6382  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
  6383  func (c *Route53Resolver) UpdateResolverEndpointRequest(input *UpdateResolverEndpointInput) (req *request.Request, output *UpdateResolverEndpointOutput) {
  6384  	op := &request.Operation{
  6385  		Name:       opUpdateResolverEndpoint,
  6386  		HTTPMethod: "POST",
  6387  		HTTPPath:   "/",
  6388  	}
  6389  
  6390  	if input == nil {
  6391  		input = &UpdateResolverEndpointInput{}
  6392  	}
  6393  
  6394  	output = &UpdateResolverEndpointOutput{}
  6395  	req = c.newRequest(op, input, output)
  6396  	return
  6397  }
  6398  
  6399  // UpdateResolverEndpoint API operation for Amazon Route 53 Resolver.
  6400  //
  6401  // Updates the name of an inbound or an outbound Resolver endpoint.
  6402  //
  6403  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6404  // with awserr.Error's Code and Message methods to get detailed information about
  6405  // the error.
  6406  //
  6407  // See the AWS API reference guide for Amazon Route 53 Resolver's
  6408  // API operation UpdateResolverEndpoint for usage and error information.
  6409  //
  6410  // Returned Error Types:
  6411  //   * ResourceNotFoundException
  6412  //   The specified resource doesn't exist.
  6413  //
  6414  //   * InvalidParameterException
  6415  //   One or more parameters in this request are not valid.
  6416  //
  6417  //   * InvalidRequestException
  6418  //   The request is invalid.
  6419  //
  6420  //   * InternalServiceErrorException
  6421  //   We encountered an unknown error. Try again in a few minutes.
  6422  //
  6423  //   * ThrottlingException
  6424  //   The request was throttled. Try again in a few minutes.
  6425  //
  6426  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
  6427  func (c *Route53Resolver) UpdateResolverEndpoint(input *UpdateResolverEndpointInput) (*UpdateResolverEndpointOutput, error) {
  6428  	req, out := c.UpdateResolverEndpointRequest(input)
  6429  	return out, req.Send()
  6430  }
  6431  
  6432  // UpdateResolverEndpointWithContext is the same as UpdateResolverEndpoint with the addition of
  6433  // the ability to pass a context and additional request options.
  6434  //
  6435  // See UpdateResolverEndpoint for details on how to use this API operation.
  6436  //
  6437  // The context must be non-nil and will be used for request cancellation. If
  6438  // the context is nil a panic will occur. In the future the SDK may create
  6439  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6440  // for more information on using Contexts.
  6441  func (c *Route53Resolver) UpdateResolverEndpointWithContext(ctx aws.Context, input *UpdateResolverEndpointInput, opts ...request.Option) (*UpdateResolverEndpointOutput, error) {
  6442  	req, out := c.UpdateResolverEndpointRequest(input)
  6443  	req.SetContext(ctx)
  6444  	req.ApplyOptions(opts...)
  6445  	return out, req.Send()
  6446  }
  6447  
  6448  const opUpdateResolverRule = "UpdateResolverRule"
  6449  
  6450  // UpdateResolverRuleRequest generates a "aws/request.Request" representing the
  6451  // client's request for the UpdateResolverRule operation. The "output" return
  6452  // value will be populated with the request's response once the request completes
  6453  // successfully.
  6454  //
  6455  // Use "Send" method on the returned Request to send the API call to the service.
  6456  // the "output" return value is not valid until after Send returns without error.
  6457  //
  6458  // See UpdateResolverRule for more information on using the UpdateResolverRule
  6459  // API call, and error handling.
  6460  //
  6461  // This method is useful when you want to inject custom logic or configuration
  6462  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6463  //
  6464  //
  6465  //    // Example sending a request using the UpdateResolverRuleRequest method.
  6466  //    req, resp := client.UpdateResolverRuleRequest(params)
  6467  //
  6468  //    err := req.Send()
  6469  //    if err == nil { // resp is now filled
  6470  //        fmt.Println(resp)
  6471  //    }
  6472  //
  6473  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
  6474  func (c *Route53Resolver) UpdateResolverRuleRequest(input *UpdateResolverRuleInput) (req *request.Request, output *UpdateResolverRuleOutput) {
  6475  	op := &request.Operation{
  6476  		Name:       opUpdateResolverRule,
  6477  		HTTPMethod: "POST",
  6478  		HTTPPath:   "/",
  6479  	}
  6480  
  6481  	if input == nil {
  6482  		input = &UpdateResolverRuleInput{}
  6483  	}
  6484  
  6485  	output = &UpdateResolverRuleOutput{}
  6486  	req = c.newRequest(op, input, output)
  6487  	return
  6488  }
  6489  
  6490  // UpdateResolverRule API operation for Amazon Route 53 Resolver.
  6491  //
  6492  // Updates settings for a specified Resolver rule. ResolverRuleId is required,
  6493  // and all other parameters are optional. If you don't specify a parameter,
  6494  // it retains its current value.
  6495  //
  6496  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6497  // with awserr.Error's Code and Message methods to get detailed information about
  6498  // the error.
  6499  //
  6500  // See the AWS API reference guide for Amazon Route 53 Resolver's
  6501  // API operation UpdateResolverRule for usage and error information.
  6502  //
  6503  // Returned Error Types:
  6504  //   * InvalidRequestException
  6505  //   The request is invalid.
  6506  //
  6507  //   * InvalidParameterException
  6508  //   One or more parameters in this request are not valid.
  6509  //
  6510  //   * ResourceNotFoundException
  6511  //   The specified resource doesn't exist.
  6512  //
  6513  //   * ResourceUnavailableException
  6514  //   The specified resource isn't available.
  6515  //
  6516  //   * LimitExceededException
  6517  //   The request caused one or more limits to be exceeded.
  6518  //
  6519  //   * InternalServiceErrorException
  6520  //   We encountered an unknown error. Try again in a few minutes.
  6521  //
  6522  //   * ThrottlingException
  6523  //   The request was throttled. Try again in a few minutes.
  6524  //
  6525  // See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
  6526  func (c *Route53Resolver) UpdateResolverRule(input *UpdateResolverRuleInput) (*UpdateResolverRuleOutput, error) {
  6527  	req, out := c.UpdateResolverRuleRequest(input)
  6528  	return out, req.Send()
  6529  }
  6530  
  6531  // UpdateResolverRuleWithContext is the same as UpdateResolverRule with the addition of
  6532  // the ability to pass a context and additional request options.
  6533  //
  6534  // See UpdateResolverRule for details on how to use this API operation.
  6535  //
  6536  // The context must be non-nil and will be used for request cancellation. If
  6537  // the context is nil a panic will occur. In the future the SDK may create
  6538  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6539  // for more information on using Contexts.
  6540  func (c *Route53Resolver) UpdateResolverRuleWithContext(ctx aws.Context, input *UpdateResolverRuleInput, opts ...request.Option) (*UpdateResolverRuleOutput, error) {
  6541  	req, out := c.UpdateResolverRuleRequest(input)
  6542  	req.SetContext(ctx)
  6543  	req.ApplyOptions(opts...)
  6544  	return out, req.Send()
  6545  }
  6546  
  6547  // The current account doesn't have the IAM permissions required to perform
  6548  // the specified Resolver operation.
  6549  type AccessDeniedException struct {
  6550  	_            struct{}                  `type:"structure"`
  6551  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6552  
  6553  	Message_ *string `locationName:"Message" type:"string"`
  6554  }
  6555  
  6556  // String returns the string representation.
  6557  //
  6558  // API parameter values that are decorated as "sensitive" in the API will not
  6559  // be included in the string output. The member name will be present, but the
  6560  // value will be replaced with "sensitive".
  6561  func (s AccessDeniedException) String() string {
  6562  	return awsutil.Prettify(s)
  6563  }
  6564  
  6565  // GoString returns the string representation.
  6566  //
  6567  // API parameter values that are decorated as "sensitive" in the API will not
  6568  // be included in the string output. The member name will be present, but the
  6569  // value will be replaced with "sensitive".
  6570  func (s AccessDeniedException) GoString() string {
  6571  	return s.String()
  6572  }
  6573  
  6574  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  6575  	return &AccessDeniedException{
  6576  		RespMetadata: v,
  6577  	}
  6578  }
  6579  
  6580  // Code returns the exception type name.
  6581  func (s *AccessDeniedException) Code() string {
  6582  	return "AccessDeniedException"
  6583  }
  6584  
  6585  // Message returns the exception's message.
  6586  func (s *AccessDeniedException) Message() string {
  6587  	if s.Message_ != nil {
  6588  		return *s.Message_
  6589  	}
  6590  	return ""
  6591  }
  6592  
  6593  // OrigErr always returns nil, satisfies awserr.Error interface.
  6594  func (s *AccessDeniedException) OrigErr() error {
  6595  	return nil
  6596  }
  6597  
  6598  func (s *AccessDeniedException) Error() string {
  6599  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6600  }
  6601  
  6602  // Status code returns the HTTP status code for the request's response error.
  6603  func (s *AccessDeniedException) StatusCode() int {
  6604  	return s.RespMetadata.StatusCode
  6605  }
  6606  
  6607  // RequestID returns the service's response RequestID for request.
  6608  func (s *AccessDeniedException) RequestID() string {
  6609  	return s.RespMetadata.RequestID
  6610  }
  6611  
  6612  type AssociateFirewallRuleGroupInput struct {
  6613  	_ struct{} `type:"structure"`
  6614  
  6615  	// A unique string that identifies the request and that allows failed requests
  6616  	// to be retried without the risk of running the operation twice. CreatorRequestId
  6617  	// can be any unique string, for example, a date/time stamp.
  6618  	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
  6619  
  6620  	// The unique identifier of the firewall rule group.
  6621  	//
  6622  	// FirewallRuleGroupId is a required field
  6623  	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
  6624  
  6625  	// If enabled, this setting disallows modification or removal of the association,
  6626  	// to help prevent against accidentally altering DNS firewall protections. When
  6627  	// you create the association, the default setting is DISABLED.
  6628  	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
  6629  
  6630  	// A name that lets you identify the association, to manage and use it.
  6631  	//
  6632  	// Name is a required field
  6633  	Name *string `type:"string" required:"true"`
  6634  
  6635  	// The setting that determines the processing order of the rule group among
  6636  	// the rule groups that you associate with the specified VPC. DNS Firewall filters
  6637  	// VPC traffic starting from the rule group with the lowest numeric priority
  6638  	// setting.
  6639  	//
  6640  	// You must specify a unique priority for each rule group that you associate
  6641  	// with a single VPC. To make it easier to insert rule groups later, leave space
  6642  	// between the numbers, for example, use 101, 200, and so on. You can change
  6643  	// the priority setting for a rule group association after you create it.
  6644  	//
  6645  	// The allowed values for Priority are between 100 and 9900.
  6646  	//
  6647  	// Priority is a required field
  6648  	Priority *int64 `type:"integer" required:"true"`
  6649  
  6650  	// A list of the tag keys and values that you want to associate with the rule
  6651  	// group association.
  6652  	Tags []*Tag `type:"list"`
  6653  
  6654  	// The unique identifier of the VPC that you want to associate with the rule
  6655  	// group.
  6656  	//
  6657  	// VpcId is a required field
  6658  	VpcId *string `min:"1" type:"string" required:"true"`
  6659  }
  6660  
  6661  // String returns the string representation.
  6662  //
  6663  // API parameter values that are decorated as "sensitive" in the API will not
  6664  // be included in the string output. The member name will be present, but the
  6665  // value will be replaced with "sensitive".
  6666  func (s AssociateFirewallRuleGroupInput) String() string {
  6667  	return awsutil.Prettify(s)
  6668  }
  6669  
  6670  // GoString returns the string representation.
  6671  //
  6672  // API parameter values that are decorated as "sensitive" in the API will not
  6673  // be included in the string output. The member name will be present, but the
  6674  // value will be replaced with "sensitive".
  6675  func (s AssociateFirewallRuleGroupInput) GoString() string {
  6676  	return s.String()
  6677  }
  6678  
  6679  // Validate inspects the fields of the type to determine if they are valid.
  6680  func (s *AssociateFirewallRuleGroupInput) Validate() error {
  6681  	invalidParams := request.ErrInvalidParams{Context: "AssociateFirewallRuleGroupInput"}
  6682  	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
  6683  		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
  6684  	}
  6685  	if s.FirewallRuleGroupId == nil {
  6686  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
  6687  	}
  6688  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
  6689  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
  6690  	}
  6691  	if s.Name == nil {
  6692  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6693  	}
  6694  	if s.Priority == nil {
  6695  		invalidParams.Add(request.NewErrParamRequired("Priority"))
  6696  	}
  6697  	if s.VpcId == nil {
  6698  		invalidParams.Add(request.NewErrParamRequired("VpcId"))
  6699  	}
  6700  	if s.VpcId != nil && len(*s.VpcId) < 1 {
  6701  		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
  6702  	}
  6703  	if s.Tags != nil {
  6704  		for i, v := range s.Tags {
  6705  			if v == nil {
  6706  				continue
  6707  			}
  6708  			if err := v.Validate(); err != nil {
  6709  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  6710  			}
  6711  		}
  6712  	}
  6713  
  6714  	if invalidParams.Len() > 0 {
  6715  		return invalidParams
  6716  	}
  6717  	return nil
  6718  }
  6719  
  6720  // SetCreatorRequestId sets the CreatorRequestId field's value.
  6721  func (s *AssociateFirewallRuleGroupInput) SetCreatorRequestId(v string) *AssociateFirewallRuleGroupInput {
  6722  	s.CreatorRequestId = &v
  6723  	return s
  6724  }
  6725  
  6726  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
  6727  func (s *AssociateFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *AssociateFirewallRuleGroupInput {
  6728  	s.FirewallRuleGroupId = &v
  6729  	return s
  6730  }
  6731  
  6732  // SetMutationProtection sets the MutationProtection field's value.
  6733  func (s *AssociateFirewallRuleGroupInput) SetMutationProtection(v string) *AssociateFirewallRuleGroupInput {
  6734  	s.MutationProtection = &v
  6735  	return s
  6736  }
  6737  
  6738  // SetName sets the Name field's value.
  6739  func (s *AssociateFirewallRuleGroupInput) SetName(v string) *AssociateFirewallRuleGroupInput {
  6740  	s.Name = &v
  6741  	return s
  6742  }
  6743  
  6744  // SetPriority sets the Priority field's value.
  6745  func (s *AssociateFirewallRuleGroupInput) SetPriority(v int64) *AssociateFirewallRuleGroupInput {
  6746  	s.Priority = &v
  6747  	return s
  6748  }
  6749  
  6750  // SetTags sets the Tags field's value.
  6751  func (s *AssociateFirewallRuleGroupInput) SetTags(v []*Tag) *AssociateFirewallRuleGroupInput {
  6752  	s.Tags = v
  6753  	return s
  6754  }
  6755  
  6756  // SetVpcId sets the VpcId field's value.
  6757  func (s *AssociateFirewallRuleGroupInput) SetVpcId(v string) *AssociateFirewallRuleGroupInput {
  6758  	s.VpcId = &v
  6759  	return s
  6760  }
  6761  
  6762  type AssociateFirewallRuleGroupOutput struct {
  6763  	_ struct{} `type:"structure"`
  6764  
  6765  	// The association that you just created. The association has an ID that you
  6766  	// can use to identify it in other requests, like update and delete.
  6767  	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
  6768  }
  6769  
  6770  // String returns the string representation.
  6771  //
  6772  // API parameter values that are decorated as "sensitive" in the API will not
  6773  // be included in the string output. The member name will be present, but the
  6774  // value will be replaced with "sensitive".
  6775  func (s AssociateFirewallRuleGroupOutput) String() string {
  6776  	return awsutil.Prettify(s)
  6777  }
  6778  
  6779  // GoString returns the string representation.
  6780  //
  6781  // API parameter values that are decorated as "sensitive" in the API will not
  6782  // be included in the string output. The member name will be present, but the
  6783  // value will be replaced with "sensitive".
  6784  func (s AssociateFirewallRuleGroupOutput) GoString() string {
  6785  	return s.String()
  6786  }
  6787  
  6788  // SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
  6789  func (s *AssociateFirewallRuleGroupOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *AssociateFirewallRuleGroupOutput {
  6790  	s.FirewallRuleGroupAssociation = v
  6791  	return s
  6792  }
  6793  
  6794  type AssociateResolverEndpointIpAddressInput struct {
  6795  	_ struct{} `type:"structure"`
  6796  
  6797  	// Either the IPv4 address that you want to add to a Resolver endpoint or a
  6798  	// subnet ID. If you specify a subnet ID, Resolver chooses an IP address for
  6799  	// you from the available IPs in the specified subnet.
  6800  	//
  6801  	// IpAddress is a required field
  6802  	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
  6803  
  6804  	// The ID of the Resolver endpoint that you want to associate IP addresses with.
  6805  	//
  6806  	// ResolverEndpointId is a required field
  6807  	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
  6808  }
  6809  
  6810  // String returns the string representation.
  6811  //
  6812  // API parameter values that are decorated as "sensitive" in the API will not
  6813  // be included in the string output. The member name will be present, but the
  6814  // value will be replaced with "sensitive".
  6815  func (s AssociateResolverEndpointIpAddressInput) String() string {
  6816  	return awsutil.Prettify(s)
  6817  }
  6818  
  6819  // GoString returns the string representation.
  6820  //
  6821  // API parameter values that are decorated as "sensitive" in the API will not
  6822  // be included in the string output. The member name will be present, but the
  6823  // value will be replaced with "sensitive".
  6824  func (s AssociateResolverEndpointIpAddressInput) GoString() string {
  6825  	return s.String()
  6826  }
  6827  
  6828  // Validate inspects the fields of the type to determine if they are valid.
  6829  func (s *AssociateResolverEndpointIpAddressInput) Validate() error {
  6830  	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverEndpointIpAddressInput"}
  6831  	if s.IpAddress == nil {
  6832  		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
  6833  	}
  6834  	if s.ResolverEndpointId == nil {
  6835  		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
  6836  	}
  6837  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
  6838  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
  6839  	}
  6840  	if s.IpAddress != nil {
  6841  		if err := s.IpAddress.Validate(); err != nil {
  6842  			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
  6843  		}
  6844  	}
  6845  
  6846  	if invalidParams.Len() > 0 {
  6847  		return invalidParams
  6848  	}
  6849  	return nil
  6850  }
  6851  
  6852  // SetIpAddress sets the IpAddress field's value.
  6853  func (s *AssociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *AssociateResolverEndpointIpAddressInput {
  6854  	s.IpAddress = v
  6855  	return s
  6856  }
  6857  
  6858  // SetResolverEndpointId sets the ResolverEndpointId field's value.
  6859  func (s *AssociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *AssociateResolverEndpointIpAddressInput {
  6860  	s.ResolverEndpointId = &v
  6861  	return s
  6862  }
  6863  
  6864  type AssociateResolverEndpointIpAddressOutput struct {
  6865  	_ struct{} `type:"structure"`
  6866  
  6867  	// The response to an AssociateResolverEndpointIpAddress request.
  6868  	ResolverEndpoint *ResolverEndpoint `type:"structure"`
  6869  }
  6870  
  6871  // String returns the string representation.
  6872  //
  6873  // API parameter values that are decorated as "sensitive" in the API will not
  6874  // be included in the string output. The member name will be present, but the
  6875  // value will be replaced with "sensitive".
  6876  func (s AssociateResolverEndpointIpAddressOutput) String() string {
  6877  	return awsutil.Prettify(s)
  6878  }
  6879  
  6880  // GoString returns the string representation.
  6881  //
  6882  // API parameter values that are decorated as "sensitive" in the API will not
  6883  // be included in the string output. The member name will be present, but the
  6884  // value will be replaced with "sensitive".
  6885  func (s AssociateResolverEndpointIpAddressOutput) GoString() string {
  6886  	return s.String()
  6887  }
  6888  
  6889  // SetResolverEndpoint sets the ResolverEndpoint field's value.
  6890  func (s *AssociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *AssociateResolverEndpointIpAddressOutput {
  6891  	s.ResolverEndpoint = v
  6892  	return s
  6893  }
  6894  
  6895  type AssociateResolverQueryLogConfigInput struct {
  6896  	_ struct{} `type:"structure"`
  6897  
  6898  	// The ID of the query logging configuration that you want to associate a VPC
  6899  	// with.
  6900  	//
  6901  	// ResolverQueryLogConfigId is a required field
  6902  	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
  6903  
  6904  	// The ID of an Amazon VPC that you want this query logging configuration to
  6905  	// log queries for.
  6906  	//
  6907  	// The VPCs and the query logging configuration must be in the same Region.
  6908  	//
  6909  	// ResourceId is a required field
  6910  	ResourceId *string `min:"1" type:"string" required:"true"`
  6911  }
  6912  
  6913  // String returns the string representation.
  6914  //
  6915  // API parameter values that are decorated as "sensitive" in the API will not
  6916  // be included in the string output. The member name will be present, but the
  6917  // value will be replaced with "sensitive".
  6918  func (s AssociateResolverQueryLogConfigInput) String() string {
  6919  	return awsutil.Prettify(s)
  6920  }
  6921  
  6922  // GoString returns the string representation.
  6923  //
  6924  // API parameter values that are decorated as "sensitive" in the API will not
  6925  // be included in the string output. The member name will be present, but the
  6926  // value will be replaced with "sensitive".
  6927  func (s AssociateResolverQueryLogConfigInput) GoString() string {
  6928  	return s.String()
  6929  }
  6930  
  6931  // Validate inspects the fields of the type to determine if they are valid.
  6932  func (s *AssociateResolverQueryLogConfigInput) Validate() error {
  6933  	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverQueryLogConfigInput"}
  6934  	if s.ResolverQueryLogConfigId == nil {
  6935  		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
  6936  	}
  6937  	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
  6938  		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
  6939  	}
  6940  	if s.ResourceId == nil {
  6941  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  6942  	}
  6943  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  6944  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  6945  	}
  6946  
  6947  	if invalidParams.Len() > 0 {
  6948  		return invalidParams
  6949  	}
  6950  	return nil
  6951  }
  6952  
  6953  // SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
  6954  func (s *AssociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *AssociateResolverQueryLogConfigInput {
  6955  	s.ResolverQueryLogConfigId = &v
  6956  	return s
  6957  }
  6958  
  6959  // SetResourceId sets the ResourceId field's value.
  6960  func (s *AssociateResolverQueryLogConfigInput) SetResourceId(v string) *AssociateResolverQueryLogConfigInput {
  6961  	s.ResourceId = &v
  6962  	return s
  6963  }
  6964  
  6965  type AssociateResolverQueryLogConfigOutput struct {
  6966  	_ struct{} `type:"structure"`
  6967  
  6968  	// A complex type that contains settings for a specified association between
  6969  	// an Amazon VPC and a query logging configuration.
  6970  	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
  6971  }
  6972  
  6973  // String returns the string representation.
  6974  //
  6975  // API parameter values that are decorated as "sensitive" in the API will not
  6976  // be included in the string output. The member name will be present, but the
  6977  // value will be replaced with "sensitive".
  6978  func (s AssociateResolverQueryLogConfigOutput) String() string {
  6979  	return awsutil.Prettify(s)
  6980  }
  6981  
  6982  // GoString returns the string representation.
  6983  //
  6984  // API parameter values that are decorated as "sensitive" in the API will not
  6985  // be included in the string output. The member name will be present, but the
  6986  // value will be replaced with "sensitive".
  6987  func (s AssociateResolverQueryLogConfigOutput) GoString() string {
  6988  	return s.String()
  6989  }
  6990  
  6991  // SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
  6992  func (s *AssociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *AssociateResolverQueryLogConfigOutput {
  6993  	s.ResolverQueryLogConfigAssociation = v
  6994  	return s
  6995  }
  6996  
  6997  type AssociateResolverRuleInput struct {
  6998  	_ struct{} `type:"structure"`
  6999  
  7000  	// A name for the association that you're creating between a Resolver rule and
  7001  	// a VPC.
  7002  	Name *string `type:"string"`
  7003  
  7004  	// The ID of the Resolver rule that you want to associate with the VPC. To list
  7005  	// the existing Resolver rules, use ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html).
  7006  	//
  7007  	// ResolverRuleId is a required field
  7008  	ResolverRuleId *string `min:"1" type:"string" required:"true"`
  7009  
  7010  	// The ID of the VPC that you want to associate the Resolver rule with.
  7011  	//
  7012  	// VPCId is a required field
  7013  	VPCId *string `min:"1" type:"string" required:"true"`
  7014  }
  7015  
  7016  // String returns the string representation.
  7017  //
  7018  // API parameter values that are decorated as "sensitive" in the API will not
  7019  // be included in the string output. The member name will be present, but the
  7020  // value will be replaced with "sensitive".
  7021  func (s AssociateResolverRuleInput) String() string {
  7022  	return awsutil.Prettify(s)
  7023  }
  7024  
  7025  // GoString returns the string representation.
  7026  //
  7027  // API parameter values that are decorated as "sensitive" in the API will not
  7028  // be included in the string output. The member name will be present, but the
  7029  // value will be replaced with "sensitive".
  7030  func (s AssociateResolverRuleInput) GoString() string {
  7031  	return s.String()
  7032  }
  7033  
  7034  // Validate inspects the fields of the type to determine if they are valid.
  7035  func (s *AssociateResolverRuleInput) Validate() error {
  7036  	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverRuleInput"}
  7037  	if s.ResolverRuleId == nil {
  7038  		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
  7039  	}
  7040  	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
  7041  		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
  7042  	}
  7043  	if s.VPCId == nil {
  7044  		invalidParams.Add(request.NewErrParamRequired("VPCId"))
  7045  	}
  7046  	if s.VPCId != nil && len(*s.VPCId) < 1 {
  7047  		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
  7048  	}
  7049  
  7050  	if invalidParams.Len() > 0 {
  7051  		return invalidParams
  7052  	}
  7053  	return nil
  7054  }
  7055  
  7056  // SetName sets the Name field's value.
  7057  func (s *AssociateResolverRuleInput) SetName(v string) *AssociateResolverRuleInput {
  7058  	s.Name = &v
  7059  	return s
  7060  }
  7061  
  7062  // SetResolverRuleId sets the ResolverRuleId field's value.
  7063  func (s *AssociateResolverRuleInput) SetResolverRuleId(v string) *AssociateResolverRuleInput {
  7064  	s.ResolverRuleId = &v
  7065  	return s
  7066  }
  7067  
  7068  // SetVPCId sets the VPCId field's value.
  7069  func (s *AssociateResolverRuleInput) SetVPCId(v string) *AssociateResolverRuleInput {
  7070  	s.VPCId = &v
  7071  	return s
  7072  }
  7073  
  7074  type AssociateResolverRuleOutput struct {
  7075  	_ struct{} `type:"structure"`
  7076  
  7077  	// Information about the AssociateResolverRule request, including the status
  7078  	// of the request.
  7079  	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
  7080  }
  7081  
  7082  // String returns the string representation.
  7083  //
  7084  // API parameter values that are decorated as "sensitive" in the API will not
  7085  // be included in the string output. The member name will be present, but the
  7086  // value will be replaced with "sensitive".
  7087  func (s AssociateResolverRuleOutput) String() string {
  7088  	return awsutil.Prettify(s)
  7089  }
  7090  
  7091  // GoString returns the string representation.
  7092  //
  7093  // API parameter values that are decorated as "sensitive" in the API will not
  7094  // be included in the string output. The member name will be present, but the
  7095  // value will be replaced with "sensitive".
  7096  func (s AssociateResolverRuleOutput) GoString() string {
  7097  	return s.String()
  7098  }
  7099  
  7100  // SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
  7101  func (s *AssociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *AssociateResolverRuleOutput {
  7102  	s.ResolverRuleAssociation = v
  7103  	return s
  7104  }
  7105  
  7106  type ConflictException struct {
  7107  	_            struct{}                  `type:"structure"`
  7108  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7109  
  7110  	Message_ *string `locationName:"Message" type:"string"`
  7111  }
  7112  
  7113  // String 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 ConflictException) String() string {
  7119  	return awsutil.Prettify(s)
  7120  }
  7121  
  7122  // GoString returns the string representation.
  7123  //
  7124  // API parameter values that are decorated as "sensitive" in the API will not
  7125  // be included in the string output. The member name will be present, but the
  7126  // value will be replaced with "sensitive".
  7127  func (s ConflictException) GoString() string {
  7128  	return s.String()
  7129  }
  7130  
  7131  func newErrorConflictException(v protocol.ResponseMetadata) error {
  7132  	return &ConflictException{
  7133  		RespMetadata: v,
  7134  	}
  7135  }
  7136  
  7137  // Code returns the exception type name.
  7138  func (s *ConflictException) Code() string {
  7139  	return "ConflictException"
  7140  }
  7141  
  7142  // Message returns the exception's message.
  7143  func (s *ConflictException) Message() string {
  7144  	if s.Message_ != nil {
  7145  		return *s.Message_
  7146  	}
  7147  	return ""
  7148  }
  7149  
  7150  // OrigErr always returns nil, satisfies awserr.Error interface.
  7151  func (s *ConflictException) OrigErr() error {
  7152  	return nil
  7153  }
  7154  
  7155  func (s *ConflictException) Error() string {
  7156  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7157  }
  7158  
  7159  // Status code returns the HTTP status code for the request's response error.
  7160  func (s *ConflictException) StatusCode() int {
  7161  	return s.RespMetadata.StatusCode
  7162  }
  7163  
  7164  // RequestID returns the service's response RequestID for request.
  7165  func (s *ConflictException) RequestID() string {
  7166  	return s.RespMetadata.RequestID
  7167  }
  7168  
  7169  type CreateFirewallDomainListInput struct {
  7170  	_ struct{} `type:"structure"`
  7171  
  7172  	// A unique string that identifies the request and that allows you to retry
  7173  	// failed requests without the risk of running the operation twice. CreatorRequestId
  7174  	// can be any unique string, for example, a date/time stamp.
  7175  	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
  7176  
  7177  	// A name that lets you identify the domain list to manage and use it.
  7178  	//
  7179  	// Name is a required field
  7180  	Name *string `type:"string" required:"true"`
  7181  
  7182  	// A list of the tag keys and values that you want to associate with the domain
  7183  	// list.
  7184  	Tags []*Tag `type:"list"`
  7185  }
  7186  
  7187  // String returns the string representation.
  7188  //
  7189  // API parameter values that are decorated as "sensitive" in the API will not
  7190  // be included in the string output. The member name will be present, but the
  7191  // value will be replaced with "sensitive".
  7192  func (s CreateFirewallDomainListInput) String() string {
  7193  	return awsutil.Prettify(s)
  7194  }
  7195  
  7196  // GoString returns the string representation.
  7197  //
  7198  // API parameter values that are decorated as "sensitive" in the API will not
  7199  // be included in the string output. The member name will be present, but the
  7200  // value will be replaced with "sensitive".
  7201  func (s CreateFirewallDomainListInput) GoString() string {
  7202  	return s.String()
  7203  }
  7204  
  7205  // Validate inspects the fields of the type to determine if they are valid.
  7206  func (s *CreateFirewallDomainListInput) Validate() error {
  7207  	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallDomainListInput"}
  7208  	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
  7209  		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
  7210  	}
  7211  	if s.Name == nil {
  7212  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7213  	}
  7214  	if s.Tags != nil {
  7215  		for i, v := range s.Tags {
  7216  			if v == nil {
  7217  				continue
  7218  			}
  7219  			if err := v.Validate(); err != nil {
  7220  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7221  			}
  7222  		}
  7223  	}
  7224  
  7225  	if invalidParams.Len() > 0 {
  7226  		return invalidParams
  7227  	}
  7228  	return nil
  7229  }
  7230  
  7231  // SetCreatorRequestId sets the CreatorRequestId field's value.
  7232  func (s *CreateFirewallDomainListInput) SetCreatorRequestId(v string) *CreateFirewallDomainListInput {
  7233  	s.CreatorRequestId = &v
  7234  	return s
  7235  }
  7236  
  7237  // SetName sets the Name field's value.
  7238  func (s *CreateFirewallDomainListInput) SetName(v string) *CreateFirewallDomainListInput {
  7239  	s.Name = &v
  7240  	return s
  7241  }
  7242  
  7243  // SetTags sets the Tags field's value.
  7244  func (s *CreateFirewallDomainListInput) SetTags(v []*Tag) *CreateFirewallDomainListInput {
  7245  	s.Tags = v
  7246  	return s
  7247  }
  7248  
  7249  type CreateFirewallDomainListOutput struct {
  7250  	_ struct{} `type:"structure"`
  7251  
  7252  	// The domain list that you just created.
  7253  	FirewallDomainList *FirewallDomainList `type:"structure"`
  7254  }
  7255  
  7256  // String returns the string representation.
  7257  //
  7258  // API parameter values that are decorated as "sensitive" in the API will not
  7259  // be included in the string output. The member name will be present, but the
  7260  // value will be replaced with "sensitive".
  7261  func (s CreateFirewallDomainListOutput) String() string {
  7262  	return awsutil.Prettify(s)
  7263  }
  7264  
  7265  // GoString returns the string representation.
  7266  //
  7267  // API parameter values that are decorated as "sensitive" in the API will not
  7268  // be included in the string output. The member name will be present, but the
  7269  // value will be replaced with "sensitive".
  7270  func (s CreateFirewallDomainListOutput) GoString() string {
  7271  	return s.String()
  7272  }
  7273  
  7274  // SetFirewallDomainList sets the FirewallDomainList field's value.
  7275  func (s *CreateFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *CreateFirewallDomainListOutput {
  7276  	s.FirewallDomainList = v
  7277  	return s
  7278  }
  7279  
  7280  type CreateFirewallRuleGroupInput struct {
  7281  	_ struct{} `type:"structure"`
  7282  
  7283  	// A unique string defined by you to identify the request. This allows you to
  7284  	// retry failed requests without the risk of running the operation twice. This
  7285  	// can be any unique string, for example, a timestamp.
  7286  	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
  7287  
  7288  	// A name that lets you identify the rule group, to manage and use it.
  7289  	//
  7290  	// Name is a required field
  7291  	Name *string `type:"string" required:"true"`
  7292  
  7293  	// A list of the tag keys and values that you want to associate with the rule
  7294  	// group.
  7295  	Tags []*Tag `type:"list"`
  7296  }
  7297  
  7298  // String returns the string representation.
  7299  //
  7300  // API parameter values that are decorated as "sensitive" in the API will not
  7301  // be included in the string output. The member name will be present, but the
  7302  // value will be replaced with "sensitive".
  7303  func (s CreateFirewallRuleGroupInput) String() string {
  7304  	return awsutil.Prettify(s)
  7305  }
  7306  
  7307  // GoString returns the string representation.
  7308  //
  7309  // API parameter values that are decorated as "sensitive" in the API will not
  7310  // be included in the string output. The member name will be present, but the
  7311  // value will be replaced with "sensitive".
  7312  func (s CreateFirewallRuleGroupInput) GoString() string {
  7313  	return s.String()
  7314  }
  7315  
  7316  // Validate inspects the fields of the type to determine if they are valid.
  7317  func (s *CreateFirewallRuleGroupInput) Validate() error {
  7318  	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallRuleGroupInput"}
  7319  	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
  7320  		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
  7321  	}
  7322  	if s.Name == nil {
  7323  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7324  	}
  7325  	if s.Tags != nil {
  7326  		for i, v := range s.Tags {
  7327  			if v == nil {
  7328  				continue
  7329  			}
  7330  			if err := v.Validate(); err != nil {
  7331  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7332  			}
  7333  		}
  7334  	}
  7335  
  7336  	if invalidParams.Len() > 0 {
  7337  		return invalidParams
  7338  	}
  7339  	return nil
  7340  }
  7341  
  7342  // SetCreatorRequestId sets the CreatorRequestId field's value.
  7343  func (s *CreateFirewallRuleGroupInput) SetCreatorRequestId(v string) *CreateFirewallRuleGroupInput {
  7344  	s.CreatorRequestId = &v
  7345  	return s
  7346  }
  7347  
  7348  // SetName sets the Name field's value.
  7349  func (s *CreateFirewallRuleGroupInput) SetName(v string) *CreateFirewallRuleGroupInput {
  7350  	s.Name = &v
  7351  	return s
  7352  }
  7353  
  7354  // SetTags sets the Tags field's value.
  7355  func (s *CreateFirewallRuleGroupInput) SetTags(v []*Tag) *CreateFirewallRuleGroupInput {
  7356  	s.Tags = v
  7357  	return s
  7358  }
  7359  
  7360  type CreateFirewallRuleGroupOutput struct {
  7361  	_ struct{} `type:"structure"`
  7362  
  7363  	// A collection of rules used to filter DNS network traffic.
  7364  	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
  7365  }
  7366  
  7367  // String returns the string representation.
  7368  //
  7369  // API parameter values that are decorated as "sensitive" in the API will not
  7370  // be included in the string output. The member name will be present, but the
  7371  // value will be replaced with "sensitive".
  7372  func (s CreateFirewallRuleGroupOutput) String() string {
  7373  	return awsutil.Prettify(s)
  7374  }
  7375  
  7376  // GoString returns the string representation.
  7377  //
  7378  // API parameter values that are decorated as "sensitive" in the API will not
  7379  // be included in the string output. The member name will be present, but the
  7380  // value will be replaced with "sensitive".
  7381  func (s CreateFirewallRuleGroupOutput) GoString() string {
  7382  	return s.String()
  7383  }
  7384  
  7385  // SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
  7386  func (s *CreateFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *CreateFirewallRuleGroupOutput {
  7387  	s.FirewallRuleGroup = v
  7388  	return s
  7389  }
  7390  
  7391  type CreateFirewallRuleInput struct {
  7392  	_ struct{} `type:"structure"`
  7393  
  7394  	// The action that DNS Firewall should take on a DNS query when it matches one
  7395  	// of the domains in the rule's domain list:
  7396  	//
  7397  	//    * ALLOW - Permit the request to go through.
  7398  	//
  7399  	//    * ALERT - Permit the request and send metrics and logs to Cloud Watch.
  7400  	//
  7401  	//    * BLOCK - Disallow the request. This option requires additional details
  7402  	//    in the rule's BlockResponse.
  7403  	//
  7404  	// Action is a required field
  7405  	Action *string `type:"string" required:"true" enum:"Action"`
  7406  
  7407  	// The DNS record's type. This determines the format of the record value that
  7408  	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
  7409  	// a BlockResponse setting of OVERRIDE.
  7410  	//
  7411  	// This setting is required if the BlockResponse setting is OVERRIDE.
  7412  	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
  7413  
  7414  	// The custom DNS record to send back in response to the query. Used for the
  7415  	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
  7416  	//
  7417  	// This setting is required if the BlockResponse setting is OVERRIDE.
  7418  	BlockOverrideDomain *string `min:"1" type:"string"`
  7419  
  7420  	// The recommended amount of time, in seconds, for the DNS resolver or web browser
  7421  	// to cache the provided override record. Used for the rule action BLOCK with
  7422  	// a BlockResponse setting of OVERRIDE.
  7423  	//
  7424  	// This setting is required if the BlockResponse setting is OVERRIDE.
  7425  	BlockOverrideTtl *int64 `type:"integer"`
  7426  
  7427  	// The way that you want DNS Firewall to block the request, used with the rule
  7428  	// action setting BLOCK.
  7429  	//
  7430  	//    * NODATA - Respond indicating that the query was successful, but no response
  7431  	//    is available for it.
  7432  	//
  7433  	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
  7434  	//    doesn't exist.
  7435  	//
  7436  	//    * OVERRIDE - Provide a custom override in the response. This option requires
  7437  	//    custom handling details in the rule's BlockOverride* settings.
  7438  	//
  7439  	// This setting is required if the rule action setting is BLOCK.
  7440  	BlockResponse *string `type:"string" enum:"BlockResponse"`
  7441  
  7442  	// A unique string that identifies the request and that allows you to retry
  7443  	// failed requests without the risk of running the operation twice. CreatorRequestId
  7444  	// can be any unique string, for example, a date/time stamp.
  7445  	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
  7446  
  7447  	// The ID of the domain list that you want to use in the rule.
  7448  	//
  7449  	// FirewallDomainListId is a required field
  7450  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
  7451  
  7452  	// The unique identifier of the firewall rule group where you want to create
  7453  	// the rule.
  7454  	//
  7455  	// FirewallRuleGroupId is a required field
  7456  	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
  7457  
  7458  	// A name that lets you identify the rule in the rule group.
  7459  	//
  7460  	// Name is a required field
  7461  	Name *string `type:"string" required:"true"`
  7462  
  7463  	// The setting that determines the processing order of the rule in the rule
  7464  	// group. DNS Firewall processes the rules in a rule group by order of priority,
  7465  	// starting from the lowest setting.
  7466  	//
  7467  	// You must specify a unique priority for each rule in a rule group. To make
  7468  	// it easier to insert rules later, leave space between the numbers, for example,
  7469  	// use 100, 200, and so on. You can change the priority setting for the rules
  7470  	// in a rule group at any time.
  7471  	//
  7472  	// Priority is a required field
  7473  	Priority *int64 `type:"integer" required:"true"`
  7474  }
  7475  
  7476  // String returns the string representation.
  7477  //
  7478  // API parameter values that are decorated as "sensitive" in the API will not
  7479  // be included in the string output. The member name will be present, but the
  7480  // value will be replaced with "sensitive".
  7481  func (s CreateFirewallRuleInput) String() string {
  7482  	return awsutil.Prettify(s)
  7483  }
  7484  
  7485  // GoString returns the string representation.
  7486  //
  7487  // API parameter values that are decorated as "sensitive" in the API will not
  7488  // be included in the string output. The member name will be present, but the
  7489  // value will be replaced with "sensitive".
  7490  func (s CreateFirewallRuleInput) GoString() string {
  7491  	return s.String()
  7492  }
  7493  
  7494  // Validate inspects the fields of the type to determine if they are valid.
  7495  func (s *CreateFirewallRuleInput) Validate() error {
  7496  	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallRuleInput"}
  7497  	if s.Action == nil {
  7498  		invalidParams.Add(request.NewErrParamRequired("Action"))
  7499  	}
  7500  	if s.BlockOverrideDomain != nil && len(*s.BlockOverrideDomain) < 1 {
  7501  		invalidParams.Add(request.NewErrParamMinLen("BlockOverrideDomain", 1))
  7502  	}
  7503  	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
  7504  		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
  7505  	}
  7506  	if s.FirewallDomainListId == nil {
  7507  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
  7508  	}
  7509  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
  7510  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
  7511  	}
  7512  	if s.FirewallRuleGroupId == nil {
  7513  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
  7514  	}
  7515  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
  7516  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
  7517  	}
  7518  	if s.Name == nil {
  7519  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7520  	}
  7521  	if s.Priority == nil {
  7522  		invalidParams.Add(request.NewErrParamRequired("Priority"))
  7523  	}
  7524  
  7525  	if invalidParams.Len() > 0 {
  7526  		return invalidParams
  7527  	}
  7528  	return nil
  7529  }
  7530  
  7531  // SetAction sets the Action field's value.
  7532  func (s *CreateFirewallRuleInput) SetAction(v string) *CreateFirewallRuleInput {
  7533  	s.Action = &v
  7534  	return s
  7535  }
  7536  
  7537  // SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
  7538  func (s *CreateFirewallRuleInput) SetBlockOverrideDnsType(v string) *CreateFirewallRuleInput {
  7539  	s.BlockOverrideDnsType = &v
  7540  	return s
  7541  }
  7542  
  7543  // SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
  7544  func (s *CreateFirewallRuleInput) SetBlockOverrideDomain(v string) *CreateFirewallRuleInput {
  7545  	s.BlockOverrideDomain = &v
  7546  	return s
  7547  }
  7548  
  7549  // SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
  7550  func (s *CreateFirewallRuleInput) SetBlockOverrideTtl(v int64) *CreateFirewallRuleInput {
  7551  	s.BlockOverrideTtl = &v
  7552  	return s
  7553  }
  7554  
  7555  // SetBlockResponse sets the BlockResponse field's value.
  7556  func (s *CreateFirewallRuleInput) SetBlockResponse(v string) *CreateFirewallRuleInput {
  7557  	s.BlockResponse = &v
  7558  	return s
  7559  }
  7560  
  7561  // SetCreatorRequestId sets the CreatorRequestId field's value.
  7562  func (s *CreateFirewallRuleInput) SetCreatorRequestId(v string) *CreateFirewallRuleInput {
  7563  	s.CreatorRequestId = &v
  7564  	return s
  7565  }
  7566  
  7567  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
  7568  func (s *CreateFirewallRuleInput) SetFirewallDomainListId(v string) *CreateFirewallRuleInput {
  7569  	s.FirewallDomainListId = &v
  7570  	return s
  7571  }
  7572  
  7573  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
  7574  func (s *CreateFirewallRuleInput) SetFirewallRuleGroupId(v string) *CreateFirewallRuleInput {
  7575  	s.FirewallRuleGroupId = &v
  7576  	return s
  7577  }
  7578  
  7579  // SetName sets the Name field's value.
  7580  func (s *CreateFirewallRuleInput) SetName(v string) *CreateFirewallRuleInput {
  7581  	s.Name = &v
  7582  	return s
  7583  }
  7584  
  7585  // SetPriority sets the Priority field's value.
  7586  func (s *CreateFirewallRuleInput) SetPriority(v int64) *CreateFirewallRuleInput {
  7587  	s.Priority = &v
  7588  	return s
  7589  }
  7590  
  7591  type CreateFirewallRuleOutput struct {
  7592  	_ struct{} `type:"structure"`
  7593  
  7594  	// The firewall rule that you just created.
  7595  	FirewallRule *FirewallRule `type:"structure"`
  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 CreateFirewallRuleOutput) 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 CreateFirewallRuleOutput) GoString() string {
  7613  	return s.String()
  7614  }
  7615  
  7616  // SetFirewallRule sets the FirewallRule field's value.
  7617  func (s *CreateFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *CreateFirewallRuleOutput {
  7618  	s.FirewallRule = v
  7619  	return s
  7620  }
  7621  
  7622  type CreateResolverEndpointInput struct {
  7623  	_ struct{} `type:"structure"`
  7624  
  7625  	// A unique string that identifies the request and that allows failed requests
  7626  	// to be retried without the risk of running the operation twice. CreatorRequestId
  7627  	// can be any unique string, for example, a date/time stamp.
  7628  	//
  7629  	// CreatorRequestId is a required field
  7630  	CreatorRequestId *string `min:"1" type:"string" required:"true"`
  7631  
  7632  	// Specify the applicable value:
  7633  	//
  7634  	//    * INBOUND: Resolver forwards DNS queries to the DNS service for a VPC
  7635  	//    from your network
  7636  	//
  7637  	//    * OUTBOUND: Resolver forwards DNS queries from the DNS service for a VPC
  7638  	//    to your network
  7639  	//
  7640  	// Direction is a required field
  7641  	Direction *string `type:"string" required:"true" enum:"ResolverEndpointDirection"`
  7642  
  7643  	// The subnets and IP addresses in your VPC that DNS queries originate from
  7644  	// (for outbound endpoints) or that you forward DNS queries to (for inbound
  7645  	// endpoints). The subnet ID uniquely identifies a VPC.
  7646  	//
  7647  	// IpAddresses is a required field
  7648  	IpAddresses []*IpAddressRequest `min:"1" type:"list" required:"true"`
  7649  
  7650  	// A friendly name that lets you easily find a configuration in the Resolver
  7651  	// dashboard in the Route 53 console.
  7652  	Name *string `type:"string"`
  7653  
  7654  	// The ID of one or more security groups that you want to use to control access
  7655  	// to this VPC. The security group that you specify must include one or more
  7656  	// inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound
  7657  	// Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access.
  7658  	// For inbound access, open port 53. For outbound access, open the port that
  7659  	// you're using for DNS queries on your network.
  7660  	//
  7661  	// SecurityGroupIds is a required field
  7662  	SecurityGroupIds []*string `type:"list" required:"true"`
  7663  
  7664  	// A list of the tag keys and values that you want to associate with the endpoint.
  7665  	Tags []*Tag `type:"list"`
  7666  }
  7667  
  7668  // String returns the string representation.
  7669  //
  7670  // API parameter values that are decorated as "sensitive" in the API will not
  7671  // be included in the string output. The member name will be present, but the
  7672  // value will be replaced with "sensitive".
  7673  func (s CreateResolverEndpointInput) String() string {
  7674  	return awsutil.Prettify(s)
  7675  }
  7676  
  7677  // GoString returns the string representation.
  7678  //
  7679  // API parameter values that are decorated as "sensitive" in the API will not
  7680  // be included in the string output. The member name will be present, but the
  7681  // value will be replaced with "sensitive".
  7682  func (s CreateResolverEndpointInput) GoString() string {
  7683  	return s.String()
  7684  }
  7685  
  7686  // Validate inspects the fields of the type to determine if they are valid.
  7687  func (s *CreateResolverEndpointInput) Validate() error {
  7688  	invalidParams := request.ErrInvalidParams{Context: "CreateResolverEndpointInput"}
  7689  	if s.CreatorRequestId == nil {
  7690  		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
  7691  	}
  7692  	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
  7693  		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
  7694  	}
  7695  	if s.Direction == nil {
  7696  		invalidParams.Add(request.NewErrParamRequired("Direction"))
  7697  	}
  7698  	if s.IpAddresses == nil {
  7699  		invalidParams.Add(request.NewErrParamRequired("IpAddresses"))
  7700  	}
  7701  	if s.IpAddresses != nil && len(s.IpAddresses) < 1 {
  7702  		invalidParams.Add(request.NewErrParamMinLen("IpAddresses", 1))
  7703  	}
  7704  	if s.SecurityGroupIds == nil {
  7705  		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
  7706  	}
  7707  	if s.IpAddresses != nil {
  7708  		for i, v := range s.IpAddresses {
  7709  			if v == nil {
  7710  				continue
  7711  			}
  7712  			if err := v.Validate(); err != nil {
  7713  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IpAddresses", i), err.(request.ErrInvalidParams))
  7714  			}
  7715  		}
  7716  	}
  7717  	if s.Tags != nil {
  7718  		for i, v := range s.Tags {
  7719  			if v == nil {
  7720  				continue
  7721  			}
  7722  			if err := v.Validate(); err != nil {
  7723  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7724  			}
  7725  		}
  7726  	}
  7727  
  7728  	if invalidParams.Len() > 0 {
  7729  		return invalidParams
  7730  	}
  7731  	return nil
  7732  }
  7733  
  7734  // SetCreatorRequestId sets the CreatorRequestId field's value.
  7735  func (s *CreateResolverEndpointInput) SetCreatorRequestId(v string) *CreateResolverEndpointInput {
  7736  	s.CreatorRequestId = &v
  7737  	return s
  7738  }
  7739  
  7740  // SetDirection sets the Direction field's value.
  7741  func (s *CreateResolverEndpointInput) SetDirection(v string) *CreateResolverEndpointInput {
  7742  	s.Direction = &v
  7743  	return s
  7744  }
  7745  
  7746  // SetIpAddresses sets the IpAddresses field's value.
  7747  func (s *CreateResolverEndpointInput) SetIpAddresses(v []*IpAddressRequest) *CreateResolverEndpointInput {
  7748  	s.IpAddresses = v
  7749  	return s
  7750  }
  7751  
  7752  // SetName sets the Name field's value.
  7753  func (s *CreateResolverEndpointInput) SetName(v string) *CreateResolverEndpointInput {
  7754  	s.Name = &v
  7755  	return s
  7756  }
  7757  
  7758  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
  7759  func (s *CreateResolverEndpointInput) SetSecurityGroupIds(v []*string) *CreateResolverEndpointInput {
  7760  	s.SecurityGroupIds = v
  7761  	return s
  7762  }
  7763  
  7764  // SetTags sets the Tags field's value.
  7765  func (s *CreateResolverEndpointInput) SetTags(v []*Tag) *CreateResolverEndpointInput {
  7766  	s.Tags = v
  7767  	return s
  7768  }
  7769  
  7770  type CreateResolverEndpointOutput struct {
  7771  	_ struct{} `type:"structure"`
  7772  
  7773  	// Information about the CreateResolverEndpoint request, including the status
  7774  	// of the request.
  7775  	ResolverEndpoint *ResolverEndpoint `type:"structure"`
  7776  }
  7777  
  7778  // String returns the string representation.
  7779  //
  7780  // API parameter values that are decorated as "sensitive" in the API will not
  7781  // be included in the string output. The member name will be present, but the
  7782  // value will be replaced with "sensitive".
  7783  func (s CreateResolverEndpointOutput) String() string {
  7784  	return awsutil.Prettify(s)
  7785  }
  7786  
  7787  // GoString returns the string representation.
  7788  //
  7789  // API parameter values that are decorated as "sensitive" in the API will not
  7790  // be included in the string output. The member name will be present, but the
  7791  // value will be replaced with "sensitive".
  7792  func (s CreateResolverEndpointOutput) GoString() string {
  7793  	return s.String()
  7794  }
  7795  
  7796  // SetResolverEndpoint sets the ResolverEndpoint field's value.
  7797  func (s *CreateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *CreateResolverEndpointOutput {
  7798  	s.ResolverEndpoint = v
  7799  	return s
  7800  }
  7801  
  7802  type CreateResolverQueryLogConfigInput struct {
  7803  	_ struct{} `type:"structure"`
  7804  
  7805  	// A unique string that identifies the request and that allows failed requests
  7806  	// to be retried without the risk of running the operation twice. CreatorRequestId
  7807  	// can be any unique string, for example, a date/time stamp.
  7808  	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
  7809  
  7810  	// The ARN of the resource that you want Resolver to send query logs. You can
  7811  	// send query logs to an S3 bucket, a CloudWatch Logs log group, or a Kinesis
  7812  	// Data Firehose delivery stream. Examples of valid values include the following:
  7813  	//
  7814  	//    * S3 bucket: arn:aws:s3:::examplebucket You can optionally append a file
  7815  	//    prefix to the end of the ARN. arn:aws:s3:::examplebucket/development/
  7816  	//
  7817  	//    * CloudWatch Logs log group: arn:aws:logs:us-west-1:123456789012:log-group:/mystack-testgroup-12ABC1AB12A1:*
  7818  	//
  7819  	//    * Kinesis Data Firehose delivery stream: arn:aws:kinesis:us-east-2:0123456789:stream/my_stream_name
  7820  	//
  7821  	// DestinationArn is a required field
  7822  	DestinationArn *string `min:"1" type:"string" required:"true"`
  7823  
  7824  	// The name that you want to give the query logging configuration.
  7825  	//
  7826  	// Name is a required field
  7827  	Name *string `min:"1" type:"string" required:"true"`
  7828  
  7829  	// A list of the tag keys and values that you want to associate with the query
  7830  	// logging configuration.
  7831  	Tags []*Tag `type:"list"`
  7832  }
  7833  
  7834  // String returns the string representation.
  7835  //
  7836  // API parameter values that are decorated as "sensitive" in the API will not
  7837  // be included in the string output. The member name will be present, but the
  7838  // value will be replaced with "sensitive".
  7839  func (s CreateResolverQueryLogConfigInput) String() string {
  7840  	return awsutil.Prettify(s)
  7841  }
  7842  
  7843  // GoString returns the string representation.
  7844  //
  7845  // API parameter values that are decorated as "sensitive" in the API will not
  7846  // be included in the string output. The member name will be present, but the
  7847  // value will be replaced with "sensitive".
  7848  func (s CreateResolverQueryLogConfigInput) GoString() string {
  7849  	return s.String()
  7850  }
  7851  
  7852  // Validate inspects the fields of the type to determine if they are valid.
  7853  func (s *CreateResolverQueryLogConfigInput) Validate() error {
  7854  	invalidParams := request.ErrInvalidParams{Context: "CreateResolverQueryLogConfigInput"}
  7855  	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
  7856  		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
  7857  	}
  7858  	if s.DestinationArn == nil {
  7859  		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
  7860  	}
  7861  	if s.DestinationArn != nil && len(*s.DestinationArn) < 1 {
  7862  		invalidParams.Add(request.NewErrParamMinLen("DestinationArn", 1))
  7863  	}
  7864  	if s.Name == nil {
  7865  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7866  	}
  7867  	if s.Name != nil && len(*s.Name) < 1 {
  7868  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7869  	}
  7870  	if s.Tags != nil {
  7871  		for i, v := range s.Tags {
  7872  			if v == nil {
  7873  				continue
  7874  			}
  7875  			if err := v.Validate(); err != nil {
  7876  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7877  			}
  7878  		}
  7879  	}
  7880  
  7881  	if invalidParams.Len() > 0 {
  7882  		return invalidParams
  7883  	}
  7884  	return nil
  7885  }
  7886  
  7887  // SetCreatorRequestId sets the CreatorRequestId field's value.
  7888  func (s *CreateResolverQueryLogConfigInput) SetCreatorRequestId(v string) *CreateResolverQueryLogConfigInput {
  7889  	s.CreatorRequestId = &v
  7890  	return s
  7891  }
  7892  
  7893  // SetDestinationArn sets the DestinationArn field's value.
  7894  func (s *CreateResolverQueryLogConfigInput) SetDestinationArn(v string) *CreateResolverQueryLogConfigInput {
  7895  	s.DestinationArn = &v
  7896  	return s
  7897  }
  7898  
  7899  // SetName sets the Name field's value.
  7900  func (s *CreateResolverQueryLogConfigInput) SetName(v string) *CreateResolverQueryLogConfigInput {
  7901  	s.Name = &v
  7902  	return s
  7903  }
  7904  
  7905  // SetTags sets the Tags field's value.
  7906  func (s *CreateResolverQueryLogConfigInput) SetTags(v []*Tag) *CreateResolverQueryLogConfigInput {
  7907  	s.Tags = v
  7908  	return s
  7909  }
  7910  
  7911  type CreateResolverQueryLogConfigOutput struct {
  7912  	_ struct{} `type:"structure"`
  7913  
  7914  	// Information about the CreateResolverQueryLogConfig request, including the
  7915  	// status of the request.
  7916  	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
  7917  }
  7918  
  7919  // String returns the string representation.
  7920  //
  7921  // API parameter values that are decorated as "sensitive" in the API will not
  7922  // be included in the string output. The member name will be present, but the
  7923  // value will be replaced with "sensitive".
  7924  func (s CreateResolverQueryLogConfigOutput) String() string {
  7925  	return awsutil.Prettify(s)
  7926  }
  7927  
  7928  // GoString returns the string representation.
  7929  //
  7930  // API parameter values that are decorated as "sensitive" in the API will not
  7931  // be included in the string output. The member name will be present, but the
  7932  // value will be replaced with "sensitive".
  7933  func (s CreateResolverQueryLogConfigOutput) GoString() string {
  7934  	return s.String()
  7935  }
  7936  
  7937  // SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
  7938  func (s *CreateResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *CreateResolverQueryLogConfigOutput {
  7939  	s.ResolverQueryLogConfig = v
  7940  	return s
  7941  }
  7942  
  7943  type CreateResolverRuleInput struct {
  7944  	_ struct{} `type:"structure"`
  7945  
  7946  	// A unique string that identifies the request and that allows failed requests
  7947  	// to be retried without the risk of running the operation twice. CreatorRequestId
  7948  	// can be any unique string, for example, a date/time stamp.
  7949  	//
  7950  	// CreatorRequestId is a required field
  7951  	CreatorRequestId *string `min:"1" type:"string" required:"true"`
  7952  
  7953  	// DNS queries for this domain name are forwarded to the IP addresses that you
  7954  	// specify in TargetIps. If a query matches multiple Resolver rules (example.com
  7955  	// and www.example.com), outbound DNS queries are routed using the Resolver
  7956  	// rule that contains the most specific domain name (www.example.com).
  7957  	//
  7958  	// DomainName is a required field
  7959  	DomainName *string `min:"1" type:"string" required:"true"`
  7960  
  7961  	// A friendly name that lets you easily find a rule in the Resolver dashboard
  7962  	// in the Route 53 console.
  7963  	Name *string `type:"string"`
  7964  
  7965  	// The ID of the outbound Resolver endpoint that you want to use to route DNS
  7966  	// queries to the IP addresses that you specify in TargetIps.
  7967  	ResolverEndpointId *string `min:"1" type:"string"`
  7968  
  7969  	// When you want to forward DNS queries for specified domain name to resolvers
  7970  	// on your network, specify FORWARD.
  7971  	//
  7972  	// When you have a forwarding rule to forward DNS queries for a domain to your
  7973  	// network and you want Resolver to process queries for a subdomain of that
  7974  	// domain, specify SYSTEM.
  7975  	//
  7976  	// For example, to forward DNS queries for example.com to resolvers on your
  7977  	// network, you create a rule and specify FORWARD for RuleType. To then have
  7978  	// Resolver process queries for apex.example.com, you create a rule and specify
  7979  	// SYSTEM for RuleType.
  7980  	//
  7981  	// Currently, only Resolver can create rules that have a value of RECURSIVE
  7982  	// for RuleType.
  7983  	//
  7984  	// RuleType is a required field
  7985  	RuleType *string `type:"string" required:"true" enum:"RuleTypeOption"`
  7986  
  7987  	// A list of the tag keys and values that you want to associate with the endpoint.
  7988  	Tags []*Tag `type:"list"`
  7989  
  7990  	// The IPs that you want Resolver to forward DNS queries to. You can specify
  7991  	// only IPv4 addresses. Separate IP addresses with a space.
  7992  	//
  7993  	// TargetIps is available only when the value of Rule type is FORWARD.
  7994  	TargetIps []*TargetAddress `min:"1" type:"list"`
  7995  }
  7996  
  7997  // String returns the string representation.
  7998  //
  7999  // API parameter values that are decorated as "sensitive" in the API will not
  8000  // be included in the string output. The member name will be present, but the
  8001  // value will be replaced with "sensitive".
  8002  func (s CreateResolverRuleInput) String() string {
  8003  	return awsutil.Prettify(s)
  8004  }
  8005  
  8006  // GoString returns the string representation.
  8007  //
  8008  // API parameter values that are decorated as "sensitive" in the API will not
  8009  // be included in the string output. The member name will be present, but the
  8010  // value will be replaced with "sensitive".
  8011  func (s CreateResolverRuleInput) GoString() string {
  8012  	return s.String()
  8013  }
  8014  
  8015  // Validate inspects the fields of the type to determine if they are valid.
  8016  func (s *CreateResolverRuleInput) Validate() error {
  8017  	invalidParams := request.ErrInvalidParams{Context: "CreateResolverRuleInput"}
  8018  	if s.CreatorRequestId == nil {
  8019  		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
  8020  	}
  8021  	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
  8022  		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
  8023  	}
  8024  	if s.DomainName == nil {
  8025  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  8026  	}
  8027  	if s.DomainName != nil && len(*s.DomainName) < 1 {
  8028  		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
  8029  	}
  8030  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
  8031  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
  8032  	}
  8033  	if s.RuleType == nil {
  8034  		invalidParams.Add(request.NewErrParamRequired("RuleType"))
  8035  	}
  8036  	if s.TargetIps != nil && len(s.TargetIps) < 1 {
  8037  		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
  8038  	}
  8039  	if s.Tags != nil {
  8040  		for i, v := range s.Tags {
  8041  			if v == nil {
  8042  				continue
  8043  			}
  8044  			if err := v.Validate(); err != nil {
  8045  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8046  			}
  8047  		}
  8048  	}
  8049  	if s.TargetIps != nil {
  8050  		for i, v := range s.TargetIps {
  8051  			if v == nil {
  8052  				continue
  8053  			}
  8054  			if err := v.Validate(); err != nil {
  8055  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
  8056  			}
  8057  		}
  8058  	}
  8059  
  8060  	if invalidParams.Len() > 0 {
  8061  		return invalidParams
  8062  	}
  8063  	return nil
  8064  }
  8065  
  8066  // SetCreatorRequestId sets the CreatorRequestId field's value.
  8067  func (s *CreateResolverRuleInput) SetCreatorRequestId(v string) *CreateResolverRuleInput {
  8068  	s.CreatorRequestId = &v
  8069  	return s
  8070  }
  8071  
  8072  // SetDomainName sets the DomainName field's value.
  8073  func (s *CreateResolverRuleInput) SetDomainName(v string) *CreateResolverRuleInput {
  8074  	s.DomainName = &v
  8075  	return s
  8076  }
  8077  
  8078  // SetName sets the Name field's value.
  8079  func (s *CreateResolverRuleInput) SetName(v string) *CreateResolverRuleInput {
  8080  	s.Name = &v
  8081  	return s
  8082  }
  8083  
  8084  // SetResolverEndpointId sets the ResolverEndpointId field's value.
  8085  func (s *CreateResolverRuleInput) SetResolverEndpointId(v string) *CreateResolverRuleInput {
  8086  	s.ResolverEndpointId = &v
  8087  	return s
  8088  }
  8089  
  8090  // SetRuleType sets the RuleType field's value.
  8091  func (s *CreateResolverRuleInput) SetRuleType(v string) *CreateResolverRuleInput {
  8092  	s.RuleType = &v
  8093  	return s
  8094  }
  8095  
  8096  // SetTags sets the Tags field's value.
  8097  func (s *CreateResolverRuleInput) SetTags(v []*Tag) *CreateResolverRuleInput {
  8098  	s.Tags = v
  8099  	return s
  8100  }
  8101  
  8102  // SetTargetIps sets the TargetIps field's value.
  8103  func (s *CreateResolverRuleInput) SetTargetIps(v []*TargetAddress) *CreateResolverRuleInput {
  8104  	s.TargetIps = v
  8105  	return s
  8106  }
  8107  
  8108  type CreateResolverRuleOutput struct {
  8109  	_ struct{} `type:"structure"`
  8110  
  8111  	// Information about the CreateResolverRule request, including the status of
  8112  	// the request.
  8113  	ResolverRule *ResolverRule `type:"structure"`
  8114  }
  8115  
  8116  // String returns the string representation.
  8117  //
  8118  // API parameter values that are decorated as "sensitive" in the API will not
  8119  // be included in the string output. The member name will be present, but the
  8120  // value will be replaced with "sensitive".
  8121  func (s CreateResolverRuleOutput) String() string {
  8122  	return awsutil.Prettify(s)
  8123  }
  8124  
  8125  // GoString returns the string representation.
  8126  //
  8127  // API parameter values that are decorated as "sensitive" in the API will not
  8128  // be included in the string output. The member name will be present, but the
  8129  // value will be replaced with "sensitive".
  8130  func (s CreateResolverRuleOutput) GoString() string {
  8131  	return s.String()
  8132  }
  8133  
  8134  // SetResolverRule sets the ResolverRule field's value.
  8135  func (s *CreateResolverRuleOutput) SetResolverRule(v *ResolverRule) *CreateResolverRuleOutput {
  8136  	s.ResolverRule = v
  8137  	return s
  8138  }
  8139  
  8140  type DeleteFirewallDomainListInput struct {
  8141  	_ struct{} `type:"structure"`
  8142  
  8143  	// The ID of the domain list that you want to delete.
  8144  	//
  8145  	// FirewallDomainListId is a required field
  8146  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
  8147  }
  8148  
  8149  // String returns the string representation.
  8150  //
  8151  // API parameter values that are decorated as "sensitive" in the API will not
  8152  // be included in the string output. The member name will be present, but the
  8153  // value will be replaced with "sensitive".
  8154  func (s DeleteFirewallDomainListInput) String() string {
  8155  	return awsutil.Prettify(s)
  8156  }
  8157  
  8158  // GoString returns the string representation.
  8159  //
  8160  // API parameter values that are decorated as "sensitive" in the API will not
  8161  // be included in the string output. The member name will be present, but the
  8162  // value will be replaced with "sensitive".
  8163  func (s DeleteFirewallDomainListInput) GoString() string {
  8164  	return s.String()
  8165  }
  8166  
  8167  // Validate inspects the fields of the type to determine if they are valid.
  8168  func (s *DeleteFirewallDomainListInput) Validate() error {
  8169  	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallDomainListInput"}
  8170  	if s.FirewallDomainListId == nil {
  8171  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
  8172  	}
  8173  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
  8174  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
  8175  	}
  8176  
  8177  	if invalidParams.Len() > 0 {
  8178  		return invalidParams
  8179  	}
  8180  	return nil
  8181  }
  8182  
  8183  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
  8184  func (s *DeleteFirewallDomainListInput) SetFirewallDomainListId(v string) *DeleteFirewallDomainListInput {
  8185  	s.FirewallDomainListId = &v
  8186  	return s
  8187  }
  8188  
  8189  type DeleteFirewallDomainListOutput struct {
  8190  	_ struct{} `type:"structure"`
  8191  
  8192  	// The domain list that you just deleted.
  8193  	FirewallDomainList *FirewallDomainList `type:"structure"`
  8194  }
  8195  
  8196  // String returns the string representation.
  8197  //
  8198  // API parameter values that are decorated as "sensitive" in the API will not
  8199  // be included in the string output. The member name will be present, but the
  8200  // value will be replaced with "sensitive".
  8201  func (s DeleteFirewallDomainListOutput) String() string {
  8202  	return awsutil.Prettify(s)
  8203  }
  8204  
  8205  // GoString returns the string representation.
  8206  //
  8207  // API parameter values that are decorated as "sensitive" in the API will not
  8208  // be included in the string output. The member name will be present, but the
  8209  // value will be replaced with "sensitive".
  8210  func (s DeleteFirewallDomainListOutput) GoString() string {
  8211  	return s.String()
  8212  }
  8213  
  8214  // SetFirewallDomainList sets the FirewallDomainList field's value.
  8215  func (s *DeleteFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *DeleteFirewallDomainListOutput {
  8216  	s.FirewallDomainList = v
  8217  	return s
  8218  }
  8219  
  8220  type DeleteFirewallRuleGroupInput struct {
  8221  	_ struct{} `type:"structure"`
  8222  
  8223  	// The unique identifier of the firewall rule group that you want to delete.
  8224  	//
  8225  	// FirewallRuleGroupId is a required field
  8226  	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
  8227  }
  8228  
  8229  // String returns the string representation.
  8230  //
  8231  // API parameter values that are decorated as "sensitive" in the API will not
  8232  // be included in the string output. The member name will be present, but the
  8233  // value will be replaced with "sensitive".
  8234  func (s DeleteFirewallRuleGroupInput) String() string {
  8235  	return awsutil.Prettify(s)
  8236  }
  8237  
  8238  // GoString returns the string representation.
  8239  //
  8240  // API parameter values that are decorated as "sensitive" in the API will not
  8241  // be included in the string output. The member name will be present, but the
  8242  // value will be replaced with "sensitive".
  8243  func (s DeleteFirewallRuleGroupInput) GoString() string {
  8244  	return s.String()
  8245  }
  8246  
  8247  // Validate inspects the fields of the type to determine if they are valid.
  8248  func (s *DeleteFirewallRuleGroupInput) Validate() error {
  8249  	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallRuleGroupInput"}
  8250  	if s.FirewallRuleGroupId == nil {
  8251  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
  8252  	}
  8253  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
  8254  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
  8255  	}
  8256  
  8257  	if invalidParams.Len() > 0 {
  8258  		return invalidParams
  8259  	}
  8260  	return nil
  8261  }
  8262  
  8263  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
  8264  func (s *DeleteFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *DeleteFirewallRuleGroupInput {
  8265  	s.FirewallRuleGroupId = &v
  8266  	return s
  8267  }
  8268  
  8269  type DeleteFirewallRuleGroupOutput struct {
  8270  	_ struct{} `type:"structure"`
  8271  
  8272  	// A collection of rules used to filter DNS network traffic.
  8273  	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
  8274  }
  8275  
  8276  // String returns the string representation.
  8277  //
  8278  // API parameter values that are decorated as "sensitive" in the API will not
  8279  // be included in the string output. The member name will be present, but the
  8280  // value will be replaced with "sensitive".
  8281  func (s DeleteFirewallRuleGroupOutput) String() string {
  8282  	return awsutil.Prettify(s)
  8283  }
  8284  
  8285  // GoString returns the string representation.
  8286  //
  8287  // API parameter values that are decorated as "sensitive" in the API will not
  8288  // be included in the string output. The member name will be present, but the
  8289  // value will be replaced with "sensitive".
  8290  func (s DeleteFirewallRuleGroupOutput) GoString() string {
  8291  	return s.String()
  8292  }
  8293  
  8294  // SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
  8295  func (s *DeleteFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *DeleteFirewallRuleGroupOutput {
  8296  	s.FirewallRuleGroup = v
  8297  	return s
  8298  }
  8299  
  8300  type DeleteFirewallRuleInput struct {
  8301  	_ struct{} `type:"structure"`
  8302  
  8303  	// The ID of the domain list that's used in the rule.
  8304  	//
  8305  	// FirewallDomainListId is a required field
  8306  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
  8307  
  8308  	// The unique identifier of the firewall rule group that you want to delete
  8309  	// the rule from.
  8310  	//
  8311  	// FirewallRuleGroupId is a required field
  8312  	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
  8313  }
  8314  
  8315  // String returns the string representation.
  8316  //
  8317  // API parameter values that are decorated as "sensitive" in the API will not
  8318  // be included in the string output. The member name will be present, but the
  8319  // value will be replaced with "sensitive".
  8320  func (s DeleteFirewallRuleInput) String() string {
  8321  	return awsutil.Prettify(s)
  8322  }
  8323  
  8324  // GoString returns the string representation.
  8325  //
  8326  // API parameter values that are decorated as "sensitive" in the API will not
  8327  // be included in the string output. The member name will be present, but the
  8328  // value will be replaced with "sensitive".
  8329  func (s DeleteFirewallRuleInput) GoString() string {
  8330  	return s.String()
  8331  }
  8332  
  8333  // Validate inspects the fields of the type to determine if they are valid.
  8334  func (s *DeleteFirewallRuleInput) Validate() error {
  8335  	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallRuleInput"}
  8336  	if s.FirewallDomainListId == nil {
  8337  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
  8338  	}
  8339  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
  8340  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
  8341  	}
  8342  	if s.FirewallRuleGroupId == nil {
  8343  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
  8344  	}
  8345  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
  8346  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
  8347  	}
  8348  
  8349  	if invalidParams.Len() > 0 {
  8350  		return invalidParams
  8351  	}
  8352  	return nil
  8353  }
  8354  
  8355  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
  8356  func (s *DeleteFirewallRuleInput) SetFirewallDomainListId(v string) *DeleteFirewallRuleInput {
  8357  	s.FirewallDomainListId = &v
  8358  	return s
  8359  }
  8360  
  8361  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
  8362  func (s *DeleteFirewallRuleInput) SetFirewallRuleGroupId(v string) *DeleteFirewallRuleInput {
  8363  	s.FirewallRuleGroupId = &v
  8364  	return s
  8365  }
  8366  
  8367  type DeleteFirewallRuleOutput struct {
  8368  	_ struct{} `type:"structure"`
  8369  
  8370  	// The specification for the firewall rule that you just deleted.
  8371  	FirewallRule *FirewallRule `type:"structure"`
  8372  }
  8373  
  8374  // String returns the string representation.
  8375  //
  8376  // API parameter values that are decorated as "sensitive" in the API will not
  8377  // be included in the string output. The member name will be present, but the
  8378  // value will be replaced with "sensitive".
  8379  func (s DeleteFirewallRuleOutput) String() string {
  8380  	return awsutil.Prettify(s)
  8381  }
  8382  
  8383  // GoString returns the string representation.
  8384  //
  8385  // API parameter values that are decorated as "sensitive" in the API will not
  8386  // be included in the string output. The member name will be present, but the
  8387  // value will be replaced with "sensitive".
  8388  func (s DeleteFirewallRuleOutput) GoString() string {
  8389  	return s.String()
  8390  }
  8391  
  8392  // SetFirewallRule sets the FirewallRule field's value.
  8393  func (s *DeleteFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *DeleteFirewallRuleOutput {
  8394  	s.FirewallRule = v
  8395  	return s
  8396  }
  8397  
  8398  type DeleteResolverEndpointInput struct {
  8399  	_ struct{} `type:"structure"`
  8400  
  8401  	// The ID of the Resolver endpoint that you want to delete.
  8402  	//
  8403  	// ResolverEndpointId is a required field
  8404  	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
  8405  }
  8406  
  8407  // String returns the string representation.
  8408  //
  8409  // API parameter values that are decorated as "sensitive" in the API will not
  8410  // be included in the string output. The member name will be present, but the
  8411  // value will be replaced with "sensitive".
  8412  func (s DeleteResolverEndpointInput) String() string {
  8413  	return awsutil.Prettify(s)
  8414  }
  8415  
  8416  // GoString returns the string representation.
  8417  //
  8418  // API parameter values that are decorated as "sensitive" in the API will not
  8419  // be included in the string output. The member name will be present, but the
  8420  // value will be replaced with "sensitive".
  8421  func (s DeleteResolverEndpointInput) GoString() string {
  8422  	return s.String()
  8423  }
  8424  
  8425  // Validate inspects the fields of the type to determine if they are valid.
  8426  func (s *DeleteResolverEndpointInput) Validate() error {
  8427  	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverEndpointInput"}
  8428  	if s.ResolverEndpointId == nil {
  8429  		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
  8430  	}
  8431  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
  8432  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
  8433  	}
  8434  
  8435  	if invalidParams.Len() > 0 {
  8436  		return invalidParams
  8437  	}
  8438  	return nil
  8439  }
  8440  
  8441  // SetResolverEndpointId sets the ResolverEndpointId field's value.
  8442  func (s *DeleteResolverEndpointInput) SetResolverEndpointId(v string) *DeleteResolverEndpointInput {
  8443  	s.ResolverEndpointId = &v
  8444  	return s
  8445  }
  8446  
  8447  type DeleteResolverEndpointOutput struct {
  8448  	_ struct{} `type:"structure"`
  8449  
  8450  	// Information about the DeleteResolverEndpoint request, including the status
  8451  	// of the request.
  8452  	ResolverEndpoint *ResolverEndpoint `type:"structure"`
  8453  }
  8454  
  8455  // String returns the string representation.
  8456  //
  8457  // API parameter values that are decorated as "sensitive" in the API will not
  8458  // be included in the string output. The member name will be present, but the
  8459  // value will be replaced with "sensitive".
  8460  func (s DeleteResolverEndpointOutput) String() string {
  8461  	return awsutil.Prettify(s)
  8462  }
  8463  
  8464  // GoString returns the string representation.
  8465  //
  8466  // API parameter values that are decorated as "sensitive" in the API will not
  8467  // be included in the string output. The member name will be present, but the
  8468  // value will be replaced with "sensitive".
  8469  func (s DeleteResolverEndpointOutput) GoString() string {
  8470  	return s.String()
  8471  }
  8472  
  8473  // SetResolverEndpoint sets the ResolverEndpoint field's value.
  8474  func (s *DeleteResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *DeleteResolverEndpointOutput {
  8475  	s.ResolverEndpoint = v
  8476  	return s
  8477  }
  8478  
  8479  type DeleteResolverQueryLogConfigInput struct {
  8480  	_ struct{} `type:"structure"`
  8481  
  8482  	// The ID of the query logging configuration that you want to delete.
  8483  	//
  8484  	// ResolverQueryLogConfigId is a required field
  8485  	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
  8486  }
  8487  
  8488  // String returns the string representation.
  8489  //
  8490  // API parameter values that are decorated as "sensitive" in the API will not
  8491  // be included in the string output. The member name will be present, but the
  8492  // value will be replaced with "sensitive".
  8493  func (s DeleteResolverQueryLogConfigInput) String() string {
  8494  	return awsutil.Prettify(s)
  8495  }
  8496  
  8497  // GoString returns the string representation.
  8498  //
  8499  // API parameter values that are decorated as "sensitive" in the API will not
  8500  // be included in the string output. The member name will be present, but the
  8501  // value will be replaced with "sensitive".
  8502  func (s DeleteResolverQueryLogConfigInput) GoString() string {
  8503  	return s.String()
  8504  }
  8505  
  8506  // Validate inspects the fields of the type to determine if they are valid.
  8507  func (s *DeleteResolverQueryLogConfigInput) Validate() error {
  8508  	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverQueryLogConfigInput"}
  8509  	if s.ResolverQueryLogConfigId == nil {
  8510  		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
  8511  	}
  8512  	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
  8513  		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
  8514  	}
  8515  
  8516  	if invalidParams.Len() > 0 {
  8517  		return invalidParams
  8518  	}
  8519  	return nil
  8520  }
  8521  
  8522  // SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
  8523  func (s *DeleteResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DeleteResolverQueryLogConfigInput {
  8524  	s.ResolverQueryLogConfigId = &v
  8525  	return s
  8526  }
  8527  
  8528  type DeleteResolverQueryLogConfigOutput struct {
  8529  	_ struct{} `type:"structure"`
  8530  
  8531  	// Information about the query logging configuration that you deleted, including
  8532  	// the status of the request.
  8533  	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
  8534  }
  8535  
  8536  // String returns the string representation.
  8537  //
  8538  // API parameter values that are decorated as "sensitive" in the API will not
  8539  // be included in the string output. The member name will be present, but the
  8540  // value will be replaced with "sensitive".
  8541  func (s DeleteResolverQueryLogConfigOutput) String() string {
  8542  	return awsutil.Prettify(s)
  8543  }
  8544  
  8545  // GoString returns the string representation.
  8546  //
  8547  // API parameter values that are decorated as "sensitive" in the API will not
  8548  // be included in the string output. The member name will be present, but the
  8549  // value will be replaced with "sensitive".
  8550  func (s DeleteResolverQueryLogConfigOutput) GoString() string {
  8551  	return s.String()
  8552  }
  8553  
  8554  // SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
  8555  func (s *DeleteResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *DeleteResolverQueryLogConfigOutput {
  8556  	s.ResolverQueryLogConfig = v
  8557  	return s
  8558  }
  8559  
  8560  type DeleteResolverRuleInput struct {
  8561  	_ struct{} `type:"structure"`
  8562  
  8563  	// The ID of the Resolver rule that you want to delete.
  8564  	//
  8565  	// ResolverRuleId is a required field
  8566  	ResolverRuleId *string `min:"1" type:"string" required:"true"`
  8567  }
  8568  
  8569  // String returns the string representation.
  8570  //
  8571  // API parameter values that are decorated as "sensitive" in the API will not
  8572  // be included in the string output. The member name will be present, but the
  8573  // value will be replaced with "sensitive".
  8574  func (s DeleteResolverRuleInput) String() string {
  8575  	return awsutil.Prettify(s)
  8576  }
  8577  
  8578  // GoString returns the string representation.
  8579  //
  8580  // API parameter values that are decorated as "sensitive" in the API will not
  8581  // be included in the string output. The member name will be present, but the
  8582  // value will be replaced with "sensitive".
  8583  func (s DeleteResolverRuleInput) GoString() string {
  8584  	return s.String()
  8585  }
  8586  
  8587  // Validate inspects the fields of the type to determine if they are valid.
  8588  func (s *DeleteResolverRuleInput) Validate() error {
  8589  	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverRuleInput"}
  8590  	if s.ResolverRuleId == nil {
  8591  		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
  8592  	}
  8593  	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
  8594  		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
  8595  	}
  8596  
  8597  	if invalidParams.Len() > 0 {
  8598  		return invalidParams
  8599  	}
  8600  	return nil
  8601  }
  8602  
  8603  // SetResolverRuleId sets the ResolverRuleId field's value.
  8604  func (s *DeleteResolverRuleInput) SetResolverRuleId(v string) *DeleteResolverRuleInput {
  8605  	s.ResolverRuleId = &v
  8606  	return s
  8607  }
  8608  
  8609  type DeleteResolverRuleOutput struct {
  8610  	_ struct{} `type:"structure"`
  8611  
  8612  	// Information about the DeleteResolverRule request, including the status of
  8613  	// the request.
  8614  	ResolverRule *ResolverRule `type:"structure"`
  8615  }
  8616  
  8617  // String returns the string representation.
  8618  //
  8619  // API parameter values that are decorated as "sensitive" in the API will not
  8620  // be included in the string output. The member name will be present, but the
  8621  // value will be replaced with "sensitive".
  8622  func (s DeleteResolverRuleOutput) String() string {
  8623  	return awsutil.Prettify(s)
  8624  }
  8625  
  8626  // GoString returns the string representation.
  8627  //
  8628  // API parameter values that are decorated as "sensitive" in the API will not
  8629  // be included in the string output. The member name will be present, but the
  8630  // value will be replaced with "sensitive".
  8631  func (s DeleteResolverRuleOutput) GoString() string {
  8632  	return s.String()
  8633  }
  8634  
  8635  // SetResolverRule sets the ResolverRule field's value.
  8636  func (s *DeleteResolverRuleOutput) SetResolverRule(v *ResolverRule) *DeleteResolverRuleOutput {
  8637  	s.ResolverRule = v
  8638  	return s
  8639  }
  8640  
  8641  type DisassociateFirewallRuleGroupInput struct {
  8642  	_ struct{} `type:"structure"`
  8643  
  8644  	// The identifier of the FirewallRuleGroupAssociation.
  8645  	//
  8646  	// FirewallRuleGroupAssociationId is a required field
  8647  	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
  8648  }
  8649  
  8650  // String returns the string representation.
  8651  //
  8652  // API parameter values that are decorated as "sensitive" in the API will not
  8653  // be included in the string output. The member name will be present, but the
  8654  // value will be replaced with "sensitive".
  8655  func (s DisassociateFirewallRuleGroupInput) String() string {
  8656  	return awsutil.Prettify(s)
  8657  }
  8658  
  8659  // GoString returns the string representation.
  8660  //
  8661  // API parameter values that are decorated as "sensitive" in the API will not
  8662  // be included in the string output. The member name will be present, but the
  8663  // value will be replaced with "sensitive".
  8664  func (s DisassociateFirewallRuleGroupInput) GoString() string {
  8665  	return s.String()
  8666  }
  8667  
  8668  // Validate inspects the fields of the type to determine if they are valid.
  8669  func (s *DisassociateFirewallRuleGroupInput) Validate() error {
  8670  	invalidParams := request.ErrInvalidParams{Context: "DisassociateFirewallRuleGroupInput"}
  8671  	if s.FirewallRuleGroupAssociationId == nil {
  8672  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
  8673  	}
  8674  	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
  8675  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
  8676  	}
  8677  
  8678  	if invalidParams.Len() > 0 {
  8679  		return invalidParams
  8680  	}
  8681  	return nil
  8682  }
  8683  
  8684  // SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
  8685  func (s *DisassociateFirewallRuleGroupInput) SetFirewallRuleGroupAssociationId(v string) *DisassociateFirewallRuleGroupInput {
  8686  	s.FirewallRuleGroupAssociationId = &v
  8687  	return s
  8688  }
  8689  
  8690  type DisassociateFirewallRuleGroupOutput struct {
  8691  	_ struct{} `type:"structure"`
  8692  
  8693  	// The firewall rule group association that you just removed.
  8694  	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
  8695  }
  8696  
  8697  // String returns the string representation.
  8698  //
  8699  // API parameter values that are decorated as "sensitive" in the API will not
  8700  // be included in the string output. The member name will be present, but the
  8701  // value will be replaced with "sensitive".
  8702  func (s DisassociateFirewallRuleGroupOutput) String() string {
  8703  	return awsutil.Prettify(s)
  8704  }
  8705  
  8706  // GoString returns the string representation.
  8707  //
  8708  // API parameter values that are decorated as "sensitive" in the API will not
  8709  // be included in the string output. The member name will be present, but the
  8710  // value will be replaced with "sensitive".
  8711  func (s DisassociateFirewallRuleGroupOutput) GoString() string {
  8712  	return s.String()
  8713  }
  8714  
  8715  // SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
  8716  func (s *DisassociateFirewallRuleGroupOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *DisassociateFirewallRuleGroupOutput {
  8717  	s.FirewallRuleGroupAssociation = v
  8718  	return s
  8719  }
  8720  
  8721  type DisassociateResolverEndpointIpAddressInput struct {
  8722  	_ struct{} `type:"structure"`
  8723  
  8724  	// The IPv4 address that you want to remove from a Resolver endpoint.
  8725  	//
  8726  	// IpAddress is a required field
  8727  	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
  8728  
  8729  	// The ID of the Resolver endpoint that you want to disassociate an IP address
  8730  	// from.
  8731  	//
  8732  	// ResolverEndpointId is a required field
  8733  	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
  8734  }
  8735  
  8736  // String returns the string representation.
  8737  //
  8738  // API parameter values that are decorated as "sensitive" in the API will not
  8739  // be included in the string output. The member name will be present, but the
  8740  // value will be replaced with "sensitive".
  8741  func (s DisassociateResolverEndpointIpAddressInput) String() string {
  8742  	return awsutil.Prettify(s)
  8743  }
  8744  
  8745  // GoString returns the string representation.
  8746  //
  8747  // API parameter values that are decorated as "sensitive" in the API will not
  8748  // be included in the string output. The member name will be present, but the
  8749  // value will be replaced with "sensitive".
  8750  func (s DisassociateResolverEndpointIpAddressInput) GoString() string {
  8751  	return s.String()
  8752  }
  8753  
  8754  // Validate inspects the fields of the type to determine if they are valid.
  8755  func (s *DisassociateResolverEndpointIpAddressInput) Validate() error {
  8756  	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverEndpointIpAddressInput"}
  8757  	if s.IpAddress == nil {
  8758  		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
  8759  	}
  8760  	if s.ResolverEndpointId == nil {
  8761  		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
  8762  	}
  8763  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
  8764  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
  8765  	}
  8766  	if s.IpAddress != nil {
  8767  		if err := s.IpAddress.Validate(); err != nil {
  8768  			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
  8769  		}
  8770  	}
  8771  
  8772  	if invalidParams.Len() > 0 {
  8773  		return invalidParams
  8774  	}
  8775  	return nil
  8776  }
  8777  
  8778  // SetIpAddress sets the IpAddress field's value.
  8779  func (s *DisassociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *DisassociateResolverEndpointIpAddressInput {
  8780  	s.IpAddress = v
  8781  	return s
  8782  }
  8783  
  8784  // SetResolverEndpointId sets the ResolverEndpointId field's value.
  8785  func (s *DisassociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *DisassociateResolverEndpointIpAddressInput {
  8786  	s.ResolverEndpointId = &v
  8787  	return s
  8788  }
  8789  
  8790  type DisassociateResolverEndpointIpAddressOutput struct {
  8791  	_ struct{} `type:"structure"`
  8792  
  8793  	// The response to an DisassociateResolverEndpointIpAddress request.
  8794  	ResolverEndpoint *ResolverEndpoint `type:"structure"`
  8795  }
  8796  
  8797  // String returns the string representation.
  8798  //
  8799  // API parameter values that are decorated as "sensitive" in the API will not
  8800  // be included in the string output. The member name will be present, but the
  8801  // value will be replaced with "sensitive".
  8802  func (s DisassociateResolverEndpointIpAddressOutput) String() string {
  8803  	return awsutil.Prettify(s)
  8804  }
  8805  
  8806  // GoString returns the string representation.
  8807  //
  8808  // API parameter values that are decorated as "sensitive" in the API will not
  8809  // be included in the string output. The member name will be present, but the
  8810  // value will be replaced with "sensitive".
  8811  func (s DisassociateResolverEndpointIpAddressOutput) GoString() string {
  8812  	return s.String()
  8813  }
  8814  
  8815  // SetResolverEndpoint sets the ResolverEndpoint field's value.
  8816  func (s *DisassociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *DisassociateResolverEndpointIpAddressOutput {
  8817  	s.ResolverEndpoint = v
  8818  	return s
  8819  }
  8820  
  8821  type DisassociateResolverQueryLogConfigInput struct {
  8822  	_ struct{} `type:"structure"`
  8823  
  8824  	// The ID of the query logging configuration that you want to disassociate a
  8825  	// specified VPC from.
  8826  	//
  8827  	// ResolverQueryLogConfigId is a required field
  8828  	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
  8829  
  8830  	// The ID of the Amazon VPC that you want to disassociate from a specified query
  8831  	// logging configuration.
  8832  	//
  8833  	// ResourceId is a required field
  8834  	ResourceId *string `min:"1" type:"string" required:"true"`
  8835  }
  8836  
  8837  // String returns the string representation.
  8838  //
  8839  // API parameter values that are decorated as "sensitive" in the API will not
  8840  // be included in the string output. The member name will be present, but the
  8841  // value will be replaced with "sensitive".
  8842  func (s DisassociateResolverQueryLogConfigInput) String() string {
  8843  	return awsutil.Prettify(s)
  8844  }
  8845  
  8846  // GoString returns the string representation.
  8847  //
  8848  // API parameter values that are decorated as "sensitive" in the API will not
  8849  // be included in the string output. The member name will be present, but the
  8850  // value will be replaced with "sensitive".
  8851  func (s DisassociateResolverQueryLogConfigInput) GoString() string {
  8852  	return s.String()
  8853  }
  8854  
  8855  // Validate inspects the fields of the type to determine if they are valid.
  8856  func (s *DisassociateResolverQueryLogConfigInput) Validate() error {
  8857  	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverQueryLogConfigInput"}
  8858  	if s.ResolverQueryLogConfigId == nil {
  8859  		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
  8860  	}
  8861  	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
  8862  		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
  8863  	}
  8864  	if s.ResourceId == nil {
  8865  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  8866  	}
  8867  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  8868  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  8869  	}
  8870  
  8871  	if invalidParams.Len() > 0 {
  8872  		return invalidParams
  8873  	}
  8874  	return nil
  8875  }
  8876  
  8877  // SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
  8878  func (s *DisassociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DisassociateResolverQueryLogConfigInput {
  8879  	s.ResolverQueryLogConfigId = &v
  8880  	return s
  8881  }
  8882  
  8883  // SetResourceId sets the ResourceId field's value.
  8884  func (s *DisassociateResolverQueryLogConfigInput) SetResourceId(v string) *DisassociateResolverQueryLogConfigInput {
  8885  	s.ResourceId = &v
  8886  	return s
  8887  }
  8888  
  8889  type DisassociateResolverQueryLogConfigOutput struct {
  8890  	_ struct{} `type:"structure"`
  8891  
  8892  	// A complex type that contains settings for the association that you deleted
  8893  	// between an Amazon VPC and a query logging configuration.
  8894  	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
  8895  }
  8896  
  8897  // String returns the string representation.
  8898  //
  8899  // API parameter values that are decorated as "sensitive" in the API will not
  8900  // be included in the string output. The member name will be present, but the
  8901  // value will be replaced with "sensitive".
  8902  func (s DisassociateResolverQueryLogConfigOutput) String() string {
  8903  	return awsutil.Prettify(s)
  8904  }
  8905  
  8906  // GoString returns the string representation.
  8907  //
  8908  // API parameter values that are decorated as "sensitive" in the API will not
  8909  // be included in the string output. The member name will be present, but the
  8910  // value will be replaced with "sensitive".
  8911  func (s DisassociateResolverQueryLogConfigOutput) GoString() string {
  8912  	return s.String()
  8913  }
  8914  
  8915  // SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
  8916  func (s *DisassociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *DisassociateResolverQueryLogConfigOutput {
  8917  	s.ResolverQueryLogConfigAssociation = v
  8918  	return s
  8919  }
  8920  
  8921  type DisassociateResolverRuleInput struct {
  8922  	_ struct{} `type:"structure"`
  8923  
  8924  	// The ID of the Resolver rule that you want to disassociate from the specified
  8925  	// VPC.
  8926  	//
  8927  	// ResolverRuleId is a required field
  8928  	ResolverRuleId *string `min:"1" type:"string" required:"true"`
  8929  
  8930  	// The ID of the VPC that you want to disassociate the Resolver rule from.
  8931  	//
  8932  	// VPCId is a required field
  8933  	VPCId *string `min:"1" type:"string" required:"true"`
  8934  }
  8935  
  8936  // String returns the string representation.
  8937  //
  8938  // API parameter values that are decorated as "sensitive" in the API will not
  8939  // be included in the string output. The member name will be present, but the
  8940  // value will be replaced with "sensitive".
  8941  func (s DisassociateResolverRuleInput) String() string {
  8942  	return awsutil.Prettify(s)
  8943  }
  8944  
  8945  // GoString returns the string representation.
  8946  //
  8947  // API parameter values that are decorated as "sensitive" in the API will not
  8948  // be included in the string output. The member name will be present, but the
  8949  // value will be replaced with "sensitive".
  8950  func (s DisassociateResolverRuleInput) GoString() string {
  8951  	return s.String()
  8952  }
  8953  
  8954  // Validate inspects the fields of the type to determine if they are valid.
  8955  func (s *DisassociateResolverRuleInput) Validate() error {
  8956  	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverRuleInput"}
  8957  	if s.ResolverRuleId == nil {
  8958  		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
  8959  	}
  8960  	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
  8961  		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
  8962  	}
  8963  	if s.VPCId == nil {
  8964  		invalidParams.Add(request.NewErrParamRequired("VPCId"))
  8965  	}
  8966  	if s.VPCId != nil && len(*s.VPCId) < 1 {
  8967  		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
  8968  	}
  8969  
  8970  	if invalidParams.Len() > 0 {
  8971  		return invalidParams
  8972  	}
  8973  	return nil
  8974  }
  8975  
  8976  // SetResolverRuleId sets the ResolverRuleId field's value.
  8977  func (s *DisassociateResolverRuleInput) SetResolverRuleId(v string) *DisassociateResolverRuleInput {
  8978  	s.ResolverRuleId = &v
  8979  	return s
  8980  }
  8981  
  8982  // SetVPCId sets the VPCId field's value.
  8983  func (s *DisassociateResolverRuleInput) SetVPCId(v string) *DisassociateResolverRuleInput {
  8984  	s.VPCId = &v
  8985  	return s
  8986  }
  8987  
  8988  type DisassociateResolverRuleOutput struct {
  8989  	_ struct{} `type:"structure"`
  8990  
  8991  	// Information about the DisassociateResolverRule request, including the status
  8992  	// of the request.
  8993  	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
  8994  }
  8995  
  8996  // String returns the string representation.
  8997  //
  8998  // API parameter values that are decorated as "sensitive" in the API will not
  8999  // be included in the string output. The member name will be present, but the
  9000  // value will be replaced with "sensitive".
  9001  func (s DisassociateResolverRuleOutput) String() string {
  9002  	return awsutil.Prettify(s)
  9003  }
  9004  
  9005  // GoString 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 DisassociateResolverRuleOutput) GoString() string {
  9011  	return s.String()
  9012  }
  9013  
  9014  // SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
  9015  func (s *DisassociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *DisassociateResolverRuleOutput {
  9016  	s.ResolverRuleAssociation = v
  9017  	return s
  9018  }
  9019  
  9020  // For Resolver list operations (ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
  9021  // ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
  9022  // ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
  9023  // ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
  9024  // ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html)),
  9025  // and ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverDnssecConfigs.html)),
  9026  // an optional specification to return a subset of objects.
  9027  //
  9028  // To filter objects, such as Resolver endpoints or Resolver rules, you specify
  9029  // Name and Values. For example, to list only inbound Resolver endpoints, specify
  9030  // Direction for Name and specify INBOUND for Values.
  9031  type Filter struct {
  9032  	_ struct{} `type:"structure"`
  9033  
  9034  	// The name of the parameter that you want to use to filter objects.
  9035  	//
  9036  	// The valid values for Name depend on the action that you're including the
  9037  	// filter in, ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
  9038  	// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
  9039  	// ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
  9040  	// ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
  9041  	// or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html).
  9042  	//
  9043  	// In early versions of Resolver, values for Name were listed as uppercase,
  9044  	// with underscore (_) delimiters. For example, CreatorRequestId was originally
  9045  	// listed as CREATOR_REQUEST_ID. Uppercase values for Name are still supported.
  9046  	//
  9047  	// ListResolverEndpoints
  9048  	//
  9049  	// Valid values for Name include the following:
  9050  	//
  9051  	//    * CreatorRequestId: The value that you specified when you created the
  9052  	//    Resolver endpoint.
  9053  	//
  9054  	//    * Direction: Whether you want to return inbound or outbound Resolver endpoints.
  9055  	//    If you specify DIRECTION for Name, specify INBOUND or OUTBOUND for Values.
  9056  	//
  9057  	//    * HostVPCId: The ID of the VPC that inbound DNS queries pass through on
  9058  	//    the way from your network to your VPCs in a region, or the VPC that outbound
  9059  	//    queries pass through on the way from your VPCs to your network. In a CreateResolverEndpoint
  9060  	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
  9061  	//    request, SubnetId indirectly identifies the VPC. In a GetResolverEndpoint
  9062  	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
  9063  	//    request, the VPC ID for a Resolver endpoint is returned in the HostVPCId
  9064  	//    element.
  9065  	//
  9066  	//    * IpAddressCount: The number of IP addresses that you have associated
  9067  	//    with the Resolver endpoint.
  9068  	//
  9069  	//    * Name: The name of the Resolver endpoint.
  9070  	//
  9071  	//    * SecurityGroupIds: The IDs of the VPC security groups that you specified
  9072  	//    when you created the Resolver endpoint.
  9073  	//
  9074  	//    * Status: The status of the Resolver endpoint. If you specify Status for
  9075  	//    Name, specify one of the following status codes for Values: CREATING,
  9076  	//    OPERATIONAL, UPDATING, AUTO_RECOVERING, ACTION_NEEDED, or DELETING. For
  9077  	//    more information, see Status in ResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverEndpoint.html).
  9078  	//
  9079  	// ListResolverRules
  9080  	//
  9081  	// Valid values for Name include the following:
  9082  	//
  9083  	//    * CreatorRequestId: The value that you specified when you created the
  9084  	//    Resolver rule.
  9085  	//
  9086  	//    * DomainName: The domain name for which Resolver is forwarding DNS queries
  9087  	//    to your network. In the value that you specify for Values, include a trailing
  9088  	//    dot (.) after the domain name. For example, if the domain name is example.com,
  9089  	//    specify the following value. Note the "." after com: example.com.
  9090  	//
  9091  	//    * Name: The name of the Resolver rule.
  9092  	//
  9093  	//    * ResolverEndpointId: The ID of the Resolver endpoint that the Resolver
  9094  	//    rule is associated with. You can filter on the Resolver endpoint only
  9095  	//    for rules that have a value of FORWARD for RuleType.
  9096  	//
  9097  	//    * Status: The status of the Resolver rule. If you specify Status for Name,
  9098  	//    specify one of the following status codes for Values: COMPLETE, DELETING,
  9099  	//    UPDATING, or FAILED.
  9100  	//
  9101  	//    * Type: The type of the Resolver rule. If you specify TYPE for Name, specify
  9102  	//    FORWARD or SYSTEM for Values.
  9103  	//
  9104  	// ListResolverRuleAssociations
  9105  	//
  9106  	// Valid values for Name include the following:
  9107  	//
  9108  	//    * Name: The name of the Resolver rule association.
  9109  	//
  9110  	//    * ResolverRuleId: The ID of the Resolver rule that is associated with
  9111  	//    one or more VPCs.
  9112  	//
  9113  	//    * Status: The status of the Resolver rule association. If you specify
  9114  	//    Status for Name, specify one of the following status codes for Values:
  9115  	//    CREATING, COMPLETE, DELETING, or FAILED.
  9116  	//
  9117  	//    * VPCId: The ID of the VPC that the Resolver rule is associated with.
  9118  	//
  9119  	// ListResolverQueryLogConfigs
  9120  	//
  9121  	// Valid values for Name include the following:
  9122  	//
  9123  	//    * Arn: The ARN for the query logging configuration.
  9124  	//
  9125  	//    * AssociationCount: The number of VPCs that are associated with the query
  9126  	//    logging configuration.
  9127  	//
  9128  	//    * CreationTime: The date and time that the query logging configuration
  9129  	//    was created, in Unix time format and Coordinated Universal Time (UTC).
  9130  	//
  9131  	//    * CreatorRequestId: A unique string that identifies the request that created
  9132  	//    the query logging configuration.
  9133  	//
  9134  	//    * Destination: The Amazon Web Services service that you want to forward
  9135  	//    query logs to. Valid values include the following: S3 CloudWatchLogs KinesisFirehose
  9136  	//
  9137  	//    * DestinationArn: The ARN of the location that Resolver is sending query
  9138  	//    logs to. This value can be the ARN for an S3 bucket, a CloudWatch Logs
  9139  	//    log group, or a Kinesis Data Firehose delivery stream.
  9140  	//
  9141  	//    * Id: The ID of the query logging configuration
  9142  	//
  9143  	//    * Name: The name of the query logging configuration
  9144  	//
  9145  	//    * OwnerId: The Amazon Web Services account ID for the account that created
  9146  	//    the query logging configuration.
  9147  	//
  9148  	//    * ShareStatus: An indication of whether the query logging configuration
  9149  	//    is shared with other Amazon Web Services accounts, or was shared with
  9150  	//    the current account by another Amazon Web Services account. Valid values
  9151  	//    include: NOT_SHARED, SHARED_WITH_ME, or SHARED_BY_ME.
  9152  	//
  9153  	//    * Status: The status of the query logging configuration. If you specify
  9154  	//    Status for Name, specify the applicable status code for Values: CREATING,
  9155  	//    CREATED, DELETING, or FAILED. For more information, see Status (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfig.html#Route53Resolver-Type-route53resolver_ResolverQueryLogConfig-Status).
  9156  	//
  9157  	// ListResolverQueryLogConfigAssociations
  9158  	//
  9159  	// Valid values for Name include the following:
  9160  	//
  9161  	//    * CreationTime: The date and time that the VPC was associated with the
  9162  	//    query logging configuration, in Unix time format and Coordinated Universal
  9163  	//    Time (UTC).
  9164  	//
  9165  	//    * Error: If the value of Status is FAILED, specify the cause: DESTINATION_NOT_FOUND
  9166  	//    or ACCESS_DENIED.
  9167  	//
  9168  	//    * Id: The ID of the query logging association.
  9169  	//
  9170  	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
  9171  	//    that a VPC is associated with.
  9172  	//
  9173  	//    * ResourceId: The ID of the Amazon VPC that is associated with the query
  9174  	//    logging configuration.
  9175  	//
  9176  	//    * Status: The status of the query logging association. If you specify
  9177  	//    Status for Name, specify the applicable status code for Values: CREATING,
  9178  	//    CREATED, DELETING, or FAILED. For more information, see Status (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfigAssociation.html#Route53Resolver-Type-route53resolver_ResolverQueryLogConfigAssociation-Status).
  9179  	Name *string `min:"1" type:"string"`
  9180  
  9181  	// When you're using a List operation and you want the operation to return a
  9182  	// subset of objects, such as Resolver endpoints or Resolver rules, the value
  9183  	// of the parameter that you want to use to filter objects. For example, to
  9184  	// list only inbound Resolver endpoints, specify Direction for Name and specify
  9185  	// INBOUND for Values.
  9186  	Values []*string `type:"list"`
  9187  }
  9188  
  9189  // String returns the string representation.
  9190  //
  9191  // API parameter values that are decorated as "sensitive" in the API will not
  9192  // be included in the string output. The member name will be present, but the
  9193  // value will be replaced with "sensitive".
  9194  func (s Filter) String() string {
  9195  	return awsutil.Prettify(s)
  9196  }
  9197  
  9198  // GoString returns the string representation.
  9199  //
  9200  // API parameter values that are decorated as "sensitive" in the API will not
  9201  // be included in the string output. The member name will be present, but the
  9202  // value will be replaced with "sensitive".
  9203  func (s Filter) GoString() string {
  9204  	return s.String()
  9205  }
  9206  
  9207  // Validate inspects the fields of the type to determine if they are valid.
  9208  func (s *Filter) Validate() error {
  9209  	invalidParams := request.ErrInvalidParams{Context: "Filter"}
  9210  	if s.Name != nil && len(*s.Name) < 1 {
  9211  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  9212  	}
  9213  
  9214  	if invalidParams.Len() > 0 {
  9215  		return invalidParams
  9216  	}
  9217  	return nil
  9218  }
  9219  
  9220  // SetName sets the Name field's value.
  9221  func (s *Filter) SetName(v string) *Filter {
  9222  	s.Name = &v
  9223  	return s
  9224  }
  9225  
  9226  // SetValues sets the Values field's value.
  9227  func (s *Filter) SetValues(v []*string) *Filter {
  9228  	s.Values = v
  9229  	return s
  9230  }
  9231  
  9232  // Configuration of the firewall behavior provided by DNS Firewall for a single
  9233  // VPC from Amazon Virtual Private Cloud (Amazon VPC).
  9234  type FirewallConfig struct {
  9235  	_ struct{} `type:"structure"`
  9236  
  9237  	// Determines how DNS Firewall operates during failures, for example when all
  9238  	// traffic that is sent to DNS Firewall fails to receive a reply.
  9239  	//
  9240  	//    * By default, fail open is disabled, which means the failure mode is closed.
  9241  	//    This approach favors security over availability. DNS Firewall returns
  9242  	//    a failure error when it is unable to properly evaluate a query.
  9243  	//
  9244  	//    * If you enable this option, the failure mode is open. This approach favors
  9245  	//    availability over security. DNS Firewall allows queries to proceed if
  9246  	//    it is unable to properly evaluate them.
  9247  	//
  9248  	// This behavior is only enforced for VPCs that have at least one DNS Firewall
  9249  	// rule group association.
  9250  	FirewallFailOpen *string `type:"string" enum:"FirewallFailOpenStatus"`
  9251  
  9252  	// The ID of the firewall configuration.
  9253  	Id *string `min:"1" type:"string"`
  9254  
  9255  	// The Amazon Web Services account ID of the owner of the VPC that this firewall
  9256  	// configuration applies to.
  9257  	OwnerId *string `min:"12" type:"string"`
  9258  
  9259  	// The ID of the VPC that this firewall configuration applies to.
  9260  	ResourceId *string `min:"1" type:"string"`
  9261  }
  9262  
  9263  // String returns the string representation.
  9264  //
  9265  // API parameter values that are decorated as "sensitive" in the API will not
  9266  // be included in the string output. The member name will be present, but the
  9267  // value will be replaced with "sensitive".
  9268  func (s FirewallConfig) String() string {
  9269  	return awsutil.Prettify(s)
  9270  }
  9271  
  9272  // GoString returns the string representation.
  9273  //
  9274  // API parameter values that are decorated as "sensitive" in the API will not
  9275  // be included in the string output. The member name will be present, but the
  9276  // value will be replaced with "sensitive".
  9277  func (s FirewallConfig) GoString() string {
  9278  	return s.String()
  9279  }
  9280  
  9281  // SetFirewallFailOpen sets the FirewallFailOpen field's value.
  9282  func (s *FirewallConfig) SetFirewallFailOpen(v string) *FirewallConfig {
  9283  	s.FirewallFailOpen = &v
  9284  	return s
  9285  }
  9286  
  9287  // SetId sets the Id field's value.
  9288  func (s *FirewallConfig) SetId(v string) *FirewallConfig {
  9289  	s.Id = &v
  9290  	return s
  9291  }
  9292  
  9293  // SetOwnerId sets the OwnerId field's value.
  9294  func (s *FirewallConfig) SetOwnerId(v string) *FirewallConfig {
  9295  	s.OwnerId = &v
  9296  	return s
  9297  }
  9298  
  9299  // SetResourceId sets the ResourceId field's value.
  9300  func (s *FirewallConfig) SetResourceId(v string) *FirewallConfig {
  9301  	s.ResourceId = &v
  9302  	return s
  9303  }
  9304  
  9305  // High-level information about a list of firewall domains for use in a FirewallRule.
  9306  // This is returned by GetFirewallDomainList.
  9307  //
  9308  // To retrieve the domains that are defined for this domain list, call ListFirewallDomains.
  9309  type FirewallDomainList struct {
  9310  	_ struct{} `type:"structure"`
  9311  
  9312  	// The Amazon Resource Name (ARN) of the firewall domain list.
  9313  	Arn *string `min:"1" type:"string"`
  9314  
  9315  	// The date and time that the domain list was created, in Unix time format and
  9316  	// Coordinated Universal Time (UTC).
  9317  	CreationTime *string `min:"20" type:"string"`
  9318  
  9319  	// A unique string defined by you to identify the request. This allows you to
  9320  	// retry failed requests without the risk of running the operation twice. This
  9321  	// can be any unique string, for example, a timestamp.
  9322  	CreatorRequestId *string `min:"1" type:"string"`
  9323  
  9324  	// The number of domain names that are specified in the domain list.
  9325  	DomainCount *int64 `type:"integer"`
  9326  
  9327  	// The ID of the domain list.
  9328  	Id *string `min:"1" type:"string"`
  9329  
  9330  	// The owner of the list, used only for lists that are not managed by you. For
  9331  	// example, the managed domain list AWSManagedDomainsMalwareDomainList has the
  9332  	// managed owner name Route 53 Resolver DNS Firewall.
  9333  	ManagedOwnerName *string `min:"1" type:"string"`
  9334  
  9335  	// The date and time that the domain list was last modified, in Unix time format
  9336  	// and Coordinated Universal Time (UTC).
  9337  	ModificationTime *string `min:"20" type:"string"`
  9338  
  9339  	// The name of the domain list.
  9340  	Name *string `type:"string"`
  9341  
  9342  	// The status of the domain list.
  9343  	Status *string `type:"string" enum:"FirewallDomainListStatus"`
  9344  
  9345  	// Additional information about the status of the list, if available.
  9346  	StatusMessage *string `type:"string"`
  9347  }
  9348  
  9349  // String returns the string representation.
  9350  //
  9351  // API parameter values that are decorated as "sensitive" in the API will not
  9352  // be included in the string output. The member name will be present, but the
  9353  // value will be replaced with "sensitive".
  9354  func (s FirewallDomainList) String() string {
  9355  	return awsutil.Prettify(s)
  9356  }
  9357  
  9358  // GoString returns the string representation.
  9359  //
  9360  // API parameter values that are decorated as "sensitive" in the API will not
  9361  // be included in the string output. The member name will be present, but the
  9362  // value will be replaced with "sensitive".
  9363  func (s FirewallDomainList) GoString() string {
  9364  	return s.String()
  9365  }
  9366  
  9367  // SetArn sets the Arn field's value.
  9368  func (s *FirewallDomainList) SetArn(v string) *FirewallDomainList {
  9369  	s.Arn = &v
  9370  	return s
  9371  }
  9372  
  9373  // SetCreationTime sets the CreationTime field's value.
  9374  func (s *FirewallDomainList) SetCreationTime(v string) *FirewallDomainList {
  9375  	s.CreationTime = &v
  9376  	return s
  9377  }
  9378  
  9379  // SetCreatorRequestId sets the CreatorRequestId field's value.
  9380  func (s *FirewallDomainList) SetCreatorRequestId(v string) *FirewallDomainList {
  9381  	s.CreatorRequestId = &v
  9382  	return s
  9383  }
  9384  
  9385  // SetDomainCount sets the DomainCount field's value.
  9386  func (s *FirewallDomainList) SetDomainCount(v int64) *FirewallDomainList {
  9387  	s.DomainCount = &v
  9388  	return s
  9389  }
  9390  
  9391  // SetId sets the Id field's value.
  9392  func (s *FirewallDomainList) SetId(v string) *FirewallDomainList {
  9393  	s.Id = &v
  9394  	return s
  9395  }
  9396  
  9397  // SetManagedOwnerName sets the ManagedOwnerName field's value.
  9398  func (s *FirewallDomainList) SetManagedOwnerName(v string) *FirewallDomainList {
  9399  	s.ManagedOwnerName = &v
  9400  	return s
  9401  }
  9402  
  9403  // SetModificationTime sets the ModificationTime field's value.
  9404  func (s *FirewallDomainList) SetModificationTime(v string) *FirewallDomainList {
  9405  	s.ModificationTime = &v
  9406  	return s
  9407  }
  9408  
  9409  // SetName sets the Name field's value.
  9410  func (s *FirewallDomainList) SetName(v string) *FirewallDomainList {
  9411  	s.Name = &v
  9412  	return s
  9413  }
  9414  
  9415  // SetStatus sets the Status field's value.
  9416  func (s *FirewallDomainList) SetStatus(v string) *FirewallDomainList {
  9417  	s.Status = &v
  9418  	return s
  9419  }
  9420  
  9421  // SetStatusMessage sets the StatusMessage field's value.
  9422  func (s *FirewallDomainList) SetStatusMessage(v string) *FirewallDomainList {
  9423  	s.StatusMessage = &v
  9424  	return s
  9425  }
  9426  
  9427  // Minimal high-level information for a firewall domain list. The action ListFirewallDomainLists
  9428  // returns an array of these objects.
  9429  //
  9430  // To retrieve full information for a firewall domain list, call GetFirewallDomainList
  9431  // and ListFirewallDomains.
  9432  type FirewallDomainListMetadata struct {
  9433  	_ struct{} `type:"structure"`
  9434  
  9435  	// The Amazon Resource Name (ARN) of the firewall domain list metadata.
  9436  	Arn *string `min:"1" type:"string"`
  9437  
  9438  	// A unique string defined by you to identify the request. This allows you to
  9439  	// retry failed requests without the risk of running the operation twice. This
  9440  	// can be any unique string, for example, a timestamp.
  9441  	CreatorRequestId *string `min:"1" type:"string"`
  9442  
  9443  	// The ID of the domain list.
  9444  	Id *string `min:"1" type:"string"`
  9445  
  9446  	// The owner of the list, used only for lists that are not managed by you. For
  9447  	// example, the managed domain list AWSManagedDomainsMalwareDomainList has the
  9448  	// managed owner name Route 53 Resolver DNS Firewall.
  9449  	ManagedOwnerName *string `min:"1" type:"string"`
  9450  
  9451  	// The name of the domain list.
  9452  	Name *string `type:"string"`
  9453  }
  9454  
  9455  // String returns the string representation.
  9456  //
  9457  // API parameter values that are decorated as "sensitive" in the API will not
  9458  // be included in the string output. The member name will be present, but the
  9459  // value will be replaced with "sensitive".
  9460  func (s FirewallDomainListMetadata) String() string {
  9461  	return awsutil.Prettify(s)
  9462  }
  9463  
  9464  // GoString returns the string representation.
  9465  //
  9466  // API parameter values that are decorated as "sensitive" in the API will not
  9467  // be included in the string output. The member name will be present, but the
  9468  // value will be replaced with "sensitive".
  9469  func (s FirewallDomainListMetadata) GoString() string {
  9470  	return s.String()
  9471  }
  9472  
  9473  // SetArn sets the Arn field's value.
  9474  func (s *FirewallDomainListMetadata) SetArn(v string) *FirewallDomainListMetadata {
  9475  	s.Arn = &v
  9476  	return s
  9477  }
  9478  
  9479  // SetCreatorRequestId sets the CreatorRequestId field's value.
  9480  func (s *FirewallDomainListMetadata) SetCreatorRequestId(v string) *FirewallDomainListMetadata {
  9481  	s.CreatorRequestId = &v
  9482  	return s
  9483  }
  9484  
  9485  // SetId sets the Id field's value.
  9486  func (s *FirewallDomainListMetadata) SetId(v string) *FirewallDomainListMetadata {
  9487  	s.Id = &v
  9488  	return s
  9489  }
  9490  
  9491  // SetManagedOwnerName sets the ManagedOwnerName field's value.
  9492  func (s *FirewallDomainListMetadata) SetManagedOwnerName(v string) *FirewallDomainListMetadata {
  9493  	s.ManagedOwnerName = &v
  9494  	return s
  9495  }
  9496  
  9497  // SetName sets the Name field's value.
  9498  func (s *FirewallDomainListMetadata) SetName(v string) *FirewallDomainListMetadata {
  9499  	s.Name = &v
  9500  	return s
  9501  }
  9502  
  9503  // A single firewall rule in a rule group.
  9504  type FirewallRule struct {
  9505  	_ struct{} `type:"structure"`
  9506  
  9507  	// The action that DNS Firewall should take on a DNS query when it matches one
  9508  	// of the domains in the rule's domain list:
  9509  	//
  9510  	//    * ALLOW - Permit the request to go through.
  9511  	//
  9512  	//    * ALERT - Permit the request to go through but send an alert to the logs.
  9513  	//
  9514  	//    * BLOCK - Disallow the request. If this is specified, additional handling
  9515  	//    details are provided in the rule's BlockResponse setting.
  9516  	Action *string `type:"string" enum:"Action"`
  9517  
  9518  	// The DNS record's type. This determines the format of the record value that
  9519  	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
  9520  	// a BlockResponse setting of OVERRIDE.
  9521  	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
  9522  
  9523  	// The custom DNS record to send back in response to the query. Used for the
  9524  	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
  9525  	BlockOverrideDomain *string `min:"1" type:"string"`
  9526  
  9527  	// The recommended amount of time, in seconds, for the DNS resolver or web browser
  9528  	// to cache the provided override record. Used for the rule action BLOCK with
  9529  	// a BlockResponse setting of OVERRIDE.
  9530  	BlockOverrideTtl *int64 `type:"integer"`
  9531  
  9532  	// The way that you want DNS Firewall to block the request. Used for the rule
  9533  	// action setting BLOCK.
  9534  	//
  9535  	//    * NODATA - Respond indicating that the query was successful, but no response
  9536  	//    is available for it.
  9537  	//
  9538  	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
  9539  	//    doesn't exist.
  9540  	//
  9541  	//    * OVERRIDE - Provide a custom override in the response. This option requires
  9542  	//    custom handling details in the rule's BlockOverride* settings.
  9543  	BlockResponse *string `type:"string" enum:"BlockResponse"`
  9544  
  9545  	// The date and time that the rule was created, in Unix time format and Coordinated
  9546  	// Universal Time (UTC).
  9547  	CreationTime *string `min:"20" type:"string"`
  9548  
  9549  	// A unique string defined by you to identify the request. This allows you to
  9550  	// retry failed requests without the risk of executing the operation twice.
  9551  	// This can be any unique string, for example, a timestamp.
  9552  	CreatorRequestId *string `min:"1" type:"string"`
  9553  
  9554  	// The ID of the domain list that's used in the rule.
  9555  	FirewallDomainListId *string `min:"1" type:"string"`
  9556  
  9557  	// The unique identifier of the firewall rule group of the rule.
  9558  	FirewallRuleGroupId *string `min:"1" type:"string"`
  9559  
  9560  	// The date and time that the rule was last modified, in Unix time format and
  9561  	// Coordinated Universal Time (UTC).
  9562  	ModificationTime *string `min:"20" type:"string"`
  9563  
  9564  	// The name of the rule.
  9565  	Name *string `type:"string"`
  9566  
  9567  	// The priority of the rule in the rule group. This value must be unique within
  9568  	// the rule group. DNS Firewall processes the rules in a rule group by order
  9569  	// of priority, starting from the lowest setting.
  9570  	Priority *int64 `type:"integer"`
  9571  }
  9572  
  9573  // String returns the string representation.
  9574  //
  9575  // API parameter values that are decorated as "sensitive" in the API will not
  9576  // be included in the string output. The member name will be present, but the
  9577  // value will be replaced with "sensitive".
  9578  func (s FirewallRule) String() string {
  9579  	return awsutil.Prettify(s)
  9580  }
  9581  
  9582  // GoString returns the string representation.
  9583  //
  9584  // API parameter values that are decorated as "sensitive" in the API will not
  9585  // be included in the string output. The member name will be present, but the
  9586  // value will be replaced with "sensitive".
  9587  func (s FirewallRule) GoString() string {
  9588  	return s.String()
  9589  }
  9590  
  9591  // SetAction sets the Action field's value.
  9592  func (s *FirewallRule) SetAction(v string) *FirewallRule {
  9593  	s.Action = &v
  9594  	return s
  9595  }
  9596  
  9597  // SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
  9598  func (s *FirewallRule) SetBlockOverrideDnsType(v string) *FirewallRule {
  9599  	s.BlockOverrideDnsType = &v
  9600  	return s
  9601  }
  9602  
  9603  // SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
  9604  func (s *FirewallRule) SetBlockOverrideDomain(v string) *FirewallRule {
  9605  	s.BlockOverrideDomain = &v
  9606  	return s
  9607  }
  9608  
  9609  // SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
  9610  func (s *FirewallRule) SetBlockOverrideTtl(v int64) *FirewallRule {
  9611  	s.BlockOverrideTtl = &v
  9612  	return s
  9613  }
  9614  
  9615  // SetBlockResponse sets the BlockResponse field's value.
  9616  func (s *FirewallRule) SetBlockResponse(v string) *FirewallRule {
  9617  	s.BlockResponse = &v
  9618  	return s
  9619  }
  9620  
  9621  // SetCreationTime sets the CreationTime field's value.
  9622  func (s *FirewallRule) SetCreationTime(v string) *FirewallRule {
  9623  	s.CreationTime = &v
  9624  	return s
  9625  }
  9626  
  9627  // SetCreatorRequestId sets the CreatorRequestId field's value.
  9628  func (s *FirewallRule) SetCreatorRequestId(v string) *FirewallRule {
  9629  	s.CreatorRequestId = &v
  9630  	return s
  9631  }
  9632  
  9633  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
  9634  func (s *FirewallRule) SetFirewallDomainListId(v string) *FirewallRule {
  9635  	s.FirewallDomainListId = &v
  9636  	return s
  9637  }
  9638  
  9639  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
  9640  func (s *FirewallRule) SetFirewallRuleGroupId(v string) *FirewallRule {
  9641  	s.FirewallRuleGroupId = &v
  9642  	return s
  9643  }
  9644  
  9645  // SetModificationTime sets the ModificationTime field's value.
  9646  func (s *FirewallRule) SetModificationTime(v string) *FirewallRule {
  9647  	s.ModificationTime = &v
  9648  	return s
  9649  }
  9650  
  9651  // SetName sets the Name field's value.
  9652  func (s *FirewallRule) SetName(v string) *FirewallRule {
  9653  	s.Name = &v
  9654  	return s
  9655  }
  9656  
  9657  // SetPriority sets the Priority field's value.
  9658  func (s *FirewallRule) SetPriority(v int64) *FirewallRule {
  9659  	s.Priority = &v
  9660  	return s
  9661  }
  9662  
  9663  // High-level information for a firewall rule group. A firewall rule group is
  9664  // a collection of rules that DNS Firewall uses to filter DNS network traffic
  9665  // for a VPC. To retrieve the rules for the rule group, call ListFirewallRules.
  9666  type FirewallRuleGroup struct {
  9667  	_ struct{} `type:"structure"`
  9668  
  9669  	// The ARN (Amazon Resource Name) of the rule group.
  9670  	Arn *string `min:"1" type:"string"`
  9671  
  9672  	// The date and time that the rule group was created, in Unix time format and
  9673  	// Coordinated Universal Time (UTC).
  9674  	CreationTime *string `min:"20" type:"string"`
  9675  
  9676  	// A unique string defined by you to identify the request. This allows you to
  9677  	// retry failed requests without the risk of running the operation twice. This
  9678  	// can be any unique string, for example, a timestamp.
  9679  	CreatorRequestId *string `min:"1" type:"string"`
  9680  
  9681  	// The ID of the rule group.
  9682  	Id *string `min:"1" type:"string"`
  9683  
  9684  	// The date and time that the rule group was last modified, in Unix time format
  9685  	// and Coordinated Universal Time (UTC).
  9686  	ModificationTime *string `min:"20" type:"string"`
  9687  
  9688  	// The name of the rule group.
  9689  	Name *string `type:"string"`
  9690  
  9691  	// The Amazon Web Services account ID for the account that created the rule
  9692  	// group. When a rule group is shared with your account, this is the account
  9693  	// that has shared the rule group with you.
  9694  	OwnerId *string `min:"12" type:"string"`
  9695  
  9696  	// The number of rules in the rule group.
  9697  	RuleCount *int64 `type:"integer"`
  9698  
  9699  	// Whether the rule group is shared with other Amazon Web Services accounts,
  9700  	// or was shared with the current account by another Amazon Web Services account.
  9701  	// Sharing is configured through Resource Access Manager (RAM).
  9702  	ShareStatus *string `type:"string" enum:"ShareStatus"`
  9703  
  9704  	// The status of the domain list.
  9705  	Status *string `type:"string" enum:"FirewallRuleGroupStatus"`
  9706  
  9707  	// Additional information about the status of the rule group, if available.
  9708  	StatusMessage *string `type:"string"`
  9709  }
  9710  
  9711  // String returns the string representation.
  9712  //
  9713  // API parameter values that are decorated as "sensitive" in the API will not
  9714  // be included in the string output. The member name will be present, but the
  9715  // value will be replaced with "sensitive".
  9716  func (s FirewallRuleGroup) String() string {
  9717  	return awsutil.Prettify(s)
  9718  }
  9719  
  9720  // GoString returns the string representation.
  9721  //
  9722  // API parameter values that are decorated as "sensitive" in the API will not
  9723  // be included in the string output. The member name will be present, but the
  9724  // value will be replaced with "sensitive".
  9725  func (s FirewallRuleGroup) GoString() string {
  9726  	return s.String()
  9727  }
  9728  
  9729  // SetArn sets the Arn field's value.
  9730  func (s *FirewallRuleGroup) SetArn(v string) *FirewallRuleGroup {
  9731  	s.Arn = &v
  9732  	return s
  9733  }
  9734  
  9735  // SetCreationTime sets the CreationTime field's value.
  9736  func (s *FirewallRuleGroup) SetCreationTime(v string) *FirewallRuleGroup {
  9737  	s.CreationTime = &v
  9738  	return s
  9739  }
  9740  
  9741  // SetCreatorRequestId sets the CreatorRequestId field's value.
  9742  func (s *FirewallRuleGroup) SetCreatorRequestId(v string) *FirewallRuleGroup {
  9743  	s.CreatorRequestId = &v
  9744  	return s
  9745  }
  9746  
  9747  // SetId sets the Id field's value.
  9748  func (s *FirewallRuleGroup) SetId(v string) *FirewallRuleGroup {
  9749  	s.Id = &v
  9750  	return s
  9751  }
  9752  
  9753  // SetModificationTime sets the ModificationTime field's value.
  9754  func (s *FirewallRuleGroup) SetModificationTime(v string) *FirewallRuleGroup {
  9755  	s.ModificationTime = &v
  9756  	return s
  9757  }
  9758  
  9759  // SetName sets the Name field's value.
  9760  func (s *FirewallRuleGroup) SetName(v string) *FirewallRuleGroup {
  9761  	s.Name = &v
  9762  	return s
  9763  }
  9764  
  9765  // SetOwnerId sets the OwnerId field's value.
  9766  func (s *FirewallRuleGroup) SetOwnerId(v string) *FirewallRuleGroup {
  9767  	s.OwnerId = &v
  9768  	return s
  9769  }
  9770  
  9771  // SetRuleCount sets the RuleCount field's value.
  9772  func (s *FirewallRuleGroup) SetRuleCount(v int64) *FirewallRuleGroup {
  9773  	s.RuleCount = &v
  9774  	return s
  9775  }
  9776  
  9777  // SetShareStatus sets the ShareStatus field's value.
  9778  func (s *FirewallRuleGroup) SetShareStatus(v string) *FirewallRuleGroup {
  9779  	s.ShareStatus = &v
  9780  	return s
  9781  }
  9782  
  9783  // SetStatus sets the Status field's value.
  9784  func (s *FirewallRuleGroup) SetStatus(v string) *FirewallRuleGroup {
  9785  	s.Status = &v
  9786  	return s
  9787  }
  9788  
  9789  // SetStatusMessage sets the StatusMessage field's value.
  9790  func (s *FirewallRuleGroup) SetStatusMessage(v string) *FirewallRuleGroup {
  9791  	s.StatusMessage = &v
  9792  	return s
  9793  }
  9794  
  9795  // An association between a firewall rule group and a VPC, which enables DNS
  9796  // filtering for the VPC.
  9797  type FirewallRuleGroupAssociation struct {
  9798  	_ struct{} `type:"structure"`
  9799  
  9800  	// The Amazon Resource Name (ARN) of the firewall rule group association.
  9801  	Arn *string `min:"1" type:"string"`
  9802  
  9803  	// The date and time that the association was created, in Unix time format and
  9804  	// Coordinated Universal Time (UTC).
  9805  	CreationTime *string `min:"20" type:"string"`
  9806  
  9807  	// A unique string defined by you to identify the request. This allows you to
  9808  	// retry failed requests without the risk of running the operation twice. This
  9809  	// can be any unique string, for example, a timestamp.
  9810  	CreatorRequestId *string `min:"1" type:"string"`
  9811  
  9812  	// The unique identifier of the firewall rule group.
  9813  	FirewallRuleGroupId *string `min:"1" type:"string"`
  9814  
  9815  	// The identifier for the association.
  9816  	Id *string `min:"1" type:"string"`
  9817  
  9818  	// The owner of the association, used only for associations that are not managed
  9819  	// by you. If you use Firewall Manager to manage your DNS Firewalls, then this
  9820  	// reports Firewall Manager as the managed owner.
  9821  	ManagedOwnerName *string `min:"1" type:"string"`
  9822  
  9823  	// The date and time that the association was last modified, in Unix time format
  9824  	// and Coordinated Universal Time (UTC).
  9825  	ModificationTime *string `min:"20" type:"string"`
  9826  
  9827  	// If enabled, this setting disallows modification or removal of the association,
  9828  	// to help prevent against accidentally altering DNS firewall protections.
  9829  	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
  9830  
  9831  	// The name of the association.
  9832  	Name *string `type:"string"`
  9833  
  9834  	// The setting that determines the processing order of the rule group among
  9835  	// the rule groups that are associated with a single VPC. DNS Firewall filters
  9836  	// VPC traffic starting from rule group with the lowest numeric priority setting.
  9837  	Priority *int64 `type:"integer"`
  9838  
  9839  	// The current status of the association.
  9840  	Status *string `type:"string" enum:"FirewallRuleGroupAssociationStatus"`
  9841  
  9842  	// Additional information about the status of the response, if available.
  9843  	StatusMessage *string `type:"string"`
  9844  
  9845  	// The unique identifier of the VPC that is associated with the rule group.
  9846  	VpcId *string `min:"1" type:"string"`
  9847  }
  9848  
  9849  // String returns the string representation.
  9850  //
  9851  // API parameter values that are decorated as "sensitive" in the API will not
  9852  // be included in the string output. The member name will be present, but the
  9853  // value will be replaced with "sensitive".
  9854  func (s FirewallRuleGroupAssociation) String() string {
  9855  	return awsutil.Prettify(s)
  9856  }
  9857  
  9858  // GoString returns the string representation.
  9859  //
  9860  // API parameter values that are decorated as "sensitive" in the API will not
  9861  // be included in the string output. The member name will be present, but the
  9862  // value will be replaced with "sensitive".
  9863  func (s FirewallRuleGroupAssociation) GoString() string {
  9864  	return s.String()
  9865  }
  9866  
  9867  // SetArn sets the Arn field's value.
  9868  func (s *FirewallRuleGroupAssociation) SetArn(v string) *FirewallRuleGroupAssociation {
  9869  	s.Arn = &v
  9870  	return s
  9871  }
  9872  
  9873  // SetCreationTime sets the CreationTime field's value.
  9874  func (s *FirewallRuleGroupAssociation) SetCreationTime(v string) *FirewallRuleGroupAssociation {
  9875  	s.CreationTime = &v
  9876  	return s
  9877  }
  9878  
  9879  // SetCreatorRequestId sets the CreatorRequestId field's value.
  9880  func (s *FirewallRuleGroupAssociation) SetCreatorRequestId(v string) *FirewallRuleGroupAssociation {
  9881  	s.CreatorRequestId = &v
  9882  	return s
  9883  }
  9884  
  9885  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
  9886  func (s *FirewallRuleGroupAssociation) SetFirewallRuleGroupId(v string) *FirewallRuleGroupAssociation {
  9887  	s.FirewallRuleGroupId = &v
  9888  	return s
  9889  }
  9890  
  9891  // SetId sets the Id field's value.
  9892  func (s *FirewallRuleGroupAssociation) SetId(v string) *FirewallRuleGroupAssociation {
  9893  	s.Id = &v
  9894  	return s
  9895  }
  9896  
  9897  // SetManagedOwnerName sets the ManagedOwnerName field's value.
  9898  func (s *FirewallRuleGroupAssociation) SetManagedOwnerName(v string) *FirewallRuleGroupAssociation {
  9899  	s.ManagedOwnerName = &v
  9900  	return s
  9901  }
  9902  
  9903  // SetModificationTime sets the ModificationTime field's value.
  9904  func (s *FirewallRuleGroupAssociation) SetModificationTime(v string) *FirewallRuleGroupAssociation {
  9905  	s.ModificationTime = &v
  9906  	return s
  9907  }
  9908  
  9909  // SetMutationProtection sets the MutationProtection field's value.
  9910  func (s *FirewallRuleGroupAssociation) SetMutationProtection(v string) *FirewallRuleGroupAssociation {
  9911  	s.MutationProtection = &v
  9912  	return s
  9913  }
  9914  
  9915  // SetName sets the Name field's value.
  9916  func (s *FirewallRuleGroupAssociation) SetName(v string) *FirewallRuleGroupAssociation {
  9917  	s.Name = &v
  9918  	return s
  9919  }
  9920  
  9921  // SetPriority sets the Priority field's value.
  9922  func (s *FirewallRuleGroupAssociation) SetPriority(v int64) *FirewallRuleGroupAssociation {
  9923  	s.Priority = &v
  9924  	return s
  9925  }
  9926  
  9927  // SetStatus sets the Status field's value.
  9928  func (s *FirewallRuleGroupAssociation) SetStatus(v string) *FirewallRuleGroupAssociation {
  9929  	s.Status = &v
  9930  	return s
  9931  }
  9932  
  9933  // SetStatusMessage sets the StatusMessage field's value.
  9934  func (s *FirewallRuleGroupAssociation) SetStatusMessage(v string) *FirewallRuleGroupAssociation {
  9935  	s.StatusMessage = &v
  9936  	return s
  9937  }
  9938  
  9939  // SetVpcId sets the VpcId field's value.
  9940  func (s *FirewallRuleGroupAssociation) SetVpcId(v string) *FirewallRuleGroupAssociation {
  9941  	s.VpcId = &v
  9942  	return s
  9943  }
  9944  
  9945  // Minimal high-level information for a firewall rule group. The action ListFirewallRuleGroups
  9946  // returns an array of these objects.
  9947  //
  9948  // To retrieve full information for a firewall rule group, call GetFirewallRuleGroup
  9949  // and ListFirewallRules.
  9950  type FirewallRuleGroupMetadata struct {
  9951  	_ struct{} `type:"structure"`
  9952  
  9953  	// The ARN (Amazon Resource Name) of the rule group.
  9954  	Arn *string `min:"1" type:"string"`
  9955  
  9956  	// A unique string defined by you to identify the request. This allows you to
  9957  	// retry failed requests without the risk of running the operation twice. This
  9958  	// can be any unique string, for example, a timestamp.
  9959  	CreatorRequestId *string `min:"1" type:"string"`
  9960  
  9961  	// The ID of the rule group.
  9962  	Id *string `min:"1" type:"string"`
  9963  
  9964  	// The name of the rule group.
  9965  	Name *string `type:"string"`
  9966  
  9967  	// The Amazon Web Services account ID for the account that created the rule
  9968  	// group. When a rule group is shared with your account, this is the account
  9969  	// that has shared the rule group with you.
  9970  	OwnerId *string `min:"12" type:"string"`
  9971  
  9972  	// Whether the rule group is shared with other Amazon Web Services accounts,
  9973  	// or was shared with the current account by another Amazon Web Services account.
  9974  	// Sharing is configured through Resource Access Manager (RAM).
  9975  	ShareStatus *string `type:"string" enum:"ShareStatus"`
  9976  }
  9977  
  9978  // String returns the string representation.
  9979  //
  9980  // API parameter values that are decorated as "sensitive" in the API will not
  9981  // be included in the string output. The member name will be present, but the
  9982  // value will be replaced with "sensitive".
  9983  func (s FirewallRuleGroupMetadata) String() string {
  9984  	return awsutil.Prettify(s)
  9985  }
  9986  
  9987  // GoString returns the string representation.
  9988  //
  9989  // API parameter values that are decorated as "sensitive" in the API will not
  9990  // be included in the string output. The member name will be present, but the
  9991  // value will be replaced with "sensitive".
  9992  func (s FirewallRuleGroupMetadata) GoString() string {
  9993  	return s.String()
  9994  }
  9995  
  9996  // SetArn sets the Arn field's value.
  9997  func (s *FirewallRuleGroupMetadata) SetArn(v string) *FirewallRuleGroupMetadata {
  9998  	s.Arn = &v
  9999  	return s
 10000  }
 10001  
 10002  // SetCreatorRequestId sets the CreatorRequestId field's value.
 10003  func (s *FirewallRuleGroupMetadata) SetCreatorRequestId(v string) *FirewallRuleGroupMetadata {
 10004  	s.CreatorRequestId = &v
 10005  	return s
 10006  }
 10007  
 10008  // SetId sets the Id field's value.
 10009  func (s *FirewallRuleGroupMetadata) SetId(v string) *FirewallRuleGroupMetadata {
 10010  	s.Id = &v
 10011  	return s
 10012  }
 10013  
 10014  // SetName sets the Name field's value.
 10015  func (s *FirewallRuleGroupMetadata) SetName(v string) *FirewallRuleGroupMetadata {
 10016  	s.Name = &v
 10017  	return s
 10018  }
 10019  
 10020  // SetOwnerId sets the OwnerId field's value.
 10021  func (s *FirewallRuleGroupMetadata) SetOwnerId(v string) *FirewallRuleGroupMetadata {
 10022  	s.OwnerId = &v
 10023  	return s
 10024  }
 10025  
 10026  // SetShareStatus sets the ShareStatus field's value.
 10027  func (s *FirewallRuleGroupMetadata) SetShareStatus(v string) *FirewallRuleGroupMetadata {
 10028  	s.ShareStatus = &v
 10029  	return s
 10030  }
 10031  
 10032  type GetFirewallConfigInput struct {
 10033  	_ struct{} `type:"structure"`
 10034  
 10035  	// The ID of the VPC from Amazon VPC that the configuration is for.
 10036  	//
 10037  	// ResourceId is a required field
 10038  	ResourceId *string `min:"1" type:"string" required:"true"`
 10039  }
 10040  
 10041  // String returns the string representation.
 10042  //
 10043  // API parameter values that are decorated as "sensitive" in the API will not
 10044  // be included in the string output. The member name will be present, but the
 10045  // value will be replaced with "sensitive".
 10046  func (s GetFirewallConfigInput) String() string {
 10047  	return awsutil.Prettify(s)
 10048  }
 10049  
 10050  // GoString returns the string representation.
 10051  //
 10052  // API parameter values that are decorated as "sensitive" in the API will not
 10053  // be included in the string output. The member name will be present, but the
 10054  // value will be replaced with "sensitive".
 10055  func (s GetFirewallConfigInput) GoString() string {
 10056  	return s.String()
 10057  }
 10058  
 10059  // Validate inspects the fields of the type to determine if they are valid.
 10060  func (s *GetFirewallConfigInput) Validate() error {
 10061  	invalidParams := request.ErrInvalidParams{Context: "GetFirewallConfigInput"}
 10062  	if s.ResourceId == nil {
 10063  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
 10064  	}
 10065  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
 10066  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
 10067  	}
 10068  
 10069  	if invalidParams.Len() > 0 {
 10070  		return invalidParams
 10071  	}
 10072  	return nil
 10073  }
 10074  
 10075  // SetResourceId sets the ResourceId field's value.
 10076  func (s *GetFirewallConfigInput) SetResourceId(v string) *GetFirewallConfigInput {
 10077  	s.ResourceId = &v
 10078  	return s
 10079  }
 10080  
 10081  type GetFirewallConfigOutput struct {
 10082  	_ struct{} `type:"structure"`
 10083  
 10084  	// Configuration of the firewall behavior provided by DNS Firewall for a single
 10085  	// VPC from AmazonVPC.
 10086  	FirewallConfig *FirewallConfig `type:"structure"`
 10087  }
 10088  
 10089  // String returns the string representation.
 10090  //
 10091  // API parameter values that are decorated as "sensitive" in the API will not
 10092  // be included in the string output. The member name will be present, but the
 10093  // value will be replaced with "sensitive".
 10094  func (s GetFirewallConfigOutput) String() string {
 10095  	return awsutil.Prettify(s)
 10096  }
 10097  
 10098  // GoString returns the string representation.
 10099  //
 10100  // API parameter values that are decorated as "sensitive" in the API will not
 10101  // be included in the string output. The member name will be present, but the
 10102  // value will be replaced with "sensitive".
 10103  func (s GetFirewallConfigOutput) GoString() string {
 10104  	return s.String()
 10105  }
 10106  
 10107  // SetFirewallConfig sets the FirewallConfig field's value.
 10108  func (s *GetFirewallConfigOutput) SetFirewallConfig(v *FirewallConfig) *GetFirewallConfigOutput {
 10109  	s.FirewallConfig = v
 10110  	return s
 10111  }
 10112  
 10113  type GetFirewallDomainListInput struct {
 10114  	_ struct{} `type:"structure"`
 10115  
 10116  	// The ID of the domain list.
 10117  	//
 10118  	// FirewallDomainListId is a required field
 10119  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
 10120  }
 10121  
 10122  // String returns the string representation.
 10123  //
 10124  // API parameter values that are decorated as "sensitive" in the API will not
 10125  // be included in the string output. The member name will be present, but the
 10126  // value will be replaced with "sensitive".
 10127  func (s GetFirewallDomainListInput) String() string {
 10128  	return awsutil.Prettify(s)
 10129  }
 10130  
 10131  // GoString returns the string representation.
 10132  //
 10133  // API parameter values that are decorated as "sensitive" in the API will not
 10134  // be included in the string output. The member name will be present, but the
 10135  // value will be replaced with "sensitive".
 10136  func (s GetFirewallDomainListInput) GoString() string {
 10137  	return s.String()
 10138  }
 10139  
 10140  // Validate inspects the fields of the type to determine if they are valid.
 10141  func (s *GetFirewallDomainListInput) Validate() error {
 10142  	invalidParams := request.ErrInvalidParams{Context: "GetFirewallDomainListInput"}
 10143  	if s.FirewallDomainListId == nil {
 10144  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
 10145  	}
 10146  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
 10147  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
 10148  	}
 10149  
 10150  	if invalidParams.Len() > 0 {
 10151  		return invalidParams
 10152  	}
 10153  	return nil
 10154  }
 10155  
 10156  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
 10157  func (s *GetFirewallDomainListInput) SetFirewallDomainListId(v string) *GetFirewallDomainListInput {
 10158  	s.FirewallDomainListId = &v
 10159  	return s
 10160  }
 10161  
 10162  type GetFirewallDomainListOutput struct {
 10163  	_ struct{} `type:"structure"`
 10164  
 10165  	// The domain list that you requested.
 10166  	FirewallDomainList *FirewallDomainList `type:"structure"`
 10167  }
 10168  
 10169  // String returns the string representation.
 10170  //
 10171  // API parameter values that are decorated as "sensitive" in the API will not
 10172  // be included in the string output. The member name will be present, but the
 10173  // value will be replaced with "sensitive".
 10174  func (s GetFirewallDomainListOutput) String() string {
 10175  	return awsutil.Prettify(s)
 10176  }
 10177  
 10178  // GoString returns the string representation.
 10179  //
 10180  // API parameter values that are decorated as "sensitive" in the API will not
 10181  // be included in the string output. The member name will be present, but the
 10182  // value will be replaced with "sensitive".
 10183  func (s GetFirewallDomainListOutput) GoString() string {
 10184  	return s.String()
 10185  }
 10186  
 10187  // SetFirewallDomainList sets the FirewallDomainList field's value.
 10188  func (s *GetFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *GetFirewallDomainListOutput {
 10189  	s.FirewallDomainList = v
 10190  	return s
 10191  }
 10192  
 10193  type GetFirewallRuleGroupAssociationInput struct {
 10194  	_ struct{} `type:"structure"`
 10195  
 10196  	// The identifier of the FirewallRuleGroupAssociation.
 10197  	//
 10198  	// FirewallRuleGroupAssociationId is a required field
 10199  	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
 10200  }
 10201  
 10202  // String returns the string representation.
 10203  //
 10204  // API parameter values that are decorated as "sensitive" in the API will not
 10205  // be included in the string output. The member name will be present, but the
 10206  // value will be replaced with "sensitive".
 10207  func (s GetFirewallRuleGroupAssociationInput) String() string {
 10208  	return awsutil.Prettify(s)
 10209  }
 10210  
 10211  // GoString returns the string representation.
 10212  //
 10213  // API parameter values that are decorated as "sensitive" in the API will not
 10214  // be included in the string output. The member name will be present, but the
 10215  // value will be replaced with "sensitive".
 10216  func (s GetFirewallRuleGroupAssociationInput) GoString() string {
 10217  	return s.String()
 10218  }
 10219  
 10220  // Validate inspects the fields of the type to determine if they are valid.
 10221  func (s *GetFirewallRuleGroupAssociationInput) Validate() error {
 10222  	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupAssociationInput"}
 10223  	if s.FirewallRuleGroupAssociationId == nil {
 10224  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
 10225  	}
 10226  	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
 10227  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
 10228  	}
 10229  
 10230  	if invalidParams.Len() > 0 {
 10231  		return invalidParams
 10232  	}
 10233  	return nil
 10234  }
 10235  
 10236  // SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
 10237  func (s *GetFirewallRuleGroupAssociationInput) SetFirewallRuleGroupAssociationId(v string) *GetFirewallRuleGroupAssociationInput {
 10238  	s.FirewallRuleGroupAssociationId = &v
 10239  	return s
 10240  }
 10241  
 10242  type GetFirewallRuleGroupAssociationOutput struct {
 10243  	_ struct{} `type:"structure"`
 10244  
 10245  	// The association that you requested.
 10246  	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
 10247  }
 10248  
 10249  // String returns the string representation.
 10250  //
 10251  // API parameter values that are decorated as "sensitive" in the API will not
 10252  // be included in the string output. The member name will be present, but the
 10253  // value will be replaced with "sensitive".
 10254  func (s GetFirewallRuleGroupAssociationOutput) String() string {
 10255  	return awsutil.Prettify(s)
 10256  }
 10257  
 10258  // GoString returns the string representation.
 10259  //
 10260  // API parameter values that are decorated as "sensitive" in the API will not
 10261  // be included in the string output. The member name will be present, but the
 10262  // value will be replaced with "sensitive".
 10263  func (s GetFirewallRuleGroupAssociationOutput) GoString() string {
 10264  	return s.String()
 10265  }
 10266  
 10267  // SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
 10268  func (s *GetFirewallRuleGroupAssociationOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *GetFirewallRuleGroupAssociationOutput {
 10269  	s.FirewallRuleGroupAssociation = v
 10270  	return s
 10271  }
 10272  
 10273  type GetFirewallRuleGroupInput struct {
 10274  	_ struct{} `type:"structure"`
 10275  
 10276  	// The unique identifier of the firewall rule group.
 10277  	//
 10278  	// FirewallRuleGroupId is a required field
 10279  	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
 10280  }
 10281  
 10282  // String returns the string representation.
 10283  //
 10284  // API parameter values that are decorated as "sensitive" in the API will not
 10285  // be included in the string output. The member name will be present, but the
 10286  // value will be replaced with "sensitive".
 10287  func (s GetFirewallRuleGroupInput) String() string {
 10288  	return awsutil.Prettify(s)
 10289  }
 10290  
 10291  // GoString returns the string representation.
 10292  //
 10293  // API parameter values that are decorated as "sensitive" in the API will not
 10294  // be included in the string output. The member name will be present, but the
 10295  // value will be replaced with "sensitive".
 10296  func (s GetFirewallRuleGroupInput) GoString() string {
 10297  	return s.String()
 10298  }
 10299  
 10300  // Validate inspects the fields of the type to determine if they are valid.
 10301  func (s *GetFirewallRuleGroupInput) Validate() error {
 10302  	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupInput"}
 10303  	if s.FirewallRuleGroupId == nil {
 10304  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
 10305  	}
 10306  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
 10307  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
 10308  	}
 10309  
 10310  	if invalidParams.Len() > 0 {
 10311  		return invalidParams
 10312  	}
 10313  	return nil
 10314  }
 10315  
 10316  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
 10317  func (s *GetFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *GetFirewallRuleGroupInput {
 10318  	s.FirewallRuleGroupId = &v
 10319  	return s
 10320  }
 10321  
 10322  type GetFirewallRuleGroupOutput struct {
 10323  	_ struct{} `type:"structure"`
 10324  
 10325  	// A collection of rules used to filter DNS network traffic.
 10326  	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
 10327  }
 10328  
 10329  // String returns the string representation.
 10330  //
 10331  // API parameter values that are decorated as "sensitive" in the API will not
 10332  // be included in the string output. The member name will be present, but the
 10333  // value will be replaced with "sensitive".
 10334  func (s GetFirewallRuleGroupOutput) String() string {
 10335  	return awsutil.Prettify(s)
 10336  }
 10337  
 10338  // GoString returns the string representation.
 10339  //
 10340  // API parameter values that are decorated as "sensitive" in the API will not
 10341  // be included in the string output. The member name will be present, but the
 10342  // value will be replaced with "sensitive".
 10343  func (s GetFirewallRuleGroupOutput) GoString() string {
 10344  	return s.String()
 10345  }
 10346  
 10347  // SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
 10348  func (s *GetFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *GetFirewallRuleGroupOutput {
 10349  	s.FirewallRuleGroup = v
 10350  	return s
 10351  }
 10352  
 10353  type GetFirewallRuleGroupPolicyInput struct {
 10354  	_ struct{} `type:"structure"`
 10355  
 10356  	// The ARN (Amazon Resource Name) for the rule group.
 10357  	//
 10358  	// Arn is a required field
 10359  	Arn *string `min:"1" type:"string" required:"true"`
 10360  }
 10361  
 10362  // String returns the string representation.
 10363  //
 10364  // API parameter values that are decorated as "sensitive" in the API will not
 10365  // be included in the string output. The member name will be present, but the
 10366  // value will be replaced with "sensitive".
 10367  func (s GetFirewallRuleGroupPolicyInput) String() string {
 10368  	return awsutil.Prettify(s)
 10369  }
 10370  
 10371  // GoString returns the string representation.
 10372  //
 10373  // API parameter values that are decorated as "sensitive" in the API will not
 10374  // be included in the string output. The member name will be present, but the
 10375  // value will be replaced with "sensitive".
 10376  func (s GetFirewallRuleGroupPolicyInput) GoString() string {
 10377  	return s.String()
 10378  }
 10379  
 10380  // Validate inspects the fields of the type to determine if they are valid.
 10381  func (s *GetFirewallRuleGroupPolicyInput) Validate() error {
 10382  	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupPolicyInput"}
 10383  	if s.Arn == nil {
 10384  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 10385  	}
 10386  	if s.Arn != nil && len(*s.Arn) < 1 {
 10387  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 10388  	}
 10389  
 10390  	if invalidParams.Len() > 0 {
 10391  		return invalidParams
 10392  	}
 10393  	return nil
 10394  }
 10395  
 10396  // SetArn sets the Arn field's value.
 10397  func (s *GetFirewallRuleGroupPolicyInput) SetArn(v string) *GetFirewallRuleGroupPolicyInput {
 10398  	s.Arn = &v
 10399  	return s
 10400  }
 10401  
 10402  type GetFirewallRuleGroupPolicyOutput struct {
 10403  	_ struct{} `type:"structure"`
 10404  
 10405  	// The Identity and Access Management (Amazon Web Services IAM) policy for sharing
 10406  	// the specified rule group. You can use the policy to share the rule group
 10407  	// using Resource Access Manager (RAM).
 10408  	FirewallRuleGroupPolicy *string `type:"string"`
 10409  }
 10410  
 10411  // String returns the string representation.
 10412  //
 10413  // API parameter values that are decorated as "sensitive" in the API will not
 10414  // be included in the string output. The member name will be present, but the
 10415  // value will be replaced with "sensitive".
 10416  func (s GetFirewallRuleGroupPolicyOutput) String() string {
 10417  	return awsutil.Prettify(s)
 10418  }
 10419  
 10420  // GoString returns the string representation.
 10421  //
 10422  // API parameter values that are decorated as "sensitive" in the API will not
 10423  // be included in the string output. The member name will be present, but the
 10424  // value will be replaced with "sensitive".
 10425  func (s GetFirewallRuleGroupPolicyOutput) GoString() string {
 10426  	return s.String()
 10427  }
 10428  
 10429  // SetFirewallRuleGroupPolicy sets the FirewallRuleGroupPolicy field's value.
 10430  func (s *GetFirewallRuleGroupPolicyOutput) SetFirewallRuleGroupPolicy(v string) *GetFirewallRuleGroupPolicyOutput {
 10431  	s.FirewallRuleGroupPolicy = &v
 10432  	return s
 10433  }
 10434  
 10435  type GetResolverDnssecConfigInput struct {
 10436  	_ struct{} `type:"structure"`
 10437  
 10438  	// The ID of the virtual private cloud (VPC) for the DNSSEC validation status.
 10439  	//
 10440  	// ResourceId is a required field
 10441  	ResourceId *string `min:"1" type:"string" required:"true"`
 10442  }
 10443  
 10444  // String returns the string representation.
 10445  //
 10446  // API parameter values that are decorated as "sensitive" in the API will not
 10447  // be included in the string output. The member name will be present, but the
 10448  // value will be replaced with "sensitive".
 10449  func (s GetResolverDnssecConfigInput) String() string {
 10450  	return awsutil.Prettify(s)
 10451  }
 10452  
 10453  // GoString returns the string representation.
 10454  //
 10455  // API parameter values that are decorated as "sensitive" in the API will not
 10456  // be included in the string output. The member name will be present, but the
 10457  // value will be replaced with "sensitive".
 10458  func (s GetResolverDnssecConfigInput) GoString() string {
 10459  	return s.String()
 10460  }
 10461  
 10462  // Validate inspects the fields of the type to determine if they are valid.
 10463  func (s *GetResolverDnssecConfigInput) Validate() error {
 10464  	invalidParams := request.ErrInvalidParams{Context: "GetResolverDnssecConfigInput"}
 10465  	if s.ResourceId == nil {
 10466  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
 10467  	}
 10468  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
 10469  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
 10470  	}
 10471  
 10472  	if invalidParams.Len() > 0 {
 10473  		return invalidParams
 10474  	}
 10475  	return nil
 10476  }
 10477  
 10478  // SetResourceId sets the ResourceId field's value.
 10479  func (s *GetResolverDnssecConfigInput) SetResourceId(v string) *GetResolverDnssecConfigInput {
 10480  	s.ResourceId = &v
 10481  	return s
 10482  }
 10483  
 10484  type GetResolverDnssecConfigOutput struct {
 10485  	_ struct{} `type:"structure"`
 10486  
 10487  	// The information about a configuration for DNSSEC validation.
 10488  	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
 10489  }
 10490  
 10491  // String returns the string representation.
 10492  //
 10493  // API parameter values that are decorated as "sensitive" in the API will not
 10494  // be included in the string output. The member name will be present, but the
 10495  // value will be replaced with "sensitive".
 10496  func (s GetResolverDnssecConfigOutput) String() string {
 10497  	return awsutil.Prettify(s)
 10498  }
 10499  
 10500  // GoString returns the string representation.
 10501  //
 10502  // API parameter values that are decorated as "sensitive" in the API will not
 10503  // be included in the string output. The member name will be present, but the
 10504  // value will be replaced with "sensitive".
 10505  func (s GetResolverDnssecConfigOutput) GoString() string {
 10506  	return s.String()
 10507  }
 10508  
 10509  // SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
 10510  func (s *GetResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *GetResolverDnssecConfigOutput {
 10511  	s.ResolverDNSSECConfig = v
 10512  	return s
 10513  }
 10514  
 10515  type GetResolverEndpointInput struct {
 10516  	_ struct{} `type:"structure"`
 10517  
 10518  	// The ID of the Resolver endpoint that you want to get information about.
 10519  	//
 10520  	// ResolverEndpointId is a required field
 10521  	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
 10522  }
 10523  
 10524  // String returns the string representation.
 10525  //
 10526  // API parameter values that are decorated as "sensitive" in the API will not
 10527  // be included in the string output. The member name will be present, but the
 10528  // value will be replaced with "sensitive".
 10529  func (s GetResolverEndpointInput) String() string {
 10530  	return awsutil.Prettify(s)
 10531  }
 10532  
 10533  // GoString returns the string representation.
 10534  //
 10535  // API parameter values that are decorated as "sensitive" in the API will not
 10536  // be included in the string output. The member name will be present, but the
 10537  // value will be replaced with "sensitive".
 10538  func (s GetResolverEndpointInput) GoString() string {
 10539  	return s.String()
 10540  }
 10541  
 10542  // Validate inspects the fields of the type to determine if they are valid.
 10543  func (s *GetResolverEndpointInput) Validate() error {
 10544  	invalidParams := request.ErrInvalidParams{Context: "GetResolverEndpointInput"}
 10545  	if s.ResolverEndpointId == nil {
 10546  		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
 10547  	}
 10548  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
 10549  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
 10550  	}
 10551  
 10552  	if invalidParams.Len() > 0 {
 10553  		return invalidParams
 10554  	}
 10555  	return nil
 10556  }
 10557  
 10558  // SetResolverEndpointId sets the ResolverEndpointId field's value.
 10559  func (s *GetResolverEndpointInput) SetResolverEndpointId(v string) *GetResolverEndpointInput {
 10560  	s.ResolverEndpointId = &v
 10561  	return s
 10562  }
 10563  
 10564  type GetResolverEndpointOutput struct {
 10565  	_ struct{} `type:"structure"`
 10566  
 10567  	// Information about the Resolver endpoint that you specified in a GetResolverEndpoint
 10568  	// request.
 10569  	ResolverEndpoint *ResolverEndpoint `type:"structure"`
 10570  }
 10571  
 10572  // String returns the string representation.
 10573  //
 10574  // API parameter values that are decorated as "sensitive" in the API will not
 10575  // be included in the string output. The member name will be present, but the
 10576  // value will be replaced with "sensitive".
 10577  func (s GetResolverEndpointOutput) String() string {
 10578  	return awsutil.Prettify(s)
 10579  }
 10580  
 10581  // GoString returns the string representation.
 10582  //
 10583  // API parameter values that are decorated as "sensitive" in the API will not
 10584  // be included in the string output. The member name will be present, but the
 10585  // value will be replaced with "sensitive".
 10586  func (s GetResolverEndpointOutput) GoString() string {
 10587  	return s.String()
 10588  }
 10589  
 10590  // SetResolverEndpoint sets the ResolverEndpoint field's value.
 10591  func (s *GetResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *GetResolverEndpointOutput {
 10592  	s.ResolverEndpoint = v
 10593  	return s
 10594  }
 10595  
 10596  type GetResolverQueryLogConfigAssociationInput struct {
 10597  	_ struct{} `type:"structure"`
 10598  
 10599  	// The ID of the Resolver query logging configuration association that you want
 10600  	// to get information about.
 10601  	//
 10602  	// ResolverQueryLogConfigAssociationId is a required field
 10603  	ResolverQueryLogConfigAssociationId *string `min:"1" type:"string" required:"true"`
 10604  }
 10605  
 10606  // String returns the string representation.
 10607  //
 10608  // API parameter values that are decorated as "sensitive" in the API will not
 10609  // be included in the string output. The member name will be present, but the
 10610  // value will be replaced with "sensitive".
 10611  func (s GetResolverQueryLogConfigAssociationInput) String() string {
 10612  	return awsutil.Prettify(s)
 10613  }
 10614  
 10615  // GoString returns the string representation.
 10616  //
 10617  // API parameter values that are decorated as "sensitive" in the API will not
 10618  // be included in the string output. The member name will be present, but the
 10619  // value will be replaced with "sensitive".
 10620  func (s GetResolverQueryLogConfigAssociationInput) GoString() string {
 10621  	return s.String()
 10622  }
 10623  
 10624  // Validate inspects the fields of the type to determine if they are valid.
 10625  func (s *GetResolverQueryLogConfigAssociationInput) Validate() error {
 10626  	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigAssociationInput"}
 10627  	if s.ResolverQueryLogConfigAssociationId == nil {
 10628  		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigAssociationId"))
 10629  	}
 10630  	if s.ResolverQueryLogConfigAssociationId != nil && len(*s.ResolverQueryLogConfigAssociationId) < 1 {
 10631  		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigAssociationId", 1))
 10632  	}
 10633  
 10634  	if invalidParams.Len() > 0 {
 10635  		return invalidParams
 10636  	}
 10637  	return nil
 10638  }
 10639  
 10640  // SetResolverQueryLogConfigAssociationId sets the ResolverQueryLogConfigAssociationId field's value.
 10641  func (s *GetResolverQueryLogConfigAssociationInput) SetResolverQueryLogConfigAssociationId(v string) *GetResolverQueryLogConfigAssociationInput {
 10642  	s.ResolverQueryLogConfigAssociationId = &v
 10643  	return s
 10644  }
 10645  
 10646  type GetResolverQueryLogConfigAssociationOutput struct {
 10647  	_ struct{} `type:"structure"`
 10648  
 10649  	// Information about the Resolver query logging configuration association that
 10650  	// you specified in a GetQueryLogConfigAssociation request.
 10651  	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
 10652  }
 10653  
 10654  // String returns the string representation.
 10655  //
 10656  // API parameter values that are decorated as "sensitive" in the API will not
 10657  // be included in the string output. The member name will be present, but the
 10658  // value will be replaced with "sensitive".
 10659  func (s GetResolverQueryLogConfigAssociationOutput) String() string {
 10660  	return awsutil.Prettify(s)
 10661  }
 10662  
 10663  // GoString returns the string representation.
 10664  //
 10665  // API parameter values that are decorated as "sensitive" in the API will not
 10666  // be included in the string output. The member name will be present, but the
 10667  // value will be replaced with "sensitive".
 10668  func (s GetResolverQueryLogConfigAssociationOutput) GoString() string {
 10669  	return s.String()
 10670  }
 10671  
 10672  // SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
 10673  func (s *GetResolverQueryLogConfigAssociationOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *GetResolverQueryLogConfigAssociationOutput {
 10674  	s.ResolverQueryLogConfigAssociation = v
 10675  	return s
 10676  }
 10677  
 10678  type GetResolverQueryLogConfigInput struct {
 10679  	_ struct{} `type:"structure"`
 10680  
 10681  	// The ID of the Resolver query logging configuration that you want to get information
 10682  	// about.
 10683  	//
 10684  	// ResolverQueryLogConfigId is a required field
 10685  	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
 10686  }
 10687  
 10688  // String returns the string representation.
 10689  //
 10690  // API parameter values that are decorated as "sensitive" in the API will not
 10691  // be included in the string output. The member name will be present, but the
 10692  // value will be replaced with "sensitive".
 10693  func (s GetResolverQueryLogConfigInput) String() string {
 10694  	return awsutil.Prettify(s)
 10695  }
 10696  
 10697  // GoString returns the string representation.
 10698  //
 10699  // API parameter values that are decorated as "sensitive" in the API will not
 10700  // be included in the string output. The member name will be present, but the
 10701  // value will be replaced with "sensitive".
 10702  func (s GetResolverQueryLogConfigInput) GoString() string {
 10703  	return s.String()
 10704  }
 10705  
 10706  // Validate inspects the fields of the type to determine if they are valid.
 10707  func (s *GetResolverQueryLogConfigInput) Validate() error {
 10708  	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigInput"}
 10709  	if s.ResolverQueryLogConfigId == nil {
 10710  		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
 10711  	}
 10712  	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
 10713  		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
 10714  	}
 10715  
 10716  	if invalidParams.Len() > 0 {
 10717  		return invalidParams
 10718  	}
 10719  	return nil
 10720  }
 10721  
 10722  // SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
 10723  func (s *GetResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *GetResolverQueryLogConfigInput {
 10724  	s.ResolverQueryLogConfigId = &v
 10725  	return s
 10726  }
 10727  
 10728  type GetResolverQueryLogConfigOutput struct {
 10729  	_ struct{} `type:"structure"`
 10730  
 10731  	// Information about the Resolver query logging configuration that you specified
 10732  	// in a GetQueryLogConfig request.
 10733  	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
 10734  }
 10735  
 10736  // String returns the string representation.
 10737  //
 10738  // API parameter values that are decorated as "sensitive" in the API will not
 10739  // be included in the string output. The member name will be present, but the
 10740  // value will be replaced with "sensitive".
 10741  func (s GetResolverQueryLogConfigOutput) String() string {
 10742  	return awsutil.Prettify(s)
 10743  }
 10744  
 10745  // GoString returns the string representation.
 10746  //
 10747  // API parameter values that are decorated as "sensitive" in the API will not
 10748  // be included in the string output. The member name will be present, but the
 10749  // value will be replaced with "sensitive".
 10750  func (s GetResolverQueryLogConfigOutput) GoString() string {
 10751  	return s.String()
 10752  }
 10753  
 10754  // SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
 10755  func (s *GetResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *GetResolverQueryLogConfigOutput {
 10756  	s.ResolverQueryLogConfig = v
 10757  	return s
 10758  }
 10759  
 10760  type GetResolverQueryLogConfigPolicyInput struct {
 10761  	_ struct{} `type:"structure"`
 10762  
 10763  	// The ARN of the query logging configuration that you want to get the query
 10764  	// logging policy for.
 10765  	//
 10766  	// Arn is a required field
 10767  	Arn *string `min:"1" type:"string" required:"true"`
 10768  }
 10769  
 10770  // String returns the string representation.
 10771  //
 10772  // API parameter values that are decorated as "sensitive" in the API will not
 10773  // be included in the string output. The member name will be present, but the
 10774  // value will be replaced with "sensitive".
 10775  func (s GetResolverQueryLogConfigPolicyInput) String() string {
 10776  	return awsutil.Prettify(s)
 10777  }
 10778  
 10779  // GoString returns the string representation.
 10780  //
 10781  // API parameter values that are decorated as "sensitive" in the API will not
 10782  // be included in the string output. The member name will be present, but the
 10783  // value will be replaced with "sensitive".
 10784  func (s GetResolverQueryLogConfigPolicyInput) GoString() string {
 10785  	return s.String()
 10786  }
 10787  
 10788  // Validate inspects the fields of the type to determine if they are valid.
 10789  func (s *GetResolverQueryLogConfigPolicyInput) Validate() error {
 10790  	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigPolicyInput"}
 10791  	if s.Arn == nil {
 10792  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 10793  	}
 10794  	if s.Arn != nil && len(*s.Arn) < 1 {
 10795  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 10796  	}
 10797  
 10798  	if invalidParams.Len() > 0 {
 10799  		return invalidParams
 10800  	}
 10801  	return nil
 10802  }
 10803  
 10804  // SetArn sets the Arn field's value.
 10805  func (s *GetResolverQueryLogConfigPolicyInput) SetArn(v string) *GetResolverQueryLogConfigPolicyInput {
 10806  	s.Arn = &v
 10807  	return s
 10808  }
 10809  
 10810  type GetResolverQueryLogConfigPolicyOutput struct {
 10811  	_ struct{} `type:"structure"`
 10812  
 10813  	// Information about the query logging policy for the query logging configuration
 10814  	// that you specified in a GetResolverQueryLogConfigPolicy request.
 10815  	ResolverQueryLogConfigPolicy *string `type:"string"`
 10816  }
 10817  
 10818  // String returns the string representation.
 10819  //
 10820  // API parameter values that are decorated as "sensitive" in the API will not
 10821  // be included in the string output. The member name will be present, but the
 10822  // value will be replaced with "sensitive".
 10823  func (s GetResolverQueryLogConfigPolicyOutput) String() string {
 10824  	return awsutil.Prettify(s)
 10825  }
 10826  
 10827  // GoString returns the string representation.
 10828  //
 10829  // API parameter values that are decorated as "sensitive" in the API will not
 10830  // be included in the string output. The member name will be present, but the
 10831  // value will be replaced with "sensitive".
 10832  func (s GetResolverQueryLogConfigPolicyOutput) GoString() string {
 10833  	return s.String()
 10834  }
 10835  
 10836  // SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
 10837  func (s *GetResolverQueryLogConfigPolicyOutput) SetResolverQueryLogConfigPolicy(v string) *GetResolverQueryLogConfigPolicyOutput {
 10838  	s.ResolverQueryLogConfigPolicy = &v
 10839  	return s
 10840  }
 10841  
 10842  type GetResolverRuleAssociationInput struct {
 10843  	_ struct{} `type:"structure"`
 10844  
 10845  	// The ID of the Resolver rule association that you want to get information
 10846  	// about.
 10847  	//
 10848  	// ResolverRuleAssociationId is a required field
 10849  	ResolverRuleAssociationId *string `min:"1" type:"string" required:"true"`
 10850  }
 10851  
 10852  // String 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 GetResolverRuleAssociationInput) String() string {
 10858  	return awsutil.Prettify(s)
 10859  }
 10860  
 10861  // GoString returns the string representation.
 10862  //
 10863  // API parameter values that are decorated as "sensitive" in the API will not
 10864  // be included in the string output. The member name will be present, but the
 10865  // value will be replaced with "sensitive".
 10866  func (s GetResolverRuleAssociationInput) GoString() string {
 10867  	return s.String()
 10868  }
 10869  
 10870  // Validate inspects the fields of the type to determine if they are valid.
 10871  func (s *GetResolverRuleAssociationInput) Validate() error {
 10872  	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleAssociationInput"}
 10873  	if s.ResolverRuleAssociationId == nil {
 10874  		invalidParams.Add(request.NewErrParamRequired("ResolverRuleAssociationId"))
 10875  	}
 10876  	if s.ResolverRuleAssociationId != nil && len(*s.ResolverRuleAssociationId) < 1 {
 10877  		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleAssociationId", 1))
 10878  	}
 10879  
 10880  	if invalidParams.Len() > 0 {
 10881  		return invalidParams
 10882  	}
 10883  	return nil
 10884  }
 10885  
 10886  // SetResolverRuleAssociationId sets the ResolverRuleAssociationId field's value.
 10887  func (s *GetResolverRuleAssociationInput) SetResolverRuleAssociationId(v string) *GetResolverRuleAssociationInput {
 10888  	s.ResolverRuleAssociationId = &v
 10889  	return s
 10890  }
 10891  
 10892  type GetResolverRuleAssociationOutput struct {
 10893  	_ struct{} `type:"structure"`
 10894  
 10895  	// Information about the Resolver rule association that you specified in a GetResolverRuleAssociation
 10896  	// request.
 10897  	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
 10898  }
 10899  
 10900  // String returns the string representation.
 10901  //
 10902  // API parameter values that are decorated as "sensitive" in the API will not
 10903  // be included in the string output. The member name will be present, but the
 10904  // value will be replaced with "sensitive".
 10905  func (s GetResolverRuleAssociationOutput) String() string {
 10906  	return awsutil.Prettify(s)
 10907  }
 10908  
 10909  // GoString returns the string representation.
 10910  //
 10911  // API parameter values that are decorated as "sensitive" in the API will not
 10912  // be included in the string output. The member name will be present, but the
 10913  // value will be replaced with "sensitive".
 10914  func (s GetResolverRuleAssociationOutput) GoString() string {
 10915  	return s.String()
 10916  }
 10917  
 10918  // SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
 10919  func (s *GetResolverRuleAssociationOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *GetResolverRuleAssociationOutput {
 10920  	s.ResolverRuleAssociation = v
 10921  	return s
 10922  }
 10923  
 10924  type GetResolverRuleInput struct {
 10925  	_ struct{} `type:"structure"`
 10926  
 10927  	// The ID of the Resolver rule that you want to get information about.
 10928  	//
 10929  	// ResolverRuleId is a required field
 10930  	ResolverRuleId *string `min:"1" type:"string" required:"true"`
 10931  }
 10932  
 10933  // String returns the string representation.
 10934  //
 10935  // API parameter values that are decorated as "sensitive" in the API will not
 10936  // be included in the string output. The member name will be present, but the
 10937  // value will be replaced with "sensitive".
 10938  func (s GetResolverRuleInput) String() string {
 10939  	return awsutil.Prettify(s)
 10940  }
 10941  
 10942  // GoString returns the string representation.
 10943  //
 10944  // API parameter values that are decorated as "sensitive" in the API will not
 10945  // be included in the string output. The member name will be present, but the
 10946  // value will be replaced with "sensitive".
 10947  func (s GetResolverRuleInput) GoString() string {
 10948  	return s.String()
 10949  }
 10950  
 10951  // Validate inspects the fields of the type to determine if they are valid.
 10952  func (s *GetResolverRuleInput) Validate() error {
 10953  	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleInput"}
 10954  	if s.ResolverRuleId == nil {
 10955  		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
 10956  	}
 10957  	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
 10958  		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
 10959  	}
 10960  
 10961  	if invalidParams.Len() > 0 {
 10962  		return invalidParams
 10963  	}
 10964  	return nil
 10965  }
 10966  
 10967  // SetResolverRuleId sets the ResolverRuleId field's value.
 10968  func (s *GetResolverRuleInput) SetResolverRuleId(v string) *GetResolverRuleInput {
 10969  	s.ResolverRuleId = &v
 10970  	return s
 10971  }
 10972  
 10973  type GetResolverRuleOutput struct {
 10974  	_ struct{} `type:"structure"`
 10975  
 10976  	// Information about the Resolver rule that you specified in a GetResolverRule
 10977  	// request.
 10978  	ResolverRule *ResolverRule `type:"structure"`
 10979  }
 10980  
 10981  // String returns the string representation.
 10982  //
 10983  // API parameter values that are decorated as "sensitive" in the API will not
 10984  // be included in the string output. The member name will be present, but the
 10985  // value will be replaced with "sensitive".
 10986  func (s GetResolverRuleOutput) String() string {
 10987  	return awsutil.Prettify(s)
 10988  }
 10989  
 10990  // GoString returns the string representation.
 10991  //
 10992  // API parameter values that are decorated as "sensitive" in the API will not
 10993  // be included in the string output. The member name will be present, but the
 10994  // value will be replaced with "sensitive".
 10995  func (s GetResolverRuleOutput) GoString() string {
 10996  	return s.String()
 10997  }
 10998  
 10999  // SetResolverRule sets the ResolverRule field's value.
 11000  func (s *GetResolverRuleOutput) SetResolverRule(v *ResolverRule) *GetResolverRuleOutput {
 11001  	s.ResolverRule = v
 11002  	return s
 11003  }
 11004  
 11005  type GetResolverRulePolicyInput struct {
 11006  	_ struct{} `type:"structure"`
 11007  
 11008  	// The ID of the Resolver rule that you want to get the Resolver rule policy
 11009  	// for.
 11010  	//
 11011  	// Arn is a required field
 11012  	Arn *string `min:"1" type:"string" required:"true"`
 11013  }
 11014  
 11015  // String returns the string representation.
 11016  //
 11017  // API parameter values that are decorated as "sensitive" in the API will not
 11018  // be included in the string output. The member name will be present, but the
 11019  // value will be replaced with "sensitive".
 11020  func (s GetResolverRulePolicyInput) String() string {
 11021  	return awsutil.Prettify(s)
 11022  }
 11023  
 11024  // GoString returns the string representation.
 11025  //
 11026  // API parameter values that are decorated as "sensitive" in the API will not
 11027  // be included in the string output. The member name will be present, but the
 11028  // value will be replaced with "sensitive".
 11029  func (s GetResolverRulePolicyInput) GoString() string {
 11030  	return s.String()
 11031  }
 11032  
 11033  // Validate inspects the fields of the type to determine if they are valid.
 11034  func (s *GetResolverRulePolicyInput) Validate() error {
 11035  	invalidParams := request.ErrInvalidParams{Context: "GetResolverRulePolicyInput"}
 11036  	if s.Arn == nil {
 11037  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 11038  	}
 11039  	if s.Arn != nil && len(*s.Arn) < 1 {
 11040  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 11041  	}
 11042  
 11043  	if invalidParams.Len() > 0 {
 11044  		return invalidParams
 11045  	}
 11046  	return nil
 11047  }
 11048  
 11049  // SetArn sets the Arn field's value.
 11050  func (s *GetResolverRulePolicyInput) SetArn(v string) *GetResolverRulePolicyInput {
 11051  	s.Arn = &v
 11052  	return s
 11053  }
 11054  
 11055  type GetResolverRulePolicyOutput struct {
 11056  	_ struct{} `type:"structure"`
 11057  
 11058  	// The Resolver rule policy for the rule that you specified in a GetResolverRulePolicy
 11059  	// request.
 11060  	ResolverRulePolicy *string `type:"string"`
 11061  }
 11062  
 11063  // String returns the string representation.
 11064  //
 11065  // API parameter values that are decorated as "sensitive" in the API will not
 11066  // be included in the string output. The member name will be present, but the
 11067  // value will be replaced with "sensitive".
 11068  func (s GetResolverRulePolicyOutput) String() string {
 11069  	return awsutil.Prettify(s)
 11070  }
 11071  
 11072  // GoString returns the string representation.
 11073  //
 11074  // API parameter values that are decorated as "sensitive" in the API will not
 11075  // be included in the string output. The member name will be present, but the
 11076  // value will be replaced with "sensitive".
 11077  func (s GetResolverRulePolicyOutput) GoString() string {
 11078  	return s.String()
 11079  }
 11080  
 11081  // SetResolverRulePolicy sets the ResolverRulePolicy field's value.
 11082  func (s *GetResolverRulePolicyOutput) SetResolverRulePolicy(v string) *GetResolverRulePolicyOutput {
 11083  	s.ResolverRulePolicy = &v
 11084  	return s
 11085  }
 11086  
 11087  type ImportFirewallDomainsInput struct {
 11088  	_ struct{} `type:"structure"`
 11089  
 11090  	// The fully qualified URL or URI of the file stored in Amazon Simple Storage
 11091  	// Service (Amazon S3) that contains the list of domains to import.
 11092  	//
 11093  	// The file must be in an S3 bucket that's in the same Region as your DNS Firewall.
 11094  	// The file must be a text file and must contain a single domain per line.
 11095  	//
 11096  	// DomainFileUrl is a required field
 11097  	DomainFileUrl *string `min:"1" type:"string" required:"true"`
 11098  
 11099  	// The ID of the domain list that you want to modify with the import operation.
 11100  	//
 11101  	// FirewallDomainListId is a required field
 11102  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
 11103  
 11104  	// What you want DNS Firewall to do with the domains that are listed in the
 11105  	// file. This must be set to REPLACE, which updates the domain list to exactly
 11106  	// match the list in the file.
 11107  	//
 11108  	// Operation is a required field
 11109  	Operation *string `type:"string" required:"true" enum:"FirewallDomainImportOperation"`
 11110  }
 11111  
 11112  // String returns the string representation.
 11113  //
 11114  // API parameter values that are decorated as "sensitive" in the API will not
 11115  // be included in the string output. The member name will be present, but the
 11116  // value will be replaced with "sensitive".
 11117  func (s ImportFirewallDomainsInput) String() string {
 11118  	return awsutil.Prettify(s)
 11119  }
 11120  
 11121  // GoString returns the string representation.
 11122  //
 11123  // API parameter values that are decorated as "sensitive" in the API will not
 11124  // be included in the string output. The member name will be present, but the
 11125  // value will be replaced with "sensitive".
 11126  func (s ImportFirewallDomainsInput) GoString() string {
 11127  	return s.String()
 11128  }
 11129  
 11130  // Validate inspects the fields of the type to determine if they are valid.
 11131  func (s *ImportFirewallDomainsInput) Validate() error {
 11132  	invalidParams := request.ErrInvalidParams{Context: "ImportFirewallDomainsInput"}
 11133  	if s.DomainFileUrl == nil {
 11134  		invalidParams.Add(request.NewErrParamRequired("DomainFileUrl"))
 11135  	}
 11136  	if s.DomainFileUrl != nil && len(*s.DomainFileUrl) < 1 {
 11137  		invalidParams.Add(request.NewErrParamMinLen("DomainFileUrl", 1))
 11138  	}
 11139  	if s.FirewallDomainListId == nil {
 11140  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
 11141  	}
 11142  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
 11143  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
 11144  	}
 11145  	if s.Operation == nil {
 11146  		invalidParams.Add(request.NewErrParamRequired("Operation"))
 11147  	}
 11148  
 11149  	if invalidParams.Len() > 0 {
 11150  		return invalidParams
 11151  	}
 11152  	return nil
 11153  }
 11154  
 11155  // SetDomainFileUrl sets the DomainFileUrl field's value.
 11156  func (s *ImportFirewallDomainsInput) SetDomainFileUrl(v string) *ImportFirewallDomainsInput {
 11157  	s.DomainFileUrl = &v
 11158  	return s
 11159  }
 11160  
 11161  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
 11162  func (s *ImportFirewallDomainsInput) SetFirewallDomainListId(v string) *ImportFirewallDomainsInput {
 11163  	s.FirewallDomainListId = &v
 11164  	return s
 11165  }
 11166  
 11167  // SetOperation sets the Operation field's value.
 11168  func (s *ImportFirewallDomainsInput) SetOperation(v string) *ImportFirewallDomainsInput {
 11169  	s.Operation = &v
 11170  	return s
 11171  }
 11172  
 11173  type ImportFirewallDomainsOutput struct {
 11174  	_ struct{} `type:"structure"`
 11175  
 11176  	// The Id of the firewall domain list that DNS Firewall just updated.
 11177  	Id *string `min:"1" type:"string"`
 11178  
 11179  	// The name of the domain list.
 11180  	Name *string `type:"string"`
 11181  
 11182  	Status *string `type:"string" enum:"FirewallDomainListStatus"`
 11183  
 11184  	// Additional information about the status of the list, if available.
 11185  	StatusMessage *string `type:"string"`
 11186  }
 11187  
 11188  // String returns the string representation.
 11189  //
 11190  // API parameter values that are decorated as "sensitive" in the API will not
 11191  // be included in the string output. The member name will be present, but the
 11192  // value will be replaced with "sensitive".
 11193  func (s ImportFirewallDomainsOutput) String() string {
 11194  	return awsutil.Prettify(s)
 11195  }
 11196  
 11197  // GoString returns the string representation.
 11198  //
 11199  // API parameter values that are decorated as "sensitive" in the API will not
 11200  // be included in the string output. The member name will be present, but the
 11201  // value will be replaced with "sensitive".
 11202  func (s ImportFirewallDomainsOutput) GoString() string {
 11203  	return s.String()
 11204  }
 11205  
 11206  // SetId sets the Id field's value.
 11207  func (s *ImportFirewallDomainsOutput) SetId(v string) *ImportFirewallDomainsOutput {
 11208  	s.Id = &v
 11209  	return s
 11210  }
 11211  
 11212  // SetName sets the Name field's value.
 11213  func (s *ImportFirewallDomainsOutput) SetName(v string) *ImportFirewallDomainsOutput {
 11214  	s.Name = &v
 11215  	return s
 11216  }
 11217  
 11218  // SetStatus sets the Status field's value.
 11219  func (s *ImportFirewallDomainsOutput) SetStatus(v string) *ImportFirewallDomainsOutput {
 11220  	s.Status = &v
 11221  	return s
 11222  }
 11223  
 11224  // SetStatusMessage sets the StatusMessage field's value.
 11225  func (s *ImportFirewallDomainsOutput) SetStatusMessage(v string) *ImportFirewallDomainsOutput {
 11226  	s.StatusMessage = &v
 11227  	return s
 11228  }
 11229  
 11230  // We encountered an unknown error. Try again in a few minutes.
 11231  type InternalServiceErrorException struct {
 11232  	_            struct{}                  `type:"structure"`
 11233  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11234  
 11235  	Message_ *string `locationName:"Message" type:"string"`
 11236  }
 11237  
 11238  // String returns the string representation.
 11239  //
 11240  // API parameter values that are decorated as "sensitive" in the API will not
 11241  // be included in the string output. The member name will be present, but the
 11242  // value will be replaced with "sensitive".
 11243  func (s InternalServiceErrorException) String() string {
 11244  	return awsutil.Prettify(s)
 11245  }
 11246  
 11247  // GoString returns the string representation.
 11248  //
 11249  // API parameter values that are decorated as "sensitive" in the API will not
 11250  // be included in the string output. The member name will be present, but the
 11251  // value will be replaced with "sensitive".
 11252  func (s InternalServiceErrorException) GoString() string {
 11253  	return s.String()
 11254  }
 11255  
 11256  func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error {
 11257  	return &InternalServiceErrorException{
 11258  		RespMetadata: v,
 11259  	}
 11260  }
 11261  
 11262  // Code returns the exception type name.
 11263  func (s *InternalServiceErrorException) Code() string {
 11264  	return "InternalServiceErrorException"
 11265  }
 11266  
 11267  // Message returns the exception's message.
 11268  func (s *InternalServiceErrorException) Message() string {
 11269  	if s.Message_ != nil {
 11270  		return *s.Message_
 11271  	}
 11272  	return ""
 11273  }
 11274  
 11275  // OrigErr always returns nil, satisfies awserr.Error interface.
 11276  func (s *InternalServiceErrorException) OrigErr() error {
 11277  	return nil
 11278  }
 11279  
 11280  func (s *InternalServiceErrorException) Error() string {
 11281  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11282  }
 11283  
 11284  // Status code returns the HTTP status code for the request's response error.
 11285  func (s *InternalServiceErrorException) StatusCode() int {
 11286  	return s.RespMetadata.StatusCode
 11287  }
 11288  
 11289  // RequestID returns the service's response RequestID for request.
 11290  func (s *InternalServiceErrorException) RequestID() string {
 11291  	return s.RespMetadata.RequestID
 11292  }
 11293  
 11294  // The value that you specified for NextToken in a List request isn't valid.
 11295  type InvalidNextTokenException struct {
 11296  	_            struct{}                  `type:"structure"`
 11297  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11298  
 11299  	Message_ *string `locationName:"Message" type:"string"`
 11300  }
 11301  
 11302  // String returns the string representation.
 11303  //
 11304  // API parameter values that are decorated as "sensitive" in the API will not
 11305  // be included in the string output. The member name will be present, but the
 11306  // value will be replaced with "sensitive".
 11307  func (s InvalidNextTokenException) String() string {
 11308  	return awsutil.Prettify(s)
 11309  }
 11310  
 11311  // GoString returns the string representation.
 11312  //
 11313  // API parameter values that are decorated as "sensitive" in the API will not
 11314  // be included in the string output. The member name will be present, but the
 11315  // value will be replaced with "sensitive".
 11316  func (s InvalidNextTokenException) GoString() string {
 11317  	return s.String()
 11318  }
 11319  
 11320  func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
 11321  	return &InvalidNextTokenException{
 11322  		RespMetadata: v,
 11323  	}
 11324  }
 11325  
 11326  // Code returns the exception type name.
 11327  func (s *InvalidNextTokenException) Code() string {
 11328  	return "InvalidNextTokenException"
 11329  }
 11330  
 11331  // Message returns the exception's message.
 11332  func (s *InvalidNextTokenException) Message() string {
 11333  	if s.Message_ != nil {
 11334  		return *s.Message_
 11335  	}
 11336  	return ""
 11337  }
 11338  
 11339  // OrigErr always returns nil, satisfies awserr.Error interface.
 11340  func (s *InvalidNextTokenException) OrigErr() error {
 11341  	return nil
 11342  }
 11343  
 11344  func (s *InvalidNextTokenException) Error() string {
 11345  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11346  }
 11347  
 11348  // Status code returns the HTTP status code for the request's response error.
 11349  func (s *InvalidNextTokenException) StatusCode() int {
 11350  	return s.RespMetadata.StatusCode
 11351  }
 11352  
 11353  // RequestID returns the service's response RequestID for request.
 11354  func (s *InvalidNextTokenException) RequestID() string {
 11355  	return s.RespMetadata.RequestID
 11356  }
 11357  
 11358  // One or more parameters in this request are not valid.
 11359  type InvalidParameterException struct {
 11360  	_            struct{}                  `type:"structure"`
 11361  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11362  
 11363  	// For an InvalidParameterException error, the name of the parameter that's
 11364  	// invalid.
 11365  	FieldName *string `type:"string"`
 11366  
 11367  	Message_ *string `locationName:"Message" type:"string"`
 11368  }
 11369  
 11370  // String returns the string representation.
 11371  //
 11372  // API parameter values that are decorated as "sensitive" in the API will not
 11373  // be included in the string output. The member name will be present, but the
 11374  // value will be replaced with "sensitive".
 11375  func (s InvalidParameterException) String() string {
 11376  	return awsutil.Prettify(s)
 11377  }
 11378  
 11379  // GoString returns the string representation.
 11380  //
 11381  // API parameter values that are decorated as "sensitive" in the API will not
 11382  // be included in the string output. The member name will be present, but the
 11383  // value will be replaced with "sensitive".
 11384  func (s InvalidParameterException) GoString() string {
 11385  	return s.String()
 11386  }
 11387  
 11388  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
 11389  	return &InvalidParameterException{
 11390  		RespMetadata: v,
 11391  	}
 11392  }
 11393  
 11394  // Code returns the exception type name.
 11395  func (s *InvalidParameterException) Code() string {
 11396  	return "InvalidParameterException"
 11397  }
 11398  
 11399  // Message returns the exception's message.
 11400  func (s *InvalidParameterException) Message() string {
 11401  	if s.Message_ != nil {
 11402  		return *s.Message_
 11403  	}
 11404  	return ""
 11405  }
 11406  
 11407  // OrigErr always returns nil, satisfies awserr.Error interface.
 11408  func (s *InvalidParameterException) OrigErr() error {
 11409  	return nil
 11410  }
 11411  
 11412  func (s *InvalidParameterException) Error() string {
 11413  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 11414  }
 11415  
 11416  // Status code returns the HTTP status code for the request's response error.
 11417  func (s *InvalidParameterException) StatusCode() int {
 11418  	return s.RespMetadata.StatusCode
 11419  }
 11420  
 11421  // RequestID returns the service's response RequestID for request.
 11422  func (s *InvalidParameterException) RequestID() string {
 11423  	return s.RespMetadata.RequestID
 11424  }
 11425  
 11426  // The specified Resolver rule policy is invalid.
 11427  type InvalidPolicyDocument struct {
 11428  	_            struct{}                  `type:"structure"`
 11429  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11430  
 11431  	Message_ *string `locationName:"Message" type:"string"`
 11432  }
 11433  
 11434  // String returns the string representation.
 11435  //
 11436  // API parameter values that are decorated as "sensitive" in the API will not
 11437  // be included in the string output. The member name will be present, but the
 11438  // value will be replaced with "sensitive".
 11439  func (s InvalidPolicyDocument) String() string {
 11440  	return awsutil.Prettify(s)
 11441  }
 11442  
 11443  // GoString returns the string representation.
 11444  //
 11445  // API parameter values that are decorated as "sensitive" in the API will not
 11446  // be included in the string output. The member name will be present, but the
 11447  // value will be replaced with "sensitive".
 11448  func (s InvalidPolicyDocument) GoString() string {
 11449  	return s.String()
 11450  }
 11451  
 11452  func newErrorInvalidPolicyDocument(v protocol.ResponseMetadata) error {
 11453  	return &InvalidPolicyDocument{
 11454  		RespMetadata: v,
 11455  	}
 11456  }
 11457  
 11458  // Code returns the exception type name.
 11459  func (s *InvalidPolicyDocument) Code() string {
 11460  	return "InvalidPolicyDocument"
 11461  }
 11462  
 11463  // Message returns the exception's message.
 11464  func (s *InvalidPolicyDocument) Message() string {
 11465  	if s.Message_ != nil {
 11466  		return *s.Message_
 11467  	}
 11468  	return ""
 11469  }
 11470  
 11471  // OrigErr always returns nil, satisfies awserr.Error interface.
 11472  func (s *InvalidPolicyDocument) OrigErr() error {
 11473  	return nil
 11474  }
 11475  
 11476  func (s *InvalidPolicyDocument) Error() string {
 11477  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11478  }
 11479  
 11480  // Status code returns the HTTP status code for the request's response error.
 11481  func (s *InvalidPolicyDocument) StatusCode() int {
 11482  	return s.RespMetadata.StatusCode
 11483  }
 11484  
 11485  // RequestID returns the service's response RequestID for request.
 11486  func (s *InvalidPolicyDocument) RequestID() string {
 11487  	return s.RespMetadata.RequestID
 11488  }
 11489  
 11490  // The request is invalid.
 11491  type InvalidRequestException struct {
 11492  	_            struct{}                  `type:"structure"`
 11493  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11494  
 11495  	Message_ *string `locationName:"Message" type:"string"`
 11496  }
 11497  
 11498  // String returns the string representation.
 11499  //
 11500  // API parameter values that are decorated as "sensitive" in the API will not
 11501  // be included in the string output. The member name will be present, but the
 11502  // value will be replaced with "sensitive".
 11503  func (s InvalidRequestException) String() string {
 11504  	return awsutil.Prettify(s)
 11505  }
 11506  
 11507  // GoString returns the string representation.
 11508  //
 11509  // API parameter values that are decorated as "sensitive" in the API will not
 11510  // be included in the string output. The member name will be present, but the
 11511  // value will be replaced with "sensitive".
 11512  func (s InvalidRequestException) GoString() string {
 11513  	return s.String()
 11514  }
 11515  
 11516  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
 11517  	return &InvalidRequestException{
 11518  		RespMetadata: v,
 11519  	}
 11520  }
 11521  
 11522  // Code returns the exception type name.
 11523  func (s *InvalidRequestException) Code() string {
 11524  	return "InvalidRequestException"
 11525  }
 11526  
 11527  // Message returns the exception's message.
 11528  func (s *InvalidRequestException) Message() string {
 11529  	if s.Message_ != nil {
 11530  		return *s.Message_
 11531  	}
 11532  	return ""
 11533  }
 11534  
 11535  // OrigErr always returns nil, satisfies awserr.Error interface.
 11536  func (s *InvalidRequestException) OrigErr() error {
 11537  	return nil
 11538  }
 11539  
 11540  func (s *InvalidRequestException) Error() string {
 11541  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11542  }
 11543  
 11544  // Status code returns the HTTP status code for the request's response error.
 11545  func (s *InvalidRequestException) StatusCode() int {
 11546  	return s.RespMetadata.StatusCode
 11547  }
 11548  
 11549  // RequestID returns the service's response RequestID for request.
 11550  func (s *InvalidRequestException) RequestID() string {
 11551  	return s.RespMetadata.RequestID
 11552  }
 11553  
 11554  // The specified tag is invalid.
 11555  type InvalidTagException struct {
 11556  	_            struct{}                  `type:"structure"`
 11557  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11558  
 11559  	Message_ *string `locationName:"Message" type:"string"`
 11560  }
 11561  
 11562  // String returns the string representation.
 11563  //
 11564  // API parameter values that are decorated as "sensitive" in the API will not
 11565  // be included in the string output. The member name will be present, but the
 11566  // value will be replaced with "sensitive".
 11567  func (s InvalidTagException) String() string {
 11568  	return awsutil.Prettify(s)
 11569  }
 11570  
 11571  // GoString returns the string representation.
 11572  //
 11573  // API parameter values that are decorated as "sensitive" in the API will not
 11574  // be included in the string output. The member name will be present, but the
 11575  // value will be replaced with "sensitive".
 11576  func (s InvalidTagException) GoString() string {
 11577  	return s.String()
 11578  }
 11579  
 11580  func newErrorInvalidTagException(v protocol.ResponseMetadata) error {
 11581  	return &InvalidTagException{
 11582  		RespMetadata: v,
 11583  	}
 11584  }
 11585  
 11586  // Code returns the exception type name.
 11587  func (s *InvalidTagException) Code() string {
 11588  	return "InvalidTagException"
 11589  }
 11590  
 11591  // Message returns the exception's message.
 11592  func (s *InvalidTagException) Message() string {
 11593  	if s.Message_ != nil {
 11594  		return *s.Message_
 11595  	}
 11596  	return ""
 11597  }
 11598  
 11599  // OrigErr always returns nil, satisfies awserr.Error interface.
 11600  func (s *InvalidTagException) OrigErr() error {
 11601  	return nil
 11602  }
 11603  
 11604  func (s *InvalidTagException) Error() string {
 11605  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11606  }
 11607  
 11608  // Status code returns the HTTP status code for the request's response error.
 11609  func (s *InvalidTagException) StatusCode() int {
 11610  	return s.RespMetadata.StatusCode
 11611  }
 11612  
 11613  // RequestID returns the service's response RequestID for request.
 11614  func (s *InvalidTagException) RequestID() string {
 11615  	return s.RespMetadata.RequestID
 11616  }
 11617  
 11618  // In a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
 11619  // request, the IP address that DNS queries originate from (for outbound endpoints)
 11620  // or that you forward DNS queries to (for inbound endpoints). IpAddressRequest
 11621  // also includes the ID of the subnet that contains the IP address.
 11622  type IpAddressRequest struct {
 11623  	_ struct{} `type:"structure"`
 11624  
 11625  	// The IP address that you want to use for DNS queries.
 11626  	Ip *string `min:"7" type:"string"`
 11627  
 11628  	// The ID of the subnet that contains the IP address.
 11629  	//
 11630  	// SubnetId is a required field
 11631  	SubnetId *string `min:"1" type:"string" required:"true"`
 11632  }
 11633  
 11634  // String returns the string representation.
 11635  //
 11636  // API parameter values that are decorated as "sensitive" in the API will not
 11637  // be included in the string output. The member name will be present, but the
 11638  // value will be replaced with "sensitive".
 11639  func (s IpAddressRequest) String() string {
 11640  	return awsutil.Prettify(s)
 11641  }
 11642  
 11643  // GoString returns the string representation.
 11644  //
 11645  // API parameter values that are decorated as "sensitive" in the API will not
 11646  // be included in the string output. The member name will be present, but the
 11647  // value will be replaced with "sensitive".
 11648  func (s IpAddressRequest) GoString() string {
 11649  	return s.String()
 11650  }
 11651  
 11652  // Validate inspects the fields of the type to determine if they are valid.
 11653  func (s *IpAddressRequest) Validate() error {
 11654  	invalidParams := request.ErrInvalidParams{Context: "IpAddressRequest"}
 11655  	if s.Ip != nil && len(*s.Ip) < 7 {
 11656  		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
 11657  	}
 11658  	if s.SubnetId == nil {
 11659  		invalidParams.Add(request.NewErrParamRequired("SubnetId"))
 11660  	}
 11661  	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
 11662  		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
 11663  	}
 11664  
 11665  	if invalidParams.Len() > 0 {
 11666  		return invalidParams
 11667  	}
 11668  	return nil
 11669  }
 11670  
 11671  // SetIp sets the Ip field's value.
 11672  func (s *IpAddressRequest) SetIp(v string) *IpAddressRequest {
 11673  	s.Ip = &v
 11674  	return s
 11675  }
 11676  
 11677  // SetSubnetId sets the SubnetId field's value.
 11678  func (s *IpAddressRequest) SetSubnetId(v string) *IpAddressRequest {
 11679  	s.SubnetId = &v
 11680  	return s
 11681  }
 11682  
 11683  // In the response to a GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
 11684  // request, information about the IP addresses that the Resolver endpoint uses
 11685  // for DNS queries.
 11686  type IpAddressResponse struct {
 11687  	_ struct{} `type:"structure"`
 11688  
 11689  	// The date and time that the IP address was created, in Unix time format and
 11690  	// Coordinated Universal Time (UTC).
 11691  	CreationTime *string `min:"20" type:"string"`
 11692  
 11693  	// One IP address that the Resolver endpoint uses for DNS queries.
 11694  	Ip *string `min:"7" type:"string"`
 11695  
 11696  	// The ID of one IP address.
 11697  	IpId *string `min:"1" type:"string"`
 11698  
 11699  	// The date and time that the IP address was last modified, in Unix time format
 11700  	// and Coordinated Universal Time (UTC).
 11701  	ModificationTime *string `min:"20" type:"string"`
 11702  
 11703  	// A status code that gives the current status of the request.
 11704  	Status *string `type:"string" enum:"IpAddressStatus"`
 11705  
 11706  	// A message that provides additional information about the status of the request.
 11707  	StatusMessage *string `type:"string"`
 11708  
 11709  	// The ID of one subnet.
 11710  	SubnetId *string `min:"1" type:"string"`
 11711  }
 11712  
 11713  // String returns the string representation.
 11714  //
 11715  // API parameter values that are decorated as "sensitive" in the API will not
 11716  // be included in the string output. The member name will be present, but the
 11717  // value will be replaced with "sensitive".
 11718  func (s IpAddressResponse) String() string {
 11719  	return awsutil.Prettify(s)
 11720  }
 11721  
 11722  // GoString returns the string representation.
 11723  //
 11724  // API parameter values that are decorated as "sensitive" in the API will not
 11725  // be included in the string output. The member name will be present, but the
 11726  // value will be replaced with "sensitive".
 11727  func (s IpAddressResponse) GoString() string {
 11728  	return s.String()
 11729  }
 11730  
 11731  // SetCreationTime sets the CreationTime field's value.
 11732  func (s *IpAddressResponse) SetCreationTime(v string) *IpAddressResponse {
 11733  	s.CreationTime = &v
 11734  	return s
 11735  }
 11736  
 11737  // SetIp sets the Ip field's value.
 11738  func (s *IpAddressResponse) SetIp(v string) *IpAddressResponse {
 11739  	s.Ip = &v
 11740  	return s
 11741  }
 11742  
 11743  // SetIpId sets the IpId field's value.
 11744  func (s *IpAddressResponse) SetIpId(v string) *IpAddressResponse {
 11745  	s.IpId = &v
 11746  	return s
 11747  }
 11748  
 11749  // SetModificationTime sets the ModificationTime field's value.
 11750  func (s *IpAddressResponse) SetModificationTime(v string) *IpAddressResponse {
 11751  	s.ModificationTime = &v
 11752  	return s
 11753  }
 11754  
 11755  // SetStatus sets the Status field's value.
 11756  func (s *IpAddressResponse) SetStatus(v string) *IpAddressResponse {
 11757  	s.Status = &v
 11758  	return s
 11759  }
 11760  
 11761  // SetStatusMessage sets the StatusMessage field's value.
 11762  func (s *IpAddressResponse) SetStatusMessage(v string) *IpAddressResponse {
 11763  	s.StatusMessage = &v
 11764  	return s
 11765  }
 11766  
 11767  // SetSubnetId sets the SubnetId field's value.
 11768  func (s *IpAddressResponse) SetSubnetId(v string) *IpAddressResponse {
 11769  	s.SubnetId = &v
 11770  	return s
 11771  }
 11772  
 11773  // In an UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
 11774  // request, information about an IP address to update.
 11775  type IpAddressUpdate struct {
 11776  	_ struct{} `type:"structure"`
 11777  
 11778  	// The new IP address.
 11779  	Ip *string `min:"7" type:"string"`
 11780  
 11781  	// Only when removing an IP address from a Resolver endpoint: The ID of the
 11782  	// IP address that you want to remove. To get this ID, use GetResolverEndpoint
 11783  	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
 11784  	IpId *string `min:"1" type:"string"`
 11785  
 11786  	// The ID of the subnet that includes the IP address that you want to update.
 11787  	// To get this ID, use GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
 11788  	SubnetId *string `min:"1" type:"string"`
 11789  }
 11790  
 11791  // String returns the string representation.
 11792  //
 11793  // API parameter values that are decorated as "sensitive" in the API will not
 11794  // be included in the string output. The member name will be present, but the
 11795  // value will be replaced with "sensitive".
 11796  func (s IpAddressUpdate) String() string {
 11797  	return awsutil.Prettify(s)
 11798  }
 11799  
 11800  // GoString returns the string representation.
 11801  //
 11802  // API parameter values that are decorated as "sensitive" in the API will not
 11803  // be included in the string output. The member name will be present, but the
 11804  // value will be replaced with "sensitive".
 11805  func (s IpAddressUpdate) GoString() string {
 11806  	return s.String()
 11807  }
 11808  
 11809  // Validate inspects the fields of the type to determine if they are valid.
 11810  func (s *IpAddressUpdate) Validate() error {
 11811  	invalidParams := request.ErrInvalidParams{Context: "IpAddressUpdate"}
 11812  	if s.Ip != nil && len(*s.Ip) < 7 {
 11813  		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
 11814  	}
 11815  	if s.IpId != nil && len(*s.IpId) < 1 {
 11816  		invalidParams.Add(request.NewErrParamMinLen("IpId", 1))
 11817  	}
 11818  	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
 11819  		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
 11820  	}
 11821  
 11822  	if invalidParams.Len() > 0 {
 11823  		return invalidParams
 11824  	}
 11825  	return nil
 11826  }
 11827  
 11828  // SetIp sets the Ip field's value.
 11829  func (s *IpAddressUpdate) SetIp(v string) *IpAddressUpdate {
 11830  	s.Ip = &v
 11831  	return s
 11832  }
 11833  
 11834  // SetIpId sets the IpId field's value.
 11835  func (s *IpAddressUpdate) SetIpId(v string) *IpAddressUpdate {
 11836  	s.IpId = &v
 11837  	return s
 11838  }
 11839  
 11840  // SetSubnetId sets the SubnetId field's value.
 11841  func (s *IpAddressUpdate) SetSubnetId(v string) *IpAddressUpdate {
 11842  	s.SubnetId = &v
 11843  	return s
 11844  }
 11845  
 11846  // The request caused one or more limits to be exceeded.
 11847  type LimitExceededException struct {
 11848  	_            struct{}                  `type:"structure"`
 11849  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11850  
 11851  	Message_ *string `locationName:"Message" type:"string"`
 11852  
 11853  	// For a LimitExceededException error, the type of resource that exceeded the
 11854  	// current limit.
 11855  	ResourceType *string `type:"string"`
 11856  }
 11857  
 11858  // String returns the string representation.
 11859  //
 11860  // API parameter values that are decorated as "sensitive" in the API will not
 11861  // be included in the string output. The member name will be present, but the
 11862  // value will be replaced with "sensitive".
 11863  func (s LimitExceededException) String() string {
 11864  	return awsutil.Prettify(s)
 11865  }
 11866  
 11867  // GoString returns the string representation.
 11868  //
 11869  // API parameter values that are decorated as "sensitive" in the API will not
 11870  // be included in the string output. The member name will be present, but the
 11871  // value will be replaced with "sensitive".
 11872  func (s LimitExceededException) GoString() string {
 11873  	return s.String()
 11874  }
 11875  
 11876  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
 11877  	return &LimitExceededException{
 11878  		RespMetadata: v,
 11879  	}
 11880  }
 11881  
 11882  // Code returns the exception type name.
 11883  func (s *LimitExceededException) Code() string {
 11884  	return "LimitExceededException"
 11885  }
 11886  
 11887  // Message returns the exception's message.
 11888  func (s *LimitExceededException) Message() string {
 11889  	if s.Message_ != nil {
 11890  		return *s.Message_
 11891  	}
 11892  	return ""
 11893  }
 11894  
 11895  // OrigErr always returns nil, satisfies awserr.Error interface.
 11896  func (s *LimitExceededException) OrigErr() error {
 11897  	return nil
 11898  }
 11899  
 11900  func (s *LimitExceededException) Error() string {
 11901  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 11902  }
 11903  
 11904  // Status code returns the HTTP status code for the request's response error.
 11905  func (s *LimitExceededException) StatusCode() int {
 11906  	return s.RespMetadata.StatusCode
 11907  }
 11908  
 11909  // RequestID returns the service's response RequestID for request.
 11910  func (s *LimitExceededException) RequestID() string {
 11911  	return s.RespMetadata.RequestID
 11912  }
 11913  
 11914  type ListFirewallConfigsInput struct {
 11915  	_ struct{} `type:"structure"`
 11916  
 11917  	// The maximum number of objects that you want Resolver to return for this request.
 11918  	// If more objects are available, in the response, Resolver provides a NextToken
 11919  	// value that you can use in a subsequent call to get the next batch of objects.
 11920  	//
 11921  	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
 11922  	MaxResults *int64 `min:"5" type:"integer"`
 11923  
 11924  	// For the first call to this list request, omit this value.
 11925  	//
 11926  	// When you request a list of objects, Resolver returns at most the number of
 11927  	// objects specified in MaxResults. If more objects are available for retrieval,
 11928  	// Resolver returns a NextToken value in the response. To retrieve the next
 11929  	// batch of objects, use the token that was returned for the prior request in
 11930  	// your next request.
 11931  	NextToken *string `type:"string"`
 11932  }
 11933  
 11934  // String returns the string representation.
 11935  //
 11936  // API parameter values that are decorated as "sensitive" in the API will not
 11937  // be included in the string output. The member name will be present, but the
 11938  // value will be replaced with "sensitive".
 11939  func (s ListFirewallConfigsInput) String() string {
 11940  	return awsutil.Prettify(s)
 11941  }
 11942  
 11943  // GoString returns the string representation.
 11944  //
 11945  // API parameter values that are decorated as "sensitive" in the API will not
 11946  // be included in the string output. The member name will be present, but the
 11947  // value will be replaced with "sensitive".
 11948  func (s ListFirewallConfigsInput) GoString() string {
 11949  	return s.String()
 11950  }
 11951  
 11952  // Validate inspects the fields of the type to determine if they are valid.
 11953  func (s *ListFirewallConfigsInput) Validate() error {
 11954  	invalidParams := request.ErrInvalidParams{Context: "ListFirewallConfigsInput"}
 11955  	if s.MaxResults != nil && *s.MaxResults < 5 {
 11956  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
 11957  	}
 11958  
 11959  	if invalidParams.Len() > 0 {
 11960  		return invalidParams
 11961  	}
 11962  	return nil
 11963  }
 11964  
 11965  // SetMaxResults sets the MaxResults field's value.
 11966  func (s *ListFirewallConfigsInput) SetMaxResults(v int64) *ListFirewallConfigsInput {
 11967  	s.MaxResults = &v
 11968  	return s
 11969  }
 11970  
 11971  // SetNextToken sets the NextToken field's value.
 11972  func (s *ListFirewallConfigsInput) SetNextToken(v string) *ListFirewallConfigsInput {
 11973  	s.NextToken = &v
 11974  	return s
 11975  }
 11976  
 11977  type ListFirewallConfigsOutput struct {
 11978  	_ struct{} `type:"structure"`
 11979  
 11980  	// The configurations for the firewall behavior provided by DNS Firewall for
 11981  	// VPCs from Amazon Virtual Private Cloud (Amazon VPC).
 11982  	FirewallConfigs []*FirewallConfig `type:"list"`
 11983  
 11984  	// If objects are still available for retrieval, Resolver returns this token
 11985  	// in the response. To retrieve the next batch of objects, provide this token
 11986  	// in your next request.
 11987  	NextToken *string `type:"string"`
 11988  }
 11989  
 11990  // String returns the string representation.
 11991  //
 11992  // API parameter values that are decorated as "sensitive" in the API will not
 11993  // be included in the string output. The member name will be present, but the
 11994  // value will be replaced with "sensitive".
 11995  func (s ListFirewallConfigsOutput) String() string {
 11996  	return awsutil.Prettify(s)
 11997  }
 11998  
 11999  // GoString returns the string representation.
 12000  //
 12001  // API parameter values that are decorated as "sensitive" in the API will not
 12002  // be included in the string output. The member name will be present, but the
 12003  // value will be replaced with "sensitive".
 12004  func (s ListFirewallConfigsOutput) GoString() string {
 12005  	return s.String()
 12006  }
 12007  
 12008  // SetFirewallConfigs sets the FirewallConfigs field's value.
 12009  func (s *ListFirewallConfigsOutput) SetFirewallConfigs(v []*FirewallConfig) *ListFirewallConfigsOutput {
 12010  	s.FirewallConfigs = v
 12011  	return s
 12012  }
 12013  
 12014  // SetNextToken sets the NextToken field's value.
 12015  func (s *ListFirewallConfigsOutput) SetNextToken(v string) *ListFirewallConfigsOutput {
 12016  	s.NextToken = &v
 12017  	return s
 12018  }
 12019  
 12020  type ListFirewallDomainListsInput struct {
 12021  	_ struct{} `type:"structure"`
 12022  
 12023  	// The maximum number of objects that you want Resolver to return for this request.
 12024  	// If more objects are available, in the response, Resolver provides a NextToken
 12025  	// value that you can use in a subsequent call to get the next batch of objects.
 12026  	//
 12027  	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
 12028  	MaxResults *int64 `min:"1" type:"integer"`
 12029  
 12030  	// For the first call to this list request, omit this value.
 12031  	//
 12032  	// When you request a list of objects, Resolver returns at most the number of
 12033  	// objects specified in MaxResults. If more objects are available for retrieval,
 12034  	// Resolver returns a NextToken value in the response. To retrieve the next
 12035  	// batch of objects, use the token that was returned for the prior request in
 12036  	// your next request.
 12037  	NextToken *string `type:"string"`
 12038  }
 12039  
 12040  // String returns the string representation.
 12041  //
 12042  // API parameter values that are decorated as "sensitive" in the API will not
 12043  // be included in the string output. The member name will be present, but the
 12044  // value will be replaced with "sensitive".
 12045  func (s ListFirewallDomainListsInput) String() string {
 12046  	return awsutil.Prettify(s)
 12047  }
 12048  
 12049  // GoString returns the string representation.
 12050  //
 12051  // API parameter values that are decorated as "sensitive" in the API will not
 12052  // be included in the string output. The member name will be present, but the
 12053  // value will be replaced with "sensitive".
 12054  func (s ListFirewallDomainListsInput) GoString() string {
 12055  	return s.String()
 12056  }
 12057  
 12058  // Validate inspects the fields of the type to determine if they are valid.
 12059  func (s *ListFirewallDomainListsInput) Validate() error {
 12060  	invalidParams := request.ErrInvalidParams{Context: "ListFirewallDomainListsInput"}
 12061  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12062  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12063  	}
 12064  
 12065  	if invalidParams.Len() > 0 {
 12066  		return invalidParams
 12067  	}
 12068  	return nil
 12069  }
 12070  
 12071  // SetMaxResults sets the MaxResults field's value.
 12072  func (s *ListFirewallDomainListsInput) SetMaxResults(v int64) *ListFirewallDomainListsInput {
 12073  	s.MaxResults = &v
 12074  	return s
 12075  }
 12076  
 12077  // SetNextToken sets the NextToken field's value.
 12078  func (s *ListFirewallDomainListsInput) SetNextToken(v string) *ListFirewallDomainListsInput {
 12079  	s.NextToken = &v
 12080  	return s
 12081  }
 12082  
 12083  type ListFirewallDomainListsOutput struct {
 12084  	_ struct{} `type:"structure"`
 12085  
 12086  	// A list of the domain lists that you have defined.
 12087  	//
 12088  	// This might be a partial list of the domain lists that you've defined. For
 12089  	// information, see MaxResults.
 12090  	FirewallDomainLists []*FirewallDomainListMetadata `type:"list"`
 12091  
 12092  	// If objects are still available for retrieval, Resolver returns this token
 12093  	// in the response. To retrieve the next batch of objects, provide this token
 12094  	// in your next request.
 12095  	NextToken *string `type:"string"`
 12096  }
 12097  
 12098  // String returns the string representation.
 12099  //
 12100  // API parameter values that are decorated as "sensitive" in the API will not
 12101  // be included in the string output. The member name will be present, but the
 12102  // value will be replaced with "sensitive".
 12103  func (s ListFirewallDomainListsOutput) String() string {
 12104  	return awsutil.Prettify(s)
 12105  }
 12106  
 12107  // GoString returns the string representation.
 12108  //
 12109  // API parameter values that are decorated as "sensitive" in the API will not
 12110  // be included in the string output. The member name will be present, but the
 12111  // value will be replaced with "sensitive".
 12112  func (s ListFirewallDomainListsOutput) GoString() string {
 12113  	return s.String()
 12114  }
 12115  
 12116  // SetFirewallDomainLists sets the FirewallDomainLists field's value.
 12117  func (s *ListFirewallDomainListsOutput) SetFirewallDomainLists(v []*FirewallDomainListMetadata) *ListFirewallDomainListsOutput {
 12118  	s.FirewallDomainLists = v
 12119  	return s
 12120  }
 12121  
 12122  // SetNextToken sets the NextToken field's value.
 12123  func (s *ListFirewallDomainListsOutput) SetNextToken(v string) *ListFirewallDomainListsOutput {
 12124  	s.NextToken = &v
 12125  	return s
 12126  }
 12127  
 12128  type ListFirewallDomainsInput struct {
 12129  	_ struct{} `type:"structure"`
 12130  
 12131  	// The ID of the domain list whose domains you want to retrieve.
 12132  	//
 12133  	// FirewallDomainListId is a required field
 12134  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
 12135  
 12136  	// The maximum number of objects that you want Resolver to return for this request.
 12137  	// If more objects are available, in the response, Resolver provides a NextToken
 12138  	// value that you can use in a subsequent call to get the next batch of objects.
 12139  	//
 12140  	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
 12141  	MaxResults *int64 `min:"1" type:"integer"`
 12142  
 12143  	// For the first call to this list request, omit this value.
 12144  	//
 12145  	// When you request a list of objects, Resolver returns at most the number of
 12146  	// objects specified in MaxResults. If more objects are available for retrieval,
 12147  	// Resolver returns a NextToken value in the response. To retrieve the next
 12148  	// batch of objects, use the token that was returned for the prior request in
 12149  	// your next request.
 12150  	NextToken *string `type:"string"`
 12151  }
 12152  
 12153  // String returns the string representation.
 12154  //
 12155  // API parameter values that are decorated as "sensitive" in the API will not
 12156  // be included in the string output. The member name will be present, but the
 12157  // value will be replaced with "sensitive".
 12158  func (s ListFirewallDomainsInput) String() string {
 12159  	return awsutil.Prettify(s)
 12160  }
 12161  
 12162  // GoString returns the string representation.
 12163  //
 12164  // API parameter values that are decorated as "sensitive" in the API will not
 12165  // be included in the string output. The member name will be present, but the
 12166  // value will be replaced with "sensitive".
 12167  func (s ListFirewallDomainsInput) GoString() string {
 12168  	return s.String()
 12169  }
 12170  
 12171  // Validate inspects the fields of the type to determine if they are valid.
 12172  func (s *ListFirewallDomainsInput) Validate() error {
 12173  	invalidParams := request.ErrInvalidParams{Context: "ListFirewallDomainsInput"}
 12174  	if s.FirewallDomainListId == nil {
 12175  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
 12176  	}
 12177  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
 12178  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
 12179  	}
 12180  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12181  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12182  	}
 12183  
 12184  	if invalidParams.Len() > 0 {
 12185  		return invalidParams
 12186  	}
 12187  	return nil
 12188  }
 12189  
 12190  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
 12191  func (s *ListFirewallDomainsInput) SetFirewallDomainListId(v string) *ListFirewallDomainsInput {
 12192  	s.FirewallDomainListId = &v
 12193  	return s
 12194  }
 12195  
 12196  // SetMaxResults sets the MaxResults field's value.
 12197  func (s *ListFirewallDomainsInput) SetMaxResults(v int64) *ListFirewallDomainsInput {
 12198  	s.MaxResults = &v
 12199  	return s
 12200  }
 12201  
 12202  // SetNextToken sets the NextToken field's value.
 12203  func (s *ListFirewallDomainsInput) SetNextToken(v string) *ListFirewallDomainsInput {
 12204  	s.NextToken = &v
 12205  	return s
 12206  }
 12207  
 12208  type ListFirewallDomainsOutput struct {
 12209  	_ struct{} `type:"structure"`
 12210  
 12211  	// A list of the domains in the firewall domain list.
 12212  	//
 12213  	// This might be a partial list of the domains that you've defined in the domain
 12214  	// list. For information, see MaxResults.
 12215  	Domains []*string `type:"list"`
 12216  
 12217  	// If objects are still available for retrieval, Resolver returns this token
 12218  	// in the response. To retrieve the next batch of objects, provide this token
 12219  	// in your next request.
 12220  	NextToken *string `type:"string"`
 12221  }
 12222  
 12223  // String returns the string representation.
 12224  //
 12225  // API parameter values that are decorated as "sensitive" in the API will not
 12226  // be included in the string output. The member name will be present, but the
 12227  // value will be replaced with "sensitive".
 12228  func (s ListFirewallDomainsOutput) String() string {
 12229  	return awsutil.Prettify(s)
 12230  }
 12231  
 12232  // GoString returns the string representation.
 12233  //
 12234  // API parameter values that are decorated as "sensitive" in the API will not
 12235  // be included in the string output. The member name will be present, but the
 12236  // value will be replaced with "sensitive".
 12237  func (s ListFirewallDomainsOutput) GoString() string {
 12238  	return s.String()
 12239  }
 12240  
 12241  // SetDomains sets the Domains field's value.
 12242  func (s *ListFirewallDomainsOutput) SetDomains(v []*string) *ListFirewallDomainsOutput {
 12243  	s.Domains = v
 12244  	return s
 12245  }
 12246  
 12247  // SetNextToken sets the NextToken field's value.
 12248  func (s *ListFirewallDomainsOutput) SetNextToken(v string) *ListFirewallDomainsOutput {
 12249  	s.NextToken = &v
 12250  	return s
 12251  }
 12252  
 12253  type ListFirewallRuleGroupAssociationsInput struct {
 12254  	_ struct{} `type:"structure"`
 12255  
 12256  	// The unique identifier of the firewall rule group that you want to retrieve
 12257  	// the associations for. Leave this blank to retrieve associations for any rule
 12258  	// group.
 12259  	FirewallRuleGroupId *string `min:"1" type:"string"`
 12260  
 12261  	// The maximum number of objects that you want Resolver to return for this request.
 12262  	// If more objects are available, in the response, Resolver provides a NextToken
 12263  	// value that you can use in a subsequent call to get the next batch of objects.
 12264  	//
 12265  	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
 12266  	MaxResults *int64 `min:"1" type:"integer"`
 12267  
 12268  	// For the first call to this list request, omit this value.
 12269  	//
 12270  	// When you request a list of objects, Resolver returns at most the number of
 12271  	// objects specified in MaxResults. If more objects are available for retrieval,
 12272  	// Resolver returns a NextToken value in the response. To retrieve the next
 12273  	// batch of objects, use the token that was returned for the prior request in
 12274  	// your next request.
 12275  	NextToken *string `type:"string"`
 12276  
 12277  	// The setting that determines the processing order of the rule group among
 12278  	// the rule groups that are associated with a single VPC. DNS Firewall filters
 12279  	// VPC traffic starting from the rule group with the lowest numeric priority
 12280  	// setting.
 12281  	Priority *int64 `type:"integer"`
 12282  
 12283  	// The association Status setting that you want DNS Firewall to filter on for
 12284  	// the list. If you don't specify this, then DNS Firewall returns all associations,
 12285  	// regardless of status.
 12286  	Status *string `type:"string" enum:"FirewallRuleGroupAssociationStatus"`
 12287  
 12288  	// The unique identifier of the VPC that you want to retrieve the associations
 12289  	// for. Leave this blank to retrieve associations for any VPC.
 12290  	VpcId *string `min:"1" type:"string"`
 12291  }
 12292  
 12293  // String returns the string representation.
 12294  //
 12295  // API parameter values that are decorated as "sensitive" in the API will not
 12296  // be included in the string output. The member name will be present, but the
 12297  // value will be replaced with "sensitive".
 12298  func (s ListFirewallRuleGroupAssociationsInput) String() string {
 12299  	return awsutil.Prettify(s)
 12300  }
 12301  
 12302  // GoString returns the string representation.
 12303  //
 12304  // API parameter values that are decorated as "sensitive" in the API will not
 12305  // be included in the string output. The member name will be present, but the
 12306  // value will be replaced with "sensitive".
 12307  func (s ListFirewallRuleGroupAssociationsInput) GoString() string {
 12308  	return s.String()
 12309  }
 12310  
 12311  // Validate inspects the fields of the type to determine if they are valid.
 12312  func (s *ListFirewallRuleGroupAssociationsInput) Validate() error {
 12313  	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRuleGroupAssociationsInput"}
 12314  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
 12315  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
 12316  	}
 12317  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12318  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12319  	}
 12320  	if s.VpcId != nil && len(*s.VpcId) < 1 {
 12321  		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
 12322  	}
 12323  
 12324  	if invalidParams.Len() > 0 {
 12325  		return invalidParams
 12326  	}
 12327  	return nil
 12328  }
 12329  
 12330  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
 12331  func (s *ListFirewallRuleGroupAssociationsInput) SetFirewallRuleGroupId(v string) *ListFirewallRuleGroupAssociationsInput {
 12332  	s.FirewallRuleGroupId = &v
 12333  	return s
 12334  }
 12335  
 12336  // SetMaxResults sets the MaxResults field's value.
 12337  func (s *ListFirewallRuleGroupAssociationsInput) SetMaxResults(v int64) *ListFirewallRuleGroupAssociationsInput {
 12338  	s.MaxResults = &v
 12339  	return s
 12340  }
 12341  
 12342  // SetNextToken sets the NextToken field's value.
 12343  func (s *ListFirewallRuleGroupAssociationsInput) SetNextToken(v string) *ListFirewallRuleGroupAssociationsInput {
 12344  	s.NextToken = &v
 12345  	return s
 12346  }
 12347  
 12348  // SetPriority sets the Priority field's value.
 12349  func (s *ListFirewallRuleGroupAssociationsInput) SetPriority(v int64) *ListFirewallRuleGroupAssociationsInput {
 12350  	s.Priority = &v
 12351  	return s
 12352  }
 12353  
 12354  // SetStatus sets the Status field's value.
 12355  func (s *ListFirewallRuleGroupAssociationsInput) SetStatus(v string) *ListFirewallRuleGroupAssociationsInput {
 12356  	s.Status = &v
 12357  	return s
 12358  }
 12359  
 12360  // SetVpcId sets the VpcId field's value.
 12361  func (s *ListFirewallRuleGroupAssociationsInput) SetVpcId(v string) *ListFirewallRuleGroupAssociationsInput {
 12362  	s.VpcId = &v
 12363  	return s
 12364  }
 12365  
 12366  type ListFirewallRuleGroupAssociationsOutput struct {
 12367  	_ struct{} `type:"structure"`
 12368  
 12369  	// A list of your firewall rule group associations.
 12370  	//
 12371  	// This might be a partial list of the associations that you have defined. For
 12372  	// information, see MaxResults.
 12373  	FirewallRuleGroupAssociations []*FirewallRuleGroupAssociation `type:"list"`
 12374  
 12375  	// If objects are still available for retrieval, Resolver returns this token
 12376  	// in the response. To retrieve the next batch of objects, provide this token
 12377  	// in your next request.
 12378  	NextToken *string `type:"string"`
 12379  }
 12380  
 12381  // String returns the string representation.
 12382  //
 12383  // API parameter values that are decorated as "sensitive" in the API will not
 12384  // be included in the string output. The member name will be present, but the
 12385  // value will be replaced with "sensitive".
 12386  func (s ListFirewallRuleGroupAssociationsOutput) String() string {
 12387  	return awsutil.Prettify(s)
 12388  }
 12389  
 12390  // GoString returns the string representation.
 12391  //
 12392  // API parameter values that are decorated as "sensitive" in the API will not
 12393  // be included in the string output. The member name will be present, but the
 12394  // value will be replaced with "sensitive".
 12395  func (s ListFirewallRuleGroupAssociationsOutput) GoString() string {
 12396  	return s.String()
 12397  }
 12398  
 12399  // SetFirewallRuleGroupAssociations sets the FirewallRuleGroupAssociations field's value.
 12400  func (s *ListFirewallRuleGroupAssociationsOutput) SetFirewallRuleGroupAssociations(v []*FirewallRuleGroupAssociation) *ListFirewallRuleGroupAssociationsOutput {
 12401  	s.FirewallRuleGroupAssociations = v
 12402  	return s
 12403  }
 12404  
 12405  // SetNextToken sets the NextToken field's value.
 12406  func (s *ListFirewallRuleGroupAssociationsOutput) SetNextToken(v string) *ListFirewallRuleGroupAssociationsOutput {
 12407  	s.NextToken = &v
 12408  	return s
 12409  }
 12410  
 12411  type ListFirewallRuleGroupsInput struct {
 12412  	_ struct{} `type:"structure"`
 12413  
 12414  	// The maximum number of objects that you want Resolver to return for this request.
 12415  	// If more objects are available, in the response, Resolver provides a NextToken
 12416  	// value that you can use in a subsequent call to get the next batch of objects.
 12417  	//
 12418  	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
 12419  	MaxResults *int64 `min:"1" type:"integer"`
 12420  
 12421  	// For the first call to this list request, omit this value.
 12422  	//
 12423  	// When you request a list of objects, Resolver returns at most the number of
 12424  	// objects specified in MaxResults. If more objects are available for retrieval,
 12425  	// Resolver returns a NextToken value in the response. To retrieve the next
 12426  	// batch of objects, use the token that was returned for the prior request in
 12427  	// your next request.
 12428  	NextToken *string `type:"string"`
 12429  }
 12430  
 12431  // String returns the string representation.
 12432  //
 12433  // API parameter values that are decorated as "sensitive" in the API will not
 12434  // be included in the string output. The member name will be present, but the
 12435  // value will be replaced with "sensitive".
 12436  func (s ListFirewallRuleGroupsInput) String() string {
 12437  	return awsutil.Prettify(s)
 12438  }
 12439  
 12440  // GoString returns the string representation.
 12441  //
 12442  // API parameter values that are decorated as "sensitive" in the API will not
 12443  // be included in the string output. The member name will be present, but the
 12444  // value will be replaced with "sensitive".
 12445  func (s ListFirewallRuleGroupsInput) GoString() string {
 12446  	return s.String()
 12447  }
 12448  
 12449  // Validate inspects the fields of the type to determine if they are valid.
 12450  func (s *ListFirewallRuleGroupsInput) Validate() error {
 12451  	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRuleGroupsInput"}
 12452  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12453  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12454  	}
 12455  
 12456  	if invalidParams.Len() > 0 {
 12457  		return invalidParams
 12458  	}
 12459  	return nil
 12460  }
 12461  
 12462  // SetMaxResults sets the MaxResults field's value.
 12463  func (s *ListFirewallRuleGroupsInput) SetMaxResults(v int64) *ListFirewallRuleGroupsInput {
 12464  	s.MaxResults = &v
 12465  	return s
 12466  }
 12467  
 12468  // SetNextToken sets the NextToken field's value.
 12469  func (s *ListFirewallRuleGroupsInput) SetNextToken(v string) *ListFirewallRuleGroupsInput {
 12470  	s.NextToken = &v
 12471  	return s
 12472  }
 12473  
 12474  type ListFirewallRuleGroupsOutput struct {
 12475  	_ struct{} `type:"structure"`
 12476  
 12477  	// A list of your firewall rule groups.
 12478  	//
 12479  	// This might be a partial list of the rule groups that you have defined. For
 12480  	// information, see MaxResults.
 12481  	FirewallRuleGroups []*FirewallRuleGroupMetadata `type:"list"`
 12482  
 12483  	// If objects are still available for retrieval, Resolver returns this token
 12484  	// in the response. To retrieve the next batch of objects, provide this token
 12485  	// in your next request.
 12486  	NextToken *string `type:"string"`
 12487  }
 12488  
 12489  // String returns the string representation.
 12490  //
 12491  // API parameter values that are decorated as "sensitive" in the API will not
 12492  // be included in the string output. The member name will be present, but the
 12493  // value will be replaced with "sensitive".
 12494  func (s ListFirewallRuleGroupsOutput) String() string {
 12495  	return awsutil.Prettify(s)
 12496  }
 12497  
 12498  // GoString returns the string representation.
 12499  //
 12500  // API parameter values that are decorated as "sensitive" in the API will not
 12501  // be included in the string output. The member name will be present, but the
 12502  // value will be replaced with "sensitive".
 12503  func (s ListFirewallRuleGroupsOutput) GoString() string {
 12504  	return s.String()
 12505  }
 12506  
 12507  // SetFirewallRuleGroups sets the FirewallRuleGroups field's value.
 12508  func (s *ListFirewallRuleGroupsOutput) SetFirewallRuleGroups(v []*FirewallRuleGroupMetadata) *ListFirewallRuleGroupsOutput {
 12509  	s.FirewallRuleGroups = v
 12510  	return s
 12511  }
 12512  
 12513  // SetNextToken sets the NextToken field's value.
 12514  func (s *ListFirewallRuleGroupsOutput) SetNextToken(v string) *ListFirewallRuleGroupsOutput {
 12515  	s.NextToken = &v
 12516  	return s
 12517  }
 12518  
 12519  type ListFirewallRulesInput struct {
 12520  	_ struct{} `type:"structure"`
 12521  
 12522  	// Optional additional filter for the rules to retrieve.
 12523  	//
 12524  	// The action that DNS Firewall should take on a DNS query when it matches one
 12525  	// of the domains in the rule's domain list:
 12526  	//
 12527  	//    * ALLOW - Permit the request to go through.
 12528  	//
 12529  	//    * ALERT - Permit the request to go through but send an alert to the logs.
 12530  	//
 12531  	//    * BLOCK - Disallow the request. If this is specified, additional handling
 12532  	//    details are provided in the rule's BlockResponse setting.
 12533  	Action *string `type:"string" enum:"Action"`
 12534  
 12535  	// The unique identifier of the firewall rule group that you want to retrieve
 12536  	// the rules for.
 12537  	//
 12538  	// FirewallRuleGroupId is a required field
 12539  	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
 12540  
 12541  	// The maximum number of objects that you want Resolver to return for this request.
 12542  	// If more objects are available, in the response, Resolver provides a NextToken
 12543  	// value that you can use in a subsequent call to get the next batch of objects.
 12544  	//
 12545  	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
 12546  	MaxResults *int64 `min:"1" type:"integer"`
 12547  
 12548  	// For the first call to this list request, omit this value.
 12549  	//
 12550  	// When you request a list of objects, Resolver returns at most the number of
 12551  	// objects specified in MaxResults. If more objects are available for retrieval,
 12552  	// Resolver returns a NextToken value in the response. To retrieve the next
 12553  	// batch of objects, use the token that was returned for the prior request in
 12554  	// your next request.
 12555  	NextToken *string `type:"string"`
 12556  
 12557  	// Optional additional filter for the rules to retrieve.
 12558  	//
 12559  	// The setting that determines the processing order of the rules in a rule group.
 12560  	// DNS Firewall processes the rules in a rule group by order of priority, starting
 12561  	// from the lowest setting.
 12562  	Priority *int64 `type:"integer"`
 12563  }
 12564  
 12565  // String returns the string representation.
 12566  //
 12567  // API parameter values that are decorated as "sensitive" in the API will not
 12568  // be included in the string output. The member name will be present, but the
 12569  // value will be replaced with "sensitive".
 12570  func (s ListFirewallRulesInput) String() string {
 12571  	return awsutil.Prettify(s)
 12572  }
 12573  
 12574  // GoString returns the string representation.
 12575  //
 12576  // API parameter values that are decorated as "sensitive" in the API will not
 12577  // be included in the string output. The member name will be present, but the
 12578  // value will be replaced with "sensitive".
 12579  func (s ListFirewallRulesInput) GoString() string {
 12580  	return s.String()
 12581  }
 12582  
 12583  // Validate inspects the fields of the type to determine if they are valid.
 12584  func (s *ListFirewallRulesInput) Validate() error {
 12585  	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRulesInput"}
 12586  	if s.FirewallRuleGroupId == nil {
 12587  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
 12588  	}
 12589  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
 12590  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
 12591  	}
 12592  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12593  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12594  	}
 12595  
 12596  	if invalidParams.Len() > 0 {
 12597  		return invalidParams
 12598  	}
 12599  	return nil
 12600  }
 12601  
 12602  // SetAction sets the Action field's value.
 12603  func (s *ListFirewallRulesInput) SetAction(v string) *ListFirewallRulesInput {
 12604  	s.Action = &v
 12605  	return s
 12606  }
 12607  
 12608  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
 12609  func (s *ListFirewallRulesInput) SetFirewallRuleGroupId(v string) *ListFirewallRulesInput {
 12610  	s.FirewallRuleGroupId = &v
 12611  	return s
 12612  }
 12613  
 12614  // SetMaxResults sets the MaxResults field's value.
 12615  func (s *ListFirewallRulesInput) SetMaxResults(v int64) *ListFirewallRulesInput {
 12616  	s.MaxResults = &v
 12617  	return s
 12618  }
 12619  
 12620  // SetNextToken sets the NextToken field's value.
 12621  func (s *ListFirewallRulesInput) SetNextToken(v string) *ListFirewallRulesInput {
 12622  	s.NextToken = &v
 12623  	return s
 12624  }
 12625  
 12626  // SetPriority sets the Priority field's value.
 12627  func (s *ListFirewallRulesInput) SetPriority(v int64) *ListFirewallRulesInput {
 12628  	s.Priority = &v
 12629  	return s
 12630  }
 12631  
 12632  type ListFirewallRulesOutput struct {
 12633  	_ struct{} `type:"structure"`
 12634  
 12635  	// A list of the rules that you have defined.
 12636  	//
 12637  	// This might be a partial list of the firewall rules that you've defined. For
 12638  	// information, see MaxResults.
 12639  	FirewallRules []*FirewallRule `type:"list"`
 12640  
 12641  	// If objects are still available for retrieval, Resolver returns this token
 12642  	// in the response. To retrieve the next batch of objects, provide this token
 12643  	// in your next request.
 12644  	NextToken *string `type:"string"`
 12645  }
 12646  
 12647  // String returns the string representation.
 12648  //
 12649  // API parameter values that are decorated as "sensitive" in the API will not
 12650  // be included in the string output. The member name will be present, but the
 12651  // value will be replaced with "sensitive".
 12652  func (s ListFirewallRulesOutput) String() string {
 12653  	return awsutil.Prettify(s)
 12654  }
 12655  
 12656  // GoString returns the string representation.
 12657  //
 12658  // API parameter values that are decorated as "sensitive" in the API will not
 12659  // be included in the string output. The member name will be present, but the
 12660  // value will be replaced with "sensitive".
 12661  func (s ListFirewallRulesOutput) GoString() string {
 12662  	return s.String()
 12663  }
 12664  
 12665  // SetFirewallRules sets the FirewallRules field's value.
 12666  func (s *ListFirewallRulesOutput) SetFirewallRules(v []*FirewallRule) *ListFirewallRulesOutput {
 12667  	s.FirewallRules = v
 12668  	return s
 12669  }
 12670  
 12671  // SetNextToken sets the NextToken field's value.
 12672  func (s *ListFirewallRulesOutput) SetNextToken(v string) *ListFirewallRulesOutput {
 12673  	s.NextToken = &v
 12674  	return s
 12675  }
 12676  
 12677  type ListResolverDnssecConfigsInput struct {
 12678  	_ struct{} `type:"structure"`
 12679  
 12680  	// An optional specification to return a subset of objects.
 12681  	Filters []*Filter `type:"list"`
 12682  
 12683  	// Optional: An integer that specifies the maximum number of DNSSEC configuration
 12684  	// results that you want Amazon Route 53 to return. If you don't specify a value
 12685  	// for MaxResults, Route 53 returns up to 100 configuration per page.
 12686  	MaxResults *int64 `min:"1" type:"integer"`
 12687  
 12688  	// (Optional) If the current Amazon Web Services account has more than MaxResults
 12689  	// DNSSEC configurations, use NextToken to get the second and subsequent pages
 12690  	// of results.
 12691  	//
 12692  	// For the first ListResolverDnssecConfigs request, omit this value.
 12693  	//
 12694  	// For the second and subsequent requests, get the value of NextToken from the
 12695  	// previous response and specify that value for NextToken in the request.
 12696  	NextToken *string `type:"string"`
 12697  }
 12698  
 12699  // String returns the string representation.
 12700  //
 12701  // API parameter values that are decorated as "sensitive" in the API will not
 12702  // be included in the string output. The member name will be present, but the
 12703  // value will be replaced with "sensitive".
 12704  func (s ListResolverDnssecConfigsInput) String() string {
 12705  	return awsutil.Prettify(s)
 12706  }
 12707  
 12708  // GoString returns the string representation.
 12709  //
 12710  // API parameter values that are decorated as "sensitive" in the API will not
 12711  // be included in the string output. The member name will be present, but the
 12712  // value will be replaced with "sensitive".
 12713  func (s ListResolverDnssecConfigsInput) GoString() string {
 12714  	return s.String()
 12715  }
 12716  
 12717  // Validate inspects the fields of the type to determine if they are valid.
 12718  func (s *ListResolverDnssecConfigsInput) Validate() error {
 12719  	invalidParams := request.ErrInvalidParams{Context: "ListResolverDnssecConfigsInput"}
 12720  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12721  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12722  	}
 12723  	if s.Filters != nil {
 12724  		for i, v := range s.Filters {
 12725  			if v == nil {
 12726  				continue
 12727  			}
 12728  			if err := v.Validate(); err != nil {
 12729  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
 12730  			}
 12731  		}
 12732  	}
 12733  
 12734  	if invalidParams.Len() > 0 {
 12735  		return invalidParams
 12736  	}
 12737  	return nil
 12738  }
 12739  
 12740  // SetFilters sets the Filters field's value.
 12741  func (s *ListResolverDnssecConfigsInput) SetFilters(v []*Filter) *ListResolverDnssecConfigsInput {
 12742  	s.Filters = v
 12743  	return s
 12744  }
 12745  
 12746  // SetMaxResults sets the MaxResults field's value.
 12747  func (s *ListResolverDnssecConfigsInput) SetMaxResults(v int64) *ListResolverDnssecConfigsInput {
 12748  	s.MaxResults = &v
 12749  	return s
 12750  }
 12751  
 12752  // SetNextToken sets the NextToken field's value.
 12753  func (s *ListResolverDnssecConfigsInput) SetNextToken(v string) *ListResolverDnssecConfigsInput {
 12754  	s.NextToken = &v
 12755  	return s
 12756  }
 12757  
 12758  type ListResolverDnssecConfigsOutput struct {
 12759  	_ struct{} `type:"structure"`
 12760  
 12761  	// If a response includes the last of the DNSSEC configurations that are associated
 12762  	// with the current Amazon Web Services account, NextToken doesn't appear in
 12763  	// the response.
 12764  	//
 12765  	// If a response doesn't include the last of the configurations, you can get
 12766  	// more configurations by submitting another ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResolverDnssecConfigs.html)
 12767  	// request. Get the value of NextToken that Amazon Route 53 returned in the
 12768  	// previous response and include it in NextToken in the next request.
 12769  	NextToken *string `type:"string"`
 12770  
 12771  	// An array that contains one ResolverDnssecConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResolverDnssecConfig.html)
 12772  	// element for each configuration for DNSSEC validation that is associated with
 12773  	// the current Amazon Web Services account.
 12774  	ResolverDnssecConfigs []*ResolverDnssecConfig `type:"list"`
 12775  }
 12776  
 12777  // String returns the string representation.
 12778  //
 12779  // API parameter values that are decorated as "sensitive" in the API will not
 12780  // be included in the string output. The member name will be present, but the
 12781  // value will be replaced with "sensitive".
 12782  func (s ListResolverDnssecConfigsOutput) String() string {
 12783  	return awsutil.Prettify(s)
 12784  }
 12785  
 12786  // GoString returns the string representation.
 12787  //
 12788  // API parameter values that are decorated as "sensitive" in the API will not
 12789  // be included in the string output. The member name will be present, but the
 12790  // value will be replaced with "sensitive".
 12791  func (s ListResolverDnssecConfigsOutput) GoString() string {
 12792  	return s.String()
 12793  }
 12794  
 12795  // SetNextToken sets the NextToken field's value.
 12796  func (s *ListResolverDnssecConfigsOutput) SetNextToken(v string) *ListResolverDnssecConfigsOutput {
 12797  	s.NextToken = &v
 12798  	return s
 12799  }
 12800  
 12801  // SetResolverDnssecConfigs sets the ResolverDnssecConfigs field's value.
 12802  func (s *ListResolverDnssecConfigsOutput) SetResolverDnssecConfigs(v []*ResolverDnssecConfig) *ListResolverDnssecConfigsOutput {
 12803  	s.ResolverDnssecConfigs = v
 12804  	return s
 12805  }
 12806  
 12807  type ListResolverEndpointIpAddressesInput struct {
 12808  	_ struct{} `type:"structure"`
 12809  
 12810  	// The maximum number of IP addresses that you want to return in the response
 12811  	// to a ListResolverEndpointIpAddresses request. If you don't specify a value
 12812  	// for MaxResults, Resolver returns up to 100 IP addresses.
 12813  	MaxResults *int64 `min:"1" type:"integer"`
 12814  
 12815  	// For the first ListResolverEndpointIpAddresses request, omit this value.
 12816  	//
 12817  	// If the specified Resolver endpoint has more than MaxResults IP addresses,
 12818  	// you can submit another ListResolverEndpointIpAddresses request to get the
 12819  	// next group of IP addresses. In the next request, specify the value of NextToken
 12820  	// from the previous response.
 12821  	NextToken *string `type:"string"`
 12822  
 12823  	// The ID of the Resolver endpoint that you want to get IP addresses for.
 12824  	//
 12825  	// ResolverEndpointId is a required field
 12826  	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
 12827  }
 12828  
 12829  // String returns the string representation.
 12830  //
 12831  // API parameter values that are decorated as "sensitive" in the API will not
 12832  // be included in the string output. The member name will be present, but the
 12833  // value will be replaced with "sensitive".
 12834  func (s ListResolverEndpointIpAddressesInput) String() string {
 12835  	return awsutil.Prettify(s)
 12836  }
 12837  
 12838  // GoString returns the string representation.
 12839  //
 12840  // API parameter values that are decorated as "sensitive" in the API will not
 12841  // be included in the string output. The member name will be present, but the
 12842  // value will be replaced with "sensitive".
 12843  func (s ListResolverEndpointIpAddressesInput) GoString() string {
 12844  	return s.String()
 12845  }
 12846  
 12847  // Validate inspects the fields of the type to determine if they are valid.
 12848  func (s *ListResolverEndpointIpAddressesInput) Validate() error {
 12849  	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointIpAddressesInput"}
 12850  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12851  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12852  	}
 12853  	if s.ResolverEndpointId == nil {
 12854  		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
 12855  	}
 12856  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
 12857  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
 12858  	}
 12859  
 12860  	if invalidParams.Len() > 0 {
 12861  		return invalidParams
 12862  	}
 12863  	return nil
 12864  }
 12865  
 12866  // SetMaxResults sets the MaxResults field's value.
 12867  func (s *ListResolverEndpointIpAddressesInput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesInput {
 12868  	s.MaxResults = &v
 12869  	return s
 12870  }
 12871  
 12872  // SetNextToken sets the NextToken field's value.
 12873  func (s *ListResolverEndpointIpAddressesInput) SetNextToken(v string) *ListResolverEndpointIpAddressesInput {
 12874  	s.NextToken = &v
 12875  	return s
 12876  }
 12877  
 12878  // SetResolverEndpointId sets the ResolverEndpointId field's value.
 12879  func (s *ListResolverEndpointIpAddressesInput) SetResolverEndpointId(v string) *ListResolverEndpointIpAddressesInput {
 12880  	s.ResolverEndpointId = &v
 12881  	return s
 12882  }
 12883  
 12884  type ListResolverEndpointIpAddressesOutput struct {
 12885  	_ struct{} `type:"structure"`
 12886  
 12887  	// Information about the IP addresses in your VPC that DNS queries originate
 12888  	// from (for outbound endpoints) or that you forward DNS queries to (for inbound
 12889  	// endpoints).
 12890  	IpAddresses []*IpAddressResponse `type:"list"`
 12891  
 12892  	// The value that you specified for MaxResults in the request.
 12893  	MaxResults *int64 `min:"1" type:"integer"`
 12894  
 12895  	// If the specified endpoint has more than MaxResults IP addresses, you can
 12896  	// submit another ListResolverEndpointIpAddresses request to get the next group
 12897  	// of IP addresses. In the next request, specify the value of NextToken from
 12898  	// the previous response.
 12899  	NextToken *string `type:"string"`
 12900  }
 12901  
 12902  // String returns the string representation.
 12903  //
 12904  // API parameter values that are decorated as "sensitive" in the API will not
 12905  // be included in the string output. The member name will be present, but the
 12906  // value will be replaced with "sensitive".
 12907  func (s ListResolverEndpointIpAddressesOutput) String() string {
 12908  	return awsutil.Prettify(s)
 12909  }
 12910  
 12911  // GoString returns the string representation.
 12912  //
 12913  // API parameter values that are decorated as "sensitive" in the API will not
 12914  // be included in the string output. The member name will be present, but the
 12915  // value will be replaced with "sensitive".
 12916  func (s ListResolverEndpointIpAddressesOutput) GoString() string {
 12917  	return s.String()
 12918  }
 12919  
 12920  // SetIpAddresses sets the IpAddresses field's value.
 12921  func (s *ListResolverEndpointIpAddressesOutput) SetIpAddresses(v []*IpAddressResponse) *ListResolverEndpointIpAddressesOutput {
 12922  	s.IpAddresses = v
 12923  	return s
 12924  }
 12925  
 12926  // SetMaxResults sets the MaxResults field's value.
 12927  func (s *ListResolverEndpointIpAddressesOutput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesOutput {
 12928  	s.MaxResults = &v
 12929  	return s
 12930  }
 12931  
 12932  // SetNextToken sets the NextToken field's value.
 12933  func (s *ListResolverEndpointIpAddressesOutput) SetNextToken(v string) *ListResolverEndpointIpAddressesOutput {
 12934  	s.NextToken = &v
 12935  	return s
 12936  }
 12937  
 12938  type ListResolverEndpointsInput struct {
 12939  	_ struct{} `type:"structure"`
 12940  
 12941  	// An optional specification to return a subset of Resolver endpoints, such
 12942  	// as all inbound Resolver endpoints.
 12943  	//
 12944  	// If you submit a second or subsequent ListResolverEndpoints request and specify
 12945  	// the NextToken parameter, you must use the same values for Filters, if any,
 12946  	// as in the previous request.
 12947  	Filters []*Filter `type:"list"`
 12948  
 12949  	// The maximum number of Resolver endpoints that you want to return in the response
 12950  	// to a ListResolverEndpoints request. If you don't specify a value for MaxResults,
 12951  	// Resolver returns up to 100 Resolver endpoints.
 12952  	MaxResults *int64 `min:"1" type:"integer"`
 12953  
 12954  	// For the first ListResolverEndpoints request, omit this value.
 12955  	//
 12956  	// If you have more than MaxResults Resolver endpoints, you can submit another
 12957  	// ListResolverEndpoints request to get the next group of Resolver endpoints.
 12958  	// In the next request, specify the value of NextToken from the previous response.
 12959  	NextToken *string `type:"string"`
 12960  }
 12961  
 12962  // String returns the string representation.
 12963  //
 12964  // API parameter values that are decorated as "sensitive" in the API will not
 12965  // be included in the string output. The member name will be present, but the
 12966  // value will be replaced with "sensitive".
 12967  func (s ListResolverEndpointsInput) String() string {
 12968  	return awsutil.Prettify(s)
 12969  }
 12970  
 12971  // GoString returns the string representation.
 12972  //
 12973  // API parameter values that are decorated as "sensitive" in the API will not
 12974  // be included in the string output. The member name will be present, but the
 12975  // value will be replaced with "sensitive".
 12976  func (s ListResolverEndpointsInput) GoString() string {
 12977  	return s.String()
 12978  }
 12979  
 12980  // Validate inspects the fields of the type to determine if they are valid.
 12981  func (s *ListResolverEndpointsInput) Validate() error {
 12982  	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointsInput"}
 12983  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12984  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12985  	}
 12986  	if s.Filters != nil {
 12987  		for i, v := range s.Filters {
 12988  			if v == nil {
 12989  				continue
 12990  			}
 12991  			if err := v.Validate(); err != nil {
 12992  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
 12993  			}
 12994  		}
 12995  	}
 12996  
 12997  	if invalidParams.Len() > 0 {
 12998  		return invalidParams
 12999  	}
 13000  	return nil
 13001  }
 13002  
 13003  // SetFilters sets the Filters field's value.
 13004  func (s *ListResolverEndpointsInput) SetFilters(v []*Filter) *ListResolverEndpointsInput {
 13005  	s.Filters = v
 13006  	return s
 13007  }
 13008  
 13009  // SetMaxResults sets the MaxResults field's value.
 13010  func (s *ListResolverEndpointsInput) SetMaxResults(v int64) *ListResolverEndpointsInput {
 13011  	s.MaxResults = &v
 13012  	return s
 13013  }
 13014  
 13015  // SetNextToken sets the NextToken field's value.
 13016  func (s *ListResolverEndpointsInput) SetNextToken(v string) *ListResolverEndpointsInput {
 13017  	s.NextToken = &v
 13018  	return s
 13019  }
 13020  
 13021  type ListResolverEndpointsOutput struct {
 13022  	_ struct{} `type:"structure"`
 13023  
 13024  	// The value that you specified for MaxResults in the request.
 13025  	MaxResults *int64 `min:"1" type:"integer"`
 13026  
 13027  	// If more than MaxResults IP addresses match the specified criteria, you can
 13028  	// submit another ListResolverEndpoint request to get the next group of results.
 13029  	// In the next request, specify the value of NextToken from the previous response.
 13030  	NextToken *string `type:"string"`
 13031  
 13032  	// The Resolver endpoints that were created by using the current Amazon Web
 13033  	// Services account, and that match the specified filters, if any.
 13034  	ResolverEndpoints []*ResolverEndpoint `type:"list"`
 13035  }
 13036  
 13037  // String returns the string representation.
 13038  //
 13039  // API parameter values that are decorated as "sensitive" in the API will not
 13040  // be included in the string output. The member name will be present, but the
 13041  // value will be replaced with "sensitive".
 13042  func (s ListResolverEndpointsOutput) String() string {
 13043  	return awsutil.Prettify(s)
 13044  }
 13045  
 13046  // GoString returns the string representation.
 13047  //
 13048  // API parameter values that are decorated as "sensitive" in the API will not
 13049  // be included in the string output. The member name will be present, but the
 13050  // value will be replaced with "sensitive".
 13051  func (s ListResolverEndpointsOutput) GoString() string {
 13052  	return s.String()
 13053  }
 13054  
 13055  // SetMaxResults sets the MaxResults field's value.
 13056  func (s *ListResolverEndpointsOutput) SetMaxResults(v int64) *ListResolverEndpointsOutput {
 13057  	s.MaxResults = &v
 13058  	return s
 13059  }
 13060  
 13061  // SetNextToken sets the NextToken field's value.
 13062  func (s *ListResolverEndpointsOutput) SetNextToken(v string) *ListResolverEndpointsOutput {
 13063  	s.NextToken = &v
 13064  	return s
 13065  }
 13066  
 13067  // SetResolverEndpoints sets the ResolverEndpoints field's value.
 13068  func (s *ListResolverEndpointsOutput) SetResolverEndpoints(v []*ResolverEndpoint) *ListResolverEndpointsOutput {
 13069  	s.ResolverEndpoints = v
 13070  	return s
 13071  }
 13072  
 13073  type ListResolverQueryLogConfigAssociationsInput struct {
 13074  	_ struct{} `type:"structure"`
 13075  
 13076  	// An optional specification to return a subset of query logging associations.
 13077  	//
 13078  	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
 13079  	// request and specify the NextToken parameter, you must use the same values
 13080  	// for Filters, if any, as in the previous request.
 13081  	Filters []*Filter `type:"list"`
 13082  
 13083  	// The maximum number of query logging associations that you want to return
 13084  	// in the response to a ListResolverQueryLogConfigAssociations request. If you
 13085  	// don't specify a value for MaxResults, Resolver returns up to 100 query logging
 13086  	// associations.
 13087  	MaxResults *int64 `min:"1" type:"integer"`
 13088  
 13089  	// For the first ListResolverQueryLogConfigAssociations request, omit this value.
 13090  	//
 13091  	// If there are more than MaxResults query logging associations that match the
 13092  	// values that you specify for Filters, you can submit another ListResolverQueryLogConfigAssociations
 13093  	// request to get the next group of associations. In the next request, specify
 13094  	// the value of NextToken from the previous response.
 13095  	NextToken *string `type:"string"`
 13096  
 13097  	// The element that you want Resolver to sort query logging associations by.
 13098  	//
 13099  	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
 13100  	// request and specify the NextToken parameter, you must use the same value
 13101  	// for SortBy, if any, as in the previous request.
 13102  	//
 13103  	// Valid values include the following elements:
 13104  	//
 13105  	//    * CreationTime: The ID of the query logging association.
 13106  	//
 13107  	//    * Error: If the value of Status is FAILED, the value of Error indicates
 13108  	//    the cause: DESTINATION_NOT_FOUND: The specified destination (for example,
 13109  	//    an Amazon S3 bucket) was deleted. ACCESS_DENIED: Permissions don't allow
 13110  	//    sending logs to the destination. If Status is a value other than FAILED,
 13111  	//    ERROR is null.
 13112  	//
 13113  	//    * Id: The ID of the query logging association
 13114  	//
 13115  	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
 13116  	//
 13117  	//    * ResourceId: The ID of the VPC that is associated with the query logging
 13118  	//    configuration
 13119  	//
 13120  	//    * Status: The current status of the configuration. Valid values include
 13121  	//    the following: CREATING: Resolver is creating an association between an
 13122  	//    Amazon VPC and a query logging configuration. CREATED: The association
 13123  	//    between an Amazon VPC and a query logging configuration was successfully
 13124  	//    created. Resolver is logging queries that originate in the specified VPC.
 13125  	//    DELETING: Resolver is deleting this query logging association. FAILED:
 13126  	//    Resolver either couldn't create or couldn't delete the query logging association.
 13127  	//    Here are two common causes: The specified destination (for example, an
 13128  	//    Amazon S3 bucket) was deleted. Permissions don't allow sending logs to
 13129  	//    the destination.
 13130  	SortBy *string `min:"1" type:"string"`
 13131  
 13132  	// If you specified a value for SortBy, the order that you want query logging
 13133  	// associations to be listed in, ASCENDING or DESCENDING.
 13134  	//
 13135  	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
 13136  	// request and specify the NextToken parameter, you must use the same value
 13137  	// for SortOrder, if any, as in the previous request.
 13138  	SortOrder *string `type:"string" enum:"SortOrder"`
 13139  }
 13140  
 13141  // String returns the string representation.
 13142  //
 13143  // API parameter values that are decorated as "sensitive" in the API will not
 13144  // be included in the string output. The member name will be present, but the
 13145  // value will be replaced with "sensitive".
 13146  func (s ListResolverQueryLogConfigAssociationsInput) String() string {
 13147  	return awsutil.Prettify(s)
 13148  }
 13149  
 13150  // GoString returns the string representation.
 13151  //
 13152  // API parameter values that are decorated as "sensitive" in the API will not
 13153  // be included in the string output. The member name will be present, but the
 13154  // value will be replaced with "sensitive".
 13155  func (s ListResolverQueryLogConfigAssociationsInput) GoString() string {
 13156  	return s.String()
 13157  }
 13158  
 13159  // Validate inspects the fields of the type to determine if they are valid.
 13160  func (s *ListResolverQueryLogConfigAssociationsInput) Validate() error {
 13161  	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigAssociationsInput"}
 13162  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13163  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13164  	}
 13165  	if s.SortBy != nil && len(*s.SortBy) < 1 {
 13166  		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
 13167  	}
 13168  	if s.Filters != nil {
 13169  		for i, v := range s.Filters {
 13170  			if v == nil {
 13171  				continue
 13172  			}
 13173  			if err := v.Validate(); err != nil {
 13174  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
 13175  			}
 13176  		}
 13177  	}
 13178  
 13179  	if invalidParams.Len() > 0 {
 13180  		return invalidParams
 13181  	}
 13182  	return nil
 13183  }
 13184  
 13185  // SetFilters sets the Filters field's value.
 13186  func (s *ListResolverQueryLogConfigAssociationsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigAssociationsInput {
 13187  	s.Filters = v
 13188  	return s
 13189  }
 13190  
 13191  // SetMaxResults sets the MaxResults field's value.
 13192  func (s *ListResolverQueryLogConfigAssociationsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigAssociationsInput {
 13193  	s.MaxResults = &v
 13194  	return s
 13195  }
 13196  
 13197  // SetNextToken sets the NextToken field's value.
 13198  func (s *ListResolverQueryLogConfigAssociationsInput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsInput {
 13199  	s.NextToken = &v
 13200  	return s
 13201  }
 13202  
 13203  // SetSortBy sets the SortBy field's value.
 13204  func (s *ListResolverQueryLogConfigAssociationsInput) SetSortBy(v string) *ListResolverQueryLogConfigAssociationsInput {
 13205  	s.SortBy = &v
 13206  	return s
 13207  }
 13208  
 13209  // SetSortOrder sets the SortOrder field's value.
 13210  func (s *ListResolverQueryLogConfigAssociationsInput) SetSortOrder(v string) *ListResolverQueryLogConfigAssociationsInput {
 13211  	s.SortOrder = &v
 13212  	return s
 13213  }
 13214  
 13215  type ListResolverQueryLogConfigAssociationsOutput struct {
 13216  	_ struct{} `type:"structure"`
 13217  
 13218  	// If there are more than MaxResults query logging associations, you can submit
 13219  	// another ListResolverQueryLogConfigAssociations request to get the next group
 13220  	// of associations. In the next request, specify the value of NextToken from
 13221  	// the previous response.
 13222  	NextToken *string `type:"string"`
 13223  
 13224  	// A list that contains one ResolverQueryLogConfigAssociations element for each
 13225  	// query logging association that matches the values that you specified for
 13226  	// Filter.
 13227  	ResolverQueryLogConfigAssociations []*ResolverQueryLogConfigAssociation `type:"list"`
 13228  
 13229  	// The total number of query logging associations that were created by the current
 13230  	// account in the specified Region. This count can differ from the number of
 13231  	// associations that are returned in a ListResolverQueryLogConfigAssociations
 13232  	// response, depending on the values that you specify in the request.
 13233  	TotalCount *int64 `type:"integer"`
 13234  
 13235  	// The total number of query logging associations that were created by the current
 13236  	// account in the specified Region and that match the filters that were specified
 13237  	// in the ListResolverQueryLogConfigAssociations request. For the total number
 13238  	// of associations that were created by the current account in the specified
 13239  	// Region, see TotalCount.
 13240  	TotalFilteredCount *int64 `type:"integer"`
 13241  }
 13242  
 13243  // String returns the string representation.
 13244  //
 13245  // API parameter values that are decorated as "sensitive" in the API will not
 13246  // be included in the string output. The member name will be present, but the
 13247  // value will be replaced with "sensitive".
 13248  func (s ListResolverQueryLogConfigAssociationsOutput) String() string {
 13249  	return awsutil.Prettify(s)
 13250  }
 13251  
 13252  // GoString returns the string representation.
 13253  //
 13254  // API parameter values that are decorated as "sensitive" in the API will not
 13255  // be included in the string output. The member name will be present, but the
 13256  // value will be replaced with "sensitive".
 13257  func (s ListResolverQueryLogConfigAssociationsOutput) GoString() string {
 13258  	return s.String()
 13259  }
 13260  
 13261  // SetNextToken sets the NextToken field's value.
 13262  func (s *ListResolverQueryLogConfigAssociationsOutput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsOutput {
 13263  	s.NextToken = &v
 13264  	return s
 13265  }
 13266  
 13267  // SetResolverQueryLogConfigAssociations sets the ResolverQueryLogConfigAssociations field's value.
 13268  func (s *ListResolverQueryLogConfigAssociationsOutput) SetResolverQueryLogConfigAssociations(v []*ResolverQueryLogConfigAssociation) *ListResolverQueryLogConfigAssociationsOutput {
 13269  	s.ResolverQueryLogConfigAssociations = v
 13270  	return s
 13271  }
 13272  
 13273  // SetTotalCount sets the TotalCount field's value.
 13274  func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
 13275  	s.TotalCount = &v
 13276  	return s
 13277  }
 13278  
 13279  // SetTotalFilteredCount sets the TotalFilteredCount field's value.
 13280  func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
 13281  	s.TotalFilteredCount = &v
 13282  	return s
 13283  }
 13284  
 13285  type ListResolverQueryLogConfigsInput struct {
 13286  	_ struct{} `type:"structure"`
 13287  
 13288  	// An optional specification to return a subset of query logging configurations.
 13289  	//
 13290  	// If you submit a second or subsequent ListResolverQueryLogConfigs request
 13291  	// and specify the NextToken parameter, you must use the same values for Filters,
 13292  	// if any, as in the previous request.
 13293  	Filters []*Filter `type:"list"`
 13294  
 13295  	// The maximum number of query logging configurations that you want to return
 13296  	// in the response to a ListResolverQueryLogConfigs request. If you don't specify
 13297  	// a value for MaxResults, Resolver returns up to 100 query logging configurations.
 13298  	MaxResults *int64 `min:"1" type:"integer"`
 13299  
 13300  	// For the first ListResolverQueryLogConfigs request, omit this value.
 13301  	//
 13302  	// If there are more than MaxResults query logging configurations that match
 13303  	// the values that you specify for Filters, you can submit another ListResolverQueryLogConfigs
 13304  	// request to get the next group of configurations. In the next request, specify
 13305  	// the value of NextToken from the previous response.
 13306  	NextToken *string `type:"string"`
 13307  
 13308  	// The element that you want Resolver to sort query logging configurations by.
 13309  	//
 13310  	// If you submit a second or subsequent ListResolverQueryLogConfigs request
 13311  	// and specify the NextToken parameter, you must use the same value for SortBy,
 13312  	// if any, as in the previous request.
 13313  	//
 13314  	// Valid values include the following elements:
 13315  	//
 13316  	//    * Arn: The ARN of the query logging configuration
 13317  	//
 13318  	//    * AssociationCount: The number of VPCs that are associated with the specified
 13319  	//    configuration
 13320  	//
 13321  	//    * CreationTime: The date and time that Resolver returned when the configuration
 13322  	//    was created
 13323  	//
 13324  	//    * CreatorRequestId: The value that was specified for CreatorRequestId
 13325  	//    when the configuration was created
 13326  	//
 13327  	//    * DestinationArn: The location that logs are sent to
 13328  	//
 13329  	//    * Id: The ID of the configuration
 13330  	//
 13331  	//    * Name: The name of the configuration
 13332  	//
 13333  	//    * OwnerId: The Amazon Web Services account number of the account that
 13334  	//    created the configuration
 13335  	//
 13336  	//    * ShareStatus: Whether the configuration is shared with other Amazon Web
 13337  	//    Services accounts or shared with the current account by another Amazon
 13338  	//    Web Services account. Sharing is configured through Resource Access Manager
 13339  	//    (RAM).
 13340  	//
 13341  	//    * Status: The current status of the configuration. Valid values include
 13342  	//    the following: CREATING: Resolver is creating the query logging configuration.
 13343  	//    CREATED: The query logging configuration was successfully created. Resolver
 13344  	//    is logging queries that originate in the specified VPC. DELETING: Resolver
 13345  	//    is deleting this query logging configuration. FAILED: Resolver either
 13346  	//    couldn't create or couldn't delete the query logging configuration. Here
 13347  	//    are two common causes: The specified destination (for example, an Amazon
 13348  	//    S3 bucket) was deleted. Permissions don't allow sending logs to the destination.
 13349  	SortBy *string `min:"1" type:"string"`
 13350  
 13351  	// If you specified a value for SortBy, the order that you want query logging
 13352  	// configurations to be listed in, ASCENDING or DESCENDING.
 13353  	//
 13354  	// If you submit a second or subsequent ListResolverQueryLogConfigs request
 13355  	// and specify the NextToken parameter, you must use the same value for SortOrder,
 13356  	// if any, as in the previous request.
 13357  	SortOrder *string `type:"string" enum:"SortOrder"`
 13358  }
 13359  
 13360  // String returns the string representation.
 13361  //
 13362  // API parameter values that are decorated as "sensitive" in the API will not
 13363  // be included in the string output. The member name will be present, but the
 13364  // value will be replaced with "sensitive".
 13365  func (s ListResolverQueryLogConfigsInput) String() string {
 13366  	return awsutil.Prettify(s)
 13367  }
 13368  
 13369  // GoString returns the string representation.
 13370  //
 13371  // API parameter values that are decorated as "sensitive" in the API will not
 13372  // be included in the string output. The member name will be present, but the
 13373  // value will be replaced with "sensitive".
 13374  func (s ListResolverQueryLogConfigsInput) GoString() string {
 13375  	return s.String()
 13376  }
 13377  
 13378  // Validate inspects the fields of the type to determine if they are valid.
 13379  func (s *ListResolverQueryLogConfigsInput) Validate() error {
 13380  	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigsInput"}
 13381  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13382  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13383  	}
 13384  	if s.SortBy != nil && len(*s.SortBy) < 1 {
 13385  		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
 13386  	}
 13387  	if s.Filters != nil {
 13388  		for i, v := range s.Filters {
 13389  			if v == nil {
 13390  				continue
 13391  			}
 13392  			if err := v.Validate(); err != nil {
 13393  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
 13394  			}
 13395  		}
 13396  	}
 13397  
 13398  	if invalidParams.Len() > 0 {
 13399  		return invalidParams
 13400  	}
 13401  	return nil
 13402  }
 13403  
 13404  // SetFilters sets the Filters field's value.
 13405  func (s *ListResolverQueryLogConfigsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigsInput {
 13406  	s.Filters = v
 13407  	return s
 13408  }
 13409  
 13410  // SetMaxResults sets the MaxResults field's value.
 13411  func (s *ListResolverQueryLogConfigsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigsInput {
 13412  	s.MaxResults = &v
 13413  	return s
 13414  }
 13415  
 13416  // SetNextToken sets the NextToken field's value.
 13417  func (s *ListResolverQueryLogConfigsInput) SetNextToken(v string) *ListResolverQueryLogConfigsInput {
 13418  	s.NextToken = &v
 13419  	return s
 13420  }
 13421  
 13422  // SetSortBy sets the SortBy field's value.
 13423  func (s *ListResolverQueryLogConfigsInput) SetSortBy(v string) *ListResolverQueryLogConfigsInput {
 13424  	s.SortBy = &v
 13425  	return s
 13426  }
 13427  
 13428  // SetSortOrder sets the SortOrder field's value.
 13429  func (s *ListResolverQueryLogConfigsInput) SetSortOrder(v string) *ListResolverQueryLogConfigsInput {
 13430  	s.SortOrder = &v
 13431  	return s
 13432  }
 13433  
 13434  type ListResolverQueryLogConfigsOutput struct {
 13435  	_ struct{} `type:"structure"`
 13436  
 13437  	// If there are more than MaxResults query logging configurations, you can submit
 13438  	// another ListResolverQueryLogConfigs request to get the next group of configurations.
 13439  	// In the next request, specify the value of NextToken from the previous response.
 13440  	NextToken *string `type:"string"`
 13441  
 13442  	// A list that contains one ResolverQueryLogConfig element for each query logging
 13443  	// configuration that matches the values that you specified for Filter.
 13444  	ResolverQueryLogConfigs []*ResolverQueryLogConfig `type:"list"`
 13445  
 13446  	// The total number of query logging configurations that were created by the
 13447  	// current account in the specified Region. This count can differ from the number
 13448  	// of query logging configurations that are returned in a ListResolverQueryLogConfigs
 13449  	// response, depending on the values that you specify in the request.
 13450  	TotalCount *int64 `type:"integer"`
 13451  
 13452  	// The total number of query logging configurations that were created by the
 13453  	// current account in the specified Region and that match the filters that were
 13454  	// specified in the ListResolverQueryLogConfigs request. For the total number
 13455  	// of query logging configurations that were created by the current account
 13456  	// in the specified Region, see TotalCount.
 13457  	TotalFilteredCount *int64 `type:"integer"`
 13458  }
 13459  
 13460  // String returns the string representation.
 13461  //
 13462  // API parameter values that are decorated as "sensitive" in the API will not
 13463  // be included in the string output. The member name will be present, but the
 13464  // value will be replaced with "sensitive".
 13465  func (s ListResolverQueryLogConfigsOutput) String() string {
 13466  	return awsutil.Prettify(s)
 13467  }
 13468  
 13469  // GoString returns the string representation.
 13470  //
 13471  // API parameter values that are decorated as "sensitive" in the API will not
 13472  // be included in the string output. The member name will be present, but the
 13473  // value will be replaced with "sensitive".
 13474  func (s ListResolverQueryLogConfigsOutput) GoString() string {
 13475  	return s.String()
 13476  }
 13477  
 13478  // SetNextToken sets the NextToken field's value.
 13479  func (s *ListResolverQueryLogConfigsOutput) SetNextToken(v string) *ListResolverQueryLogConfigsOutput {
 13480  	s.NextToken = &v
 13481  	return s
 13482  }
 13483  
 13484  // SetResolverQueryLogConfigs sets the ResolverQueryLogConfigs field's value.
 13485  func (s *ListResolverQueryLogConfigsOutput) SetResolverQueryLogConfigs(v []*ResolverQueryLogConfig) *ListResolverQueryLogConfigsOutput {
 13486  	s.ResolverQueryLogConfigs = v
 13487  	return s
 13488  }
 13489  
 13490  // SetTotalCount sets the TotalCount field's value.
 13491  func (s *ListResolverQueryLogConfigsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigsOutput {
 13492  	s.TotalCount = &v
 13493  	return s
 13494  }
 13495  
 13496  // SetTotalFilteredCount sets the TotalFilteredCount field's value.
 13497  func (s *ListResolverQueryLogConfigsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigsOutput {
 13498  	s.TotalFilteredCount = &v
 13499  	return s
 13500  }
 13501  
 13502  type ListResolverRuleAssociationsInput struct {
 13503  	_ struct{} `type:"structure"`
 13504  
 13505  	// An optional specification to return a subset of Resolver rules, such as Resolver
 13506  	// rules that are associated with the same VPC ID.
 13507  	//
 13508  	// If you submit a second or subsequent ListResolverRuleAssociations request
 13509  	// and specify the NextToken parameter, you must use the same values for Filters,
 13510  	// if any, as in the previous request.
 13511  	Filters []*Filter `type:"list"`
 13512  
 13513  	// The maximum number of rule associations that you want to return in the response
 13514  	// to a ListResolverRuleAssociations request. If you don't specify a value for
 13515  	// MaxResults, Resolver returns up to 100 rule associations.
 13516  	MaxResults *int64 `min:"1" type:"integer"`
 13517  
 13518  	// For the first ListResolverRuleAssociation request, omit this value.
 13519  	//
 13520  	// If you have more than MaxResults rule associations, you can submit another
 13521  	// ListResolverRuleAssociation request to get the next group of rule associations.
 13522  	// In the next request, specify the value of NextToken from the previous response.
 13523  	NextToken *string `type:"string"`
 13524  }
 13525  
 13526  // String returns the string representation.
 13527  //
 13528  // API parameter values that are decorated as "sensitive" in the API will not
 13529  // be included in the string output. The member name will be present, but the
 13530  // value will be replaced with "sensitive".
 13531  func (s ListResolverRuleAssociationsInput) String() string {
 13532  	return awsutil.Prettify(s)
 13533  }
 13534  
 13535  // GoString returns the string representation.
 13536  //
 13537  // API parameter values that are decorated as "sensitive" in the API will not
 13538  // be included in the string output. The member name will be present, but the
 13539  // value will be replaced with "sensitive".
 13540  func (s ListResolverRuleAssociationsInput) GoString() string {
 13541  	return s.String()
 13542  }
 13543  
 13544  // Validate inspects the fields of the type to determine if they are valid.
 13545  func (s *ListResolverRuleAssociationsInput) Validate() error {
 13546  	invalidParams := request.ErrInvalidParams{Context: "ListResolverRuleAssociationsInput"}
 13547  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13548  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13549  	}
 13550  	if s.Filters != nil {
 13551  		for i, v := range s.Filters {
 13552  			if v == nil {
 13553  				continue
 13554  			}
 13555  			if err := v.Validate(); err != nil {
 13556  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
 13557  			}
 13558  		}
 13559  	}
 13560  
 13561  	if invalidParams.Len() > 0 {
 13562  		return invalidParams
 13563  	}
 13564  	return nil
 13565  }
 13566  
 13567  // SetFilters sets the Filters field's value.
 13568  func (s *ListResolverRuleAssociationsInput) SetFilters(v []*Filter) *ListResolverRuleAssociationsInput {
 13569  	s.Filters = v
 13570  	return s
 13571  }
 13572  
 13573  // SetMaxResults sets the MaxResults field's value.
 13574  func (s *ListResolverRuleAssociationsInput) SetMaxResults(v int64) *ListResolverRuleAssociationsInput {
 13575  	s.MaxResults = &v
 13576  	return s
 13577  }
 13578  
 13579  // SetNextToken sets the NextToken field's value.
 13580  func (s *ListResolverRuleAssociationsInput) SetNextToken(v string) *ListResolverRuleAssociationsInput {
 13581  	s.NextToken = &v
 13582  	return s
 13583  }
 13584  
 13585  type ListResolverRuleAssociationsOutput struct {
 13586  	_ struct{} `type:"structure"`
 13587  
 13588  	// The value that you specified for MaxResults in the request.
 13589  	MaxResults *int64 `min:"1" type:"integer"`
 13590  
 13591  	// If more than MaxResults rule associations match the specified criteria, you
 13592  	// can submit another ListResolverRuleAssociation request to get the next group
 13593  	// of results. In the next request, specify the value of NextToken from the
 13594  	// previous response.
 13595  	NextToken *string `type:"string"`
 13596  
 13597  	// The associations that were created between Resolver rules and VPCs using
 13598  	// the current Amazon Web Services account, and that match the specified filters,
 13599  	// if any.
 13600  	ResolverRuleAssociations []*ResolverRuleAssociation `type:"list"`
 13601  }
 13602  
 13603  // String returns the string representation.
 13604  //
 13605  // API parameter values that are decorated as "sensitive" in the API will not
 13606  // be included in the string output. The member name will be present, but the
 13607  // value will be replaced with "sensitive".
 13608  func (s ListResolverRuleAssociationsOutput) String() string {
 13609  	return awsutil.Prettify(s)
 13610  }
 13611  
 13612  // GoString returns the string representation.
 13613  //
 13614  // API parameter values that are decorated as "sensitive" in the API will not
 13615  // be included in the string output. The member name will be present, but the
 13616  // value will be replaced with "sensitive".
 13617  func (s ListResolverRuleAssociationsOutput) GoString() string {
 13618  	return s.String()
 13619  }
 13620  
 13621  // SetMaxResults sets the MaxResults field's value.
 13622  func (s *ListResolverRuleAssociationsOutput) SetMaxResults(v int64) *ListResolverRuleAssociationsOutput {
 13623  	s.MaxResults = &v
 13624  	return s
 13625  }
 13626  
 13627  // SetNextToken sets the NextToken field's value.
 13628  func (s *ListResolverRuleAssociationsOutput) SetNextToken(v string) *ListResolverRuleAssociationsOutput {
 13629  	s.NextToken = &v
 13630  	return s
 13631  }
 13632  
 13633  // SetResolverRuleAssociations sets the ResolverRuleAssociations field's value.
 13634  func (s *ListResolverRuleAssociationsOutput) SetResolverRuleAssociations(v []*ResolverRuleAssociation) *ListResolverRuleAssociationsOutput {
 13635  	s.ResolverRuleAssociations = v
 13636  	return s
 13637  }
 13638  
 13639  type ListResolverRulesInput struct {
 13640  	_ struct{} `type:"structure"`
 13641  
 13642  	// An optional specification to return a subset of Resolver rules, such as all
 13643  	// Resolver rules that are associated with the same Resolver endpoint.
 13644  	//
 13645  	// If you submit a second or subsequent ListResolverRules request and specify
 13646  	// the NextToken parameter, you must use the same values for Filters, if any,
 13647  	// as in the previous request.
 13648  	Filters []*Filter `type:"list"`
 13649  
 13650  	// The maximum number of Resolver rules that you want to return in the response
 13651  	// to a ListResolverRules request. If you don't specify a value for MaxResults,
 13652  	// Resolver returns up to 100 Resolver rules.
 13653  	MaxResults *int64 `min:"1" type:"integer"`
 13654  
 13655  	// For the first ListResolverRules request, omit this value.
 13656  	//
 13657  	// If you have more than MaxResults Resolver rules, you can submit another ListResolverRules
 13658  	// request to get the next group of Resolver rules. In the next request, specify
 13659  	// the value of NextToken from the previous response.
 13660  	NextToken *string `type:"string"`
 13661  }
 13662  
 13663  // String returns the string representation.
 13664  //
 13665  // API parameter values that are decorated as "sensitive" in the API will not
 13666  // be included in the string output. The member name will be present, but the
 13667  // value will be replaced with "sensitive".
 13668  func (s ListResolverRulesInput) String() string {
 13669  	return awsutil.Prettify(s)
 13670  }
 13671  
 13672  // GoString returns the string representation.
 13673  //
 13674  // API parameter values that are decorated as "sensitive" in the API will not
 13675  // be included in the string output. The member name will be present, but the
 13676  // value will be replaced with "sensitive".
 13677  func (s ListResolverRulesInput) GoString() string {
 13678  	return s.String()
 13679  }
 13680  
 13681  // Validate inspects the fields of the type to determine if they are valid.
 13682  func (s *ListResolverRulesInput) Validate() error {
 13683  	invalidParams := request.ErrInvalidParams{Context: "ListResolverRulesInput"}
 13684  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13685  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13686  	}
 13687  	if s.Filters != nil {
 13688  		for i, v := range s.Filters {
 13689  			if v == nil {
 13690  				continue
 13691  			}
 13692  			if err := v.Validate(); err != nil {
 13693  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
 13694  			}
 13695  		}
 13696  	}
 13697  
 13698  	if invalidParams.Len() > 0 {
 13699  		return invalidParams
 13700  	}
 13701  	return nil
 13702  }
 13703  
 13704  // SetFilters sets the Filters field's value.
 13705  func (s *ListResolverRulesInput) SetFilters(v []*Filter) *ListResolverRulesInput {
 13706  	s.Filters = v
 13707  	return s
 13708  }
 13709  
 13710  // SetMaxResults sets the MaxResults field's value.
 13711  func (s *ListResolverRulesInput) SetMaxResults(v int64) *ListResolverRulesInput {
 13712  	s.MaxResults = &v
 13713  	return s
 13714  }
 13715  
 13716  // SetNextToken sets the NextToken field's value.
 13717  func (s *ListResolverRulesInput) SetNextToken(v string) *ListResolverRulesInput {
 13718  	s.NextToken = &v
 13719  	return s
 13720  }
 13721  
 13722  type ListResolverRulesOutput struct {
 13723  	_ struct{} `type:"structure"`
 13724  
 13725  	// The value that you specified for MaxResults in the request.
 13726  	MaxResults *int64 `min:"1" type:"integer"`
 13727  
 13728  	// If more than MaxResults Resolver rules match the specified criteria, you
 13729  	// can submit another ListResolverRules request to get the next group of results.
 13730  	// In the next request, specify the value of NextToken from the previous response.
 13731  	NextToken *string `type:"string"`
 13732  
 13733  	// The Resolver rules that were created using the current Amazon Web Services
 13734  	// account and that match the specified filters, if any.
 13735  	ResolverRules []*ResolverRule `type:"list"`
 13736  }
 13737  
 13738  // String returns the string representation.
 13739  //
 13740  // API parameter values that are decorated as "sensitive" in the API will not
 13741  // be included in the string output. The member name will be present, but the
 13742  // value will be replaced with "sensitive".
 13743  func (s ListResolverRulesOutput) String() string {
 13744  	return awsutil.Prettify(s)
 13745  }
 13746  
 13747  // GoString returns the string representation.
 13748  //
 13749  // API parameter values that are decorated as "sensitive" in the API will not
 13750  // be included in the string output. The member name will be present, but the
 13751  // value will be replaced with "sensitive".
 13752  func (s ListResolverRulesOutput) GoString() string {
 13753  	return s.String()
 13754  }
 13755  
 13756  // SetMaxResults sets the MaxResults field's value.
 13757  func (s *ListResolverRulesOutput) SetMaxResults(v int64) *ListResolverRulesOutput {
 13758  	s.MaxResults = &v
 13759  	return s
 13760  }
 13761  
 13762  // SetNextToken sets the NextToken field's value.
 13763  func (s *ListResolverRulesOutput) SetNextToken(v string) *ListResolverRulesOutput {
 13764  	s.NextToken = &v
 13765  	return s
 13766  }
 13767  
 13768  // SetResolverRules sets the ResolverRules field's value.
 13769  func (s *ListResolverRulesOutput) SetResolverRules(v []*ResolverRule) *ListResolverRulesOutput {
 13770  	s.ResolverRules = v
 13771  	return s
 13772  }
 13773  
 13774  type ListTagsForResourceInput struct {
 13775  	_ struct{} `type:"structure"`
 13776  
 13777  	// The maximum number of tags that you want to return in the response to a ListTagsForResource
 13778  	// request. If you don't specify a value for MaxResults, Resolver returns up
 13779  	// to 100 tags.
 13780  	MaxResults *int64 `min:"1" type:"integer"`
 13781  
 13782  	// For the first ListTagsForResource request, omit this value.
 13783  	//
 13784  	// If you have more than MaxResults tags, you can submit another ListTagsForResource
 13785  	// request to get the next group of tags for the resource. In the next request,
 13786  	// specify the value of NextToken from the previous response.
 13787  	NextToken *string `type:"string"`
 13788  
 13789  	// The Amazon Resource Name (ARN) for the resource that you want to list tags
 13790  	// for.
 13791  	//
 13792  	// ResourceArn is a required field
 13793  	ResourceArn *string `min:"1" type:"string" required:"true"`
 13794  }
 13795  
 13796  // String returns the string representation.
 13797  //
 13798  // API parameter values that are decorated as "sensitive" in the API will not
 13799  // be included in the string output. The member name will be present, but the
 13800  // value will be replaced with "sensitive".
 13801  func (s ListTagsForResourceInput) String() string {
 13802  	return awsutil.Prettify(s)
 13803  }
 13804  
 13805  // GoString returns the string representation.
 13806  //
 13807  // API parameter values that are decorated as "sensitive" in the API will not
 13808  // be included in the string output. The member name will be present, but the
 13809  // value will be replaced with "sensitive".
 13810  func (s ListTagsForResourceInput) GoString() string {
 13811  	return s.String()
 13812  }
 13813  
 13814  // Validate inspects the fields of the type to determine if they are valid.
 13815  func (s *ListTagsForResourceInput) Validate() error {
 13816  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 13817  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13818  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13819  	}
 13820  	if s.ResourceArn == nil {
 13821  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 13822  	}
 13823  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 13824  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 13825  	}
 13826  
 13827  	if invalidParams.Len() > 0 {
 13828  		return invalidParams
 13829  	}
 13830  	return nil
 13831  }
 13832  
 13833  // SetMaxResults sets the MaxResults field's value.
 13834  func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
 13835  	s.MaxResults = &v
 13836  	return s
 13837  }
 13838  
 13839  // SetNextToken sets the NextToken field's value.
 13840  func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
 13841  	s.NextToken = &v
 13842  	return s
 13843  }
 13844  
 13845  // SetResourceArn sets the ResourceArn field's value.
 13846  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
 13847  	s.ResourceArn = &v
 13848  	return s
 13849  }
 13850  
 13851  type ListTagsForResourceOutput struct {
 13852  	_ struct{} `type:"structure"`
 13853  
 13854  	// If more than MaxResults tags match the specified criteria, you can submit
 13855  	// another ListTagsForResource request to get the next group of results. In
 13856  	// the next request, specify the value of NextToken from the previous response.
 13857  	NextToken *string `type:"string"`
 13858  
 13859  	// The tags that are associated with the resource that you specified in the
 13860  	// ListTagsForResource request.
 13861  	Tags []*Tag `type:"list"`
 13862  }
 13863  
 13864  // String returns the string representation.
 13865  //
 13866  // API parameter values that are decorated as "sensitive" in the API will not
 13867  // be included in the string output. The member name will be present, but the
 13868  // value will be replaced with "sensitive".
 13869  func (s ListTagsForResourceOutput) String() string {
 13870  	return awsutil.Prettify(s)
 13871  }
 13872  
 13873  // GoString returns the string representation.
 13874  //
 13875  // API parameter values that are decorated as "sensitive" in the API will not
 13876  // be included in the string output. The member name will be present, but the
 13877  // value will be replaced with "sensitive".
 13878  func (s ListTagsForResourceOutput) GoString() string {
 13879  	return s.String()
 13880  }
 13881  
 13882  // SetNextToken sets the NextToken field's value.
 13883  func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
 13884  	s.NextToken = &v
 13885  	return s
 13886  }
 13887  
 13888  // SetTags sets the Tags field's value.
 13889  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
 13890  	s.Tags = v
 13891  	return s
 13892  }
 13893  
 13894  type PutFirewallRuleGroupPolicyInput struct {
 13895  	_ struct{} `type:"structure"`
 13896  
 13897  	// The ARN (Amazon Resource Name) for the rule group that you want to share.
 13898  	//
 13899  	// Arn is a required field
 13900  	Arn *string `min:"1" type:"string" required:"true"`
 13901  
 13902  	// The Identity and Access Management (Amazon Web Services IAM) policy to attach
 13903  	// to the rule group.
 13904  	//
 13905  	// FirewallRuleGroupPolicy is a required field
 13906  	FirewallRuleGroupPolicy *string `type:"string" required:"true"`
 13907  }
 13908  
 13909  // String returns the string representation.
 13910  //
 13911  // API parameter values that are decorated as "sensitive" in the API will not
 13912  // be included in the string output. The member name will be present, but the
 13913  // value will be replaced with "sensitive".
 13914  func (s PutFirewallRuleGroupPolicyInput) String() string {
 13915  	return awsutil.Prettify(s)
 13916  }
 13917  
 13918  // GoString returns the string representation.
 13919  //
 13920  // API parameter values that are decorated as "sensitive" in the API will not
 13921  // be included in the string output. The member name will be present, but the
 13922  // value will be replaced with "sensitive".
 13923  func (s PutFirewallRuleGroupPolicyInput) GoString() string {
 13924  	return s.String()
 13925  }
 13926  
 13927  // Validate inspects the fields of the type to determine if they are valid.
 13928  func (s *PutFirewallRuleGroupPolicyInput) Validate() error {
 13929  	invalidParams := request.ErrInvalidParams{Context: "PutFirewallRuleGroupPolicyInput"}
 13930  	if s.Arn == nil {
 13931  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 13932  	}
 13933  	if s.Arn != nil && len(*s.Arn) < 1 {
 13934  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 13935  	}
 13936  	if s.FirewallRuleGroupPolicy == nil {
 13937  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupPolicy"))
 13938  	}
 13939  
 13940  	if invalidParams.Len() > 0 {
 13941  		return invalidParams
 13942  	}
 13943  	return nil
 13944  }
 13945  
 13946  // SetArn sets the Arn field's value.
 13947  func (s *PutFirewallRuleGroupPolicyInput) SetArn(v string) *PutFirewallRuleGroupPolicyInput {
 13948  	s.Arn = &v
 13949  	return s
 13950  }
 13951  
 13952  // SetFirewallRuleGroupPolicy sets the FirewallRuleGroupPolicy field's value.
 13953  func (s *PutFirewallRuleGroupPolicyInput) SetFirewallRuleGroupPolicy(v string) *PutFirewallRuleGroupPolicyInput {
 13954  	s.FirewallRuleGroupPolicy = &v
 13955  	return s
 13956  }
 13957  
 13958  type PutFirewallRuleGroupPolicyOutput struct {
 13959  	_ struct{} `type:"structure"`
 13960  
 13961  	ReturnValue *bool `type:"boolean"`
 13962  }
 13963  
 13964  // String returns the string representation.
 13965  //
 13966  // API parameter values that are decorated as "sensitive" in the API will not
 13967  // be included in the string output. The member name will be present, but the
 13968  // value will be replaced with "sensitive".
 13969  func (s PutFirewallRuleGroupPolicyOutput) String() string {
 13970  	return awsutil.Prettify(s)
 13971  }
 13972  
 13973  // GoString returns the string representation.
 13974  //
 13975  // API parameter values that are decorated as "sensitive" in the API will not
 13976  // be included in the string output. The member name will be present, but the
 13977  // value will be replaced with "sensitive".
 13978  func (s PutFirewallRuleGroupPolicyOutput) GoString() string {
 13979  	return s.String()
 13980  }
 13981  
 13982  // SetReturnValue sets the ReturnValue field's value.
 13983  func (s *PutFirewallRuleGroupPolicyOutput) SetReturnValue(v bool) *PutFirewallRuleGroupPolicyOutput {
 13984  	s.ReturnValue = &v
 13985  	return s
 13986  }
 13987  
 13988  type PutResolverQueryLogConfigPolicyInput struct {
 13989  	_ struct{} `type:"structure"`
 13990  
 13991  	// The Amazon Resource Name (ARN) of the account that you want to share rules
 13992  	// with.
 13993  	//
 13994  	// Arn is a required field
 13995  	Arn *string `min:"1" type:"string" required:"true"`
 13996  
 13997  	// An Identity and Access Management policy statement that lists the query logging
 13998  	// configurations that you want to share with another Amazon Web Services account
 13999  	// and the operations that you want the account to be able to perform. You can
 14000  	// specify the following operations in the Actions section of the statement:
 14001  	//
 14002  	//    * route53resolver:AssociateResolverQueryLogConfig
 14003  	//
 14004  	//    * route53resolver:DisassociateResolverQueryLogConfig
 14005  	//
 14006  	//    * route53resolver:ListResolverQueryLogConfigAssociations
 14007  	//
 14008  	//    * route53resolver:ListResolverQueryLogConfigs
 14009  	//
 14010  	// In the Resource section of the statement, you specify the ARNs for the query
 14011  	// logging configurations that you want to share with the account that you specified
 14012  	// in Arn.
 14013  	//
 14014  	// ResolverQueryLogConfigPolicy is a required field
 14015  	ResolverQueryLogConfigPolicy *string `type:"string" required:"true"`
 14016  }
 14017  
 14018  // String returns the string representation.
 14019  //
 14020  // API parameter values that are decorated as "sensitive" in the API will not
 14021  // be included in the string output. The member name will be present, but the
 14022  // value will be replaced with "sensitive".
 14023  func (s PutResolverQueryLogConfigPolicyInput) String() string {
 14024  	return awsutil.Prettify(s)
 14025  }
 14026  
 14027  // GoString returns the string representation.
 14028  //
 14029  // API parameter values that are decorated as "sensitive" in the API will not
 14030  // be included in the string output. The member name will be present, but the
 14031  // value will be replaced with "sensitive".
 14032  func (s PutResolverQueryLogConfigPolicyInput) GoString() string {
 14033  	return s.String()
 14034  }
 14035  
 14036  // Validate inspects the fields of the type to determine if they are valid.
 14037  func (s *PutResolverQueryLogConfigPolicyInput) Validate() error {
 14038  	invalidParams := request.ErrInvalidParams{Context: "PutResolverQueryLogConfigPolicyInput"}
 14039  	if s.Arn == nil {
 14040  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 14041  	}
 14042  	if s.Arn != nil && len(*s.Arn) < 1 {
 14043  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 14044  	}
 14045  	if s.ResolverQueryLogConfigPolicy == nil {
 14046  		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigPolicy"))
 14047  	}
 14048  
 14049  	if invalidParams.Len() > 0 {
 14050  		return invalidParams
 14051  	}
 14052  	return nil
 14053  }
 14054  
 14055  // SetArn sets the Arn field's value.
 14056  func (s *PutResolverQueryLogConfigPolicyInput) SetArn(v string) *PutResolverQueryLogConfigPolicyInput {
 14057  	s.Arn = &v
 14058  	return s
 14059  }
 14060  
 14061  // SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
 14062  func (s *PutResolverQueryLogConfigPolicyInput) SetResolverQueryLogConfigPolicy(v string) *PutResolverQueryLogConfigPolicyInput {
 14063  	s.ResolverQueryLogConfigPolicy = &v
 14064  	return s
 14065  }
 14066  
 14067  // The response to a PutResolverQueryLogConfigPolicy request.
 14068  type PutResolverQueryLogConfigPolicyOutput struct {
 14069  	_ struct{} `type:"structure"`
 14070  
 14071  	// Whether the PutResolverQueryLogConfigPolicy request was successful.
 14072  	ReturnValue *bool `type:"boolean"`
 14073  }
 14074  
 14075  // String returns the string representation.
 14076  //
 14077  // API parameter values that are decorated as "sensitive" in the API will not
 14078  // be included in the string output. The member name will be present, but the
 14079  // value will be replaced with "sensitive".
 14080  func (s PutResolverQueryLogConfigPolicyOutput) String() string {
 14081  	return awsutil.Prettify(s)
 14082  }
 14083  
 14084  // GoString returns the string representation.
 14085  //
 14086  // API parameter values that are decorated as "sensitive" in the API will not
 14087  // be included in the string output. The member name will be present, but the
 14088  // value will be replaced with "sensitive".
 14089  func (s PutResolverQueryLogConfigPolicyOutput) GoString() string {
 14090  	return s.String()
 14091  }
 14092  
 14093  // SetReturnValue sets the ReturnValue field's value.
 14094  func (s *PutResolverQueryLogConfigPolicyOutput) SetReturnValue(v bool) *PutResolverQueryLogConfigPolicyOutput {
 14095  	s.ReturnValue = &v
 14096  	return s
 14097  }
 14098  
 14099  type PutResolverRulePolicyInput struct {
 14100  	_ struct{} `type:"structure"`
 14101  
 14102  	// The Amazon Resource Name (ARN) of the rule that you want to share with another
 14103  	// account.
 14104  	//
 14105  	// Arn is a required field
 14106  	Arn *string `min:"1" type:"string" required:"true"`
 14107  
 14108  	// An Identity and Access Management policy statement that lists the rules that
 14109  	// you want to share with another Amazon Web Services account and the operations
 14110  	// that you want the account to be able to perform. You can specify the following
 14111  	// operations in the Action section of the statement:
 14112  	//
 14113  	//    * route53resolver:GetResolverRule
 14114  	//
 14115  	//    * route53resolver:AssociateResolverRule
 14116  	//
 14117  	//    * route53resolver:DisassociateResolverRule
 14118  	//
 14119  	//    * route53resolver:ListResolverRules
 14120  	//
 14121  	//    * route53resolver:ListResolverRuleAssociations
 14122  	//
 14123  	// In the Resource section of the statement, specify the ARN for the rule that
 14124  	// you want to share with another account. Specify the same ARN that you specified
 14125  	// in Arn.
 14126  	//
 14127  	// ResolverRulePolicy is a required field
 14128  	ResolverRulePolicy *string `type:"string" required:"true"`
 14129  }
 14130  
 14131  // String returns the string representation.
 14132  //
 14133  // API parameter values that are decorated as "sensitive" in the API will not
 14134  // be included in the string output. The member name will be present, but the
 14135  // value will be replaced with "sensitive".
 14136  func (s PutResolverRulePolicyInput) String() string {
 14137  	return awsutil.Prettify(s)
 14138  }
 14139  
 14140  // GoString returns the string representation.
 14141  //
 14142  // API parameter values that are decorated as "sensitive" in the API will not
 14143  // be included in the string output. The member name will be present, but the
 14144  // value will be replaced with "sensitive".
 14145  func (s PutResolverRulePolicyInput) GoString() string {
 14146  	return s.String()
 14147  }
 14148  
 14149  // Validate inspects the fields of the type to determine if they are valid.
 14150  func (s *PutResolverRulePolicyInput) Validate() error {
 14151  	invalidParams := request.ErrInvalidParams{Context: "PutResolverRulePolicyInput"}
 14152  	if s.Arn == nil {
 14153  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 14154  	}
 14155  	if s.Arn != nil && len(*s.Arn) < 1 {
 14156  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 14157  	}
 14158  	if s.ResolverRulePolicy == nil {
 14159  		invalidParams.Add(request.NewErrParamRequired("ResolverRulePolicy"))
 14160  	}
 14161  
 14162  	if invalidParams.Len() > 0 {
 14163  		return invalidParams
 14164  	}
 14165  	return nil
 14166  }
 14167  
 14168  // SetArn sets the Arn field's value.
 14169  func (s *PutResolverRulePolicyInput) SetArn(v string) *PutResolverRulePolicyInput {
 14170  	s.Arn = &v
 14171  	return s
 14172  }
 14173  
 14174  // SetResolverRulePolicy sets the ResolverRulePolicy field's value.
 14175  func (s *PutResolverRulePolicyInput) SetResolverRulePolicy(v string) *PutResolverRulePolicyInput {
 14176  	s.ResolverRulePolicy = &v
 14177  	return s
 14178  }
 14179  
 14180  // The response to a PutResolverRulePolicy request.
 14181  type PutResolverRulePolicyOutput struct {
 14182  	_ struct{} `type:"structure"`
 14183  
 14184  	// Whether the PutResolverRulePolicy request was successful.
 14185  	ReturnValue *bool `type:"boolean"`
 14186  }
 14187  
 14188  // String returns the string representation.
 14189  //
 14190  // API parameter values that are decorated as "sensitive" in the API will not
 14191  // be included in the string output. The member name will be present, but the
 14192  // value will be replaced with "sensitive".
 14193  func (s PutResolverRulePolicyOutput) String() string {
 14194  	return awsutil.Prettify(s)
 14195  }
 14196  
 14197  // GoString returns the string representation.
 14198  //
 14199  // API parameter values that are decorated as "sensitive" in the API will not
 14200  // be included in the string output. The member name will be present, but the
 14201  // value will be replaced with "sensitive".
 14202  func (s PutResolverRulePolicyOutput) GoString() string {
 14203  	return s.String()
 14204  }
 14205  
 14206  // SetReturnValue sets the ReturnValue field's value.
 14207  func (s *PutResolverRulePolicyOutput) SetReturnValue(v bool) *PutResolverRulePolicyOutput {
 14208  	s.ReturnValue = &v
 14209  	return s
 14210  }
 14211  
 14212  // A complex type that contains information about a configuration for DNSSEC
 14213  // validation.
 14214  type ResolverDnssecConfig struct {
 14215  	_ struct{} `type:"structure"`
 14216  
 14217  	// The ID for a configuration for DNSSEC validation.
 14218  	Id *string `min:"1" type:"string"`
 14219  
 14220  	// The owner account ID of the virtual private cloud (VPC) for a configuration
 14221  	// for DNSSEC validation.
 14222  	OwnerId *string `min:"12" type:"string"`
 14223  
 14224  	// The ID of the virtual private cloud (VPC) that you're configuring the DNSSEC
 14225  	// validation status for.
 14226  	ResourceId *string `min:"1" type:"string"`
 14227  
 14228  	// The validation status for a DNSSEC configuration. The status can be one of
 14229  	// the following:
 14230  	//
 14231  	//    * ENABLING: DNSSEC validation is being enabled but is not complete.
 14232  	//
 14233  	//    * ENABLED: DNSSEC validation is enabled.
 14234  	//
 14235  	//    * DISABLING: DNSSEC validation is being disabled but is not complete.
 14236  	//
 14237  	//    * DISABLED DNSSEC validation is disabled.
 14238  	ValidationStatus *string `type:"string" enum:"ResolverDNSSECValidationStatus"`
 14239  }
 14240  
 14241  // String returns the string representation.
 14242  //
 14243  // API parameter values that are decorated as "sensitive" in the API will not
 14244  // be included in the string output. The member name will be present, but the
 14245  // value will be replaced with "sensitive".
 14246  func (s ResolverDnssecConfig) String() string {
 14247  	return awsutil.Prettify(s)
 14248  }
 14249  
 14250  // GoString returns the string representation.
 14251  //
 14252  // API parameter values that are decorated as "sensitive" in the API will not
 14253  // be included in the string output. The member name will be present, but the
 14254  // value will be replaced with "sensitive".
 14255  func (s ResolverDnssecConfig) GoString() string {
 14256  	return s.String()
 14257  }
 14258  
 14259  // SetId sets the Id field's value.
 14260  func (s *ResolverDnssecConfig) SetId(v string) *ResolverDnssecConfig {
 14261  	s.Id = &v
 14262  	return s
 14263  }
 14264  
 14265  // SetOwnerId sets the OwnerId field's value.
 14266  func (s *ResolverDnssecConfig) SetOwnerId(v string) *ResolverDnssecConfig {
 14267  	s.OwnerId = &v
 14268  	return s
 14269  }
 14270  
 14271  // SetResourceId sets the ResourceId field's value.
 14272  func (s *ResolverDnssecConfig) SetResourceId(v string) *ResolverDnssecConfig {
 14273  	s.ResourceId = &v
 14274  	return s
 14275  }
 14276  
 14277  // SetValidationStatus sets the ValidationStatus field's value.
 14278  func (s *ResolverDnssecConfig) SetValidationStatus(v string) *ResolverDnssecConfig {
 14279  	s.ValidationStatus = &v
 14280  	return s
 14281  }
 14282  
 14283  // In the response to a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html),
 14284  // DeleteResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverEndpoint.html),
 14285  // GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html),
 14286  // ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
 14287  // or UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
 14288  // request, a complex type that contains settings for an existing inbound or
 14289  // outbound Resolver endpoint.
 14290  type ResolverEndpoint struct {
 14291  	_ struct{} `type:"structure"`
 14292  
 14293  	// The ARN (Amazon Resource Name) for the Resolver endpoint.
 14294  	Arn *string `min:"1" type:"string"`
 14295  
 14296  	// The date and time that the endpoint was created, in Unix time format and
 14297  	// Coordinated Universal Time (UTC).
 14298  	CreationTime *string `min:"20" type:"string"`
 14299  
 14300  	// A unique string that identifies the request that created the Resolver endpoint.
 14301  	// The CreatorRequestId allows failed requests to be retried without the risk
 14302  	// of running the operation twice.
 14303  	CreatorRequestId *string `min:"1" type:"string"`
 14304  
 14305  	// Indicates whether the Resolver endpoint allows inbound or outbound DNS queries:
 14306  	//
 14307  	//    * INBOUND: allows DNS queries to your VPC from your network
 14308  	//
 14309  	//    * OUTBOUND: allows DNS queries from your VPC to your network
 14310  	Direction *string `type:"string" enum:"ResolverEndpointDirection"`
 14311  
 14312  	// The ID of the VPC that you want to create the Resolver endpoint in.
 14313  	HostVPCId *string `min:"1" type:"string"`
 14314  
 14315  	// The ID of the Resolver endpoint.
 14316  	Id *string `min:"1" type:"string"`
 14317  
 14318  	// The number of IP addresses that the Resolver endpoint can use for DNS queries.
 14319  	IpAddressCount *int64 `type:"integer"`
 14320  
 14321  	// The date and time that the endpoint was last modified, in Unix time format
 14322  	// and Coordinated Universal Time (UTC).
 14323  	ModificationTime *string `min:"20" type:"string"`
 14324  
 14325  	// The name that you assigned to the Resolver endpoint when you submitted a
 14326  	// CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
 14327  	// request.
 14328  	Name *string `type:"string"`
 14329  
 14330  	// The ID of one or more security groups that control access to this VPC. The
 14331  	// security group must include one or more inbound rules (for inbound endpoints)
 14332  	// or outbound rules (for outbound endpoints). Inbound and outbound rules must
 14333  	// allow TCP and UDP access. For inbound access, open port 53. For outbound
 14334  	// access, open the port that you're using for DNS queries on your network.
 14335  	SecurityGroupIds []*string `type:"list"`
 14336  
 14337  	// A code that specifies the current status of the Resolver endpoint. Valid
 14338  	// values include the following:
 14339  	//
 14340  	//    * CREATING: Resolver is creating and configuring one or more Amazon VPC
 14341  	//    network interfaces for this endpoint.
 14342  	//
 14343  	//    * OPERATIONAL: The Amazon VPC network interfaces for this endpoint are
 14344  	//    correctly configured and able to pass inbound or outbound DNS queries
 14345  	//    between your network and Resolver.
 14346  	//
 14347  	//    * UPDATING: Resolver is associating or disassociating one or more network
 14348  	//    interfaces with this endpoint.
 14349  	//
 14350  	//    * AUTO_RECOVERING: Resolver is trying to recover one or more of the network
 14351  	//    interfaces that are associated with this endpoint. During the recovery
 14352  	//    process, the endpoint functions with limited capacity because of the limit
 14353  	//    on the number of DNS queries per IP address (per network interface). For
 14354  	//    the current limit, see Limits on Route 53 Resolver (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver).
 14355  	//
 14356  	//    * ACTION_NEEDED: This endpoint is unhealthy, and Resolver can't automatically
 14357  	//    recover it. To resolve the problem, we recommend that you check each IP
 14358  	//    address that you associated with the endpoint. For each IP address that
 14359  	//    isn't available, add another IP address and then delete the IP address
 14360  	//    that isn't available. (An endpoint must always include at least two IP
 14361  	//    addresses.) A status of ACTION_NEEDED can have a variety of causes. Here
 14362  	//    are two common causes: One or more of the network interfaces that are
 14363  	//    associated with the endpoint were deleted using Amazon VPC. The network
 14364  	//    interface couldn't be created for some reason that's outside the control
 14365  	//    of Resolver.
 14366  	//
 14367  	//    * DELETING: Resolver is deleting this endpoint and the associated network
 14368  	//    interfaces.
 14369  	Status *string `type:"string" enum:"ResolverEndpointStatus"`
 14370  
 14371  	// A detailed description of the status of the Resolver endpoint.
 14372  	StatusMessage *string `type:"string"`
 14373  }
 14374  
 14375  // String returns the string representation.
 14376  //
 14377  // API parameter values that are decorated as "sensitive" in the API will not
 14378  // be included in the string output. The member name will be present, but the
 14379  // value will be replaced with "sensitive".
 14380  func (s ResolverEndpoint) String() string {
 14381  	return awsutil.Prettify(s)
 14382  }
 14383  
 14384  // GoString returns the string representation.
 14385  //
 14386  // API parameter values that are decorated as "sensitive" in the API will not
 14387  // be included in the string output. The member name will be present, but the
 14388  // value will be replaced with "sensitive".
 14389  func (s ResolverEndpoint) GoString() string {
 14390  	return s.String()
 14391  }
 14392  
 14393  // SetArn sets the Arn field's value.
 14394  func (s *ResolverEndpoint) SetArn(v string) *ResolverEndpoint {
 14395  	s.Arn = &v
 14396  	return s
 14397  }
 14398  
 14399  // SetCreationTime sets the CreationTime field's value.
 14400  func (s *ResolverEndpoint) SetCreationTime(v string) *ResolverEndpoint {
 14401  	s.CreationTime = &v
 14402  	return s
 14403  }
 14404  
 14405  // SetCreatorRequestId sets the CreatorRequestId field's value.
 14406  func (s *ResolverEndpoint) SetCreatorRequestId(v string) *ResolverEndpoint {
 14407  	s.CreatorRequestId = &v
 14408  	return s
 14409  }
 14410  
 14411  // SetDirection sets the Direction field's value.
 14412  func (s *ResolverEndpoint) SetDirection(v string) *ResolverEndpoint {
 14413  	s.Direction = &v
 14414  	return s
 14415  }
 14416  
 14417  // SetHostVPCId sets the HostVPCId field's value.
 14418  func (s *ResolverEndpoint) SetHostVPCId(v string) *ResolverEndpoint {
 14419  	s.HostVPCId = &v
 14420  	return s
 14421  }
 14422  
 14423  // SetId sets the Id field's value.
 14424  func (s *ResolverEndpoint) SetId(v string) *ResolverEndpoint {
 14425  	s.Id = &v
 14426  	return s
 14427  }
 14428  
 14429  // SetIpAddressCount sets the IpAddressCount field's value.
 14430  func (s *ResolverEndpoint) SetIpAddressCount(v int64) *ResolverEndpoint {
 14431  	s.IpAddressCount = &v
 14432  	return s
 14433  }
 14434  
 14435  // SetModificationTime sets the ModificationTime field's value.
 14436  func (s *ResolverEndpoint) SetModificationTime(v string) *ResolverEndpoint {
 14437  	s.ModificationTime = &v
 14438  	return s
 14439  }
 14440  
 14441  // SetName sets the Name field's value.
 14442  func (s *ResolverEndpoint) SetName(v string) *ResolverEndpoint {
 14443  	s.Name = &v
 14444  	return s
 14445  }
 14446  
 14447  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
 14448  func (s *ResolverEndpoint) SetSecurityGroupIds(v []*string) *ResolverEndpoint {
 14449  	s.SecurityGroupIds = v
 14450  	return s
 14451  }
 14452  
 14453  // SetStatus sets the Status field's value.
 14454  func (s *ResolverEndpoint) SetStatus(v string) *ResolverEndpoint {
 14455  	s.Status = &v
 14456  	return s
 14457  }
 14458  
 14459  // SetStatusMessage sets the StatusMessage field's value.
 14460  func (s *ResolverEndpoint) SetStatusMessage(v string) *ResolverEndpoint {
 14461  	s.StatusMessage = &v
 14462  	return s
 14463  }
 14464  
 14465  // In the response to a CreateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverQueryLogConfig.html),
 14466  // DeleteResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverQueryLogConfig.html),
 14467  // GetResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfig.html),
 14468  // or ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html)
 14469  // request, a complex type that contains settings for one query logging configuration.
 14470  type ResolverQueryLogConfig struct {
 14471  	_ struct{} `type:"structure"`
 14472  
 14473  	// The ARN for the query logging configuration.
 14474  	Arn *string `min:"1" type:"string"`
 14475  
 14476  	// The number of VPCs that are associated with the query logging configuration.
 14477  	AssociationCount *int64 `type:"integer"`
 14478  
 14479  	// The date and time that the query logging configuration was created, in Unix
 14480  	// time format and Coordinated Universal Time (UTC).
 14481  	CreationTime *string `min:"20" type:"string"`
 14482  
 14483  	// A unique string that identifies the request that created the query logging
 14484  	// configuration. The CreatorRequestId allows failed requests to be retried
 14485  	// without the risk of running the operation twice.
 14486  	CreatorRequestId *string `min:"1" type:"string"`
 14487  
 14488  	// The ARN of the resource that you want Resolver to send query logs: an Amazon
 14489  	// S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery
 14490  	// stream.
 14491  	DestinationArn *string `min:"1" type:"string"`
 14492  
 14493  	// The ID for the query logging configuration.
 14494  	Id *string `min:"1" type:"string"`
 14495  
 14496  	// The name of the query logging configuration.
 14497  	Name *string `min:"1" type:"string"`
 14498  
 14499  	// The Amazon Web Services account ID for the account that created the query
 14500  	// logging configuration.
 14501  	OwnerId *string `min:"12" type:"string"`
 14502  
 14503  	// An indication of whether the query logging configuration is shared with other
 14504  	// Amazon Web Services accounts, or was shared with the current account by another
 14505  	// Amazon Web Services account. Sharing is configured through Resource Access
 14506  	// Manager (RAM).
 14507  	ShareStatus *string `type:"string" enum:"ShareStatus"`
 14508  
 14509  	// The status of the specified query logging configuration. Valid values include
 14510  	// the following:
 14511  	//
 14512  	//    * CREATING: Resolver is creating the query logging configuration.
 14513  	//
 14514  	//    * CREATED: The query logging configuration was successfully created. Resolver
 14515  	//    is logging queries that originate in the specified VPC.
 14516  	//
 14517  	//    * DELETING: Resolver is deleting this query logging configuration.
 14518  	//
 14519  	//    * FAILED: Resolver can't deliver logs to the location that is specified
 14520  	//    in the query logging configuration. Here are two common causes: The specified
 14521  	//    destination (for example, an Amazon S3 bucket) was deleted. Permissions
 14522  	//    don't allow sending logs to the destination.
 14523  	Status *string `type:"string" enum:"ResolverQueryLogConfigStatus"`
 14524  }
 14525  
 14526  // String returns the string representation.
 14527  //
 14528  // API parameter values that are decorated as "sensitive" in the API will not
 14529  // be included in the string output. The member name will be present, but the
 14530  // value will be replaced with "sensitive".
 14531  func (s ResolverQueryLogConfig) String() string {
 14532  	return awsutil.Prettify(s)
 14533  }
 14534  
 14535  // GoString returns the string representation.
 14536  //
 14537  // API parameter values that are decorated as "sensitive" in the API will not
 14538  // be included in the string output. The member name will be present, but the
 14539  // value will be replaced with "sensitive".
 14540  func (s ResolverQueryLogConfig) GoString() string {
 14541  	return s.String()
 14542  }
 14543  
 14544  // SetArn sets the Arn field's value.
 14545  func (s *ResolverQueryLogConfig) SetArn(v string) *ResolverQueryLogConfig {
 14546  	s.Arn = &v
 14547  	return s
 14548  }
 14549  
 14550  // SetAssociationCount sets the AssociationCount field's value.
 14551  func (s *ResolverQueryLogConfig) SetAssociationCount(v int64) *ResolverQueryLogConfig {
 14552  	s.AssociationCount = &v
 14553  	return s
 14554  }
 14555  
 14556  // SetCreationTime sets the CreationTime field's value.
 14557  func (s *ResolverQueryLogConfig) SetCreationTime(v string) *ResolverQueryLogConfig {
 14558  	s.CreationTime = &v
 14559  	return s
 14560  }
 14561  
 14562  // SetCreatorRequestId sets the CreatorRequestId field's value.
 14563  func (s *ResolverQueryLogConfig) SetCreatorRequestId(v string) *ResolverQueryLogConfig {
 14564  	s.CreatorRequestId = &v
 14565  	return s
 14566  }
 14567  
 14568  // SetDestinationArn sets the DestinationArn field's value.
 14569  func (s *ResolverQueryLogConfig) SetDestinationArn(v string) *ResolverQueryLogConfig {
 14570  	s.DestinationArn = &v
 14571  	return s
 14572  }
 14573  
 14574  // SetId sets the Id field's value.
 14575  func (s *ResolverQueryLogConfig) SetId(v string) *ResolverQueryLogConfig {
 14576  	s.Id = &v
 14577  	return s
 14578  }
 14579  
 14580  // SetName sets the Name field's value.
 14581  func (s *ResolverQueryLogConfig) SetName(v string) *ResolverQueryLogConfig {
 14582  	s.Name = &v
 14583  	return s
 14584  }
 14585  
 14586  // SetOwnerId sets the OwnerId field's value.
 14587  func (s *ResolverQueryLogConfig) SetOwnerId(v string) *ResolverQueryLogConfig {
 14588  	s.OwnerId = &v
 14589  	return s
 14590  }
 14591  
 14592  // SetShareStatus sets the ShareStatus field's value.
 14593  func (s *ResolverQueryLogConfig) SetShareStatus(v string) *ResolverQueryLogConfig {
 14594  	s.ShareStatus = &v
 14595  	return s
 14596  }
 14597  
 14598  // SetStatus sets the Status field's value.
 14599  func (s *ResolverQueryLogConfig) SetStatus(v string) *ResolverQueryLogConfig {
 14600  	s.Status = &v
 14601  	return s
 14602  }
 14603  
 14604  // In the response to an AssociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html),
 14605  // DisassociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html),
 14606  // GetResolverQueryLogConfigAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfigAssociation.html),
 14607  // or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html),
 14608  // request, a complex type that contains settings for a specified association
 14609  // between an Amazon VPC and a query logging configuration.
 14610  type ResolverQueryLogConfigAssociation struct {
 14611  	_ struct{} `type:"structure"`
 14612  
 14613  	// The date and time that the VPC was associated with the query logging configuration,
 14614  	// in Unix time format and Coordinated Universal Time (UTC).
 14615  	CreationTime *string `min:"20" type:"string"`
 14616  
 14617  	// If the value of Status is FAILED, the value of Error indicates the cause:
 14618  	//
 14619  	//    * DESTINATION_NOT_FOUND: The specified destination (for example, an Amazon
 14620  	//    S3 bucket) was deleted.
 14621  	//
 14622  	//    * ACCESS_DENIED: Permissions don't allow sending logs to the destination.
 14623  	//
 14624  	// If the value of Status is a value other than FAILED, Error is null.
 14625  	Error *string `type:"string" enum:"ResolverQueryLogConfigAssociationError"`
 14626  
 14627  	// Contains additional information about the error. If the value or Error is
 14628  	// null, the value of ErrorMessage also is null.
 14629  	ErrorMessage *string `type:"string"`
 14630  
 14631  	// The ID of the query logging association.
 14632  	Id *string `min:"1" type:"string"`
 14633  
 14634  	// The ID of the query logging configuration that a VPC is associated with.
 14635  	ResolverQueryLogConfigId *string `min:"1" type:"string"`
 14636  
 14637  	// The ID of the Amazon VPC that is associated with the query logging configuration.
 14638  	ResourceId *string `min:"1" type:"string"`
 14639  
 14640  	// The status of the specified query logging association. Valid values include
 14641  	// the following:
 14642  	//
 14643  	//    * CREATING: Resolver is creating an association between an Amazon VPC
 14644  	//    and a query logging configuration.
 14645  	//
 14646  	//    * CREATED: The association between an Amazon VPC and a query logging configuration
 14647  	//    was successfully created. Resolver is logging queries that originate in
 14648  	//    the specified VPC.
 14649  	//
 14650  	//    * DELETING: Resolver is deleting this query logging association.
 14651  	//
 14652  	//    * FAILED: Resolver either couldn't create or couldn't delete the query
 14653  	//    logging association.
 14654  	Status *string `type:"string" enum:"ResolverQueryLogConfigAssociationStatus"`
 14655  }
 14656  
 14657  // String returns the string representation.
 14658  //
 14659  // API parameter values that are decorated as "sensitive" in the API will not
 14660  // be included in the string output. The member name will be present, but the
 14661  // value will be replaced with "sensitive".
 14662  func (s ResolverQueryLogConfigAssociation) String() string {
 14663  	return awsutil.Prettify(s)
 14664  }
 14665  
 14666  // GoString returns the string representation.
 14667  //
 14668  // API parameter values that are decorated as "sensitive" in the API will not
 14669  // be included in the string output. The member name will be present, but the
 14670  // value will be replaced with "sensitive".
 14671  func (s ResolverQueryLogConfigAssociation) GoString() string {
 14672  	return s.String()
 14673  }
 14674  
 14675  // SetCreationTime sets the CreationTime field's value.
 14676  func (s *ResolverQueryLogConfigAssociation) SetCreationTime(v string) *ResolverQueryLogConfigAssociation {
 14677  	s.CreationTime = &v
 14678  	return s
 14679  }
 14680  
 14681  // SetError sets the Error field's value.
 14682  func (s *ResolverQueryLogConfigAssociation) SetError(v string) *ResolverQueryLogConfigAssociation {
 14683  	s.Error = &v
 14684  	return s
 14685  }
 14686  
 14687  // SetErrorMessage sets the ErrorMessage field's value.
 14688  func (s *ResolverQueryLogConfigAssociation) SetErrorMessage(v string) *ResolverQueryLogConfigAssociation {
 14689  	s.ErrorMessage = &v
 14690  	return s
 14691  }
 14692  
 14693  // SetId sets the Id field's value.
 14694  func (s *ResolverQueryLogConfigAssociation) SetId(v string) *ResolverQueryLogConfigAssociation {
 14695  	s.Id = &v
 14696  	return s
 14697  }
 14698  
 14699  // SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
 14700  func (s *ResolverQueryLogConfigAssociation) SetResolverQueryLogConfigId(v string) *ResolverQueryLogConfigAssociation {
 14701  	s.ResolverQueryLogConfigId = &v
 14702  	return s
 14703  }
 14704  
 14705  // SetResourceId sets the ResourceId field's value.
 14706  func (s *ResolverQueryLogConfigAssociation) SetResourceId(v string) *ResolverQueryLogConfigAssociation {
 14707  	s.ResourceId = &v
 14708  	return s
 14709  }
 14710  
 14711  // SetStatus sets the Status field's value.
 14712  func (s *ResolverQueryLogConfigAssociation) SetStatus(v string) *ResolverQueryLogConfigAssociation {
 14713  	s.Status = &v
 14714  	return s
 14715  }
 14716  
 14717  // For queries that originate in your VPC, detailed information about a Resolver
 14718  // rule, which specifies how to route DNS queries out of the VPC. The ResolverRule
 14719  // parameter appears in the response to a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html),
 14720  // DeleteResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverRule.html),
 14721  // GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html),
 14722  // ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
 14723  // or UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
 14724  // request.
 14725  type ResolverRule struct {
 14726  	_ struct{} `type:"structure"`
 14727  
 14728  	// The ARN (Amazon Resource Name) for the Resolver rule specified by Id.
 14729  	Arn *string `min:"1" type:"string"`
 14730  
 14731  	// The date and time that the Resolver rule was created, in Unix time format
 14732  	// and Coordinated Universal Time (UTC).
 14733  	CreationTime *string `min:"20" type:"string"`
 14734  
 14735  	// A unique string that you specified when you created the Resolver rule. CreatorRequestId
 14736  	// identifies the request and allows failed requests to be retried without the
 14737  	// risk of running the operation twice.
 14738  	CreatorRequestId *string `min:"1" type:"string"`
 14739  
 14740  	// DNS queries for this domain name are forwarded to the IP addresses that are
 14741  	// specified in TargetIps. If a query matches multiple Resolver rules (example.com
 14742  	// and www.example.com), the query is routed using the Resolver rule that contains
 14743  	// the most specific domain name (www.example.com).
 14744  	DomainName *string `min:"1" type:"string"`
 14745  
 14746  	// The ID that Resolver assigned to the Resolver rule when you created it.
 14747  	Id *string `min:"1" type:"string"`
 14748  
 14749  	// The date and time that the Resolver rule was last updated, in Unix time format
 14750  	// and Coordinated Universal Time (UTC).
 14751  	ModificationTime *string `min:"20" type:"string"`
 14752  
 14753  	// The name for the Resolver rule, which you specified when you created the
 14754  	// Resolver rule.
 14755  	Name *string `type:"string"`
 14756  
 14757  	// When a rule is shared with another Amazon Web Services account, the account
 14758  	// ID of the account that the rule is shared with.
 14759  	OwnerId *string `min:"12" type:"string"`
 14760  
 14761  	// The ID of the endpoint that the rule is associated with.
 14762  	ResolverEndpointId *string `min:"1" type:"string"`
 14763  
 14764  	// When you want to forward DNS queries for specified domain name to resolvers
 14765  	// on your network, specify FORWARD.
 14766  	//
 14767  	// When you have a forwarding rule to forward DNS queries for a domain to your
 14768  	// network and you want Resolver to process queries for a subdomain of that
 14769  	// domain, specify SYSTEM.
 14770  	//
 14771  	// For example, to forward DNS queries for example.com to resolvers on your
 14772  	// network, you create a rule and specify FORWARD for RuleType. To then have
 14773  	// Resolver process queries for apex.example.com, you create a rule and specify
 14774  	// SYSTEM for RuleType.
 14775  	//
 14776  	// Currently, only Resolver can create rules that have a value of RECURSIVE
 14777  	// for RuleType.
 14778  	RuleType *string `type:"string" enum:"RuleTypeOption"`
 14779  
 14780  	// Whether the rule is shared and, if so, whether the current account is sharing
 14781  	// the rule with another account, or another account is sharing the rule with
 14782  	// the current account.
 14783  	ShareStatus *string `type:"string" enum:"ShareStatus"`
 14784  
 14785  	// A code that specifies the current status of the Resolver rule.
 14786  	Status *string `type:"string" enum:"ResolverRuleStatus"`
 14787  
 14788  	// A detailed description of the status of a Resolver rule.
 14789  	StatusMessage *string `type:"string"`
 14790  
 14791  	// An array that contains the IP addresses and ports that an outbound endpoint
 14792  	// forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers
 14793  	// on your network. Specify IPv4 addresses. IPv6 is not supported.
 14794  	TargetIps []*TargetAddress `min:"1" type:"list"`
 14795  }
 14796  
 14797  // String returns the string representation.
 14798  //
 14799  // API parameter values that are decorated as "sensitive" in the API will not
 14800  // be included in the string output. The member name will be present, but the
 14801  // value will be replaced with "sensitive".
 14802  func (s ResolverRule) String() string {
 14803  	return awsutil.Prettify(s)
 14804  }
 14805  
 14806  // GoString returns the string representation.
 14807  //
 14808  // API parameter values that are decorated as "sensitive" in the API will not
 14809  // be included in the string output. The member name will be present, but the
 14810  // value will be replaced with "sensitive".
 14811  func (s ResolverRule) GoString() string {
 14812  	return s.String()
 14813  }
 14814  
 14815  // SetArn sets the Arn field's value.
 14816  func (s *ResolverRule) SetArn(v string) *ResolverRule {
 14817  	s.Arn = &v
 14818  	return s
 14819  }
 14820  
 14821  // SetCreationTime sets the CreationTime field's value.
 14822  func (s *ResolverRule) SetCreationTime(v string) *ResolverRule {
 14823  	s.CreationTime = &v
 14824  	return s
 14825  }
 14826  
 14827  // SetCreatorRequestId sets the CreatorRequestId field's value.
 14828  func (s *ResolverRule) SetCreatorRequestId(v string) *ResolverRule {
 14829  	s.CreatorRequestId = &v
 14830  	return s
 14831  }
 14832  
 14833  // SetDomainName sets the DomainName field's value.
 14834  func (s *ResolverRule) SetDomainName(v string) *ResolverRule {
 14835  	s.DomainName = &v
 14836  	return s
 14837  }
 14838  
 14839  // SetId sets the Id field's value.
 14840  func (s *ResolverRule) SetId(v string) *ResolverRule {
 14841  	s.Id = &v
 14842  	return s
 14843  }
 14844  
 14845  // SetModificationTime sets the ModificationTime field's value.
 14846  func (s *ResolverRule) SetModificationTime(v string) *ResolverRule {
 14847  	s.ModificationTime = &v
 14848  	return s
 14849  }
 14850  
 14851  // SetName sets the Name field's value.
 14852  func (s *ResolverRule) SetName(v string) *ResolverRule {
 14853  	s.Name = &v
 14854  	return s
 14855  }
 14856  
 14857  // SetOwnerId sets the OwnerId field's value.
 14858  func (s *ResolverRule) SetOwnerId(v string) *ResolverRule {
 14859  	s.OwnerId = &v
 14860  	return s
 14861  }
 14862  
 14863  // SetResolverEndpointId sets the ResolverEndpointId field's value.
 14864  func (s *ResolverRule) SetResolverEndpointId(v string) *ResolverRule {
 14865  	s.ResolverEndpointId = &v
 14866  	return s
 14867  }
 14868  
 14869  // SetRuleType sets the RuleType field's value.
 14870  func (s *ResolverRule) SetRuleType(v string) *ResolverRule {
 14871  	s.RuleType = &v
 14872  	return s
 14873  }
 14874  
 14875  // SetShareStatus sets the ShareStatus field's value.
 14876  func (s *ResolverRule) SetShareStatus(v string) *ResolverRule {
 14877  	s.ShareStatus = &v
 14878  	return s
 14879  }
 14880  
 14881  // SetStatus sets the Status field's value.
 14882  func (s *ResolverRule) SetStatus(v string) *ResolverRule {
 14883  	s.Status = &v
 14884  	return s
 14885  }
 14886  
 14887  // SetStatusMessage sets the StatusMessage field's value.
 14888  func (s *ResolverRule) SetStatusMessage(v string) *ResolverRule {
 14889  	s.StatusMessage = &v
 14890  	return s
 14891  }
 14892  
 14893  // SetTargetIps sets the TargetIps field's value.
 14894  func (s *ResolverRule) SetTargetIps(v []*TargetAddress) *ResolverRule {
 14895  	s.TargetIps = v
 14896  	return s
 14897  }
 14898  
 14899  // In the response to an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html),
 14900  // DisassociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html),
 14901  // or ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
 14902  // request, provides information about an association between a Resolver rule
 14903  // and a VPC. The association determines which DNS queries that originate in
 14904  // the VPC are forwarded to your network.
 14905  type ResolverRuleAssociation struct {
 14906  	_ struct{} `type:"structure"`
 14907  
 14908  	// The ID of the association between a Resolver rule and a VPC. Resolver assigns
 14909  	// this value when you submit an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html)
 14910  	// request.
 14911  	Id *string `min:"1" type:"string"`
 14912  
 14913  	// The name of an association between a Resolver rule and a VPC.
 14914  	Name *string `type:"string"`
 14915  
 14916  	// The ID of the Resolver rule that you associated with the VPC that is specified
 14917  	// by VPCId.
 14918  	ResolverRuleId *string `min:"1" type:"string"`
 14919  
 14920  	// A code that specifies the current status of the association between a Resolver
 14921  	// rule and a VPC.
 14922  	Status *string `type:"string" enum:"ResolverRuleAssociationStatus"`
 14923  
 14924  	// A detailed description of the status of the association between a Resolver
 14925  	// rule and a VPC.
 14926  	StatusMessage *string `type:"string"`
 14927  
 14928  	// The ID of the VPC that you associated the Resolver rule with.
 14929  	VPCId *string `min:"1" type:"string"`
 14930  }
 14931  
 14932  // String returns the string representation.
 14933  //
 14934  // API parameter values that are decorated as "sensitive" in the API will not
 14935  // be included in the string output. The member name will be present, but the
 14936  // value will be replaced with "sensitive".
 14937  func (s ResolverRuleAssociation) String() string {
 14938  	return awsutil.Prettify(s)
 14939  }
 14940  
 14941  // GoString returns the string representation.
 14942  //
 14943  // API parameter values that are decorated as "sensitive" in the API will not
 14944  // be included in the string output. The member name will be present, but the
 14945  // value will be replaced with "sensitive".
 14946  func (s ResolverRuleAssociation) GoString() string {
 14947  	return s.String()
 14948  }
 14949  
 14950  // SetId sets the Id field's value.
 14951  func (s *ResolverRuleAssociation) SetId(v string) *ResolverRuleAssociation {
 14952  	s.Id = &v
 14953  	return s
 14954  }
 14955  
 14956  // SetName sets the Name field's value.
 14957  func (s *ResolverRuleAssociation) SetName(v string) *ResolverRuleAssociation {
 14958  	s.Name = &v
 14959  	return s
 14960  }
 14961  
 14962  // SetResolverRuleId sets the ResolverRuleId field's value.
 14963  func (s *ResolverRuleAssociation) SetResolverRuleId(v string) *ResolverRuleAssociation {
 14964  	s.ResolverRuleId = &v
 14965  	return s
 14966  }
 14967  
 14968  // SetStatus sets the Status field's value.
 14969  func (s *ResolverRuleAssociation) SetStatus(v string) *ResolverRuleAssociation {
 14970  	s.Status = &v
 14971  	return s
 14972  }
 14973  
 14974  // SetStatusMessage sets the StatusMessage field's value.
 14975  func (s *ResolverRuleAssociation) SetStatusMessage(v string) *ResolverRuleAssociation {
 14976  	s.StatusMessage = &v
 14977  	return s
 14978  }
 14979  
 14980  // SetVPCId sets the VPCId field's value.
 14981  func (s *ResolverRuleAssociation) SetVPCId(v string) *ResolverRuleAssociation {
 14982  	s.VPCId = &v
 14983  	return s
 14984  }
 14985  
 14986  // In an UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
 14987  // request, information about the changes that you want to make.
 14988  type ResolverRuleConfig struct {
 14989  	_ struct{} `type:"structure"`
 14990  
 14991  	// The new name for the Resolver rule. The name that you specify appears in
 14992  	// the Resolver dashboard in the Route 53 console.
 14993  	Name *string `type:"string"`
 14994  
 14995  	// The ID of the new outbound Resolver endpoint that you want to use to route
 14996  	// DNS queries to the IP addresses that you specify in TargetIps.
 14997  	ResolverEndpointId *string `min:"1" type:"string"`
 14998  
 14999  	// For DNS queries that originate in your VPC, the new IP addresses that you
 15000  	// want to route outbound DNS queries to.
 15001  	TargetIps []*TargetAddress `min:"1" type:"list"`
 15002  }
 15003  
 15004  // String returns the string representation.
 15005  //
 15006  // API parameter values that are decorated as "sensitive" in the API will not
 15007  // be included in the string output. The member name will be present, but the
 15008  // value will be replaced with "sensitive".
 15009  func (s ResolverRuleConfig) String() string {
 15010  	return awsutil.Prettify(s)
 15011  }
 15012  
 15013  // GoString returns the string representation.
 15014  //
 15015  // API parameter values that are decorated as "sensitive" in the API will not
 15016  // be included in the string output. The member name will be present, but the
 15017  // value will be replaced with "sensitive".
 15018  func (s ResolverRuleConfig) GoString() string {
 15019  	return s.String()
 15020  }
 15021  
 15022  // Validate inspects the fields of the type to determine if they are valid.
 15023  func (s *ResolverRuleConfig) Validate() error {
 15024  	invalidParams := request.ErrInvalidParams{Context: "ResolverRuleConfig"}
 15025  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
 15026  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
 15027  	}
 15028  	if s.TargetIps != nil && len(s.TargetIps) < 1 {
 15029  		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
 15030  	}
 15031  	if s.TargetIps != nil {
 15032  		for i, v := range s.TargetIps {
 15033  			if v == nil {
 15034  				continue
 15035  			}
 15036  			if err := v.Validate(); err != nil {
 15037  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
 15038  			}
 15039  		}
 15040  	}
 15041  
 15042  	if invalidParams.Len() > 0 {
 15043  		return invalidParams
 15044  	}
 15045  	return nil
 15046  }
 15047  
 15048  // SetName sets the Name field's value.
 15049  func (s *ResolverRuleConfig) SetName(v string) *ResolverRuleConfig {
 15050  	s.Name = &v
 15051  	return s
 15052  }
 15053  
 15054  // SetResolverEndpointId sets the ResolverEndpointId field's value.
 15055  func (s *ResolverRuleConfig) SetResolverEndpointId(v string) *ResolverRuleConfig {
 15056  	s.ResolverEndpointId = &v
 15057  	return s
 15058  }
 15059  
 15060  // SetTargetIps sets the TargetIps field's value.
 15061  func (s *ResolverRuleConfig) SetTargetIps(v []*TargetAddress) *ResolverRuleConfig {
 15062  	s.TargetIps = v
 15063  	return s
 15064  }
 15065  
 15066  // The resource that you tried to create already exists.
 15067  type ResourceExistsException struct {
 15068  	_            struct{}                  `type:"structure"`
 15069  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15070  
 15071  	Message_ *string `locationName:"Message" type:"string"`
 15072  
 15073  	// For a ResourceExistsException error, the type of resource that the error
 15074  	// applies to.
 15075  	ResourceType *string `type:"string"`
 15076  }
 15077  
 15078  // String returns the string representation.
 15079  //
 15080  // API parameter values that are decorated as "sensitive" in the API will not
 15081  // be included in the string output. The member name will be present, but the
 15082  // value will be replaced with "sensitive".
 15083  func (s ResourceExistsException) String() string {
 15084  	return awsutil.Prettify(s)
 15085  }
 15086  
 15087  // GoString returns the string representation.
 15088  //
 15089  // API parameter values that are decorated as "sensitive" in the API will not
 15090  // be included in the string output. The member name will be present, but the
 15091  // value will be replaced with "sensitive".
 15092  func (s ResourceExistsException) GoString() string {
 15093  	return s.String()
 15094  }
 15095  
 15096  func newErrorResourceExistsException(v protocol.ResponseMetadata) error {
 15097  	return &ResourceExistsException{
 15098  		RespMetadata: v,
 15099  	}
 15100  }
 15101  
 15102  // Code returns the exception type name.
 15103  func (s *ResourceExistsException) Code() string {
 15104  	return "ResourceExistsException"
 15105  }
 15106  
 15107  // Message returns the exception's message.
 15108  func (s *ResourceExistsException) Message() string {
 15109  	if s.Message_ != nil {
 15110  		return *s.Message_
 15111  	}
 15112  	return ""
 15113  }
 15114  
 15115  // OrigErr always returns nil, satisfies awserr.Error interface.
 15116  func (s *ResourceExistsException) OrigErr() error {
 15117  	return nil
 15118  }
 15119  
 15120  func (s *ResourceExistsException) Error() string {
 15121  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 15122  }
 15123  
 15124  // Status code returns the HTTP status code for the request's response error.
 15125  func (s *ResourceExistsException) StatusCode() int {
 15126  	return s.RespMetadata.StatusCode
 15127  }
 15128  
 15129  // RequestID returns the service's response RequestID for request.
 15130  func (s *ResourceExistsException) RequestID() string {
 15131  	return s.RespMetadata.RequestID
 15132  }
 15133  
 15134  // The resource that you tried to update or delete is currently in use.
 15135  type ResourceInUseException struct {
 15136  	_            struct{}                  `type:"structure"`
 15137  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15138  
 15139  	Message_ *string `locationName:"Message" type:"string"`
 15140  
 15141  	// For a ResourceInUseException error, the type of resource that is currently
 15142  	// in use.
 15143  	ResourceType *string `type:"string"`
 15144  }
 15145  
 15146  // String returns the string representation.
 15147  //
 15148  // API parameter values that are decorated as "sensitive" in the API will not
 15149  // be included in the string output. The member name will be present, but the
 15150  // value will be replaced with "sensitive".
 15151  func (s ResourceInUseException) String() string {
 15152  	return awsutil.Prettify(s)
 15153  }
 15154  
 15155  // GoString returns the string representation.
 15156  //
 15157  // API parameter values that are decorated as "sensitive" in the API will not
 15158  // be included in the string output. The member name will be present, but the
 15159  // value will be replaced with "sensitive".
 15160  func (s ResourceInUseException) GoString() string {
 15161  	return s.String()
 15162  }
 15163  
 15164  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
 15165  	return &ResourceInUseException{
 15166  		RespMetadata: v,
 15167  	}
 15168  }
 15169  
 15170  // Code returns the exception type name.
 15171  func (s *ResourceInUseException) Code() string {
 15172  	return "ResourceInUseException"
 15173  }
 15174  
 15175  // Message returns the exception's message.
 15176  func (s *ResourceInUseException) Message() string {
 15177  	if s.Message_ != nil {
 15178  		return *s.Message_
 15179  	}
 15180  	return ""
 15181  }
 15182  
 15183  // OrigErr always returns nil, satisfies awserr.Error interface.
 15184  func (s *ResourceInUseException) OrigErr() error {
 15185  	return nil
 15186  }
 15187  
 15188  func (s *ResourceInUseException) Error() string {
 15189  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 15190  }
 15191  
 15192  // Status code returns the HTTP status code for the request's response error.
 15193  func (s *ResourceInUseException) StatusCode() int {
 15194  	return s.RespMetadata.StatusCode
 15195  }
 15196  
 15197  // RequestID returns the service's response RequestID for request.
 15198  func (s *ResourceInUseException) RequestID() string {
 15199  	return s.RespMetadata.RequestID
 15200  }
 15201  
 15202  // The specified resource doesn't exist.
 15203  type ResourceNotFoundException struct {
 15204  	_            struct{}                  `type:"structure"`
 15205  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15206  
 15207  	Message_ *string `locationName:"Message" type:"string"`
 15208  
 15209  	// For a ResourceNotFoundException error, the type of resource that doesn't
 15210  	// exist.
 15211  	ResourceType *string `type:"string"`
 15212  }
 15213  
 15214  // String returns the string representation.
 15215  //
 15216  // API parameter values that are decorated as "sensitive" in the API will not
 15217  // be included in the string output. The member name will be present, but the
 15218  // value will be replaced with "sensitive".
 15219  func (s ResourceNotFoundException) String() string {
 15220  	return awsutil.Prettify(s)
 15221  }
 15222  
 15223  // GoString returns the string representation.
 15224  //
 15225  // API parameter values that are decorated as "sensitive" in the API will not
 15226  // be included in the string output. The member name will be present, but the
 15227  // value will be replaced with "sensitive".
 15228  func (s ResourceNotFoundException) GoString() string {
 15229  	return s.String()
 15230  }
 15231  
 15232  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 15233  	return &ResourceNotFoundException{
 15234  		RespMetadata: v,
 15235  	}
 15236  }
 15237  
 15238  // Code returns the exception type name.
 15239  func (s *ResourceNotFoundException) Code() string {
 15240  	return "ResourceNotFoundException"
 15241  }
 15242  
 15243  // Message returns the exception's message.
 15244  func (s *ResourceNotFoundException) Message() string {
 15245  	if s.Message_ != nil {
 15246  		return *s.Message_
 15247  	}
 15248  	return ""
 15249  }
 15250  
 15251  // OrigErr always returns nil, satisfies awserr.Error interface.
 15252  func (s *ResourceNotFoundException) OrigErr() error {
 15253  	return nil
 15254  }
 15255  
 15256  func (s *ResourceNotFoundException) Error() string {
 15257  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 15258  }
 15259  
 15260  // Status code returns the HTTP status code for the request's response error.
 15261  func (s *ResourceNotFoundException) StatusCode() int {
 15262  	return s.RespMetadata.StatusCode
 15263  }
 15264  
 15265  // RequestID returns the service's response RequestID for request.
 15266  func (s *ResourceNotFoundException) RequestID() string {
 15267  	return s.RespMetadata.RequestID
 15268  }
 15269  
 15270  // The specified resource isn't available.
 15271  type ResourceUnavailableException struct {
 15272  	_            struct{}                  `type:"structure"`
 15273  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15274  
 15275  	Message_ *string `locationName:"Message" type:"string"`
 15276  
 15277  	// For a ResourceUnavailableException error, the type of resource that isn't
 15278  	// available.
 15279  	ResourceType *string `type:"string"`
 15280  }
 15281  
 15282  // String returns the string representation.
 15283  //
 15284  // API parameter values that are decorated as "sensitive" in the API will not
 15285  // be included in the string output. The member name will be present, but the
 15286  // value will be replaced with "sensitive".
 15287  func (s ResourceUnavailableException) String() string {
 15288  	return awsutil.Prettify(s)
 15289  }
 15290  
 15291  // GoString returns the string representation.
 15292  //
 15293  // API parameter values that are decorated as "sensitive" in the API will not
 15294  // be included in the string output. The member name will be present, but the
 15295  // value will be replaced with "sensitive".
 15296  func (s ResourceUnavailableException) GoString() string {
 15297  	return s.String()
 15298  }
 15299  
 15300  func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
 15301  	return &ResourceUnavailableException{
 15302  		RespMetadata: v,
 15303  	}
 15304  }
 15305  
 15306  // Code returns the exception type name.
 15307  func (s *ResourceUnavailableException) Code() string {
 15308  	return "ResourceUnavailableException"
 15309  }
 15310  
 15311  // Message returns the exception's message.
 15312  func (s *ResourceUnavailableException) Message() string {
 15313  	if s.Message_ != nil {
 15314  		return *s.Message_
 15315  	}
 15316  	return ""
 15317  }
 15318  
 15319  // OrigErr always returns nil, satisfies awserr.Error interface.
 15320  func (s *ResourceUnavailableException) OrigErr() error {
 15321  	return nil
 15322  }
 15323  
 15324  func (s *ResourceUnavailableException) Error() string {
 15325  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 15326  }
 15327  
 15328  // Status code returns the HTTP status code for the request's response error.
 15329  func (s *ResourceUnavailableException) StatusCode() int {
 15330  	return s.RespMetadata.StatusCode
 15331  }
 15332  
 15333  // RequestID returns the service's response RequestID for request.
 15334  func (s *ResourceUnavailableException) RequestID() string {
 15335  	return s.RespMetadata.RequestID
 15336  }
 15337  
 15338  // One tag that you want to add to the specified resource. A tag consists of
 15339  // a Key (a name for the tag) and a Value.
 15340  type Tag struct {
 15341  	_ struct{} `type:"structure"`
 15342  
 15343  	// The name for the tag. For example, if you want to associate Resolver resources
 15344  	// with the account IDs of your customers for billing purposes, the value of
 15345  	// Key might be account-id.
 15346  	//
 15347  	// Key is a required field
 15348  	Key *string `min:"1" type:"string" required:"true"`
 15349  
 15350  	// The value for the tag. For example, if Key is account-id, then Value might
 15351  	// be the ID of the customer account that you're creating the resource for.
 15352  	//
 15353  	// Value is a required field
 15354  	Value *string `type:"string" required:"true"`
 15355  }
 15356  
 15357  // String returns the string representation.
 15358  //
 15359  // API parameter values that are decorated as "sensitive" in the API will not
 15360  // be included in the string output. The member name will be present, but the
 15361  // value will be replaced with "sensitive".
 15362  func (s Tag) String() string {
 15363  	return awsutil.Prettify(s)
 15364  }
 15365  
 15366  // GoString returns the string representation.
 15367  //
 15368  // API parameter values that are decorated as "sensitive" in the API will not
 15369  // be included in the string output. The member name will be present, but the
 15370  // value will be replaced with "sensitive".
 15371  func (s Tag) GoString() string {
 15372  	return s.String()
 15373  }
 15374  
 15375  // Validate inspects the fields of the type to determine if they are valid.
 15376  func (s *Tag) Validate() error {
 15377  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 15378  	if s.Key == nil {
 15379  		invalidParams.Add(request.NewErrParamRequired("Key"))
 15380  	}
 15381  	if s.Key != nil && len(*s.Key) < 1 {
 15382  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 15383  	}
 15384  	if s.Value == nil {
 15385  		invalidParams.Add(request.NewErrParamRequired("Value"))
 15386  	}
 15387  
 15388  	if invalidParams.Len() > 0 {
 15389  		return invalidParams
 15390  	}
 15391  	return nil
 15392  }
 15393  
 15394  // SetKey sets the Key field's value.
 15395  func (s *Tag) SetKey(v string) *Tag {
 15396  	s.Key = &v
 15397  	return s
 15398  }
 15399  
 15400  // SetValue sets the Value field's value.
 15401  func (s *Tag) SetValue(v string) *Tag {
 15402  	s.Value = &v
 15403  	return s
 15404  }
 15405  
 15406  type TagResourceInput struct {
 15407  	_ struct{} `type:"structure"`
 15408  
 15409  	// The Amazon Resource Name (ARN) for the resource that you want to add tags
 15410  	// to. To get the ARN for a resource, use the applicable Get or List command:
 15411  	//
 15412  	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
 15413  	//
 15414  	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
 15415  	//
 15416  	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
 15417  	//
 15418  	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
 15419  	//
 15420  	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
 15421  	//
 15422  	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
 15423  	//
 15424  	// ResourceArn is a required field
 15425  	ResourceArn *string `min:"1" type:"string" required:"true"`
 15426  
 15427  	// The tags that you want to add to the specified resource.
 15428  	//
 15429  	// Tags is a required field
 15430  	Tags []*Tag `type:"list" required:"true"`
 15431  }
 15432  
 15433  // String returns the string representation.
 15434  //
 15435  // API parameter values that are decorated as "sensitive" in the API will not
 15436  // be included in the string output. The member name will be present, but the
 15437  // value will be replaced with "sensitive".
 15438  func (s TagResourceInput) String() string {
 15439  	return awsutil.Prettify(s)
 15440  }
 15441  
 15442  // GoString returns the string representation.
 15443  //
 15444  // API parameter values that are decorated as "sensitive" in the API will not
 15445  // be included in the string output. The member name will be present, but the
 15446  // value will be replaced with "sensitive".
 15447  func (s TagResourceInput) GoString() string {
 15448  	return s.String()
 15449  }
 15450  
 15451  // Validate inspects the fields of the type to determine if they are valid.
 15452  func (s *TagResourceInput) Validate() error {
 15453  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 15454  	if s.ResourceArn == nil {
 15455  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 15456  	}
 15457  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 15458  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 15459  	}
 15460  	if s.Tags == nil {
 15461  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 15462  	}
 15463  	if s.Tags != nil {
 15464  		for i, v := range s.Tags {
 15465  			if v == nil {
 15466  				continue
 15467  			}
 15468  			if err := v.Validate(); err != nil {
 15469  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 15470  			}
 15471  		}
 15472  	}
 15473  
 15474  	if invalidParams.Len() > 0 {
 15475  		return invalidParams
 15476  	}
 15477  	return nil
 15478  }
 15479  
 15480  // SetResourceArn sets the ResourceArn field's value.
 15481  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 15482  	s.ResourceArn = &v
 15483  	return s
 15484  }
 15485  
 15486  // SetTags sets the Tags field's value.
 15487  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 15488  	s.Tags = v
 15489  	return s
 15490  }
 15491  
 15492  type TagResourceOutput struct {
 15493  	_ struct{} `type:"structure"`
 15494  }
 15495  
 15496  // String returns the string representation.
 15497  //
 15498  // API parameter values that are decorated as "sensitive" in the API will not
 15499  // be included in the string output. The member name will be present, but the
 15500  // value will be replaced with "sensitive".
 15501  func (s TagResourceOutput) String() string {
 15502  	return awsutil.Prettify(s)
 15503  }
 15504  
 15505  // GoString returns the string representation.
 15506  //
 15507  // API parameter values that are decorated as "sensitive" in the API will not
 15508  // be included in the string output. The member name will be present, but the
 15509  // value will be replaced with "sensitive".
 15510  func (s TagResourceOutput) GoString() string {
 15511  	return s.String()
 15512  }
 15513  
 15514  // In a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html)
 15515  // request, an array of the IPs that you want to forward DNS queries to.
 15516  type TargetAddress struct {
 15517  	_ struct{} `type:"structure"`
 15518  
 15519  	// One IP address that you want to forward DNS queries to. You can specify only
 15520  	// IPv4 addresses.
 15521  	//
 15522  	// Ip is a required field
 15523  	Ip *string `min:"7" type:"string" required:"true"`
 15524  
 15525  	// The port at Ip that you want to forward DNS queries to.
 15526  	Port *int64 `type:"integer"`
 15527  }
 15528  
 15529  // String returns the string representation.
 15530  //
 15531  // API parameter values that are decorated as "sensitive" in the API will not
 15532  // be included in the string output. The member name will be present, but the
 15533  // value will be replaced with "sensitive".
 15534  func (s TargetAddress) String() string {
 15535  	return awsutil.Prettify(s)
 15536  }
 15537  
 15538  // GoString returns the string representation.
 15539  //
 15540  // API parameter values that are decorated as "sensitive" in the API will not
 15541  // be included in the string output. The member name will be present, but the
 15542  // value will be replaced with "sensitive".
 15543  func (s TargetAddress) GoString() string {
 15544  	return s.String()
 15545  }
 15546  
 15547  // Validate inspects the fields of the type to determine if they are valid.
 15548  func (s *TargetAddress) Validate() error {
 15549  	invalidParams := request.ErrInvalidParams{Context: "TargetAddress"}
 15550  	if s.Ip == nil {
 15551  		invalidParams.Add(request.NewErrParamRequired("Ip"))
 15552  	}
 15553  	if s.Ip != nil && len(*s.Ip) < 7 {
 15554  		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
 15555  	}
 15556  
 15557  	if invalidParams.Len() > 0 {
 15558  		return invalidParams
 15559  	}
 15560  	return nil
 15561  }
 15562  
 15563  // SetIp sets the Ip field's value.
 15564  func (s *TargetAddress) SetIp(v string) *TargetAddress {
 15565  	s.Ip = &v
 15566  	return s
 15567  }
 15568  
 15569  // SetPort sets the Port field's value.
 15570  func (s *TargetAddress) SetPort(v int64) *TargetAddress {
 15571  	s.Port = &v
 15572  	return s
 15573  }
 15574  
 15575  // The request was throttled. Try again in a few minutes.
 15576  type ThrottlingException struct {
 15577  	_            struct{}                  `type:"structure"`
 15578  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15579  
 15580  	Message_ *string `locationName:"Message" type:"string"`
 15581  }
 15582  
 15583  // String returns the string representation.
 15584  //
 15585  // API parameter values that are decorated as "sensitive" in the API will not
 15586  // be included in the string output. The member name will be present, but the
 15587  // value will be replaced with "sensitive".
 15588  func (s ThrottlingException) String() string {
 15589  	return awsutil.Prettify(s)
 15590  }
 15591  
 15592  // GoString returns the string representation.
 15593  //
 15594  // API parameter values that are decorated as "sensitive" in the API will not
 15595  // be included in the string output. The member name will be present, but the
 15596  // value will be replaced with "sensitive".
 15597  func (s ThrottlingException) GoString() string {
 15598  	return s.String()
 15599  }
 15600  
 15601  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
 15602  	return &ThrottlingException{
 15603  		RespMetadata: v,
 15604  	}
 15605  }
 15606  
 15607  // Code returns the exception type name.
 15608  func (s *ThrottlingException) Code() string {
 15609  	return "ThrottlingException"
 15610  }
 15611  
 15612  // Message returns the exception's message.
 15613  func (s *ThrottlingException) Message() string {
 15614  	if s.Message_ != nil {
 15615  		return *s.Message_
 15616  	}
 15617  	return ""
 15618  }
 15619  
 15620  // OrigErr always returns nil, satisfies awserr.Error interface.
 15621  func (s *ThrottlingException) OrigErr() error {
 15622  	return nil
 15623  }
 15624  
 15625  func (s *ThrottlingException) Error() string {
 15626  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15627  }
 15628  
 15629  // Status code returns the HTTP status code for the request's response error.
 15630  func (s *ThrottlingException) StatusCode() int {
 15631  	return s.RespMetadata.StatusCode
 15632  }
 15633  
 15634  // RequestID returns the service's response RequestID for request.
 15635  func (s *ThrottlingException) RequestID() string {
 15636  	return s.RespMetadata.RequestID
 15637  }
 15638  
 15639  // The specified resource doesn't exist.
 15640  type UnknownResourceException struct {
 15641  	_            struct{}                  `type:"structure"`
 15642  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15643  
 15644  	Message_ *string `locationName:"Message" type:"string"`
 15645  }
 15646  
 15647  // String returns the string representation.
 15648  //
 15649  // API parameter values that are decorated as "sensitive" in the API will not
 15650  // be included in the string output. The member name will be present, but the
 15651  // value will be replaced with "sensitive".
 15652  func (s UnknownResourceException) String() string {
 15653  	return awsutil.Prettify(s)
 15654  }
 15655  
 15656  // GoString returns the string representation.
 15657  //
 15658  // API parameter values that are decorated as "sensitive" in the API will not
 15659  // be included in the string output. The member name will be present, but the
 15660  // value will be replaced with "sensitive".
 15661  func (s UnknownResourceException) GoString() string {
 15662  	return s.String()
 15663  }
 15664  
 15665  func newErrorUnknownResourceException(v protocol.ResponseMetadata) error {
 15666  	return &UnknownResourceException{
 15667  		RespMetadata: v,
 15668  	}
 15669  }
 15670  
 15671  // Code returns the exception type name.
 15672  func (s *UnknownResourceException) Code() string {
 15673  	return "UnknownResourceException"
 15674  }
 15675  
 15676  // Message returns the exception's message.
 15677  func (s *UnknownResourceException) Message() string {
 15678  	if s.Message_ != nil {
 15679  		return *s.Message_
 15680  	}
 15681  	return ""
 15682  }
 15683  
 15684  // OrigErr always returns nil, satisfies awserr.Error interface.
 15685  func (s *UnknownResourceException) OrigErr() error {
 15686  	return nil
 15687  }
 15688  
 15689  func (s *UnknownResourceException) Error() string {
 15690  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15691  }
 15692  
 15693  // Status code returns the HTTP status code for the request's response error.
 15694  func (s *UnknownResourceException) StatusCode() int {
 15695  	return s.RespMetadata.StatusCode
 15696  }
 15697  
 15698  // RequestID returns the service's response RequestID for request.
 15699  func (s *UnknownResourceException) RequestID() string {
 15700  	return s.RespMetadata.RequestID
 15701  }
 15702  
 15703  type UntagResourceInput struct {
 15704  	_ struct{} `type:"structure"`
 15705  
 15706  	// The Amazon Resource Name (ARN) for the resource that you want to remove tags
 15707  	// from. To get the ARN for a resource, use the applicable Get or List command:
 15708  	//
 15709  	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
 15710  	//
 15711  	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
 15712  	//
 15713  	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
 15714  	//
 15715  	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
 15716  	//
 15717  	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
 15718  	//
 15719  	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
 15720  	//
 15721  	// ResourceArn is a required field
 15722  	ResourceArn *string `min:"1" type:"string" required:"true"`
 15723  
 15724  	// The tags that you want to remove to the specified resource.
 15725  	//
 15726  	// TagKeys is a required field
 15727  	TagKeys []*string `type:"list" required:"true"`
 15728  }
 15729  
 15730  // String returns the string representation.
 15731  //
 15732  // API parameter values that are decorated as "sensitive" in the API will not
 15733  // be included in the string output. The member name will be present, but the
 15734  // value will be replaced with "sensitive".
 15735  func (s UntagResourceInput) String() string {
 15736  	return awsutil.Prettify(s)
 15737  }
 15738  
 15739  // GoString returns the string representation.
 15740  //
 15741  // API parameter values that are decorated as "sensitive" in the API will not
 15742  // be included in the string output. The member name will be present, but the
 15743  // value will be replaced with "sensitive".
 15744  func (s UntagResourceInput) GoString() string {
 15745  	return s.String()
 15746  }
 15747  
 15748  // Validate inspects the fields of the type to determine if they are valid.
 15749  func (s *UntagResourceInput) Validate() error {
 15750  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 15751  	if s.ResourceArn == nil {
 15752  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 15753  	}
 15754  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 15755  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 15756  	}
 15757  	if s.TagKeys == nil {
 15758  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 15759  	}
 15760  
 15761  	if invalidParams.Len() > 0 {
 15762  		return invalidParams
 15763  	}
 15764  	return nil
 15765  }
 15766  
 15767  // SetResourceArn sets the ResourceArn field's value.
 15768  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 15769  	s.ResourceArn = &v
 15770  	return s
 15771  }
 15772  
 15773  // SetTagKeys sets the TagKeys field's value.
 15774  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 15775  	s.TagKeys = v
 15776  	return s
 15777  }
 15778  
 15779  type UntagResourceOutput struct {
 15780  	_ struct{} `type:"structure"`
 15781  }
 15782  
 15783  // String returns the string representation.
 15784  //
 15785  // API parameter values that are decorated as "sensitive" in the API will not
 15786  // be included in the string output. The member name will be present, but the
 15787  // value will be replaced with "sensitive".
 15788  func (s UntagResourceOutput) String() string {
 15789  	return awsutil.Prettify(s)
 15790  }
 15791  
 15792  // GoString returns the string representation.
 15793  //
 15794  // API parameter values that are decorated as "sensitive" in the API will not
 15795  // be included in the string output. The member name will be present, but the
 15796  // value will be replaced with "sensitive".
 15797  func (s UntagResourceOutput) GoString() string {
 15798  	return s.String()
 15799  }
 15800  
 15801  type UpdateFirewallConfigInput struct {
 15802  	_ struct{} `type:"structure"`
 15803  
 15804  	// Determines how Route 53 Resolver handles queries during failures, for example
 15805  	// when all traffic that is sent to DNS Firewall fails to receive a reply.
 15806  	//
 15807  	//    * By default, fail open is disabled, which means the failure mode is closed.
 15808  	//    This approach favors security over availability. DNS Firewall blocks queries
 15809  	//    that it is unable to evaluate properly.
 15810  	//
 15811  	//    * If you enable this option, the failure mode is open. This approach favors
 15812  	//    availability over security. DNS Firewall allows queries to proceed if
 15813  	//    it is unable to properly evaluate them.
 15814  	//
 15815  	// This behavior is only enforced for VPCs that have at least one DNS Firewall
 15816  	// rule group association.
 15817  	//
 15818  	// FirewallFailOpen is a required field
 15819  	FirewallFailOpen *string `type:"string" required:"true" enum:"FirewallFailOpenStatus"`
 15820  
 15821  	// The ID of the VPC that the configuration is for.
 15822  	//
 15823  	// ResourceId is a required field
 15824  	ResourceId *string `min:"1" type:"string" required:"true"`
 15825  }
 15826  
 15827  // String returns the string representation.
 15828  //
 15829  // API parameter values that are decorated as "sensitive" in the API will not
 15830  // be included in the string output. The member name will be present, but the
 15831  // value will be replaced with "sensitive".
 15832  func (s UpdateFirewallConfigInput) String() string {
 15833  	return awsutil.Prettify(s)
 15834  }
 15835  
 15836  // GoString returns the string representation.
 15837  //
 15838  // API parameter values that are decorated as "sensitive" in the API will not
 15839  // be included in the string output. The member name will be present, but the
 15840  // value will be replaced with "sensitive".
 15841  func (s UpdateFirewallConfigInput) GoString() string {
 15842  	return s.String()
 15843  }
 15844  
 15845  // Validate inspects the fields of the type to determine if they are valid.
 15846  func (s *UpdateFirewallConfigInput) Validate() error {
 15847  	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallConfigInput"}
 15848  	if s.FirewallFailOpen == nil {
 15849  		invalidParams.Add(request.NewErrParamRequired("FirewallFailOpen"))
 15850  	}
 15851  	if s.ResourceId == nil {
 15852  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
 15853  	}
 15854  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
 15855  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
 15856  	}
 15857  
 15858  	if invalidParams.Len() > 0 {
 15859  		return invalidParams
 15860  	}
 15861  	return nil
 15862  }
 15863  
 15864  // SetFirewallFailOpen sets the FirewallFailOpen field's value.
 15865  func (s *UpdateFirewallConfigInput) SetFirewallFailOpen(v string) *UpdateFirewallConfigInput {
 15866  	s.FirewallFailOpen = &v
 15867  	return s
 15868  }
 15869  
 15870  // SetResourceId sets the ResourceId field's value.
 15871  func (s *UpdateFirewallConfigInput) SetResourceId(v string) *UpdateFirewallConfigInput {
 15872  	s.ResourceId = &v
 15873  	return s
 15874  }
 15875  
 15876  type UpdateFirewallConfigOutput struct {
 15877  	_ struct{} `type:"structure"`
 15878  
 15879  	// Configuration of the firewall behavior provided by DNS Firewall for a single
 15880  	// VPC.
 15881  	FirewallConfig *FirewallConfig `type:"structure"`
 15882  }
 15883  
 15884  // String returns the string representation.
 15885  //
 15886  // API parameter values that are decorated as "sensitive" in the API will not
 15887  // be included in the string output. The member name will be present, but the
 15888  // value will be replaced with "sensitive".
 15889  func (s UpdateFirewallConfigOutput) String() string {
 15890  	return awsutil.Prettify(s)
 15891  }
 15892  
 15893  // GoString returns the string representation.
 15894  //
 15895  // API parameter values that are decorated as "sensitive" in the API will not
 15896  // be included in the string output. The member name will be present, but the
 15897  // value will be replaced with "sensitive".
 15898  func (s UpdateFirewallConfigOutput) GoString() string {
 15899  	return s.String()
 15900  }
 15901  
 15902  // SetFirewallConfig sets the FirewallConfig field's value.
 15903  func (s *UpdateFirewallConfigOutput) SetFirewallConfig(v *FirewallConfig) *UpdateFirewallConfigOutput {
 15904  	s.FirewallConfig = v
 15905  	return s
 15906  }
 15907  
 15908  type UpdateFirewallDomainsInput struct {
 15909  	_ struct{} `type:"structure"`
 15910  
 15911  	// A list of domains to use in the update operation.
 15912  	//
 15913  	// Each domain specification in your domain list must satisfy the following
 15914  	// requirements:
 15915  	//
 15916  	//    * It can optionally start with * (asterisk).
 15917  	//
 15918  	//    * With the exception of the optional starting asterisk, it must only contain
 15919  	//    the following characters: A-Z, a-z, 0-9, - (hyphen).
 15920  	//
 15921  	//    * It must be from 1-255 characters in length.
 15922  	//
 15923  	// Domains is a required field
 15924  	Domains []*string `type:"list" required:"true"`
 15925  
 15926  	// The ID of the domain list whose domains you want to update.
 15927  	//
 15928  	// FirewallDomainListId is a required field
 15929  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
 15930  
 15931  	// What you want DNS Firewall to do with the domains that you are providing:
 15932  	//
 15933  	//    * ADD - Add the domains to the ones that are already in the domain list.
 15934  	//
 15935  	//    * REMOVE - Search the domain list for the domains and remove them from
 15936  	//    the list.
 15937  	//
 15938  	//    * REPLACE - Update the domain list to exactly match the list that you
 15939  	//    are providing.
 15940  	//
 15941  	// Operation is a required field
 15942  	Operation *string `type:"string" required:"true" enum:"FirewallDomainUpdateOperation"`
 15943  }
 15944  
 15945  // String returns the string representation.
 15946  //
 15947  // API parameter values that are decorated as "sensitive" in the API will not
 15948  // be included in the string output. The member name will be present, but the
 15949  // value will be replaced with "sensitive".
 15950  func (s UpdateFirewallDomainsInput) String() string {
 15951  	return awsutil.Prettify(s)
 15952  }
 15953  
 15954  // GoString returns the string representation.
 15955  //
 15956  // API parameter values that are decorated as "sensitive" in the API will not
 15957  // be included in the string output. The member name will be present, but the
 15958  // value will be replaced with "sensitive".
 15959  func (s UpdateFirewallDomainsInput) GoString() string {
 15960  	return s.String()
 15961  }
 15962  
 15963  // Validate inspects the fields of the type to determine if they are valid.
 15964  func (s *UpdateFirewallDomainsInput) Validate() error {
 15965  	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallDomainsInput"}
 15966  	if s.Domains == nil {
 15967  		invalidParams.Add(request.NewErrParamRequired("Domains"))
 15968  	}
 15969  	if s.FirewallDomainListId == nil {
 15970  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
 15971  	}
 15972  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
 15973  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
 15974  	}
 15975  	if s.Operation == nil {
 15976  		invalidParams.Add(request.NewErrParamRequired("Operation"))
 15977  	}
 15978  
 15979  	if invalidParams.Len() > 0 {
 15980  		return invalidParams
 15981  	}
 15982  	return nil
 15983  }
 15984  
 15985  // SetDomains sets the Domains field's value.
 15986  func (s *UpdateFirewallDomainsInput) SetDomains(v []*string) *UpdateFirewallDomainsInput {
 15987  	s.Domains = v
 15988  	return s
 15989  }
 15990  
 15991  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
 15992  func (s *UpdateFirewallDomainsInput) SetFirewallDomainListId(v string) *UpdateFirewallDomainsInput {
 15993  	s.FirewallDomainListId = &v
 15994  	return s
 15995  }
 15996  
 15997  // SetOperation sets the Operation field's value.
 15998  func (s *UpdateFirewallDomainsInput) SetOperation(v string) *UpdateFirewallDomainsInput {
 15999  	s.Operation = &v
 16000  	return s
 16001  }
 16002  
 16003  type UpdateFirewallDomainsOutput struct {
 16004  	_ struct{} `type:"structure"`
 16005  
 16006  	// The ID of the firewall domain list that DNS Firewall just updated.
 16007  	Id *string `min:"1" type:"string"`
 16008  
 16009  	// The name of the domain list.
 16010  	Name *string `type:"string"`
 16011  
 16012  	Status *string `type:"string" enum:"FirewallDomainListStatus"`
 16013  
 16014  	// Additional information about the status of the list, if available.
 16015  	StatusMessage *string `type:"string"`
 16016  }
 16017  
 16018  // String returns the string representation.
 16019  //
 16020  // API parameter values that are decorated as "sensitive" in the API will not
 16021  // be included in the string output. The member name will be present, but the
 16022  // value will be replaced with "sensitive".
 16023  func (s UpdateFirewallDomainsOutput) String() string {
 16024  	return awsutil.Prettify(s)
 16025  }
 16026  
 16027  // GoString returns the string representation.
 16028  //
 16029  // API parameter values that are decorated as "sensitive" in the API will not
 16030  // be included in the string output. The member name will be present, but the
 16031  // value will be replaced with "sensitive".
 16032  func (s UpdateFirewallDomainsOutput) GoString() string {
 16033  	return s.String()
 16034  }
 16035  
 16036  // SetId sets the Id field's value.
 16037  func (s *UpdateFirewallDomainsOutput) SetId(v string) *UpdateFirewallDomainsOutput {
 16038  	s.Id = &v
 16039  	return s
 16040  }
 16041  
 16042  // SetName sets the Name field's value.
 16043  func (s *UpdateFirewallDomainsOutput) SetName(v string) *UpdateFirewallDomainsOutput {
 16044  	s.Name = &v
 16045  	return s
 16046  }
 16047  
 16048  // SetStatus sets the Status field's value.
 16049  func (s *UpdateFirewallDomainsOutput) SetStatus(v string) *UpdateFirewallDomainsOutput {
 16050  	s.Status = &v
 16051  	return s
 16052  }
 16053  
 16054  // SetStatusMessage sets the StatusMessage field's value.
 16055  func (s *UpdateFirewallDomainsOutput) SetStatusMessage(v string) *UpdateFirewallDomainsOutput {
 16056  	s.StatusMessage = &v
 16057  	return s
 16058  }
 16059  
 16060  type UpdateFirewallRuleGroupAssociationInput struct {
 16061  	_ struct{} `type:"structure"`
 16062  
 16063  	// The identifier of the FirewallRuleGroupAssociation.
 16064  	//
 16065  	// FirewallRuleGroupAssociationId is a required field
 16066  	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
 16067  
 16068  	// If enabled, this setting disallows modification or removal of the association,
 16069  	// to help prevent against accidentally altering DNS firewall protections.
 16070  	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
 16071  
 16072  	// The name of the rule group association.
 16073  	Name *string `type:"string"`
 16074  
 16075  	// The setting that determines the processing order of the rule group among
 16076  	// the rule groups that you associate with the specified VPC. DNS Firewall filters
 16077  	// VPC traffic starting from the rule group with the lowest numeric priority
 16078  	// setting.
 16079  	//
 16080  	// You must specify a unique priority for each rule group that you associate
 16081  	// with a single VPC. To make it easier to insert rule groups later, leave space
 16082  	// between the numbers, for example, use 100, 200, and so on. You can change
 16083  	// the priority setting for a rule group association after you create it.
 16084  	Priority *int64 `type:"integer"`
 16085  }
 16086  
 16087  // String returns the string representation.
 16088  //
 16089  // API parameter values that are decorated as "sensitive" in the API will not
 16090  // be included in the string output. The member name will be present, but the
 16091  // value will be replaced with "sensitive".
 16092  func (s UpdateFirewallRuleGroupAssociationInput) String() string {
 16093  	return awsutil.Prettify(s)
 16094  }
 16095  
 16096  // GoString returns the string representation.
 16097  //
 16098  // API parameter values that are decorated as "sensitive" in the API will not
 16099  // be included in the string output. The member name will be present, but the
 16100  // value will be replaced with "sensitive".
 16101  func (s UpdateFirewallRuleGroupAssociationInput) GoString() string {
 16102  	return s.String()
 16103  }
 16104  
 16105  // Validate inspects the fields of the type to determine if they are valid.
 16106  func (s *UpdateFirewallRuleGroupAssociationInput) Validate() error {
 16107  	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallRuleGroupAssociationInput"}
 16108  	if s.FirewallRuleGroupAssociationId == nil {
 16109  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
 16110  	}
 16111  	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
 16112  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
 16113  	}
 16114  
 16115  	if invalidParams.Len() > 0 {
 16116  		return invalidParams
 16117  	}
 16118  	return nil
 16119  }
 16120  
 16121  // SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
 16122  func (s *UpdateFirewallRuleGroupAssociationInput) SetFirewallRuleGroupAssociationId(v string) *UpdateFirewallRuleGroupAssociationInput {
 16123  	s.FirewallRuleGroupAssociationId = &v
 16124  	return s
 16125  }
 16126  
 16127  // SetMutationProtection sets the MutationProtection field's value.
 16128  func (s *UpdateFirewallRuleGroupAssociationInput) SetMutationProtection(v string) *UpdateFirewallRuleGroupAssociationInput {
 16129  	s.MutationProtection = &v
 16130  	return s
 16131  }
 16132  
 16133  // SetName sets the Name field's value.
 16134  func (s *UpdateFirewallRuleGroupAssociationInput) SetName(v string) *UpdateFirewallRuleGroupAssociationInput {
 16135  	s.Name = &v
 16136  	return s
 16137  }
 16138  
 16139  // SetPriority sets the Priority field's value.
 16140  func (s *UpdateFirewallRuleGroupAssociationInput) SetPriority(v int64) *UpdateFirewallRuleGroupAssociationInput {
 16141  	s.Priority = &v
 16142  	return s
 16143  }
 16144  
 16145  type UpdateFirewallRuleGroupAssociationOutput struct {
 16146  	_ struct{} `type:"structure"`
 16147  
 16148  	// The association that you just updated.
 16149  	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
 16150  }
 16151  
 16152  // String returns the string representation.
 16153  //
 16154  // API parameter values that are decorated as "sensitive" in the API will not
 16155  // be included in the string output. The member name will be present, but the
 16156  // value will be replaced with "sensitive".
 16157  func (s UpdateFirewallRuleGroupAssociationOutput) String() string {
 16158  	return awsutil.Prettify(s)
 16159  }
 16160  
 16161  // GoString returns the string representation.
 16162  //
 16163  // API parameter values that are decorated as "sensitive" in the API will not
 16164  // be included in the string output. The member name will be present, but the
 16165  // value will be replaced with "sensitive".
 16166  func (s UpdateFirewallRuleGroupAssociationOutput) GoString() string {
 16167  	return s.String()
 16168  }
 16169  
 16170  // SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
 16171  func (s *UpdateFirewallRuleGroupAssociationOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *UpdateFirewallRuleGroupAssociationOutput {
 16172  	s.FirewallRuleGroupAssociation = v
 16173  	return s
 16174  }
 16175  
 16176  type UpdateFirewallRuleInput struct {
 16177  	_ struct{} `type:"structure"`
 16178  
 16179  	// The action that DNS Firewall should take on a DNS query when it matches one
 16180  	// of the domains in the rule's domain list:
 16181  	//
 16182  	//    * ALLOW - Permit the request to go through.
 16183  	//
 16184  	//    * ALERT - Permit the request to go through but send an alert to the logs.
 16185  	//
 16186  	//    * BLOCK - Disallow the request. This option requires additional details
 16187  	//    in the rule's BlockResponse.
 16188  	Action *string `type:"string" enum:"Action"`
 16189  
 16190  	// The DNS record's type. This determines the format of the record value that
 16191  	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
 16192  	// a BlockResponse setting of OVERRIDE.
 16193  	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
 16194  
 16195  	// The custom DNS record to send back in response to the query. Used for the
 16196  	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
 16197  	BlockOverrideDomain *string `min:"1" type:"string"`
 16198  
 16199  	// The recommended amount of time, in seconds, for the DNS resolver or web browser
 16200  	// to cache the provided override record. Used for the rule action BLOCK with
 16201  	// a BlockResponse setting of OVERRIDE.
 16202  	BlockOverrideTtl *int64 `type:"integer"`
 16203  
 16204  	// The way that you want DNS Firewall to block the request. Used for the rule
 16205  	// action setting BLOCK.
 16206  	//
 16207  	//    * NODATA - Respond indicating that the query was successful, but no response
 16208  	//    is available for it.
 16209  	//
 16210  	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
 16211  	//    doesn't exist.
 16212  	//
 16213  	//    * OVERRIDE - Provide a custom override in the response. This option requires
 16214  	//    custom handling details in the rule's BlockOverride* settings.
 16215  	BlockResponse *string `type:"string" enum:"BlockResponse"`
 16216  
 16217  	// The ID of the domain list to use in the rule.
 16218  	//
 16219  	// FirewallDomainListId is a required field
 16220  	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
 16221  
 16222  	// The unique identifier of the firewall rule group for the rule.
 16223  	//
 16224  	// FirewallRuleGroupId is a required field
 16225  	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
 16226  
 16227  	// The name of the rule.
 16228  	Name *string `type:"string"`
 16229  
 16230  	// The setting that determines the processing order of the rule in the rule
 16231  	// group. DNS Firewall processes the rules in a rule group by order of priority,
 16232  	// starting from the lowest setting.
 16233  	//
 16234  	// You must specify a unique priority for each rule in a rule group. To make
 16235  	// it easier to insert rules later, leave space between the numbers, for example,
 16236  	// use 100, 200, and so on. You can change the priority setting for the rules
 16237  	// in a rule group at any time.
 16238  	Priority *int64 `type:"integer"`
 16239  }
 16240  
 16241  // String returns the string representation.
 16242  //
 16243  // API parameter values that are decorated as "sensitive" in the API will not
 16244  // be included in the string output. The member name will be present, but the
 16245  // value will be replaced with "sensitive".
 16246  func (s UpdateFirewallRuleInput) String() string {
 16247  	return awsutil.Prettify(s)
 16248  }
 16249  
 16250  // GoString returns the string representation.
 16251  //
 16252  // API parameter values that are decorated as "sensitive" in the API will not
 16253  // be included in the string output. The member name will be present, but the
 16254  // value will be replaced with "sensitive".
 16255  func (s UpdateFirewallRuleInput) GoString() string {
 16256  	return s.String()
 16257  }
 16258  
 16259  // Validate inspects the fields of the type to determine if they are valid.
 16260  func (s *UpdateFirewallRuleInput) Validate() error {
 16261  	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallRuleInput"}
 16262  	if s.BlockOverrideDomain != nil && len(*s.BlockOverrideDomain) < 1 {
 16263  		invalidParams.Add(request.NewErrParamMinLen("BlockOverrideDomain", 1))
 16264  	}
 16265  	if s.FirewallDomainListId == nil {
 16266  		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
 16267  	}
 16268  	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
 16269  		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
 16270  	}
 16271  	if s.FirewallRuleGroupId == nil {
 16272  		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
 16273  	}
 16274  	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
 16275  		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
 16276  	}
 16277  
 16278  	if invalidParams.Len() > 0 {
 16279  		return invalidParams
 16280  	}
 16281  	return nil
 16282  }
 16283  
 16284  // SetAction sets the Action field's value.
 16285  func (s *UpdateFirewallRuleInput) SetAction(v string) *UpdateFirewallRuleInput {
 16286  	s.Action = &v
 16287  	return s
 16288  }
 16289  
 16290  // SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
 16291  func (s *UpdateFirewallRuleInput) SetBlockOverrideDnsType(v string) *UpdateFirewallRuleInput {
 16292  	s.BlockOverrideDnsType = &v
 16293  	return s
 16294  }
 16295  
 16296  // SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
 16297  func (s *UpdateFirewallRuleInput) SetBlockOverrideDomain(v string) *UpdateFirewallRuleInput {
 16298  	s.BlockOverrideDomain = &v
 16299  	return s
 16300  }
 16301  
 16302  // SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
 16303  func (s *UpdateFirewallRuleInput) SetBlockOverrideTtl(v int64) *UpdateFirewallRuleInput {
 16304  	s.BlockOverrideTtl = &v
 16305  	return s
 16306  }
 16307  
 16308  // SetBlockResponse sets the BlockResponse field's value.
 16309  func (s *UpdateFirewallRuleInput) SetBlockResponse(v string) *UpdateFirewallRuleInput {
 16310  	s.BlockResponse = &v
 16311  	return s
 16312  }
 16313  
 16314  // SetFirewallDomainListId sets the FirewallDomainListId field's value.
 16315  func (s *UpdateFirewallRuleInput) SetFirewallDomainListId(v string) *UpdateFirewallRuleInput {
 16316  	s.FirewallDomainListId = &v
 16317  	return s
 16318  }
 16319  
 16320  // SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
 16321  func (s *UpdateFirewallRuleInput) SetFirewallRuleGroupId(v string) *UpdateFirewallRuleInput {
 16322  	s.FirewallRuleGroupId = &v
 16323  	return s
 16324  }
 16325  
 16326  // SetName sets the Name field's value.
 16327  func (s *UpdateFirewallRuleInput) SetName(v string) *UpdateFirewallRuleInput {
 16328  	s.Name = &v
 16329  	return s
 16330  }
 16331  
 16332  // SetPriority sets the Priority field's value.
 16333  func (s *UpdateFirewallRuleInput) SetPriority(v int64) *UpdateFirewallRuleInput {
 16334  	s.Priority = &v
 16335  	return s
 16336  }
 16337  
 16338  type UpdateFirewallRuleOutput struct {
 16339  	_ struct{} `type:"structure"`
 16340  
 16341  	// The firewall rule that you just updated.
 16342  	FirewallRule *FirewallRule `type:"structure"`
 16343  }
 16344  
 16345  // String returns the string representation.
 16346  //
 16347  // API parameter values that are decorated as "sensitive" in the API will not
 16348  // be included in the string output. The member name will be present, but the
 16349  // value will be replaced with "sensitive".
 16350  func (s UpdateFirewallRuleOutput) String() string {
 16351  	return awsutil.Prettify(s)
 16352  }
 16353  
 16354  // GoString returns the string representation.
 16355  //
 16356  // API parameter values that are decorated as "sensitive" in the API will not
 16357  // be included in the string output. The member name will be present, but the
 16358  // value will be replaced with "sensitive".
 16359  func (s UpdateFirewallRuleOutput) GoString() string {
 16360  	return s.String()
 16361  }
 16362  
 16363  // SetFirewallRule sets the FirewallRule field's value.
 16364  func (s *UpdateFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *UpdateFirewallRuleOutput {
 16365  	s.FirewallRule = v
 16366  	return s
 16367  }
 16368  
 16369  type UpdateResolverDnssecConfigInput struct {
 16370  	_ struct{} `type:"structure"`
 16371  
 16372  	// The ID of the virtual private cloud (VPC) that you're updating the DNSSEC
 16373  	// validation status for.
 16374  	//
 16375  	// ResourceId is a required field
 16376  	ResourceId *string `min:"1" type:"string" required:"true"`
 16377  
 16378  	// The new value that you are specifying for DNSSEC validation for the VPC.
 16379  	// The value can be ENABLE or DISABLE. Be aware that it can take time for a
 16380  	// validation status change to be completed.
 16381  	//
 16382  	// Validation is a required field
 16383  	Validation *string `type:"string" required:"true" enum:"Validation"`
 16384  }
 16385  
 16386  // String returns the string representation.
 16387  //
 16388  // API parameter values that are decorated as "sensitive" in the API will not
 16389  // be included in the string output. The member name will be present, but the
 16390  // value will be replaced with "sensitive".
 16391  func (s UpdateResolverDnssecConfigInput) String() string {
 16392  	return awsutil.Prettify(s)
 16393  }
 16394  
 16395  // GoString returns the string representation.
 16396  //
 16397  // API parameter values that are decorated as "sensitive" in the API will not
 16398  // be included in the string output. The member name will be present, but the
 16399  // value will be replaced with "sensitive".
 16400  func (s UpdateResolverDnssecConfigInput) GoString() string {
 16401  	return s.String()
 16402  }
 16403  
 16404  // Validate inspects the fields of the type to determine if they are valid.
 16405  func (s *UpdateResolverDnssecConfigInput) Validate() error {
 16406  	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverDnssecConfigInput"}
 16407  	if s.ResourceId == nil {
 16408  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
 16409  	}
 16410  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
 16411  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
 16412  	}
 16413  	if s.Validation == nil {
 16414  		invalidParams.Add(request.NewErrParamRequired("Validation"))
 16415  	}
 16416  
 16417  	if invalidParams.Len() > 0 {
 16418  		return invalidParams
 16419  	}
 16420  	return nil
 16421  }
 16422  
 16423  // SetResourceId sets the ResourceId field's value.
 16424  func (s *UpdateResolverDnssecConfigInput) SetResourceId(v string) *UpdateResolverDnssecConfigInput {
 16425  	s.ResourceId = &v
 16426  	return s
 16427  }
 16428  
 16429  // SetValidation sets the Validation field's value.
 16430  func (s *UpdateResolverDnssecConfigInput) SetValidation(v string) *UpdateResolverDnssecConfigInput {
 16431  	s.Validation = &v
 16432  	return s
 16433  }
 16434  
 16435  type UpdateResolverDnssecConfigOutput struct {
 16436  	_ struct{} `type:"structure"`
 16437  
 16438  	// A complex type that contains settings for the specified DNSSEC configuration.
 16439  	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
 16440  }
 16441  
 16442  // String returns the string representation.
 16443  //
 16444  // API parameter values that are decorated as "sensitive" in the API will not
 16445  // be included in the string output. The member name will be present, but the
 16446  // value will be replaced with "sensitive".
 16447  func (s UpdateResolverDnssecConfigOutput) String() string {
 16448  	return awsutil.Prettify(s)
 16449  }
 16450  
 16451  // GoString returns the string representation.
 16452  //
 16453  // API parameter values that are decorated as "sensitive" in the API will not
 16454  // be included in the string output. The member name will be present, but the
 16455  // value will be replaced with "sensitive".
 16456  func (s UpdateResolverDnssecConfigOutput) GoString() string {
 16457  	return s.String()
 16458  }
 16459  
 16460  // SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
 16461  func (s *UpdateResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *UpdateResolverDnssecConfigOutput {
 16462  	s.ResolverDNSSECConfig = v
 16463  	return s
 16464  }
 16465  
 16466  type UpdateResolverEndpointInput struct {
 16467  	_ struct{} `type:"structure"`
 16468  
 16469  	// The name of the Resolver endpoint that you want to update.
 16470  	Name *string `type:"string"`
 16471  
 16472  	// The ID of the Resolver endpoint that you want to update.
 16473  	//
 16474  	// ResolverEndpointId is a required field
 16475  	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
 16476  }
 16477  
 16478  // String returns the string representation.
 16479  //
 16480  // API parameter values that are decorated as "sensitive" in the API will not
 16481  // be included in the string output. The member name will be present, but the
 16482  // value will be replaced with "sensitive".
 16483  func (s UpdateResolverEndpointInput) String() string {
 16484  	return awsutil.Prettify(s)
 16485  }
 16486  
 16487  // GoString returns the string representation.
 16488  //
 16489  // API parameter values that are decorated as "sensitive" in the API will not
 16490  // be included in the string output. The member name will be present, but the
 16491  // value will be replaced with "sensitive".
 16492  func (s UpdateResolverEndpointInput) GoString() string {
 16493  	return s.String()
 16494  }
 16495  
 16496  // Validate inspects the fields of the type to determine if they are valid.
 16497  func (s *UpdateResolverEndpointInput) Validate() error {
 16498  	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverEndpointInput"}
 16499  	if s.ResolverEndpointId == nil {
 16500  		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
 16501  	}
 16502  	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
 16503  		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
 16504  	}
 16505  
 16506  	if invalidParams.Len() > 0 {
 16507  		return invalidParams
 16508  	}
 16509  	return nil
 16510  }
 16511  
 16512  // SetName sets the Name field's value.
 16513  func (s *UpdateResolverEndpointInput) SetName(v string) *UpdateResolverEndpointInput {
 16514  	s.Name = &v
 16515  	return s
 16516  }
 16517  
 16518  // SetResolverEndpointId sets the ResolverEndpointId field's value.
 16519  func (s *UpdateResolverEndpointInput) SetResolverEndpointId(v string) *UpdateResolverEndpointInput {
 16520  	s.ResolverEndpointId = &v
 16521  	return s
 16522  }
 16523  
 16524  type UpdateResolverEndpointOutput struct {
 16525  	_ struct{} `type:"structure"`
 16526  
 16527  	// The response to an UpdateResolverEndpoint request.
 16528  	ResolverEndpoint *ResolverEndpoint `type:"structure"`
 16529  }
 16530  
 16531  // String returns the string representation.
 16532  //
 16533  // API parameter values that are decorated as "sensitive" in the API will not
 16534  // be included in the string output. The member name will be present, but the
 16535  // value will be replaced with "sensitive".
 16536  func (s UpdateResolverEndpointOutput) String() string {
 16537  	return awsutil.Prettify(s)
 16538  }
 16539  
 16540  // GoString returns the string representation.
 16541  //
 16542  // API parameter values that are decorated as "sensitive" in the API will not
 16543  // be included in the string output. The member name will be present, but the
 16544  // value will be replaced with "sensitive".
 16545  func (s UpdateResolverEndpointOutput) GoString() string {
 16546  	return s.String()
 16547  }
 16548  
 16549  // SetResolverEndpoint sets the ResolverEndpoint field's value.
 16550  func (s *UpdateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *UpdateResolverEndpointOutput {
 16551  	s.ResolverEndpoint = v
 16552  	return s
 16553  }
 16554  
 16555  type UpdateResolverRuleInput struct {
 16556  	_ struct{} `type:"structure"`
 16557  
 16558  	// The new settings for the Resolver rule.
 16559  	//
 16560  	// Config is a required field
 16561  	Config *ResolverRuleConfig `type:"structure" required:"true"`
 16562  
 16563  	// The ID of the Resolver rule that you want to update.
 16564  	//
 16565  	// ResolverRuleId is a required field
 16566  	ResolverRuleId *string `min:"1" type:"string" required:"true"`
 16567  }
 16568  
 16569  // String returns the string representation.
 16570  //
 16571  // API parameter values that are decorated as "sensitive" in the API will not
 16572  // be included in the string output. The member name will be present, but the
 16573  // value will be replaced with "sensitive".
 16574  func (s UpdateResolverRuleInput) String() string {
 16575  	return awsutil.Prettify(s)
 16576  }
 16577  
 16578  // GoString returns the string representation.
 16579  //
 16580  // API parameter values that are decorated as "sensitive" in the API will not
 16581  // be included in the string output. The member name will be present, but the
 16582  // value will be replaced with "sensitive".
 16583  func (s UpdateResolverRuleInput) GoString() string {
 16584  	return s.String()
 16585  }
 16586  
 16587  // Validate inspects the fields of the type to determine if they are valid.
 16588  func (s *UpdateResolverRuleInput) Validate() error {
 16589  	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverRuleInput"}
 16590  	if s.Config == nil {
 16591  		invalidParams.Add(request.NewErrParamRequired("Config"))
 16592  	}
 16593  	if s.ResolverRuleId == nil {
 16594  		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
 16595  	}
 16596  	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
 16597  		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
 16598  	}
 16599  	if s.Config != nil {
 16600  		if err := s.Config.Validate(); err != nil {
 16601  			invalidParams.AddNested("Config", err.(request.ErrInvalidParams))
 16602  		}
 16603  	}
 16604  
 16605  	if invalidParams.Len() > 0 {
 16606  		return invalidParams
 16607  	}
 16608  	return nil
 16609  }
 16610  
 16611  // SetConfig sets the Config field's value.
 16612  func (s *UpdateResolverRuleInput) SetConfig(v *ResolverRuleConfig) *UpdateResolverRuleInput {
 16613  	s.Config = v
 16614  	return s
 16615  }
 16616  
 16617  // SetResolverRuleId sets the ResolverRuleId field's value.
 16618  func (s *UpdateResolverRuleInput) SetResolverRuleId(v string) *UpdateResolverRuleInput {
 16619  	s.ResolverRuleId = &v
 16620  	return s
 16621  }
 16622  
 16623  type UpdateResolverRuleOutput struct {
 16624  	_ struct{} `type:"structure"`
 16625  
 16626  	// The response to an UpdateResolverRule request.
 16627  	ResolverRule *ResolverRule `type:"structure"`
 16628  }
 16629  
 16630  // String returns the string representation.
 16631  //
 16632  // API parameter values that are decorated as "sensitive" in the API will not
 16633  // be included in the string output. The member name will be present, but the
 16634  // value will be replaced with "sensitive".
 16635  func (s UpdateResolverRuleOutput) String() string {
 16636  	return awsutil.Prettify(s)
 16637  }
 16638  
 16639  // GoString returns the string representation.
 16640  //
 16641  // API parameter values that are decorated as "sensitive" in the API will not
 16642  // be included in the string output. The member name will be present, but the
 16643  // value will be replaced with "sensitive".
 16644  func (s UpdateResolverRuleOutput) GoString() string {
 16645  	return s.String()
 16646  }
 16647  
 16648  // SetResolverRule sets the ResolverRule field's value.
 16649  func (s *UpdateResolverRuleOutput) SetResolverRule(v *ResolverRule) *UpdateResolverRuleOutput {
 16650  	s.ResolverRule = v
 16651  	return s
 16652  }
 16653  
 16654  type ValidationException struct {
 16655  	_            struct{}                  `type:"structure"`
 16656  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16657  
 16658  	Message_ *string `locationName:"Message" type:"string"`
 16659  }
 16660  
 16661  // String returns the string representation.
 16662  //
 16663  // API parameter values that are decorated as "sensitive" in the API will not
 16664  // be included in the string output. The member name will be present, but the
 16665  // value will be replaced with "sensitive".
 16666  func (s ValidationException) String() string {
 16667  	return awsutil.Prettify(s)
 16668  }
 16669  
 16670  // GoString returns the string representation.
 16671  //
 16672  // API parameter values that are decorated as "sensitive" in the API will not
 16673  // be included in the string output. The member name will be present, but the
 16674  // value will be replaced with "sensitive".
 16675  func (s ValidationException) GoString() string {
 16676  	return s.String()
 16677  }
 16678  
 16679  func newErrorValidationException(v protocol.ResponseMetadata) error {
 16680  	return &ValidationException{
 16681  		RespMetadata: v,
 16682  	}
 16683  }
 16684  
 16685  // Code returns the exception type name.
 16686  func (s *ValidationException) Code() string {
 16687  	return "ValidationException"
 16688  }
 16689  
 16690  // Message returns the exception's message.
 16691  func (s *ValidationException) Message() string {
 16692  	if s.Message_ != nil {
 16693  		return *s.Message_
 16694  	}
 16695  	return ""
 16696  }
 16697  
 16698  // OrigErr always returns nil, satisfies awserr.Error interface.
 16699  func (s *ValidationException) OrigErr() error {
 16700  	return nil
 16701  }
 16702  
 16703  func (s *ValidationException) Error() string {
 16704  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16705  }
 16706  
 16707  // Status code returns the HTTP status code for the request's response error.
 16708  func (s *ValidationException) StatusCode() int {
 16709  	return s.RespMetadata.StatusCode
 16710  }
 16711  
 16712  // RequestID returns the service's response RequestID for request.
 16713  func (s *ValidationException) RequestID() string {
 16714  	return s.RespMetadata.RequestID
 16715  }
 16716  
 16717  const (
 16718  	// ActionAllow is a Action enum value
 16719  	ActionAllow = "ALLOW"
 16720  
 16721  	// ActionBlock is a Action enum value
 16722  	ActionBlock = "BLOCK"
 16723  
 16724  	// ActionAlert is a Action enum value
 16725  	ActionAlert = "ALERT"
 16726  )
 16727  
 16728  // Action_Values returns all elements of the Action enum
 16729  func Action_Values() []string {
 16730  	return []string{
 16731  		ActionAllow,
 16732  		ActionBlock,
 16733  		ActionAlert,
 16734  	}
 16735  }
 16736  
 16737  const (
 16738  	// BlockOverrideDnsTypeCname is a BlockOverrideDnsType enum value
 16739  	BlockOverrideDnsTypeCname = "CNAME"
 16740  )
 16741  
 16742  // BlockOverrideDnsType_Values returns all elements of the BlockOverrideDnsType enum
 16743  func BlockOverrideDnsType_Values() []string {
 16744  	return []string{
 16745  		BlockOverrideDnsTypeCname,
 16746  	}
 16747  }
 16748  
 16749  const (
 16750  	// BlockResponseNodata is a BlockResponse enum value
 16751  	BlockResponseNodata = "NODATA"
 16752  
 16753  	// BlockResponseNxdomain is a BlockResponse enum value
 16754  	BlockResponseNxdomain = "NXDOMAIN"
 16755  
 16756  	// BlockResponseOverride is a BlockResponse enum value
 16757  	BlockResponseOverride = "OVERRIDE"
 16758  )
 16759  
 16760  // BlockResponse_Values returns all elements of the BlockResponse enum
 16761  func BlockResponse_Values() []string {
 16762  	return []string{
 16763  		BlockResponseNodata,
 16764  		BlockResponseNxdomain,
 16765  		BlockResponseOverride,
 16766  	}
 16767  }
 16768  
 16769  const (
 16770  	// FirewallDomainImportOperationReplace is a FirewallDomainImportOperation enum value
 16771  	FirewallDomainImportOperationReplace = "REPLACE"
 16772  )
 16773  
 16774  // FirewallDomainImportOperation_Values returns all elements of the FirewallDomainImportOperation enum
 16775  func FirewallDomainImportOperation_Values() []string {
 16776  	return []string{
 16777  		FirewallDomainImportOperationReplace,
 16778  	}
 16779  }
 16780  
 16781  const (
 16782  	// FirewallDomainListStatusComplete is a FirewallDomainListStatus enum value
 16783  	FirewallDomainListStatusComplete = "COMPLETE"
 16784  
 16785  	// FirewallDomainListStatusCompleteImportFailed is a FirewallDomainListStatus enum value
 16786  	FirewallDomainListStatusCompleteImportFailed = "COMPLETE_IMPORT_FAILED"
 16787  
 16788  	// FirewallDomainListStatusImporting is a FirewallDomainListStatus enum value
 16789  	FirewallDomainListStatusImporting = "IMPORTING"
 16790  
 16791  	// FirewallDomainListStatusDeleting is a FirewallDomainListStatus enum value
 16792  	FirewallDomainListStatusDeleting = "DELETING"
 16793  
 16794  	// FirewallDomainListStatusUpdating is a FirewallDomainListStatus enum value
 16795  	FirewallDomainListStatusUpdating = "UPDATING"
 16796  )
 16797  
 16798  // FirewallDomainListStatus_Values returns all elements of the FirewallDomainListStatus enum
 16799  func FirewallDomainListStatus_Values() []string {
 16800  	return []string{
 16801  		FirewallDomainListStatusComplete,
 16802  		FirewallDomainListStatusCompleteImportFailed,
 16803  		FirewallDomainListStatusImporting,
 16804  		FirewallDomainListStatusDeleting,
 16805  		FirewallDomainListStatusUpdating,
 16806  	}
 16807  }
 16808  
 16809  const (
 16810  	// FirewallDomainUpdateOperationAdd is a FirewallDomainUpdateOperation enum value
 16811  	FirewallDomainUpdateOperationAdd = "ADD"
 16812  
 16813  	// FirewallDomainUpdateOperationRemove is a FirewallDomainUpdateOperation enum value
 16814  	FirewallDomainUpdateOperationRemove = "REMOVE"
 16815  
 16816  	// FirewallDomainUpdateOperationReplace is a FirewallDomainUpdateOperation enum value
 16817  	FirewallDomainUpdateOperationReplace = "REPLACE"
 16818  )
 16819  
 16820  // FirewallDomainUpdateOperation_Values returns all elements of the FirewallDomainUpdateOperation enum
 16821  func FirewallDomainUpdateOperation_Values() []string {
 16822  	return []string{
 16823  		FirewallDomainUpdateOperationAdd,
 16824  		FirewallDomainUpdateOperationRemove,
 16825  		FirewallDomainUpdateOperationReplace,
 16826  	}
 16827  }
 16828  
 16829  const (
 16830  	// FirewallFailOpenStatusEnabled is a FirewallFailOpenStatus enum value
 16831  	FirewallFailOpenStatusEnabled = "ENABLED"
 16832  
 16833  	// FirewallFailOpenStatusDisabled is a FirewallFailOpenStatus enum value
 16834  	FirewallFailOpenStatusDisabled = "DISABLED"
 16835  )
 16836  
 16837  // FirewallFailOpenStatus_Values returns all elements of the FirewallFailOpenStatus enum
 16838  func FirewallFailOpenStatus_Values() []string {
 16839  	return []string{
 16840  		FirewallFailOpenStatusEnabled,
 16841  		FirewallFailOpenStatusDisabled,
 16842  	}
 16843  }
 16844  
 16845  const (
 16846  	// FirewallRuleGroupAssociationStatusComplete is a FirewallRuleGroupAssociationStatus enum value
 16847  	FirewallRuleGroupAssociationStatusComplete = "COMPLETE"
 16848  
 16849  	// FirewallRuleGroupAssociationStatusDeleting is a FirewallRuleGroupAssociationStatus enum value
 16850  	FirewallRuleGroupAssociationStatusDeleting = "DELETING"
 16851  
 16852  	// FirewallRuleGroupAssociationStatusUpdating is a FirewallRuleGroupAssociationStatus enum value
 16853  	FirewallRuleGroupAssociationStatusUpdating = "UPDATING"
 16854  )
 16855  
 16856  // FirewallRuleGroupAssociationStatus_Values returns all elements of the FirewallRuleGroupAssociationStatus enum
 16857  func FirewallRuleGroupAssociationStatus_Values() []string {
 16858  	return []string{
 16859  		FirewallRuleGroupAssociationStatusComplete,
 16860  		FirewallRuleGroupAssociationStatusDeleting,
 16861  		FirewallRuleGroupAssociationStatusUpdating,
 16862  	}
 16863  }
 16864  
 16865  const (
 16866  	// FirewallRuleGroupStatusComplete is a FirewallRuleGroupStatus enum value
 16867  	FirewallRuleGroupStatusComplete = "COMPLETE"
 16868  
 16869  	// FirewallRuleGroupStatusDeleting is a FirewallRuleGroupStatus enum value
 16870  	FirewallRuleGroupStatusDeleting = "DELETING"
 16871  
 16872  	// FirewallRuleGroupStatusUpdating is a FirewallRuleGroupStatus enum value
 16873  	FirewallRuleGroupStatusUpdating = "UPDATING"
 16874  )
 16875  
 16876  // FirewallRuleGroupStatus_Values returns all elements of the FirewallRuleGroupStatus enum
 16877  func FirewallRuleGroupStatus_Values() []string {
 16878  	return []string{
 16879  		FirewallRuleGroupStatusComplete,
 16880  		FirewallRuleGroupStatusDeleting,
 16881  		FirewallRuleGroupStatusUpdating,
 16882  	}
 16883  }
 16884  
 16885  const (
 16886  	// IpAddressStatusCreating is a IpAddressStatus enum value
 16887  	IpAddressStatusCreating = "CREATING"
 16888  
 16889  	// IpAddressStatusFailedCreation is a IpAddressStatus enum value
 16890  	IpAddressStatusFailedCreation = "FAILED_CREATION"
 16891  
 16892  	// IpAddressStatusAttaching is a IpAddressStatus enum value
 16893  	IpAddressStatusAttaching = "ATTACHING"
 16894  
 16895  	// IpAddressStatusAttached is a IpAddressStatus enum value
 16896  	IpAddressStatusAttached = "ATTACHED"
 16897  
 16898  	// IpAddressStatusRemapDetaching is a IpAddressStatus enum value
 16899  	IpAddressStatusRemapDetaching = "REMAP_DETACHING"
 16900  
 16901  	// IpAddressStatusRemapAttaching is a IpAddressStatus enum value
 16902  	IpAddressStatusRemapAttaching = "REMAP_ATTACHING"
 16903  
 16904  	// IpAddressStatusDetaching is a IpAddressStatus enum value
 16905  	IpAddressStatusDetaching = "DETACHING"
 16906  
 16907  	// IpAddressStatusFailedResourceGone is a IpAddressStatus enum value
 16908  	IpAddressStatusFailedResourceGone = "FAILED_RESOURCE_GONE"
 16909  
 16910  	// IpAddressStatusDeleting is a IpAddressStatus enum value
 16911  	IpAddressStatusDeleting = "DELETING"
 16912  
 16913  	// IpAddressStatusDeleteFailedFasExpired is a IpAddressStatus enum value
 16914  	IpAddressStatusDeleteFailedFasExpired = "DELETE_FAILED_FAS_EXPIRED"
 16915  )
 16916  
 16917  // IpAddressStatus_Values returns all elements of the IpAddressStatus enum
 16918  func IpAddressStatus_Values() []string {
 16919  	return []string{
 16920  		IpAddressStatusCreating,
 16921  		IpAddressStatusFailedCreation,
 16922  		IpAddressStatusAttaching,
 16923  		IpAddressStatusAttached,
 16924  		IpAddressStatusRemapDetaching,
 16925  		IpAddressStatusRemapAttaching,
 16926  		IpAddressStatusDetaching,
 16927  		IpAddressStatusFailedResourceGone,
 16928  		IpAddressStatusDeleting,
 16929  		IpAddressStatusDeleteFailedFasExpired,
 16930  	}
 16931  }
 16932  
 16933  const (
 16934  	// MutationProtectionStatusEnabled is a MutationProtectionStatus enum value
 16935  	MutationProtectionStatusEnabled = "ENABLED"
 16936  
 16937  	// MutationProtectionStatusDisabled is a MutationProtectionStatus enum value
 16938  	MutationProtectionStatusDisabled = "DISABLED"
 16939  )
 16940  
 16941  // MutationProtectionStatus_Values returns all elements of the MutationProtectionStatus enum
 16942  func MutationProtectionStatus_Values() []string {
 16943  	return []string{
 16944  		MutationProtectionStatusEnabled,
 16945  		MutationProtectionStatusDisabled,
 16946  	}
 16947  }
 16948  
 16949  const (
 16950  	// ResolverDNSSECValidationStatusEnabling is a ResolverDNSSECValidationStatus enum value
 16951  	ResolverDNSSECValidationStatusEnabling = "ENABLING"
 16952  
 16953  	// ResolverDNSSECValidationStatusEnabled is a ResolverDNSSECValidationStatus enum value
 16954  	ResolverDNSSECValidationStatusEnabled = "ENABLED"
 16955  
 16956  	// ResolverDNSSECValidationStatusDisabling is a ResolverDNSSECValidationStatus enum value
 16957  	ResolverDNSSECValidationStatusDisabling = "DISABLING"
 16958  
 16959  	// ResolverDNSSECValidationStatusDisabled is a ResolverDNSSECValidationStatus enum value
 16960  	ResolverDNSSECValidationStatusDisabled = "DISABLED"
 16961  )
 16962  
 16963  // ResolverDNSSECValidationStatus_Values returns all elements of the ResolverDNSSECValidationStatus enum
 16964  func ResolverDNSSECValidationStatus_Values() []string {
 16965  	return []string{
 16966  		ResolverDNSSECValidationStatusEnabling,
 16967  		ResolverDNSSECValidationStatusEnabled,
 16968  		ResolverDNSSECValidationStatusDisabling,
 16969  		ResolverDNSSECValidationStatusDisabled,
 16970  	}
 16971  }
 16972  
 16973  const (
 16974  	// ResolverEndpointDirectionInbound is a ResolverEndpointDirection enum value
 16975  	ResolverEndpointDirectionInbound = "INBOUND"
 16976  
 16977  	// ResolverEndpointDirectionOutbound is a ResolverEndpointDirection enum value
 16978  	ResolverEndpointDirectionOutbound = "OUTBOUND"
 16979  )
 16980  
 16981  // ResolverEndpointDirection_Values returns all elements of the ResolverEndpointDirection enum
 16982  func ResolverEndpointDirection_Values() []string {
 16983  	return []string{
 16984  		ResolverEndpointDirectionInbound,
 16985  		ResolverEndpointDirectionOutbound,
 16986  	}
 16987  }
 16988  
 16989  const (
 16990  	// ResolverEndpointStatusCreating is a ResolverEndpointStatus enum value
 16991  	ResolverEndpointStatusCreating = "CREATING"
 16992  
 16993  	// ResolverEndpointStatusOperational is a ResolverEndpointStatus enum value
 16994  	ResolverEndpointStatusOperational = "OPERATIONAL"
 16995  
 16996  	// ResolverEndpointStatusUpdating is a ResolverEndpointStatus enum value
 16997  	ResolverEndpointStatusUpdating = "UPDATING"
 16998  
 16999  	// ResolverEndpointStatusAutoRecovering is a ResolverEndpointStatus enum value
 17000  	ResolverEndpointStatusAutoRecovering = "AUTO_RECOVERING"
 17001  
 17002  	// ResolverEndpointStatusActionNeeded is a ResolverEndpointStatus enum value
 17003  	ResolverEndpointStatusActionNeeded = "ACTION_NEEDED"
 17004  
 17005  	// ResolverEndpointStatusDeleting is a ResolverEndpointStatus enum value
 17006  	ResolverEndpointStatusDeleting = "DELETING"
 17007  )
 17008  
 17009  // ResolverEndpointStatus_Values returns all elements of the ResolverEndpointStatus enum
 17010  func ResolverEndpointStatus_Values() []string {
 17011  	return []string{
 17012  		ResolverEndpointStatusCreating,
 17013  		ResolverEndpointStatusOperational,
 17014  		ResolverEndpointStatusUpdating,
 17015  		ResolverEndpointStatusAutoRecovering,
 17016  		ResolverEndpointStatusActionNeeded,
 17017  		ResolverEndpointStatusDeleting,
 17018  	}
 17019  }
 17020  
 17021  const (
 17022  	// ResolverQueryLogConfigAssociationErrorNone is a ResolverQueryLogConfigAssociationError enum value
 17023  	ResolverQueryLogConfigAssociationErrorNone = "NONE"
 17024  
 17025  	// ResolverQueryLogConfigAssociationErrorDestinationNotFound is a ResolverQueryLogConfigAssociationError enum value
 17026  	ResolverQueryLogConfigAssociationErrorDestinationNotFound = "DESTINATION_NOT_FOUND"
 17027  
 17028  	// ResolverQueryLogConfigAssociationErrorAccessDenied is a ResolverQueryLogConfigAssociationError enum value
 17029  	ResolverQueryLogConfigAssociationErrorAccessDenied = "ACCESS_DENIED"
 17030  
 17031  	// ResolverQueryLogConfigAssociationErrorInternalServiceError is a ResolverQueryLogConfigAssociationError enum value
 17032  	ResolverQueryLogConfigAssociationErrorInternalServiceError = "INTERNAL_SERVICE_ERROR"
 17033  )
 17034  
 17035  // ResolverQueryLogConfigAssociationError_Values returns all elements of the ResolverQueryLogConfigAssociationError enum
 17036  func ResolverQueryLogConfigAssociationError_Values() []string {
 17037  	return []string{
 17038  		ResolverQueryLogConfigAssociationErrorNone,
 17039  		ResolverQueryLogConfigAssociationErrorDestinationNotFound,
 17040  		ResolverQueryLogConfigAssociationErrorAccessDenied,
 17041  		ResolverQueryLogConfigAssociationErrorInternalServiceError,
 17042  	}
 17043  }
 17044  
 17045  const (
 17046  	// ResolverQueryLogConfigAssociationStatusCreating is a ResolverQueryLogConfigAssociationStatus enum value
 17047  	ResolverQueryLogConfigAssociationStatusCreating = "CREATING"
 17048  
 17049  	// ResolverQueryLogConfigAssociationStatusActive is a ResolverQueryLogConfigAssociationStatus enum value
 17050  	ResolverQueryLogConfigAssociationStatusActive = "ACTIVE"
 17051  
 17052  	// ResolverQueryLogConfigAssociationStatusActionNeeded is a ResolverQueryLogConfigAssociationStatus enum value
 17053  	ResolverQueryLogConfigAssociationStatusActionNeeded = "ACTION_NEEDED"
 17054  
 17055  	// ResolverQueryLogConfigAssociationStatusDeleting is a ResolverQueryLogConfigAssociationStatus enum value
 17056  	ResolverQueryLogConfigAssociationStatusDeleting = "DELETING"
 17057  
 17058  	// ResolverQueryLogConfigAssociationStatusFailed is a ResolverQueryLogConfigAssociationStatus enum value
 17059  	ResolverQueryLogConfigAssociationStatusFailed = "FAILED"
 17060  )
 17061  
 17062  // ResolverQueryLogConfigAssociationStatus_Values returns all elements of the ResolverQueryLogConfigAssociationStatus enum
 17063  func ResolverQueryLogConfigAssociationStatus_Values() []string {
 17064  	return []string{
 17065  		ResolverQueryLogConfigAssociationStatusCreating,
 17066  		ResolverQueryLogConfigAssociationStatusActive,
 17067  		ResolverQueryLogConfigAssociationStatusActionNeeded,
 17068  		ResolverQueryLogConfigAssociationStatusDeleting,
 17069  		ResolverQueryLogConfigAssociationStatusFailed,
 17070  	}
 17071  }
 17072  
 17073  const (
 17074  	// ResolverQueryLogConfigStatusCreating is a ResolverQueryLogConfigStatus enum value
 17075  	ResolverQueryLogConfigStatusCreating = "CREATING"
 17076  
 17077  	// ResolverQueryLogConfigStatusCreated is a ResolverQueryLogConfigStatus enum value
 17078  	ResolverQueryLogConfigStatusCreated = "CREATED"
 17079  
 17080  	// ResolverQueryLogConfigStatusDeleting is a ResolverQueryLogConfigStatus enum value
 17081  	ResolverQueryLogConfigStatusDeleting = "DELETING"
 17082  
 17083  	// ResolverQueryLogConfigStatusFailed is a ResolverQueryLogConfigStatus enum value
 17084  	ResolverQueryLogConfigStatusFailed = "FAILED"
 17085  )
 17086  
 17087  // ResolverQueryLogConfigStatus_Values returns all elements of the ResolverQueryLogConfigStatus enum
 17088  func ResolverQueryLogConfigStatus_Values() []string {
 17089  	return []string{
 17090  		ResolverQueryLogConfigStatusCreating,
 17091  		ResolverQueryLogConfigStatusCreated,
 17092  		ResolverQueryLogConfigStatusDeleting,
 17093  		ResolverQueryLogConfigStatusFailed,
 17094  	}
 17095  }
 17096  
 17097  const (
 17098  	// ResolverRuleAssociationStatusCreating is a ResolverRuleAssociationStatus enum value
 17099  	ResolverRuleAssociationStatusCreating = "CREATING"
 17100  
 17101  	// ResolverRuleAssociationStatusComplete is a ResolverRuleAssociationStatus enum value
 17102  	ResolverRuleAssociationStatusComplete = "COMPLETE"
 17103  
 17104  	// ResolverRuleAssociationStatusDeleting is a ResolverRuleAssociationStatus enum value
 17105  	ResolverRuleAssociationStatusDeleting = "DELETING"
 17106  
 17107  	// ResolverRuleAssociationStatusFailed is a ResolverRuleAssociationStatus enum value
 17108  	ResolverRuleAssociationStatusFailed = "FAILED"
 17109  
 17110  	// ResolverRuleAssociationStatusOverridden is a ResolverRuleAssociationStatus enum value
 17111  	ResolverRuleAssociationStatusOverridden = "OVERRIDDEN"
 17112  )
 17113  
 17114  // ResolverRuleAssociationStatus_Values returns all elements of the ResolverRuleAssociationStatus enum
 17115  func ResolverRuleAssociationStatus_Values() []string {
 17116  	return []string{
 17117  		ResolverRuleAssociationStatusCreating,
 17118  		ResolverRuleAssociationStatusComplete,
 17119  		ResolverRuleAssociationStatusDeleting,
 17120  		ResolverRuleAssociationStatusFailed,
 17121  		ResolverRuleAssociationStatusOverridden,
 17122  	}
 17123  }
 17124  
 17125  const (
 17126  	// ResolverRuleStatusComplete is a ResolverRuleStatus enum value
 17127  	ResolverRuleStatusComplete = "COMPLETE"
 17128  
 17129  	// ResolverRuleStatusDeleting is a ResolverRuleStatus enum value
 17130  	ResolverRuleStatusDeleting = "DELETING"
 17131  
 17132  	// ResolverRuleStatusUpdating is a ResolverRuleStatus enum value
 17133  	ResolverRuleStatusUpdating = "UPDATING"
 17134  
 17135  	// ResolverRuleStatusFailed is a ResolverRuleStatus enum value
 17136  	ResolverRuleStatusFailed = "FAILED"
 17137  )
 17138  
 17139  // ResolverRuleStatus_Values returns all elements of the ResolverRuleStatus enum
 17140  func ResolverRuleStatus_Values() []string {
 17141  	return []string{
 17142  		ResolverRuleStatusComplete,
 17143  		ResolverRuleStatusDeleting,
 17144  		ResolverRuleStatusUpdating,
 17145  		ResolverRuleStatusFailed,
 17146  	}
 17147  }
 17148  
 17149  const (
 17150  	// RuleTypeOptionForward is a RuleTypeOption enum value
 17151  	RuleTypeOptionForward = "FORWARD"
 17152  
 17153  	// RuleTypeOptionSystem is a RuleTypeOption enum value
 17154  	RuleTypeOptionSystem = "SYSTEM"
 17155  
 17156  	// RuleTypeOptionRecursive is a RuleTypeOption enum value
 17157  	RuleTypeOptionRecursive = "RECURSIVE"
 17158  )
 17159  
 17160  // RuleTypeOption_Values returns all elements of the RuleTypeOption enum
 17161  func RuleTypeOption_Values() []string {
 17162  	return []string{
 17163  		RuleTypeOptionForward,
 17164  		RuleTypeOptionSystem,
 17165  		RuleTypeOptionRecursive,
 17166  	}
 17167  }
 17168  
 17169  const (
 17170  	// ShareStatusNotShared is a ShareStatus enum value
 17171  	ShareStatusNotShared = "NOT_SHARED"
 17172  
 17173  	// ShareStatusSharedWithMe is a ShareStatus enum value
 17174  	ShareStatusSharedWithMe = "SHARED_WITH_ME"
 17175  
 17176  	// ShareStatusSharedByMe is a ShareStatus enum value
 17177  	ShareStatusSharedByMe = "SHARED_BY_ME"
 17178  )
 17179  
 17180  // ShareStatus_Values returns all elements of the ShareStatus enum
 17181  func ShareStatus_Values() []string {
 17182  	return []string{
 17183  		ShareStatusNotShared,
 17184  		ShareStatusSharedWithMe,
 17185  		ShareStatusSharedByMe,
 17186  	}
 17187  }
 17188  
 17189  const (
 17190  	// SortOrderAscending is a SortOrder enum value
 17191  	SortOrderAscending = "ASCENDING"
 17192  
 17193  	// SortOrderDescending is a SortOrder enum value
 17194  	SortOrderDescending = "DESCENDING"
 17195  )
 17196  
 17197  // SortOrder_Values returns all elements of the SortOrder enum
 17198  func SortOrder_Values() []string {
 17199  	return []string{
 17200  		SortOrderAscending,
 17201  		SortOrderDescending,
 17202  	}
 17203  }
 17204  
 17205  const (
 17206  	// ValidationEnable is a Validation enum value
 17207  	ValidationEnable = "ENABLE"
 17208  
 17209  	// ValidationDisable is a Validation enum value
 17210  	ValidationDisable = "DISABLE"
 17211  )
 17212  
 17213  // Validation_Values returns all elements of the Validation enum
 17214  func Validation_Values() []string {
 17215  	return []string{
 17216  		ValidationEnable,
 17217  		ValidationDisable,
 17218  	}
 17219  }