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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package shield
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    14  )
    15  
    16  const opAssociateDRTLogBucket = "AssociateDRTLogBucket"
    17  
    18  // AssociateDRTLogBucketRequest generates a "aws/request.Request" representing the
    19  // client's request for the AssociateDRTLogBucket operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See AssociateDRTLogBucket for more information on using the AssociateDRTLogBucket
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the AssociateDRTLogBucketRequest method.
    34  //    req, resp := client.AssociateDRTLogBucketRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucket
    42  func (c *Shield) AssociateDRTLogBucketRequest(input *AssociateDRTLogBucketInput) (req *request.Request, output *AssociateDRTLogBucketOutput) {
    43  	op := &request.Operation{
    44  		Name:       opAssociateDRTLogBucket,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &AssociateDRTLogBucketInput{}
    51  	}
    52  
    53  	output = &AssociateDRTLogBucketOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    56  	return
    57  }
    58  
    59  // AssociateDRTLogBucket API operation for AWS Shield.
    60  //
    61  // Authorizes the Shield Response Team (SRT) to access the specified Amazon
    62  // S3 bucket containing log data such as Application Load Balancer access logs,
    63  // CloudFront logs, or logs from third party sources. You can associate up to
    64  // 10 Amazon S3 buckets with your subscription.
    65  //
    66  // To use the services of the SRT and make an AssociateDRTLogBucket request,
    67  // you must be subscribed to the Business Support plan (https://aws.amazon.com/premiumsupport/business-support/)
    68  // or the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
    69  //
    70  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    71  // with awserr.Error's Code and Message methods to get detailed information about
    72  // the error.
    73  //
    74  // See the AWS API reference guide for AWS Shield's
    75  // API operation AssociateDRTLogBucket for usage and error information.
    76  //
    77  // Returned Error Types:
    78  //   * InternalErrorException
    79  //   Exception that indicates that a problem occurred with the service infrastructure.
    80  //   You can retry the request.
    81  //
    82  //   * InvalidOperationException
    83  //   Exception that indicates that the operation would not cause any change to
    84  //   occur.
    85  //
    86  //   * NoAssociatedRoleException
    87  //   The ARN of the role that you specifed does not exist.
    88  //
    89  //   * LimitsExceededException
    90  //   Exception that indicates that the operation would exceed a limit.
    91  //
    92  //   * InvalidParameterException
    93  //   Exception that indicates that the parameters passed to the API are invalid.
    94  //   If available, this exception includes details in additional properties.
    95  //
    96  //   * AccessDeniedForDependencyException
    97  //   In order to grant the necessary access to the Shield Response Team (SRT)
    98  //   the user submitting the request must have the iam:PassRole permission. This
    99  //   error indicates the user did not have the appropriate permissions. For more
   100  //   information, see Granting a User Permissions to Pass a Role to an Amazon
   101  //   Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
   102  //
   103  //   * OptimisticLockException
   104  //   Exception that indicates that the resource state has been modified by another
   105  //   client. Retrieve the resource and then retry your request.
   106  //
   107  //   * ResourceNotFoundException
   108  //   Exception indicating the specified resource does not exist. If available,
   109  //   this exception includes details in additional properties.
   110  //
   111  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucket
   112  func (c *Shield) AssociateDRTLogBucket(input *AssociateDRTLogBucketInput) (*AssociateDRTLogBucketOutput, error) {
   113  	req, out := c.AssociateDRTLogBucketRequest(input)
   114  	return out, req.Send()
   115  }
   116  
   117  // AssociateDRTLogBucketWithContext is the same as AssociateDRTLogBucket with the addition of
   118  // the ability to pass a context and additional request options.
   119  //
   120  // See AssociateDRTLogBucket for details on how to use this API operation.
   121  //
   122  // The context must be non-nil and will be used for request cancellation. If
   123  // the context is nil a panic will occur. In the future the SDK may create
   124  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   125  // for more information on using Contexts.
   126  func (c *Shield) AssociateDRTLogBucketWithContext(ctx aws.Context, input *AssociateDRTLogBucketInput, opts ...request.Option) (*AssociateDRTLogBucketOutput, error) {
   127  	req, out := c.AssociateDRTLogBucketRequest(input)
   128  	req.SetContext(ctx)
   129  	req.ApplyOptions(opts...)
   130  	return out, req.Send()
   131  }
   132  
   133  const opAssociateDRTRole = "AssociateDRTRole"
   134  
   135  // AssociateDRTRoleRequest generates a "aws/request.Request" representing the
   136  // client's request for the AssociateDRTRole operation. The "output" return
   137  // value will be populated with the request's response once the request completes
   138  // successfully.
   139  //
   140  // Use "Send" method on the returned Request to send the API call to the service.
   141  // the "output" return value is not valid until after Send returns without error.
   142  //
   143  // See AssociateDRTRole for more information on using the AssociateDRTRole
   144  // API call, and error handling.
   145  //
   146  // This method is useful when you want to inject custom logic or configuration
   147  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   148  //
   149  //
   150  //    // Example sending a request using the AssociateDRTRoleRequest method.
   151  //    req, resp := client.AssociateDRTRoleRequest(params)
   152  //
   153  //    err := req.Send()
   154  //    if err == nil { // resp is now filled
   155  //        fmt.Println(resp)
   156  //    }
   157  //
   158  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRole
   159  func (c *Shield) AssociateDRTRoleRequest(input *AssociateDRTRoleInput) (req *request.Request, output *AssociateDRTRoleOutput) {
   160  	op := &request.Operation{
   161  		Name:       opAssociateDRTRole,
   162  		HTTPMethod: "POST",
   163  		HTTPPath:   "/",
   164  	}
   165  
   166  	if input == nil {
   167  		input = &AssociateDRTRoleInput{}
   168  	}
   169  
   170  	output = &AssociateDRTRoleOutput{}
   171  	req = c.newRequest(op, input, output)
   172  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   173  	return
   174  }
   175  
   176  // AssociateDRTRole API operation for AWS Shield.
   177  //
   178  // Authorizes the Shield Response Team (SRT) using the specified role, to access
   179  // your Amazon Web Services account to assist with DDoS attack mitigation during
   180  // potential attacks. This enables the SRT to inspect your WAF configuration
   181  // and create or update WAF rules and web ACLs.
   182  //
   183  // You can associate only one RoleArn with your subscription. If you submit
   184  // an AssociateDRTRole request for an account that already has an associated
   185  // role, the new RoleArn will replace the existing RoleArn.
   186  //
   187  // Prior to making the AssociateDRTRole request, you must attach the AWSShieldDRTAccessPolicy
   188  // (https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy)
   189  // managed policy to the role you will specify in the request. For more information
   190  // see Attaching and Detaching IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
   191  // The role must also trust the service principal drt.shield.amazonaws.com.
   192  // For more information, see IAM JSON Policy Elements: Principal (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).
   193  //
   194  // The SRT will have access only to your WAF and Shield resources. By submitting
   195  // this request, you authorize the SRT to inspect your WAF and Shield configuration
   196  // and create and update WAF rules and web ACLs on your behalf. The SRT takes
   197  // these actions only if explicitly authorized by you.
   198  //
   199  // You must have the iam:PassRole permission to make an AssociateDRTRole request.
   200  // For more information, see Granting a User Permissions to Pass a Role to an
   201  // Amazon Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
   202  //
   203  // To use the services of the SRT and make an AssociateDRTRole request, you
   204  // must be subscribed to the Business Support plan (https://aws.amazon.com/premiumsupport/business-support/)
   205  // or the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
   206  //
   207  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   208  // with awserr.Error's Code and Message methods to get detailed information about
   209  // the error.
   210  //
   211  // See the AWS API reference guide for AWS Shield's
   212  // API operation AssociateDRTRole for usage and error information.
   213  //
   214  // Returned Error Types:
   215  //   * InternalErrorException
   216  //   Exception that indicates that a problem occurred with the service infrastructure.
   217  //   You can retry the request.
   218  //
   219  //   * InvalidOperationException
   220  //   Exception that indicates that the operation would not cause any change to
   221  //   occur.
   222  //
   223  //   * InvalidParameterException
   224  //   Exception that indicates that the parameters passed to the API are invalid.
   225  //   If available, this exception includes details in additional properties.
   226  //
   227  //   * AccessDeniedForDependencyException
   228  //   In order to grant the necessary access to the Shield Response Team (SRT)
   229  //   the user submitting the request must have the iam:PassRole permission. This
   230  //   error indicates the user did not have the appropriate permissions. For more
   231  //   information, see Granting a User Permissions to Pass a Role to an Amazon
   232  //   Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
   233  //
   234  //   * OptimisticLockException
   235  //   Exception that indicates that the resource state has been modified by another
   236  //   client. Retrieve the resource and then retry your request.
   237  //
   238  //   * ResourceNotFoundException
   239  //   Exception indicating the specified resource does not exist. If available,
   240  //   this exception includes details in additional properties.
   241  //
   242  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRole
   243  func (c *Shield) AssociateDRTRole(input *AssociateDRTRoleInput) (*AssociateDRTRoleOutput, error) {
   244  	req, out := c.AssociateDRTRoleRequest(input)
   245  	return out, req.Send()
   246  }
   247  
   248  // AssociateDRTRoleWithContext is the same as AssociateDRTRole with the addition of
   249  // the ability to pass a context and additional request options.
   250  //
   251  // See AssociateDRTRole for details on how to use this API operation.
   252  //
   253  // The context must be non-nil and will be used for request cancellation. If
   254  // the context is nil a panic will occur. In the future the SDK may create
   255  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   256  // for more information on using Contexts.
   257  func (c *Shield) AssociateDRTRoleWithContext(ctx aws.Context, input *AssociateDRTRoleInput, opts ...request.Option) (*AssociateDRTRoleOutput, error) {
   258  	req, out := c.AssociateDRTRoleRequest(input)
   259  	req.SetContext(ctx)
   260  	req.ApplyOptions(opts...)
   261  	return out, req.Send()
   262  }
   263  
   264  const opAssociateHealthCheck = "AssociateHealthCheck"
   265  
   266  // AssociateHealthCheckRequest generates a "aws/request.Request" representing the
   267  // client's request for the AssociateHealthCheck operation. The "output" return
   268  // value will be populated with the request's response once the request completes
   269  // successfully.
   270  //
   271  // Use "Send" method on the returned Request to send the API call to the service.
   272  // the "output" return value is not valid until after Send returns without error.
   273  //
   274  // See AssociateHealthCheck for more information on using the AssociateHealthCheck
   275  // API call, and error handling.
   276  //
   277  // This method is useful when you want to inject custom logic or configuration
   278  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   279  //
   280  //
   281  //    // Example sending a request using the AssociateHealthCheckRequest method.
   282  //    req, resp := client.AssociateHealthCheckRequest(params)
   283  //
   284  //    err := req.Send()
   285  //    if err == nil { // resp is now filled
   286  //        fmt.Println(resp)
   287  //    }
   288  //
   289  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateHealthCheck
   290  func (c *Shield) AssociateHealthCheckRequest(input *AssociateHealthCheckInput) (req *request.Request, output *AssociateHealthCheckOutput) {
   291  	op := &request.Operation{
   292  		Name:       opAssociateHealthCheck,
   293  		HTTPMethod: "POST",
   294  		HTTPPath:   "/",
   295  	}
   296  
   297  	if input == nil {
   298  		input = &AssociateHealthCheckInput{}
   299  	}
   300  
   301  	output = &AssociateHealthCheckOutput{}
   302  	req = c.newRequest(op, input, output)
   303  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   304  	return
   305  }
   306  
   307  // AssociateHealthCheck API operation for AWS Shield.
   308  //
   309  // Adds health-based detection to the Shield Advanced protection for a resource.
   310  // Shield Advanced health-based detection uses the health of your Amazon Web
   311  // Services resource to improve responsiveness and accuracy in attack detection
   312  // and mitigation.
   313  //
   314  // You define the health check in Route 53 and then associate it with your Shield
   315  // Advanced protection. For more information, see Shield Advanced Health-Based
   316  // Detection (https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html#ddos-advanced-health-check-option)
   317  // in the WAF Developer Guide.
   318  //
   319  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   320  // with awserr.Error's Code and Message methods to get detailed information about
   321  // the error.
   322  //
   323  // See the AWS API reference guide for AWS Shield's
   324  // API operation AssociateHealthCheck for usage and error information.
   325  //
   326  // Returned Error Types:
   327  //   * InternalErrorException
   328  //   Exception that indicates that a problem occurred with the service infrastructure.
   329  //   You can retry the request.
   330  //
   331  //   * LimitsExceededException
   332  //   Exception that indicates that the operation would exceed a limit.
   333  //
   334  //   * ResourceNotFoundException
   335  //   Exception indicating the specified resource does not exist. If available,
   336  //   this exception includes details in additional properties.
   337  //
   338  //   * InvalidParameterException
   339  //   Exception that indicates that the parameters passed to the API are invalid.
   340  //   If available, this exception includes details in additional properties.
   341  //
   342  //   * OptimisticLockException
   343  //   Exception that indicates that the resource state has been modified by another
   344  //   client. Retrieve the resource and then retry your request.
   345  //
   346  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateHealthCheck
   347  func (c *Shield) AssociateHealthCheck(input *AssociateHealthCheckInput) (*AssociateHealthCheckOutput, error) {
   348  	req, out := c.AssociateHealthCheckRequest(input)
   349  	return out, req.Send()
   350  }
   351  
   352  // AssociateHealthCheckWithContext is the same as AssociateHealthCheck with the addition of
   353  // the ability to pass a context and additional request options.
   354  //
   355  // See AssociateHealthCheck for details on how to use this API operation.
   356  //
   357  // The context must be non-nil and will be used for request cancellation. If
   358  // the context is nil a panic will occur. In the future the SDK may create
   359  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   360  // for more information on using Contexts.
   361  func (c *Shield) AssociateHealthCheckWithContext(ctx aws.Context, input *AssociateHealthCheckInput, opts ...request.Option) (*AssociateHealthCheckOutput, error) {
   362  	req, out := c.AssociateHealthCheckRequest(input)
   363  	req.SetContext(ctx)
   364  	req.ApplyOptions(opts...)
   365  	return out, req.Send()
   366  }
   367  
   368  const opAssociateProactiveEngagementDetails = "AssociateProactiveEngagementDetails"
   369  
   370  // AssociateProactiveEngagementDetailsRequest generates a "aws/request.Request" representing the
   371  // client's request for the AssociateProactiveEngagementDetails operation. The "output" return
   372  // value will be populated with the request's response once the request completes
   373  // successfully.
   374  //
   375  // Use "Send" method on the returned Request to send the API call to the service.
   376  // the "output" return value is not valid until after Send returns without error.
   377  //
   378  // See AssociateProactiveEngagementDetails for more information on using the AssociateProactiveEngagementDetails
   379  // API call, and error handling.
   380  //
   381  // This method is useful when you want to inject custom logic or configuration
   382  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   383  //
   384  //
   385  //    // Example sending a request using the AssociateProactiveEngagementDetailsRequest method.
   386  //    req, resp := client.AssociateProactiveEngagementDetailsRequest(params)
   387  //
   388  //    err := req.Send()
   389  //    if err == nil { // resp is now filled
   390  //        fmt.Println(resp)
   391  //    }
   392  //
   393  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateProactiveEngagementDetails
   394  func (c *Shield) AssociateProactiveEngagementDetailsRequest(input *AssociateProactiveEngagementDetailsInput) (req *request.Request, output *AssociateProactiveEngagementDetailsOutput) {
   395  	op := &request.Operation{
   396  		Name:       opAssociateProactiveEngagementDetails,
   397  		HTTPMethod: "POST",
   398  		HTTPPath:   "/",
   399  	}
   400  
   401  	if input == nil {
   402  		input = &AssociateProactiveEngagementDetailsInput{}
   403  	}
   404  
   405  	output = &AssociateProactiveEngagementDetailsOutput{}
   406  	req = c.newRequest(op, input, output)
   407  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   408  	return
   409  }
   410  
   411  // AssociateProactiveEngagementDetails API operation for AWS Shield.
   412  //
   413  // Initializes proactive engagement and sets the list of contacts for the Shield
   414  // Response Team (SRT) to use. You must provide at least one phone number in
   415  // the emergency contact list.
   416  //
   417  // After you have initialized proactive engagement using this call, to disable
   418  // or enable proactive engagement, use the calls DisableProactiveEngagement
   419  // and EnableProactiveEngagement.
   420  //
   421  // This call defines the list of email addresses and phone numbers that the
   422  // SRT can use to contact you for escalations to the SRT and to initiate proactive
   423  // customer support.
   424  //
   425  // The contacts that you provide in the request replace any contacts that were
   426  // already defined. If you already have contacts defined and want to use them,
   427  // retrieve the list using DescribeEmergencyContactSettings and then provide
   428  // it to this call.
   429  //
   430  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   431  // with awserr.Error's Code and Message methods to get detailed information about
   432  // the error.
   433  //
   434  // See the AWS API reference guide for AWS Shield's
   435  // API operation AssociateProactiveEngagementDetails for usage and error information.
   436  //
   437  // Returned Error Types:
   438  //   * InternalErrorException
   439  //   Exception that indicates that a problem occurred with the service infrastructure.
   440  //   You can retry the request.
   441  //
   442  //   * InvalidOperationException
   443  //   Exception that indicates that the operation would not cause any change to
   444  //   occur.
   445  //
   446  //   * InvalidParameterException
   447  //   Exception that indicates that the parameters passed to the API are invalid.
   448  //   If available, this exception includes details in additional properties.
   449  //
   450  //   * ResourceNotFoundException
   451  //   Exception indicating the specified resource does not exist. If available,
   452  //   this exception includes details in additional properties.
   453  //
   454  //   * OptimisticLockException
   455  //   Exception that indicates that the resource state has been modified by another
   456  //   client. Retrieve the resource and then retry your request.
   457  //
   458  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateProactiveEngagementDetails
   459  func (c *Shield) AssociateProactiveEngagementDetails(input *AssociateProactiveEngagementDetailsInput) (*AssociateProactiveEngagementDetailsOutput, error) {
   460  	req, out := c.AssociateProactiveEngagementDetailsRequest(input)
   461  	return out, req.Send()
   462  }
   463  
   464  // AssociateProactiveEngagementDetailsWithContext is the same as AssociateProactiveEngagementDetails with the addition of
   465  // the ability to pass a context and additional request options.
   466  //
   467  // See AssociateProactiveEngagementDetails for details on how to use this API operation.
   468  //
   469  // The context must be non-nil and will be used for request cancellation. If
   470  // the context is nil a panic will occur. In the future the SDK may create
   471  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   472  // for more information on using Contexts.
   473  func (c *Shield) AssociateProactiveEngagementDetailsWithContext(ctx aws.Context, input *AssociateProactiveEngagementDetailsInput, opts ...request.Option) (*AssociateProactiveEngagementDetailsOutput, error) {
   474  	req, out := c.AssociateProactiveEngagementDetailsRequest(input)
   475  	req.SetContext(ctx)
   476  	req.ApplyOptions(opts...)
   477  	return out, req.Send()
   478  }
   479  
   480  const opCreateProtection = "CreateProtection"
   481  
   482  // CreateProtectionRequest generates a "aws/request.Request" representing the
   483  // client's request for the CreateProtection operation. The "output" return
   484  // value will be populated with the request's response once the request completes
   485  // successfully.
   486  //
   487  // Use "Send" method on the returned Request to send the API call to the service.
   488  // the "output" return value is not valid until after Send returns without error.
   489  //
   490  // See CreateProtection for more information on using the CreateProtection
   491  // API call, and error handling.
   492  //
   493  // This method is useful when you want to inject custom logic or configuration
   494  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   495  //
   496  //
   497  //    // Example sending a request using the CreateProtectionRequest method.
   498  //    req, resp := client.CreateProtectionRequest(params)
   499  //
   500  //    err := req.Send()
   501  //    if err == nil { // resp is now filled
   502  //        fmt.Println(resp)
   503  //    }
   504  //
   505  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtection
   506  func (c *Shield) CreateProtectionRequest(input *CreateProtectionInput) (req *request.Request, output *CreateProtectionOutput) {
   507  	op := &request.Operation{
   508  		Name:       opCreateProtection,
   509  		HTTPMethod: "POST",
   510  		HTTPPath:   "/",
   511  	}
   512  
   513  	if input == nil {
   514  		input = &CreateProtectionInput{}
   515  	}
   516  
   517  	output = &CreateProtectionOutput{}
   518  	req = c.newRequest(op, input, output)
   519  	return
   520  }
   521  
   522  // CreateProtection API operation for AWS Shield.
   523  //
   524  // Enables Shield Advanced for a specific Amazon Web Services resource. The
   525  // resource can be an Amazon CloudFront distribution, Elastic Load Balancing
   526  // load balancer, Global Accelerator accelerator, Elastic IP Address, or an
   527  // Amazon Route 53 hosted zone.
   528  //
   529  // You can add protection to only a single resource with each CreateProtection
   530  // request. If you want to add protection to multiple resources at once, use
   531  // the WAF console (https://console.aws.amazon.com/waf/). For more information
   532  // see Getting Started with Shield Advanced (https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-ddos.html)
   533  // and Add Shield Advanced Protection to more Amazon Web Services Resources
   534  // (https://docs.aws.amazon.com/waf/latest/developerguide/configure-new-protection.html).
   535  //
   536  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   537  // with awserr.Error's Code and Message methods to get detailed information about
   538  // the error.
   539  //
   540  // See the AWS API reference guide for AWS Shield's
   541  // API operation CreateProtection for usage and error information.
   542  //
   543  // Returned Error Types:
   544  //   * InternalErrorException
   545  //   Exception that indicates that a problem occurred with the service infrastructure.
   546  //   You can retry the request.
   547  //
   548  //   * InvalidResourceException
   549  //   Exception that indicates that the resource is invalid. You might not have
   550  //   access to the resource, or the resource might not exist.
   551  //
   552  //   * InvalidOperationException
   553  //   Exception that indicates that the operation would not cause any change to
   554  //   occur.
   555  //
   556  //   * LimitsExceededException
   557  //   Exception that indicates that the operation would exceed a limit.
   558  //
   559  //   * ResourceAlreadyExistsException
   560  //   Exception indicating the specified resource already exists. If available,
   561  //   this exception includes details in additional properties.
   562  //
   563  //   * OptimisticLockException
   564  //   Exception that indicates that the resource state has been modified by another
   565  //   client. Retrieve the resource and then retry your request.
   566  //
   567  //   * ResourceNotFoundException
   568  //   Exception indicating the specified resource does not exist. If available,
   569  //   this exception includes details in additional properties.
   570  //
   571  //   * InvalidParameterException
   572  //   Exception that indicates that the parameters passed to the API are invalid.
   573  //   If available, this exception includes details in additional properties.
   574  //
   575  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtection
   576  func (c *Shield) CreateProtection(input *CreateProtectionInput) (*CreateProtectionOutput, error) {
   577  	req, out := c.CreateProtectionRequest(input)
   578  	return out, req.Send()
   579  }
   580  
   581  // CreateProtectionWithContext is the same as CreateProtection with the addition of
   582  // the ability to pass a context and additional request options.
   583  //
   584  // See CreateProtection for details on how to use this API operation.
   585  //
   586  // The context must be non-nil and will be used for request cancellation. If
   587  // the context is nil a panic will occur. In the future the SDK may create
   588  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   589  // for more information on using Contexts.
   590  func (c *Shield) CreateProtectionWithContext(ctx aws.Context, input *CreateProtectionInput, opts ...request.Option) (*CreateProtectionOutput, error) {
   591  	req, out := c.CreateProtectionRequest(input)
   592  	req.SetContext(ctx)
   593  	req.ApplyOptions(opts...)
   594  	return out, req.Send()
   595  }
   596  
   597  const opCreateProtectionGroup = "CreateProtectionGroup"
   598  
   599  // CreateProtectionGroupRequest generates a "aws/request.Request" representing the
   600  // client's request for the CreateProtectionGroup operation. The "output" return
   601  // value will be populated with the request's response once the request completes
   602  // successfully.
   603  //
   604  // Use "Send" method on the returned Request to send the API call to the service.
   605  // the "output" return value is not valid until after Send returns without error.
   606  //
   607  // See CreateProtectionGroup for more information on using the CreateProtectionGroup
   608  // API call, and error handling.
   609  //
   610  // This method is useful when you want to inject custom logic or configuration
   611  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   612  //
   613  //
   614  //    // Example sending a request using the CreateProtectionGroupRequest method.
   615  //    req, resp := client.CreateProtectionGroupRequest(params)
   616  //
   617  //    err := req.Send()
   618  //    if err == nil { // resp is now filled
   619  //        fmt.Println(resp)
   620  //    }
   621  //
   622  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroup
   623  func (c *Shield) CreateProtectionGroupRequest(input *CreateProtectionGroupInput) (req *request.Request, output *CreateProtectionGroupOutput) {
   624  	op := &request.Operation{
   625  		Name:       opCreateProtectionGroup,
   626  		HTTPMethod: "POST",
   627  		HTTPPath:   "/",
   628  	}
   629  
   630  	if input == nil {
   631  		input = &CreateProtectionGroupInput{}
   632  	}
   633  
   634  	output = &CreateProtectionGroupOutput{}
   635  	req = c.newRequest(op, input, output)
   636  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   637  	return
   638  }
   639  
   640  // CreateProtectionGroup API operation for AWS Shield.
   641  //
   642  // Creates a grouping of protected resources so they can be handled as a collective.
   643  // This resource grouping improves the accuracy of detection and reduces false
   644  // positives.
   645  //
   646  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   647  // with awserr.Error's Code and Message methods to get detailed information about
   648  // the error.
   649  //
   650  // See the AWS API reference guide for AWS Shield's
   651  // API operation CreateProtectionGroup for usage and error information.
   652  //
   653  // Returned Error Types:
   654  //   * InternalErrorException
   655  //   Exception that indicates that a problem occurred with the service infrastructure.
   656  //   You can retry the request.
   657  //
   658  //   * ResourceAlreadyExistsException
   659  //   Exception indicating the specified resource already exists. If available,
   660  //   this exception includes details in additional properties.
   661  //
   662  //   * OptimisticLockException
   663  //   Exception that indicates that the resource state has been modified by another
   664  //   client. Retrieve the resource and then retry your request.
   665  //
   666  //   * ResourceNotFoundException
   667  //   Exception indicating the specified resource does not exist. If available,
   668  //   this exception includes details in additional properties.
   669  //
   670  //   * InvalidParameterException
   671  //   Exception that indicates that the parameters passed to the API are invalid.
   672  //   If available, this exception includes details in additional properties.
   673  //
   674  //   * LimitsExceededException
   675  //   Exception that indicates that the operation would exceed a limit.
   676  //
   677  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroup
   678  func (c *Shield) CreateProtectionGroup(input *CreateProtectionGroupInput) (*CreateProtectionGroupOutput, error) {
   679  	req, out := c.CreateProtectionGroupRequest(input)
   680  	return out, req.Send()
   681  }
   682  
   683  // CreateProtectionGroupWithContext is the same as CreateProtectionGroup with the addition of
   684  // the ability to pass a context and additional request options.
   685  //
   686  // See CreateProtectionGroup for details on how to use this API operation.
   687  //
   688  // The context must be non-nil and will be used for request cancellation. If
   689  // the context is nil a panic will occur. In the future the SDK may create
   690  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   691  // for more information on using Contexts.
   692  func (c *Shield) CreateProtectionGroupWithContext(ctx aws.Context, input *CreateProtectionGroupInput, opts ...request.Option) (*CreateProtectionGroupOutput, error) {
   693  	req, out := c.CreateProtectionGroupRequest(input)
   694  	req.SetContext(ctx)
   695  	req.ApplyOptions(opts...)
   696  	return out, req.Send()
   697  }
   698  
   699  const opCreateSubscription = "CreateSubscription"
   700  
   701  // CreateSubscriptionRequest generates a "aws/request.Request" representing the
   702  // client's request for the CreateSubscription operation. The "output" return
   703  // value will be populated with the request's response once the request completes
   704  // successfully.
   705  //
   706  // Use "Send" method on the returned Request to send the API call to the service.
   707  // the "output" return value is not valid until after Send returns without error.
   708  //
   709  // See CreateSubscription for more information on using the CreateSubscription
   710  // API call, and error handling.
   711  //
   712  // This method is useful when you want to inject custom logic or configuration
   713  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   714  //
   715  //
   716  //    // Example sending a request using the CreateSubscriptionRequest method.
   717  //    req, resp := client.CreateSubscriptionRequest(params)
   718  //
   719  //    err := req.Send()
   720  //    if err == nil { // resp is now filled
   721  //        fmt.Println(resp)
   722  //    }
   723  //
   724  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateSubscription
   725  func (c *Shield) CreateSubscriptionRequest(input *CreateSubscriptionInput) (req *request.Request, output *CreateSubscriptionOutput) {
   726  	op := &request.Operation{
   727  		Name:       opCreateSubscription,
   728  		HTTPMethod: "POST",
   729  		HTTPPath:   "/",
   730  	}
   731  
   732  	if input == nil {
   733  		input = &CreateSubscriptionInput{}
   734  	}
   735  
   736  	output = &CreateSubscriptionOutput{}
   737  	req = c.newRequest(op, input, output)
   738  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   739  	return
   740  }
   741  
   742  // CreateSubscription API operation for AWS Shield.
   743  //
   744  // Activates Shield Advanced for an account.
   745  //
   746  // When you initally create a subscription, your subscription is set to be automatically
   747  // renewed at the end of the existing subscription period. You can change this
   748  // by submitting an UpdateSubscription request.
   749  //
   750  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   751  // with awserr.Error's Code and Message methods to get detailed information about
   752  // the error.
   753  //
   754  // See the AWS API reference guide for AWS Shield's
   755  // API operation CreateSubscription for usage and error information.
   756  //
   757  // Returned Error Types:
   758  //   * InternalErrorException
   759  //   Exception that indicates that a problem occurred with the service infrastructure.
   760  //   You can retry the request.
   761  //
   762  //   * ResourceAlreadyExistsException
   763  //   Exception indicating the specified resource already exists. If available,
   764  //   this exception includes details in additional properties.
   765  //
   766  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateSubscription
   767  func (c *Shield) CreateSubscription(input *CreateSubscriptionInput) (*CreateSubscriptionOutput, error) {
   768  	req, out := c.CreateSubscriptionRequest(input)
   769  	return out, req.Send()
   770  }
   771  
   772  // CreateSubscriptionWithContext is the same as CreateSubscription with the addition of
   773  // the ability to pass a context and additional request options.
   774  //
   775  // See CreateSubscription for details on how to use this API operation.
   776  //
   777  // The context must be non-nil and will be used for request cancellation. If
   778  // the context is nil a panic will occur. In the future the SDK may create
   779  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   780  // for more information on using Contexts.
   781  func (c *Shield) CreateSubscriptionWithContext(ctx aws.Context, input *CreateSubscriptionInput, opts ...request.Option) (*CreateSubscriptionOutput, error) {
   782  	req, out := c.CreateSubscriptionRequest(input)
   783  	req.SetContext(ctx)
   784  	req.ApplyOptions(opts...)
   785  	return out, req.Send()
   786  }
   787  
   788  const opDeleteProtection = "DeleteProtection"
   789  
   790  // DeleteProtectionRequest generates a "aws/request.Request" representing the
   791  // client's request for the DeleteProtection operation. The "output" return
   792  // value will be populated with the request's response once the request completes
   793  // successfully.
   794  //
   795  // Use "Send" method on the returned Request to send the API call to the service.
   796  // the "output" return value is not valid until after Send returns without error.
   797  //
   798  // See DeleteProtection for more information on using the DeleteProtection
   799  // API call, and error handling.
   800  //
   801  // This method is useful when you want to inject custom logic or configuration
   802  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   803  //
   804  //
   805  //    // Example sending a request using the DeleteProtectionRequest method.
   806  //    req, resp := client.DeleteProtectionRequest(params)
   807  //
   808  //    err := req.Send()
   809  //    if err == nil { // resp is now filled
   810  //        fmt.Println(resp)
   811  //    }
   812  //
   813  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtection
   814  func (c *Shield) DeleteProtectionRequest(input *DeleteProtectionInput) (req *request.Request, output *DeleteProtectionOutput) {
   815  	op := &request.Operation{
   816  		Name:       opDeleteProtection,
   817  		HTTPMethod: "POST",
   818  		HTTPPath:   "/",
   819  	}
   820  
   821  	if input == nil {
   822  		input = &DeleteProtectionInput{}
   823  	}
   824  
   825  	output = &DeleteProtectionOutput{}
   826  	req = c.newRequest(op, input, output)
   827  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   828  	return
   829  }
   830  
   831  // DeleteProtection API operation for AWS Shield.
   832  //
   833  // Deletes an Shield Advanced Protection.
   834  //
   835  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   836  // with awserr.Error's Code and Message methods to get detailed information about
   837  // the error.
   838  //
   839  // See the AWS API reference guide for AWS Shield's
   840  // API operation DeleteProtection for usage and error information.
   841  //
   842  // Returned Error Types:
   843  //   * InternalErrorException
   844  //   Exception that indicates that a problem occurred with the service infrastructure.
   845  //   You can retry the request.
   846  //
   847  //   * ResourceNotFoundException
   848  //   Exception indicating the specified resource does not exist. If available,
   849  //   this exception includes details in additional properties.
   850  //
   851  //   * OptimisticLockException
   852  //   Exception that indicates that the resource state has been modified by another
   853  //   client. Retrieve the resource and then retry your request.
   854  //
   855  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtection
   856  func (c *Shield) DeleteProtection(input *DeleteProtectionInput) (*DeleteProtectionOutput, error) {
   857  	req, out := c.DeleteProtectionRequest(input)
   858  	return out, req.Send()
   859  }
   860  
   861  // DeleteProtectionWithContext is the same as DeleteProtection with the addition of
   862  // the ability to pass a context and additional request options.
   863  //
   864  // See DeleteProtection for details on how to use this API operation.
   865  //
   866  // The context must be non-nil and will be used for request cancellation. If
   867  // the context is nil a panic will occur. In the future the SDK may create
   868  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   869  // for more information on using Contexts.
   870  func (c *Shield) DeleteProtectionWithContext(ctx aws.Context, input *DeleteProtectionInput, opts ...request.Option) (*DeleteProtectionOutput, error) {
   871  	req, out := c.DeleteProtectionRequest(input)
   872  	req.SetContext(ctx)
   873  	req.ApplyOptions(opts...)
   874  	return out, req.Send()
   875  }
   876  
   877  const opDeleteProtectionGroup = "DeleteProtectionGroup"
   878  
   879  // DeleteProtectionGroupRequest generates a "aws/request.Request" representing the
   880  // client's request for the DeleteProtectionGroup operation. The "output" return
   881  // value will be populated with the request's response once the request completes
   882  // successfully.
   883  //
   884  // Use "Send" method on the returned Request to send the API call to the service.
   885  // the "output" return value is not valid until after Send returns without error.
   886  //
   887  // See DeleteProtectionGroup for more information on using the DeleteProtectionGroup
   888  // API call, and error handling.
   889  //
   890  // This method is useful when you want to inject custom logic or configuration
   891  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   892  //
   893  //
   894  //    // Example sending a request using the DeleteProtectionGroupRequest method.
   895  //    req, resp := client.DeleteProtectionGroupRequest(params)
   896  //
   897  //    err := req.Send()
   898  //    if err == nil { // resp is now filled
   899  //        fmt.Println(resp)
   900  //    }
   901  //
   902  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroup
   903  func (c *Shield) DeleteProtectionGroupRequest(input *DeleteProtectionGroupInput) (req *request.Request, output *DeleteProtectionGroupOutput) {
   904  	op := &request.Operation{
   905  		Name:       opDeleteProtectionGroup,
   906  		HTTPMethod: "POST",
   907  		HTTPPath:   "/",
   908  	}
   909  
   910  	if input == nil {
   911  		input = &DeleteProtectionGroupInput{}
   912  	}
   913  
   914  	output = &DeleteProtectionGroupOutput{}
   915  	req = c.newRequest(op, input, output)
   916  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   917  	return
   918  }
   919  
   920  // DeleteProtectionGroup API operation for AWS Shield.
   921  //
   922  // Removes the specified protection group.
   923  //
   924  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   925  // with awserr.Error's Code and Message methods to get detailed information about
   926  // the error.
   927  //
   928  // See the AWS API reference guide for AWS Shield's
   929  // API operation DeleteProtectionGroup for usage and error information.
   930  //
   931  // Returned Error Types:
   932  //   * InternalErrorException
   933  //   Exception that indicates that a problem occurred with the service infrastructure.
   934  //   You can retry the request.
   935  //
   936  //   * OptimisticLockException
   937  //   Exception that indicates that the resource state has been modified by another
   938  //   client. Retrieve the resource and then retry your request.
   939  //
   940  //   * ResourceNotFoundException
   941  //   Exception indicating the specified resource does not exist. If available,
   942  //   this exception includes details in additional properties.
   943  //
   944  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroup
   945  func (c *Shield) DeleteProtectionGroup(input *DeleteProtectionGroupInput) (*DeleteProtectionGroupOutput, error) {
   946  	req, out := c.DeleteProtectionGroupRequest(input)
   947  	return out, req.Send()
   948  }
   949  
   950  // DeleteProtectionGroupWithContext is the same as DeleteProtectionGroup with the addition of
   951  // the ability to pass a context and additional request options.
   952  //
   953  // See DeleteProtectionGroup for details on how to use this API operation.
   954  //
   955  // The context must be non-nil and will be used for request cancellation. If
   956  // the context is nil a panic will occur. In the future the SDK may create
   957  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   958  // for more information on using Contexts.
   959  func (c *Shield) DeleteProtectionGroupWithContext(ctx aws.Context, input *DeleteProtectionGroupInput, opts ...request.Option) (*DeleteProtectionGroupOutput, error) {
   960  	req, out := c.DeleteProtectionGroupRequest(input)
   961  	req.SetContext(ctx)
   962  	req.ApplyOptions(opts...)
   963  	return out, req.Send()
   964  }
   965  
   966  const opDeleteSubscription = "DeleteSubscription"
   967  
   968  // DeleteSubscriptionRequest generates a "aws/request.Request" representing the
   969  // client's request for the DeleteSubscription operation. The "output" return
   970  // value will be populated with the request's response once the request completes
   971  // successfully.
   972  //
   973  // Use "Send" method on the returned Request to send the API call to the service.
   974  // the "output" return value is not valid until after Send returns without error.
   975  //
   976  // See DeleteSubscription for more information on using the DeleteSubscription
   977  // API call, and error handling.
   978  //
   979  // This method is useful when you want to inject custom logic or configuration
   980  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   981  //
   982  //
   983  //    // Example sending a request using the DeleteSubscriptionRequest method.
   984  //    req, resp := client.DeleteSubscriptionRequest(params)
   985  //
   986  //    err := req.Send()
   987  //    if err == nil { // resp is now filled
   988  //        fmt.Println(resp)
   989  //    }
   990  //
   991  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteSubscription
   992  //
   993  // Deprecated: DeleteSubscription has been deprecated
   994  func (c *Shield) DeleteSubscriptionRequest(input *DeleteSubscriptionInput) (req *request.Request, output *DeleteSubscriptionOutput) {
   995  	if c.Client.Config.Logger != nil {
   996  		c.Client.Config.Logger.Log("This operation, DeleteSubscription, has been deprecated")
   997  	}
   998  	op := &request.Operation{
   999  		Name:       opDeleteSubscription,
  1000  		HTTPMethod: "POST",
  1001  		HTTPPath:   "/",
  1002  	}
  1003  
  1004  	if input == nil {
  1005  		input = &DeleteSubscriptionInput{}
  1006  	}
  1007  
  1008  	output = &DeleteSubscriptionOutput{}
  1009  	req = c.newRequest(op, input, output)
  1010  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1011  	return
  1012  }
  1013  
  1014  // DeleteSubscription API operation for AWS Shield.
  1015  //
  1016  // Removes Shield Advanced from an account. Shield Advanced requires a 1-year
  1017  // subscription commitment. You cannot delete a subscription prior to the completion
  1018  // of that commitment.
  1019  //
  1020  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1021  // with awserr.Error's Code and Message methods to get detailed information about
  1022  // the error.
  1023  //
  1024  // See the AWS API reference guide for AWS Shield's
  1025  // API operation DeleteSubscription for usage and error information.
  1026  //
  1027  // Returned Error Types:
  1028  //   * InternalErrorException
  1029  //   Exception that indicates that a problem occurred with the service infrastructure.
  1030  //   You can retry the request.
  1031  //
  1032  //   * LockedSubscriptionException
  1033  //   You are trying to update a subscription that has not yet completed the 1-year
  1034  //   commitment. You can change the AutoRenew parameter during the last 30 days
  1035  //   of your subscription. This exception indicates that you are attempting to
  1036  //   change AutoRenew prior to that period.
  1037  //
  1038  //   * ResourceNotFoundException
  1039  //   Exception indicating the specified resource does not exist. If available,
  1040  //   this exception includes details in additional properties.
  1041  //
  1042  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteSubscription
  1043  //
  1044  // Deprecated: DeleteSubscription has been deprecated
  1045  func (c *Shield) DeleteSubscription(input *DeleteSubscriptionInput) (*DeleteSubscriptionOutput, error) {
  1046  	req, out := c.DeleteSubscriptionRequest(input)
  1047  	return out, req.Send()
  1048  }
  1049  
  1050  // DeleteSubscriptionWithContext is the same as DeleteSubscription with the addition of
  1051  // the ability to pass a context and additional request options.
  1052  //
  1053  // See DeleteSubscription for details on how to use this API operation.
  1054  //
  1055  // The context must be non-nil and will be used for request cancellation. If
  1056  // the context is nil a panic will occur. In the future the SDK may create
  1057  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1058  // for more information on using Contexts.
  1059  //
  1060  // Deprecated: DeleteSubscriptionWithContext has been deprecated
  1061  func (c *Shield) DeleteSubscriptionWithContext(ctx aws.Context, input *DeleteSubscriptionInput, opts ...request.Option) (*DeleteSubscriptionOutput, error) {
  1062  	req, out := c.DeleteSubscriptionRequest(input)
  1063  	req.SetContext(ctx)
  1064  	req.ApplyOptions(opts...)
  1065  	return out, req.Send()
  1066  }
  1067  
  1068  const opDescribeAttack = "DescribeAttack"
  1069  
  1070  // DescribeAttackRequest generates a "aws/request.Request" representing the
  1071  // client's request for the DescribeAttack operation. The "output" return
  1072  // value will be populated with the request's response once the request completes
  1073  // successfully.
  1074  //
  1075  // Use "Send" method on the returned Request to send the API call to the service.
  1076  // the "output" return value is not valid until after Send returns without error.
  1077  //
  1078  // See DescribeAttack for more information on using the DescribeAttack
  1079  // API call, and error handling.
  1080  //
  1081  // This method is useful when you want to inject custom logic or configuration
  1082  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1083  //
  1084  //
  1085  //    // Example sending a request using the DescribeAttackRequest method.
  1086  //    req, resp := client.DescribeAttackRequest(params)
  1087  //
  1088  //    err := req.Send()
  1089  //    if err == nil { // resp is now filled
  1090  //        fmt.Println(resp)
  1091  //    }
  1092  //
  1093  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttack
  1094  func (c *Shield) DescribeAttackRequest(input *DescribeAttackInput) (req *request.Request, output *DescribeAttackOutput) {
  1095  	op := &request.Operation{
  1096  		Name:       opDescribeAttack,
  1097  		HTTPMethod: "POST",
  1098  		HTTPPath:   "/",
  1099  	}
  1100  
  1101  	if input == nil {
  1102  		input = &DescribeAttackInput{}
  1103  	}
  1104  
  1105  	output = &DescribeAttackOutput{}
  1106  	req = c.newRequest(op, input, output)
  1107  	return
  1108  }
  1109  
  1110  // DescribeAttack API operation for AWS Shield.
  1111  //
  1112  // Describes the details of a DDoS attack.
  1113  //
  1114  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1115  // with awserr.Error's Code and Message methods to get detailed information about
  1116  // the error.
  1117  //
  1118  // See the AWS API reference guide for AWS Shield's
  1119  // API operation DescribeAttack for usage and error information.
  1120  //
  1121  // Returned Error Types:
  1122  //   * InternalErrorException
  1123  //   Exception that indicates that a problem occurred with the service infrastructure.
  1124  //   You can retry the request.
  1125  //
  1126  //   * AccessDeniedException
  1127  //   Exception that indicates the specified AttackId does not exist, or the requester
  1128  //   does not have the appropriate permissions to access the AttackId.
  1129  //
  1130  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttack
  1131  func (c *Shield) DescribeAttack(input *DescribeAttackInput) (*DescribeAttackOutput, error) {
  1132  	req, out := c.DescribeAttackRequest(input)
  1133  	return out, req.Send()
  1134  }
  1135  
  1136  // DescribeAttackWithContext is the same as DescribeAttack with the addition of
  1137  // the ability to pass a context and additional request options.
  1138  //
  1139  // See DescribeAttack for details on how to use this API operation.
  1140  //
  1141  // The context must be non-nil and will be used for request cancellation. If
  1142  // the context is nil a panic will occur. In the future the SDK may create
  1143  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1144  // for more information on using Contexts.
  1145  func (c *Shield) DescribeAttackWithContext(ctx aws.Context, input *DescribeAttackInput, opts ...request.Option) (*DescribeAttackOutput, error) {
  1146  	req, out := c.DescribeAttackRequest(input)
  1147  	req.SetContext(ctx)
  1148  	req.ApplyOptions(opts...)
  1149  	return out, req.Send()
  1150  }
  1151  
  1152  const opDescribeAttackStatistics = "DescribeAttackStatistics"
  1153  
  1154  // DescribeAttackStatisticsRequest generates a "aws/request.Request" representing the
  1155  // client's request for the DescribeAttackStatistics operation. The "output" return
  1156  // value will be populated with the request's response once the request completes
  1157  // successfully.
  1158  //
  1159  // Use "Send" method on the returned Request to send the API call to the service.
  1160  // the "output" return value is not valid until after Send returns without error.
  1161  //
  1162  // See DescribeAttackStatistics for more information on using the DescribeAttackStatistics
  1163  // API call, and error handling.
  1164  //
  1165  // This method is useful when you want to inject custom logic or configuration
  1166  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1167  //
  1168  //
  1169  //    // Example sending a request using the DescribeAttackStatisticsRequest method.
  1170  //    req, resp := client.DescribeAttackStatisticsRequest(params)
  1171  //
  1172  //    err := req.Send()
  1173  //    if err == nil { // resp is now filled
  1174  //        fmt.Println(resp)
  1175  //    }
  1176  //
  1177  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatistics
  1178  func (c *Shield) DescribeAttackStatisticsRequest(input *DescribeAttackStatisticsInput) (req *request.Request, output *DescribeAttackStatisticsOutput) {
  1179  	op := &request.Operation{
  1180  		Name:       opDescribeAttackStatistics,
  1181  		HTTPMethod: "POST",
  1182  		HTTPPath:   "/",
  1183  	}
  1184  
  1185  	if input == nil {
  1186  		input = &DescribeAttackStatisticsInput{}
  1187  	}
  1188  
  1189  	output = &DescribeAttackStatisticsOutput{}
  1190  	req = c.newRequest(op, input, output)
  1191  	return
  1192  }
  1193  
  1194  // DescribeAttackStatistics API operation for AWS Shield.
  1195  //
  1196  // Provides information about the number and type of attacks Shield has detected
  1197  // in the last year for all resources that belong to your account, regardless
  1198  // of whether you've defined Shield protections for them. This operation is
  1199  // available to Shield customers as well as to Shield Advanced customers.
  1200  //
  1201  // The operation returns data for the time range of midnight UTC, one year ago,
  1202  // to midnight UTC, today. For example, if the current time is 2020-10-26 15:39:32
  1203  // PDT, equal to 2020-10-26 22:39:32 UTC, then the time range for the attack
  1204  // data returned is from 2019-10-26 00:00:00 UTC to 2020-10-26 00:00:00 UTC.
  1205  //
  1206  // The time range indicates the period covered by the attack statistics data
  1207  // items.
  1208  //
  1209  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1210  // with awserr.Error's Code and Message methods to get detailed information about
  1211  // the error.
  1212  //
  1213  // See the AWS API reference guide for AWS Shield's
  1214  // API operation DescribeAttackStatistics for usage and error information.
  1215  //
  1216  // Returned Error Types:
  1217  //   * InternalErrorException
  1218  //   Exception that indicates that a problem occurred with the service infrastructure.
  1219  //   You can retry the request.
  1220  //
  1221  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatistics
  1222  func (c *Shield) DescribeAttackStatistics(input *DescribeAttackStatisticsInput) (*DescribeAttackStatisticsOutput, error) {
  1223  	req, out := c.DescribeAttackStatisticsRequest(input)
  1224  	return out, req.Send()
  1225  }
  1226  
  1227  // DescribeAttackStatisticsWithContext is the same as DescribeAttackStatistics with the addition of
  1228  // the ability to pass a context and additional request options.
  1229  //
  1230  // See DescribeAttackStatistics for details on how to use this API operation.
  1231  //
  1232  // The context must be non-nil and will be used for request cancellation. If
  1233  // the context is nil a panic will occur. In the future the SDK may create
  1234  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1235  // for more information on using Contexts.
  1236  func (c *Shield) DescribeAttackStatisticsWithContext(ctx aws.Context, input *DescribeAttackStatisticsInput, opts ...request.Option) (*DescribeAttackStatisticsOutput, error) {
  1237  	req, out := c.DescribeAttackStatisticsRequest(input)
  1238  	req.SetContext(ctx)
  1239  	req.ApplyOptions(opts...)
  1240  	return out, req.Send()
  1241  }
  1242  
  1243  const opDescribeDRTAccess = "DescribeDRTAccess"
  1244  
  1245  // DescribeDRTAccessRequest generates a "aws/request.Request" representing the
  1246  // client's request for the DescribeDRTAccess operation. The "output" return
  1247  // value will be populated with the request's response once the request completes
  1248  // successfully.
  1249  //
  1250  // Use "Send" method on the returned Request to send the API call to the service.
  1251  // the "output" return value is not valid until after Send returns without error.
  1252  //
  1253  // See DescribeDRTAccess for more information on using the DescribeDRTAccess
  1254  // API call, and error handling.
  1255  //
  1256  // This method is useful when you want to inject custom logic or configuration
  1257  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1258  //
  1259  //
  1260  //    // Example sending a request using the DescribeDRTAccessRequest method.
  1261  //    req, resp := client.DescribeDRTAccessRequest(params)
  1262  //
  1263  //    err := req.Send()
  1264  //    if err == nil { // resp is now filled
  1265  //        fmt.Println(resp)
  1266  //    }
  1267  //
  1268  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccess
  1269  func (c *Shield) DescribeDRTAccessRequest(input *DescribeDRTAccessInput) (req *request.Request, output *DescribeDRTAccessOutput) {
  1270  	op := &request.Operation{
  1271  		Name:       opDescribeDRTAccess,
  1272  		HTTPMethod: "POST",
  1273  		HTTPPath:   "/",
  1274  	}
  1275  
  1276  	if input == nil {
  1277  		input = &DescribeDRTAccessInput{}
  1278  	}
  1279  
  1280  	output = &DescribeDRTAccessOutput{}
  1281  	req = c.newRequest(op, input, output)
  1282  	return
  1283  }
  1284  
  1285  // DescribeDRTAccess API operation for AWS Shield.
  1286  //
  1287  // Returns the current role and list of Amazon S3 log buckets used by the Shield
  1288  // Response Team (SRT) to access your Amazon Web Services account while assisting
  1289  // with attack mitigation.
  1290  //
  1291  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1292  // with awserr.Error's Code and Message methods to get detailed information about
  1293  // the error.
  1294  //
  1295  // See the AWS API reference guide for AWS Shield's
  1296  // API operation DescribeDRTAccess for usage and error information.
  1297  //
  1298  // Returned Error Types:
  1299  //   * InternalErrorException
  1300  //   Exception that indicates that a problem occurred with the service infrastructure.
  1301  //   You can retry the request.
  1302  //
  1303  //   * ResourceNotFoundException
  1304  //   Exception indicating the specified resource does not exist. If available,
  1305  //   this exception includes details in additional properties.
  1306  //
  1307  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccess
  1308  func (c *Shield) DescribeDRTAccess(input *DescribeDRTAccessInput) (*DescribeDRTAccessOutput, error) {
  1309  	req, out := c.DescribeDRTAccessRequest(input)
  1310  	return out, req.Send()
  1311  }
  1312  
  1313  // DescribeDRTAccessWithContext is the same as DescribeDRTAccess with the addition of
  1314  // the ability to pass a context and additional request options.
  1315  //
  1316  // See DescribeDRTAccess for details on how to use this API operation.
  1317  //
  1318  // The context must be non-nil and will be used for request cancellation. If
  1319  // the context is nil a panic will occur. In the future the SDK may create
  1320  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1321  // for more information on using Contexts.
  1322  func (c *Shield) DescribeDRTAccessWithContext(ctx aws.Context, input *DescribeDRTAccessInput, opts ...request.Option) (*DescribeDRTAccessOutput, error) {
  1323  	req, out := c.DescribeDRTAccessRequest(input)
  1324  	req.SetContext(ctx)
  1325  	req.ApplyOptions(opts...)
  1326  	return out, req.Send()
  1327  }
  1328  
  1329  const opDescribeEmergencyContactSettings = "DescribeEmergencyContactSettings"
  1330  
  1331  // DescribeEmergencyContactSettingsRequest generates a "aws/request.Request" representing the
  1332  // client's request for the DescribeEmergencyContactSettings operation. The "output" return
  1333  // value will be populated with the request's response once the request completes
  1334  // successfully.
  1335  //
  1336  // Use "Send" method on the returned Request to send the API call to the service.
  1337  // the "output" return value is not valid until after Send returns without error.
  1338  //
  1339  // See DescribeEmergencyContactSettings for more information on using the DescribeEmergencyContactSettings
  1340  // API call, and error handling.
  1341  //
  1342  // This method is useful when you want to inject custom logic or configuration
  1343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1344  //
  1345  //
  1346  //    // Example sending a request using the DescribeEmergencyContactSettingsRequest method.
  1347  //    req, resp := client.DescribeEmergencyContactSettingsRequest(params)
  1348  //
  1349  //    err := req.Send()
  1350  //    if err == nil { // resp is now filled
  1351  //        fmt.Println(resp)
  1352  //    }
  1353  //
  1354  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettings
  1355  func (c *Shield) DescribeEmergencyContactSettingsRequest(input *DescribeEmergencyContactSettingsInput) (req *request.Request, output *DescribeEmergencyContactSettingsOutput) {
  1356  	op := &request.Operation{
  1357  		Name:       opDescribeEmergencyContactSettings,
  1358  		HTTPMethod: "POST",
  1359  		HTTPPath:   "/",
  1360  	}
  1361  
  1362  	if input == nil {
  1363  		input = &DescribeEmergencyContactSettingsInput{}
  1364  	}
  1365  
  1366  	output = &DescribeEmergencyContactSettingsOutput{}
  1367  	req = c.newRequest(op, input, output)
  1368  	return
  1369  }
  1370  
  1371  // DescribeEmergencyContactSettings API operation for AWS Shield.
  1372  //
  1373  // A list of email addresses and phone numbers that the Shield Response Team
  1374  // (SRT) can use to contact you if you have proactive engagement enabled, for
  1375  // escalations to the SRT and to initiate proactive customer support.
  1376  //
  1377  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1378  // with awserr.Error's Code and Message methods to get detailed information about
  1379  // the error.
  1380  //
  1381  // See the AWS API reference guide for AWS Shield's
  1382  // API operation DescribeEmergencyContactSettings for usage and error information.
  1383  //
  1384  // Returned Error Types:
  1385  //   * InternalErrorException
  1386  //   Exception that indicates that a problem occurred with the service infrastructure.
  1387  //   You can retry the request.
  1388  //
  1389  //   * ResourceNotFoundException
  1390  //   Exception indicating the specified resource does not exist. If available,
  1391  //   this exception includes details in additional properties.
  1392  //
  1393  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettings
  1394  func (c *Shield) DescribeEmergencyContactSettings(input *DescribeEmergencyContactSettingsInput) (*DescribeEmergencyContactSettingsOutput, error) {
  1395  	req, out := c.DescribeEmergencyContactSettingsRequest(input)
  1396  	return out, req.Send()
  1397  }
  1398  
  1399  // DescribeEmergencyContactSettingsWithContext is the same as DescribeEmergencyContactSettings with the addition of
  1400  // the ability to pass a context and additional request options.
  1401  //
  1402  // See DescribeEmergencyContactSettings for details on how to use this API operation.
  1403  //
  1404  // The context must be non-nil and will be used for request cancellation. If
  1405  // the context is nil a panic will occur. In the future the SDK may create
  1406  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1407  // for more information on using Contexts.
  1408  func (c *Shield) DescribeEmergencyContactSettingsWithContext(ctx aws.Context, input *DescribeEmergencyContactSettingsInput, opts ...request.Option) (*DescribeEmergencyContactSettingsOutput, error) {
  1409  	req, out := c.DescribeEmergencyContactSettingsRequest(input)
  1410  	req.SetContext(ctx)
  1411  	req.ApplyOptions(opts...)
  1412  	return out, req.Send()
  1413  }
  1414  
  1415  const opDescribeProtection = "DescribeProtection"
  1416  
  1417  // DescribeProtectionRequest generates a "aws/request.Request" representing the
  1418  // client's request for the DescribeProtection operation. The "output" return
  1419  // value will be populated with the request's response once the request completes
  1420  // successfully.
  1421  //
  1422  // Use "Send" method on the returned Request to send the API call to the service.
  1423  // the "output" return value is not valid until after Send returns without error.
  1424  //
  1425  // See DescribeProtection for more information on using the DescribeProtection
  1426  // API call, and error handling.
  1427  //
  1428  // This method is useful when you want to inject custom logic or configuration
  1429  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1430  //
  1431  //
  1432  //    // Example sending a request using the DescribeProtectionRequest method.
  1433  //    req, resp := client.DescribeProtectionRequest(params)
  1434  //
  1435  //    err := req.Send()
  1436  //    if err == nil { // resp is now filled
  1437  //        fmt.Println(resp)
  1438  //    }
  1439  //
  1440  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtection
  1441  func (c *Shield) DescribeProtectionRequest(input *DescribeProtectionInput) (req *request.Request, output *DescribeProtectionOutput) {
  1442  	op := &request.Operation{
  1443  		Name:       opDescribeProtection,
  1444  		HTTPMethod: "POST",
  1445  		HTTPPath:   "/",
  1446  	}
  1447  
  1448  	if input == nil {
  1449  		input = &DescribeProtectionInput{}
  1450  	}
  1451  
  1452  	output = &DescribeProtectionOutput{}
  1453  	req = c.newRequest(op, input, output)
  1454  	return
  1455  }
  1456  
  1457  // DescribeProtection API operation for AWS Shield.
  1458  //
  1459  // Lists the details of a Protection object.
  1460  //
  1461  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1462  // with awserr.Error's Code and Message methods to get detailed information about
  1463  // the error.
  1464  //
  1465  // See the AWS API reference guide for AWS Shield's
  1466  // API operation DescribeProtection for usage and error information.
  1467  //
  1468  // Returned Error Types:
  1469  //   * InternalErrorException
  1470  //   Exception that indicates that a problem occurred with the service infrastructure.
  1471  //   You can retry the request.
  1472  //
  1473  //   * InvalidParameterException
  1474  //   Exception that indicates that the parameters passed to the API are invalid.
  1475  //   If available, this exception includes details in additional properties.
  1476  //
  1477  //   * ResourceNotFoundException
  1478  //   Exception indicating the specified resource does not exist. If available,
  1479  //   this exception includes details in additional properties.
  1480  //
  1481  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtection
  1482  func (c *Shield) DescribeProtection(input *DescribeProtectionInput) (*DescribeProtectionOutput, error) {
  1483  	req, out := c.DescribeProtectionRequest(input)
  1484  	return out, req.Send()
  1485  }
  1486  
  1487  // DescribeProtectionWithContext is the same as DescribeProtection with the addition of
  1488  // the ability to pass a context and additional request options.
  1489  //
  1490  // See DescribeProtection for details on how to use this API operation.
  1491  //
  1492  // The context must be non-nil and will be used for request cancellation. If
  1493  // the context is nil a panic will occur. In the future the SDK may create
  1494  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1495  // for more information on using Contexts.
  1496  func (c *Shield) DescribeProtectionWithContext(ctx aws.Context, input *DescribeProtectionInput, opts ...request.Option) (*DescribeProtectionOutput, error) {
  1497  	req, out := c.DescribeProtectionRequest(input)
  1498  	req.SetContext(ctx)
  1499  	req.ApplyOptions(opts...)
  1500  	return out, req.Send()
  1501  }
  1502  
  1503  const opDescribeProtectionGroup = "DescribeProtectionGroup"
  1504  
  1505  // DescribeProtectionGroupRequest generates a "aws/request.Request" representing the
  1506  // client's request for the DescribeProtectionGroup operation. The "output" return
  1507  // value will be populated with the request's response once the request completes
  1508  // successfully.
  1509  //
  1510  // Use "Send" method on the returned Request to send the API call to the service.
  1511  // the "output" return value is not valid until after Send returns without error.
  1512  //
  1513  // See DescribeProtectionGroup for more information on using the DescribeProtectionGroup
  1514  // API call, and error handling.
  1515  //
  1516  // This method is useful when you want to inject custom logic or configuration
  1517  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1518  //
  1519  //
  1520  //    // Example sending a request using the DescribeProtectionGroupRequest method.
  1521  //    req, resp := client.DescribeProtectionGroupRequest(params)
  1522  //
  1523  //    err := req.Send()
  1524  //    if err == nil { // resp is now filled
  1525  //        fmt.Println(resp)
  1526  //    }
  1527  //
  1528  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroup
  1529  func (c *Shield) DescribeProtectionGroupRequest(input *DescribeProtectionGroupInput) (req *request.Request, output *DescribeProtectionGroupOutput) {
  1530  	op := &request.Operation{
  1531  		Name:       opDescribeProtectionGroup,
  1532  		HTTPMethod: "POST",
  1533  		HTTPPath:   "/",
  1534  	}
  1535  
  1536  	if input == nil {
  1537  		input = &DescribeProtectionGroupInput{}
  1538  	}
  1539  
  1540  	output = &DescribeProtectionGroupOutput{}
  1541  	req = c.newRequest(op, input, output)
  1542  	return
  1543  }
  1544  
  1545  // DescribeProtectionGroup API operation for AWS Shield.
  1546  //
  1547  // Returns the specification for the specified protection group.
  1548  //
  1549  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1550  // with awserr.Error's Code and Message methods to get detailed information about
  1551  // the error.
  1552  //
  1553  // See the AWS API reference guide for AWS Shield's
  1554  // API operation DescribeProtectionGroup for usage and error information.
  1555  //
  1556  // Returned Error Types:
  1557  //   * InternalErrorException
  1558  //   Exception that indicates that a problem occurred with the service infrastructure.
  1559  //   You can retry the request.
  1560  //
  1561  //   * ResourceNotFoundException
  1562  //   Exception indicating the specified resource does not exist. If available,
  1563  //   this exception includes details in additional properties.
  1564  //
  1565  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroup
  1566  func (c *Shield) DescribeProtectionGroup(input *DescribeProtectionGroupInput) (*DescribeProtectionGroupOutput, error) {
  1567  	req, out := c.DescribeProtectionGroupRequest(input)
  1568  	return out, req.Send()
  1569  }
  1570  
  1571  // DescribeProtectionGroupWithContext is the same as DescribeProtectionGroup with the addition of
  1572  // the ability to pass a context and additional request options.
  1573  //
  1574  // See DescribeProtectionGroup for details on how to use this API operation.
  1575  //
  1576  // The context must be non-nil and will be used for request cancellation. If
  1577  // the context is nil a panic will occur. In the future the SDK may create
  1578  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1579  // for more information on using Contexts.
  1580  func (c *Shield) DescribeProtectionGroupWithContext(ctx aws.Context, input *DescribeProtectionGroupInput, opts ...request.Option) (*DescribeProtectionGroupOutput, error) {
  1581  	req, out := c.DescribeProtectionGroupRequest(input)
  1582  	req.SetContext(ctx)
  1583  	req.ApplyOptions(opts...)
  1584  	return out, req.Send()
  1585  }
  1586  
  1587  const opDescribeSubscription = "DescribeSubscription"
  1588  
  1589  // DescribeSubscriptionRequest generates a "aws/request.Request" representing the
  1590  // client's request for the DescribeSubscription operation. The "output" return
  1591  // value will be populated with the request's response once the request completes
  1592  // successfully.
  1593  //
  1594  // Use "Send" method on the returned Request to send the API call to the service.
  1595  // the "output" return value is not valid until after Send returns without error.
  1596  //
  1597  // See DescribeSubscription for more information on using the DescribeSubscription
  1598  // API call, and error handling.
  1599  //
  1600  // This method is useful when you want to inject custom logic or configuration
  1601  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1602  //
  1603  //
  1604  //    // Example sending a request using the DescribeSubscriptionRequest method.
  1605  //    req, resp := client.DescribeSubscriptionRequest(params)
  1606  //
  1607  //    err := req.Send()
  1608  //    if err == nil { // resp is now filled
  1609  //        fmt.Println(resp)
  1610  //    }
  1611  //
  1612  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscription
  1613  func (c *Shield) DescribeSubscriptionRequest(input *DescribeSubscriptionInput) (req *request.Request, output *DescribeSubscriptionOutput) {
  1614  	op := &request.Operation{
  1615  		Name:       opDescribeSubscription,
  1616  		HTTPMethod: "POST",
  1617  		HTTPPath:   "/",
  1618  	}
  1619  
  1620  	if input == nil {
  1621  		input = &DescribeSubscriptionInput{}
  1622  	}
  1623  
  1624  	output = &DescribeSubscriptionOutput{}
  1625  	req = c.newRequest(op, input, output)
  1626  	return
  1627  }
  1628  
  1629  // DescribeSubscription API operation for AWS Shield.
  1630  //
  1631  // Provides details about the Shield Advanced subscription for an account.
  1632  //
  1633  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1634  // with awserr.Error's Code and Message methods to get detailed information about
  1635  // the error.
  1636  //
  1637  // See the AWS API reference guide for AWS Shield's
  1638  // API operation DescribeSubscription for usage and error information.
  1639  //
  1640  // Returned Error Types:
  1641  //   * InternalErrorException
  1642  //   Exception that indicates that a problem occurred with the service infrastructure.
  1643  //   You can retry the request.
  1644  //
  1645  //   * ResourceNotFoundException
  1646  //   Exception indicating the specified resource does not exist. If available,
  1647  //   this exception includes details in additional properties.
  1648  //
  1649  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscription
  1650  func (c *Shield) DescribeSubscription(input *DescribeSubscriptionInput) (*DescribeSubscriptionOutput, error) {
  1651  	req, out := c.DescribeSubscriptionRequest(input)
  1652  	return out, req.Send()
  1653  }
  1654  
  1655  // DescribeSubscriptionWithContext is the same as DescribeSubscription with the addition of
  1656  // the ability to pass a context and additional request options.
  1657  //
  1658  // See DescribeSubscription for details on how to use this API operation.
  1659  //
  1660  // The context must be non-nil and will be used for request cancellation. If
  1661  // the context is nil a panic will occur. In the future the SDK may create
  1662  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1663  // for more information on using Contexts.
  1664  func (c *Shield) DescribeSubscriptionWithContext(ctx aws.Context, input *DescribeSubscriptionInput, opts ...request.Option) (*DescribeSubscriptionOutput, error) {
  1665  	req, out := c.DescribeSubscriptionRequest(input)
  1666  	req.SetContext(ctx)
  1667  	req.ApplyOptions(opts...)
  1668  	return out, req.Send()
  1669  }
  1670  
  1671  const opDisableProactiveEngagement = "DisableProactiveEngagement"
  1672  
  1673  // DisableProactiveEngagementRequest generates a "aws/request.Request" representing the
  1674  // client's request for the DisableProactiveEngagement operation. The "output" return
  1675  // value will be populated with the request's response once the request completes
  1676  // successfully.
  1677  //
  1678  // Use "Send" method on the returned Request to send the API call to the service.
  1679  // the "output" return value is not valid until after Send returns without error.
  1680  //
  1681  // See DisableProactiveEngagement for more information on using the DisableProactiveEngagement
  1682  // API call, and error handling.
  1683  //
  1684  // This method is useful when you want to inject custom logic or configuration
  1685  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1686  //
  1687  //
  1688  //    // Example sending a request using the DisableProactiveEngagementRequest method.
  1689  //    req, resp := client.DisableProactiveEngagementRequest(params)
  1690  //
  1691  //    err := req.Send()
  1692  //    if err == nil { // resp is now filled
  1693  //        fmt.Println(resp)
  1694  //    }
  1695  //
  1696  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisableProactiveEngagement
  1697  func (c *Shield) DisableProactiveEngagementRequest(input *DisableProactiveEngagementInput) (req *request.Request, output *DisableProactiveEngagementOutput) {
  1698  	op := &request.Operation{
  1699  		Name:       opDisableProactiveEngagement,
  1700  		HTTPMethod: "POST",
  1701  		HTTPPath:   "/",
  1702  	}
  1703  
  1704  	if input == nil {
  1705  		input = &DisableProactiveEngagementInput{}
  1706  	}
  1707  
  1708  	output = &DisableProactiveEngagementOutput{}
  1709  	req = c.newRequest(op, input, output)
  1710  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1711  	return
  1712  }
  1713  
  1714  // DisableProactiveEngagement API operation for AWS Shield.
  1715  //
  1716  // Removes authorization from the Shield Response Team (SRT) to notify contacts
  1717  // about escalations to the SRT and to initiate proactive customer support.
  1718  //
  1719  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1720  // with awserr.Error's Code and Message methods to get detailed information about
  1721  // the error.
  1722  //
  1723  // See the AWS API reference guide for AWS Shield's
  1724  // API operation DisableProactiveEngagement for usage and error information.
  1725  //
  1726  // Returned Error Types:
  1727  //   * InternalErrorException
  1728  //   Exception that indicates that a problem occurred with the service infrastructure.
  1729  //   You can retry the request.
  1730  //
  1731  //   * InvalidOperationException
  1732  //   Exception that indicates that the operation would not cause any change to
  1733  //   occur.
  1734  //
  1735  //   * InvalidParameterException
  1736  //   Exception that indicates that the parameters passed to the API are invalid.
  1737  //   If available, this exception includes details in additional properties.
  1738  //
  1739  //   * ResourceNotFoundException
  1740  //   Exception indicating the specified resource does not exist. If available,
  1741  //   this exception includes details in additional properties.
  1742  //
  1743  //   * OptimisticLockException
  1744  //   Exception that indicates that the resource state has been modified by another
  1745  //   client. Retrieve the resource and then retry your request.
  1746  //
  1747  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisableProactiveEngagement
  1748  func (c *Shield) DisableProactiveEngagement(input *DisableProactiveEngagementInput) (*DisableProactiveEngagementOutput, error) {
  1749  	req, out := c.DisableProactiveEngagementRequest(input)
  1750  	return out, req.Send()
  1751  }
  1752  
  1753  // DisableProactiveEngagementWithContext is the same as DisableProactiveEngagement with the addition of
  1754  // the ability to pass a context and additional request options.
  1755  //
  1756  // See DisableProactiveEngagement for details on how to use this API operation.
  1757  //
  1758  // The context must be non-nil and will be used for request cancellation. If
  1759  // the context is nil a panic will occur. In the future the SDK may create
  1760  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1761  // for more information on using Contexts.
  1762  func (c *Shield) DisableProactiveEngagementWithContext(ctx aws.Context, input *DisableProactiveEngagementInput, opts ...request.Option) (*DisableProactiveEngagementOutput, error) {
  1763  	req, out := c.DisableProactiveEngagementRequest(input)
  1764  	req.SetContext(ctx)
  1765  	req.ApplyOptions(opts...)
  1766  	return out, req.Send()
  1767  }
  1768  
  1769  const opDisassociateDRTLogBucket = "DisassociateDRTLogBucket"
  1770  
  1771  // DisassociateDRTLogBucketRequest generates a "aws/request.Request" representing the
  1772  // client's request for the DisassociateDRTLogBucket operation. The "output" return
  1773  // value will be populated with the request's response once the request completes
  1774  // successfully.
  1775  //
  1776  // Use "Send" method on the returned Request to send the API call to the service.
  1777  // the "output" return value is not valid until after Send returns without error.
  1778  //
  1779  // See DisassociateDRTLogBucket for more information on using the DisassociateDRTLogBucket
  1780  // API call, and error handling.
  1781  //
  1782  // This method is useful when you want to inject custom logic or configuration
  1783  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1784  //
  1785  //
  1786  //    // Example sending a request using the DisassociateDRTLogBucketRequest method.
  1787  //    req, resp := client.DisassociateDRTLogBucketRequest(params)
  1788  //
  1789  //    err := req.Send()
  1790  //    if err == nil { // resp is now filled
  1791  //        fmt.Println(resp)
  1792  //    }
  1793  //
  1794  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucket
  1795  func (c *Shield) DisassociateDRTLogBucketRequest(input *DisassociateDRTLogBucketInput) (req *request.Request, output *DisassociateDRTLogBucketOutput) {
  1796  	op := &request.Operation{
  1797  		Name:       opDisassociateDRTLogBucket,
  1798  		HTTPMethod: "POST",
  1799  		HTTPPath:   "/",
  1800  	}
  1801  
  1802  	if input == nil {
  1803  		input = &DisassociateDRTLogBucketInput{}
  1804  	}
  1805  
  1806  	output = &DisassociateDRTLogBucketOutput{}
  1807  	req = c.newRequest(op, input, output)
  1808  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1809  	return
  1810  }
  1811  
  1812  // DisassociateDRTLogBucket API operation for AWS Shield.
  1813  //
  1814  // Removes the Shield Response Team's (SRT) access to the specified Amazon S3
  1815  // bucket containing the logs that you shared previously.
  1816  //
  1817  // To make a DisassociateDRTLogBucket request, you must be subscribed to the
  1818  // Business Support plan (https://aws.amazon.com/premiumsupport/business-support/)
  1819  // or the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
  1820  // However, if you are not subscribed to one of these support plans, but had
  1821  // been previously and had granted the SRT access to your account, you can submit
  1822  // a DisassociateDRTLogBucket request to remove this access.
  1823  //
  1824  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1825  // with awserr.Error's Code and Message methods to get detailed information about
  1826  // the error.
  1827  //
  1828  // See the AWS API reference guide for AWS Shield's
  1829  // API operation DisassociateDRTLogBucket for usage and error information.
  1830  //
  1831  // Returned Error Types:
  1832  //   * InternalErrorException
  1833  //   Exception that indicates that a problem occurred with the service infrastructure.
  1834  //   You can retry the request.
  1835  //
  1836  //   * InvalidOperationException
  1837  //   Exception that indicates that the operation would not cause any change to
  1838  //   occur.
  1839  //
  1840  //   * NoAssociatedRoleException
  1841  //   The ARN of the role that you specifed does not exist.
  1842  //
  1843  //   * AccessDeniedForDependencyException
  1844  //   In order to grant the necessary access to the Shield Response Team (SRT)
  1845  //   the user submitting the request must have the iam:PassRole permission. This
  1846  //   error indicates the user did not have the appropriate permissions. For more
  1847  //   information, see Granting a User Permissions to Pass a Role to an Amazon
  1848  //   Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
  1849  //
  1850  //   * OptimisticLockException
  1851  //   Exception that indicates that the resource state has been modified by another
  1852  //   client. Retrieve the resource and then retry your request.
  1853  //
  1854  //   * ResourceNotFoundException
  1855  //   Exception indicating the specified resource does not exist. If available,
  1856  //   this exception includes details in additional properties.
  1857  //
  1858  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucket
  1859  func (c *Shield) DisassociateDRTLogBucket(input *DisassociateDRTLogBucketInput) (*DisassociateDRTLogBucketOutput, error) {
  1860  	req, out := c.DisassociateDRTLogBucketRequest(input)
  1861  	return out, req.Send()
  1862  }
  1863  
  1864  // DisassociateDRTLogBucketWithContext is the same as DisassociateDRTLogBucket with the addition of
  1865  // the ability to pass a context and additional request options.
  1866  //
  1867  // See DisassociateDRTLogBucket for details on how to use this API operation.
  1868  //
  1869  // The context must be non-nil and will be used for request cancellation. If
  1870  // the context is nil a panic will occur. In the future the SDK may create
  1871  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1872  // for more information on using Contexts.
  1873  func (c *Shield) DisassociateDRTLogBucketWithContext(ctx aws.Context, input *DisassociateDRTLogBucketInput, opts ...request.Option) (*DisassociateDRTLogBucketOutput, error) {
  1874  	req, out := c.DisassociateDRTLogBucketRequest(input)
  1875  	req.SetContext(ctx)
  1876  	req.ApplyOptions(opts...)
  1877  	return out, req.Send()
  1878  }
  1879  
  1880  const opDisassociateDRTRole = "DisassociateDRTRole"
  1881  
  1882  // DisassociateDRTRoleRequest generates a "aws/request.Request" representing the
  1883  // client's request for the DisassociateDRTRole operation. The "output" return
  1884  // value will be populated with the request's response once the request completes
  1885  // successfully.
  1886  //
  1887  // Use "Send" method on the returned Request to send the API call to the service.
  1888  // the "output" return value is not valid until after Send returns without error.
  1889  //
  1890  // See DisassociateDRTRole for more information on using the DisassociateDRTRole
  1891  // API call, and error handling.
  1892  //
  1893  // This method is useful when you want to inject custom logic or configuration
  1894  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1895  //
  1896  //
  1897  //    // Example sending a request using the DisassociateDRTRoleRequest method.
  1898  //    req, resp := client.DisassociateDRTRoleRequest(params)
  1899  //
  1900  //    err := req.Send()
  1901  //    if err == nil { // resp is now filled
  1902  //        fmt.Println(resp)
  1903  //    }
  1904  //
  1905  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRole
  1906  func (c *Shield) DisassociateDRTRoleRequest(input *DisassociateDRTRoleInput) (req *request.Request, output *DisassociateDRTRoleOutput) {
  1907  	op := &request.Operation{
  1908  		Name:       opDisassociateDRTRole,
  1909  		HTTPMethod: "POST",
  1910  		HTTPPath:   "/",
  1911  	}
  1912  
  1913  	if input == nil {
  1914  		input = &DisassociateDRTRoleInput{}
  1915  	}
  1916  
  1917  	output = &DisassociateDRTRoleOutput{}
  1918  	req = c.newRequest(op, input, output)
  1919  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1920  	return
  1921  }
  1922  
  1923  // DisassociateDRTRole API operation for AWS Shield.
  1924  //
  1925  // Removes the Shield Response Team's (SRT) access to your Amazon Web Services
  1926  // account.
  1927  //
  1928  // To make a DisassociateDRTRole request, you must be subscribed to the Business
  1929  // Support plan (https://aws.amazon.com/premiumsupport/business-support/) or
  1930  // the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
  1931  // However, if you are not subscribed to one of these support plans, but had
  1932  // been previously and had granted the SRT access to your account, you can submit
  1933  // a DisassociateDRTRole request to remove this access.
  1934  //
  1935  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1936  // with awserr.Error's Code and Message methods to get detailed information about
  1937  // the error.
  1938  //
  1939  // See the AWS API reference guide for AWS Shield's
  1940  // API operation DisassociateDRTRole for usage and error information.
  1941  //
  1942  // Returned Error Types:
  1943  //   * InternalErrorException
  1944  //   Exception that indicates that a problem occurred with the service infrastructure.
  1945  //   You can retry the request.
  1946  //
  1947  //   * InvalidOperationException
  1948  //   Exception that indicates that the operation would not cause any change to
  1949  //   occur.
  1950  //
  1951  //   * OptimisticLockException
  1952  //   Exception that indicates that the resource state has been modified by another
  1953  //   client. Retrieve the resource and then retry your request.
  1954  //
  1955  //   * ResourceNotFoundException
  1956  //   Exception indicating the specified resource does not exist. If available,
  1957  //   this exception includes details in additional properties.
  1958  //
  1959  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRole
  1960  func (c *Shield) DisassociateDRTRole(input *DisassociateDRTRoleInput) (*DisassociateDRTRoleOutput, error) {
  1961  	req, out := c.DisassociateDRTRoleRequest(input)
  1962  	return out, req.Send()
  1963  }
  1964  
  1965  // DisassociateDRTRoleWithContext is the same as DisassociateDRTRole with the addition of
  1966  // the ability to pass a context and additional request options.
  1967  //
  1968  // See DisassociateDRTRole for details on how to use this API operation.
  1969  //
  1970  // The context must be non-nil and will be used for request cancellation. If
  1971  // the context is nil a panic will occur. In the future the SDK may create
  1972  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1973  // for more information on using Contexts.
  1974  func (c *Shield) DisassociateDRTRoleWithContext(ctx aws.Context, input *DisassociateDRTRoleInput, opts ...request.Option) (*DisassociateDRTRoleOutput, error) {
  1975  	req, out := c.DisassociateDRTRoleRequest(input)
  1976  	req.SetContext(ctx)
  1977  	req.ApplyOptions(opts...)
  1978  	return out, req.Send()
  1979  }
  1980  
  1981  const opDisassociateHealthCheck = "DisassociateHealthCheck"
  1982  
  1983  // DisassociateHealthCheckRequest generates a "aws/request.Request" representing the
  1984  // client's request for the DisassociateHealthCheck operation. The "output" return
  1985  // value will be populated with the request's response once the request completes
  1986  // successfully.
  1987  //
  1988  // Use "Send" method on the returned Request to send the API call to the service.
  1989  // the "output" return value is not valid until after Send returns without error.
  1990  //
  1991  // See DisassociateHealthCheck for more information on using the DisassociateHealthCheck
  1992  // API call, and error handling.
  1993  //
  1994  // This method is useful when you want to inject custom logic or configuration
  1995  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1996  //
  1997  //
  1998  //    // Example sending a request using the DisassociateHealthCheckRequest method.
  1999  //    req, resp := client.DisassociateHealthCheckRequest(params)
  2000  //
  2001  //    err := req.Send()
  2002  //    if err == nil { // resp is now filled
  2003  //        fmt.Println(resp)
  2004  //    }
  2005  //
  2006  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateHealthCheck
  2007  func (c *Shield) DisassociateHealthCheckRequest(input *DisassociateHealthCheckInput) (req *request.Request, output *DisassociateHealthCheckOutput) {
  2008  	op := &request.Operation{
  2009  		Name:       opDisassociateHealthCheck,
  2010  		HTTPMethod: "POST",
  2011  		HTTPPath:   "/",
  2012  	}
  2013  
  2014  	if input == nil {
  2015  		input = &DisassociateHealthCheckInput{}
  2016  	}
  2017  
  2018  	output = &DisassociateHealthCheckOutput{}
  2019  	req = c.newRequest(op, input, output)
  2020  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2021  	return
  2022  }
  2023  
  2024  // DisassociateHealthCheck API operation for AWS Shield.
  2025  //
  2026  // Removes health-based detection from the Shield Advanced protection for a
  2027  // resource. Shield Advanced health-based detection uses the health of your
  2028  // Amazon Web Services resource to improve responsiveness and accuracy in attack
  2029  // detection and mitigation.
  2030  //
  2031  // You define the health check in Route 53 and then associate or disassociate
  2032  // it with your Shield Advanced protection. For more information, see Shield
  2033  // Advanced Health-Based Detection (https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html#ddos-advanced-health-check-option)
  2034  // in the WAF Developer Guide.
  2035  //
  2036  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2037  // with awserr.Error's Code and Message methods to get detailed information about
  2038  // the error.
  2039  //
  2040  // See the AWS API reference guide for AWS Shield's
  2041  // API operation DisassociateHealthCheck for usage and error information.
  2042  //
  2043  // Returned Error Types:
  2044  //   * InternalErrorException
  2045  //   Exception that indicates that a problem occurred with the service infrastructure.
  2046  //   You can retry the request.
  2047  //
  2048  //   * InvalidParameterException
  2049  //   Exception that indicates that the parameters passed to the API are invalid.
  2050  //   If available, this exception includes details in additional properties.
  2051  //
  2052  //   * ResourceNotFoundException
  2053  //   Exception indicating the specified resource does not exist. If available,
  2054  //   this exception includes details in additional properties.
  2055  //
  2056  //   * OptimisticLockException
  2057  //   Exception that indicates that the resource state has been modified by another
  2058  //   client. Retrieve the resource and then retry your request.
  2059  //
  2060  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateHealthCheck
  2061  func (c *Shield) DisassociateHealthCheck(input *DisassociateHealthCheckInput) (*DisassociateHealthCheckOutput, error) {
  2062  	req, out := c.DisassociateHealthCheckRequest(input)
  2063  	return out, req.Send()
  2064  }
  2065  
  2066  // DisassociateHealthCheckWithContext is the same as DisassociateHealthCheck with the addition of
  2067  // the ability to pass a context and additional request options.
  2068  //
  2069  // See DisassociateHealthCheck 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 *Shield) DisassociateHealthCheckWithContext(ctx aws.Context, input *DisassociateHealthCheckInput, opts ...request.Option) (*DisassociateHealthCheckOutput, error) {
  2076  	req, out := c.DisassociateHealthCheckRequest(input)
  2077  	req.SetContext(ctx)
  2078  	req.ApplyOptions(opts...)
  2079  	return out, req.Send()
  2080  }
  2081  
  2082  const opEnableProactiveEngagement = "EnableProactiveEngagement"
  2083  
  2084  // EnableProactiveEngagementRequest generates a "aws/request.Request" representing the
  2085  // client's request for the EnableProactiveEngagement 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 EnableProactiveEngagement for more information on using the EnableProactiveEngagement
  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 EnableProactiveEngagementRequest method.
  2100  //    req, resp := client.EnableProactiveEngagementRequest(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/shield-2016-06-02/EnableProactiveEngagement
  2108  func (c *Shield) EnableProactiveEngagementRequest(input *EnableProactiveEngagementInput) (req *request.Request, output *EnableProactiveEngagementOutput) {
  2109  	op := &request.Operation{
  2110  		Name:       opEnableProactiveEngagement,
  2111  		HTTPMethod: "POST",
  2112  		HTTPPath:   "/",
  2113  	}
  2114  
  2115  	if input == nil {
  2116  		input = &EnableProactiveEngagementInput{}
  2117  	}
  2118  
  2119  	output = &EnableProactiveEngagementOutput{}
  2120  	req = c.newRequest(op, input, output)
  2121  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2122  	return
  2123  }
  2124  
  2125  // EnableProactiveEngagement API operation for AWS Shield.
  2126  //
  2127  // Authorizes the Shield Response Team (SRT) to use email and phone to notify
  2128  // contacts about escalations to the SRT and to initiate proactive customer
  2129  // support.
  2130  //
  2131  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2132  // with awserr.Error's Code and Message methods to get detailed information about
  2133  // the error.
  2134  //
  2135  // See the AWS API reference guide for AWS Shield's
  2136  // API operation EnableProactiveEngagement for usage and error information.
  2137  //
  2138  // Returned Error Types:
  2139  //   * InternalErrorException
  2140  //   Exception that indicates that a problem occurred with the service infrastructure.
  2141  //   You can retry the request.
  2142  //
  2143  //   * InvalidOperationException
  2144  //   Exception that indicates that the operation would not cause any change to
  2145  //   occur.
  2146  //
  2147  //   * InvalidParameterException
  2148  //   Exception that indicates that the parameters passed to the API are invalid.
  2149  //   If available, this exception includes details in additional properties.
  2150  //
  2151  //   * ResourceNotFoundException
  2152  //   Exception indicating the specified resource does not exist. If available,
  2153  //   this exception includes details in additional properties.
  2154  //
  2155  //   * OptimisticLockException
  2156  //   Exception that indicates that the resource state has been modified by another
  2157  //   client. Retrieve the resource and then retry your request.
  2158  //
  2159  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/EnableProactiveEngagement
  2160  func (c *Shield) EnableProactiveEngagement(input *EnableProactiveEngagementInput) (*EnableProactiveEngagementOutput, error) {
  2161  	req, out := c.EnableProactiveEngagementRequest(input)
  2162  	return out, req.Send()
  2163  }
  2164  
  2165  // EnableProactiveEngagementWithContext is the same as EnableProactiveEngagement with the addition of
  2166  // the ability to pass a context and additional request options.
  2167  //
  2168  // See EnableProactiveEngagement for details on how to use this API operation.
  2169  //
  2170  // The context must be non-nil and will be used for request cancellation. If
  2171  // the context is nil a panic will occur. In the future the SDK may create
  2172  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2173  // for more information on using Contexts.
  2174  func (c *Shield) EnableProactiveEngagementWithContext(ctx aws.Context, input *EnableProactiveEngagementInput, opts ...request.Option) (*EnableProactiveEngagementOutput, error) {
  2175  	req, out := c.EnableProactiveEngagementRequest(input)
  2176  	req.SetContext(ctx)
  2177  	req.ApplyOptions(opts...)
  2178  	return out, req.Send()
  2179  }
  2180  
  2181  const opGetSubscriptionState = "GetSubscriptionState"
  2182  
  2183  // GetSubscriptionStateRequest generates a "aws/request.Request" representing the
  2184  // client's request for the GetSubscriptionState operation. The "output" return
  2185  // value will be populated with the request's response once the request completes
  2186  // successfully.
  2187  //
  2188  // Use "Send" method on the returned Request to send the API call to the service.
  2189  // the "output" return value is not valid until after Send returns without error.
  2190  //
  2191  // See GetSubscriptionState for more information on using the GetSubscriptionState
  2192  // API call, and error handling.
  2193  //
  2194  // This method is useful when you want to inject custom logic or configuration
  2195  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2196  //
  2197  //
  2198  //    // Example sending a request using the GetSubscriptionStateRequest method.
  2199  //    req, resp := client.GetSubscriptionStateRequest(params)
  2200  //
  2201  //    err := req.Send()
  2202  //    if err == nil { // resp is now filled
  2203  //        fmt.Println(resp)
  2204  //    }
  2205  //
  2206  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/GetSubscriptionState
  2207  func (c *Shield) GetSubscriptionStateRequest(input *GetSubscriptionStateInput) (req *request.Request, output *GetSubscriptionStateOutput) {
  2208  	op := &request.Operation{
  2209  		Name:       opGetSubscriptionState,
  2210  		HTTPMethod: "POST",
  2211  		HTTPPath:   "/",
  2212  	}
  2213  
  2214  	if input == nil {
  2215  		input = &GetSubscriptionStateInput{}
  2216  	}
  2217  
  2218  	output = &GetSubscriptionStateOutput{}
  2219  	req = c.newRequest(op, input, output)
  2220  	return
  2221  }
  2222  
  2223  // GetSubscriptionState API operation for AWS Shield.
  2224  //
  2225  // Returns the SubscriptionState, either Active or Inactive.
  2226  //
  2227  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2228  // with awserr.Error's Code and Message methods to get detailed information about
  2229  // the error.
  2230  //
  2231  // See the AWS API reference guide for AWS Shield's
  2232  // API operation GetSubscriptionState for usage and error information.
  2233  //
  2234  // Returned Error Types:
  2235  //   * InternalErrorException
  2236  //   Exception that indicates that a problem occurred with the service infrastructure.
  2237  //   You can retry the request.
  2238  //
  2239  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/GetSubscriptionState
  2240  func (c *Shield) GetSubscriptionState(input *GetSubscriptionStateInput) (*GetSubscriptionStateOutput, error) {
  2241  	req, out := c.GetSubscriptionStateRequest(input)
  2242  	return out, req.Send()
  2243  }
  2244  
  2245  // GetSubscriptionStateWithContext is the same as GetSubscriptionState with the addition of
  2246  // the ability to pass a context and additional request options.
  2247  //
  2248  // See GetSubscriptionState for details on how to use this API operation.
  2249  //
  2250  // The context must be non-nil and will be used for request cancellation. If
  2251  // the context is nil a panic will occur. In the future the SDK may create
  2252  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2253  // for more information on using Contexts.
  2254  func (c *Shield) GetSubscriptionStateWithContext(ctx aws.Context, input *GetSubscriptionStateInput, opts ...request.Option) (*GetSubscriptionStateOutput, error) {
  2255  	req, out := c.GetSubscriptionStateRequest(input)
  2256  	req.SetContext(ctx)
  2257  	req.ApplyOptions(opts...)
  2258  	return out, req.Send()
  2259  }
  2260  
  2261  const opListAttacks = "ListAttacks"
  2262  
  2263  // ListAttacksRequest generates a "aws/request.Request" representing the
  2264  // client's request for the ListAttacks operation. The "output" return
  2265  // value will be populated with the request's response once the request completes
  2266  // successfully.
  2267  //
  2268  // Use "Send" method on the returned Request to send the API call to the service.
  2269  // the "output" return value is not valid until after Send returns without error.
  2270  //
  2271  // See ListAttacks for more information on using the ListAttacks
  2272  // API call, and error handling.
  2273  //
  2274  // This method is useful when you want to inject custom logic or configuration
  2275  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2276  //
  2277  //
  2278  //    // Example sending a request using the ListAttacksRequest method.
  2279  //    req, resp := client.ListAttacksRequest(params)
  2280  //
  2281  //    err := req.Send()
  2282  //    if err == nil { // resp is now filled
  2283  //        fmt.Println(resp)
  2284  //    }
  2285  //
  2286  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacks
  2287  func (c *Shield) ListAttacksRequest(input *ListAttacksInput) (req *request.Request, output *ListAttacksOutput) {
  2288  	op := &request.Operation{
  2289  		Name:       opListAttacks,
  2290  		HTTPMethod: "POST",
  2291  		HTTPPath:   "/",
  2292  		Paginator: &request.Paginator{
  2293  			InputTokens:     []string{"NextToken"},
  2294  			OutputTokens:    []string{"NextToken"},
  2295  			LimitToken:      "MaxResults",
  2296  			TruncationToken: "",
  2297  		},
  2298  	}
  2299  
  2300  	if input == nil {
  2301  		input = &ListAttacksInput{}
  2302  	}
  2303  
  2304  	output = &ListAttacksOutput{}
  2305  	req = c.newRequest(op, input, output)
  2306  	return
  2307  }
  2308  
  2309  // ListAttacks API operation for AWS Shield.
  2310  //
  2311  // Returns all ongoing DDoS attacks or all DDoS attacks during a specified time
  2312  // period.
  2313  //
  2314  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2315  // with awserr.Error's Code and Message methods to get detailed information about
  2316  // the error.
  2317  //
  2318  // See the AWS API reference guide for AWS Shield's
  2319  // API operation ListAttacks for usage and error information.
  2320  //
  2321  // Returned Error Types:
  2322  //   * InternalErrorException
  2323  //   Exception that indicates that a problem occurred with the service infrastructure.
  2324  //   You can retry the request.
  2325  //
  2326  //   * InvalidParameterException
  2327  //   Exception that indicates that the parameters passed to the API are invalid.
  2328  //   If available, this exception includes details in additional properties.
  2329  //
  2330  //   * InvalidOperationException
  2331  //   Exception that indicates that the operation would not cause any change to
  2332  //   occur.
  2333  //
  2334  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacks
  2335  func (c *Shield) ListAttacks(input *ListAttacksInput) (*ListAttacksOutput, error) {
  2336  	req, out := c.ListAttacksRequest(input)
  2337  	return out, req.Send()
  2338  }
  2339  
  2340  // ListAttacksWithContext is the same as ListAttacks with the addition of
  2341  // the ability to pass a context and additional request options.
  2342  //
  2343  // See ListAttacks for details on how to use this API operation.
  2344  //
  2345  // The context must be non-nil and will be used for request cancellation. If
  2346  // the context is nil a panic will occur. In the future the SDK may create
  2347  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2348  // for more information on using Contexts.
  2349  func (c *Shield) ListAttacksWithContext(ctx aws.Context, input *ListAttacksInput, opts ...request.Option) (*ListAttacksOutput, error) {
  2350  	req, out := c.ListAttacksRequest(input)
  2351  	req.SetContext(ctx)
  2352  	req.ApplyOptions(opts...)
  2353  	return out, req.Send()
  2354  }
  2355  
  2356  // ListAttacksPages iterates over the pages of a ListAttacks operation,
  2357  // calling the "fn" function with the response data for each page. To stop
  2358  // iterating, return false from the fn function.
  2359  //
  2360  // See ListAttacks method for more information on how to use this operation.
  2361  //
  2362  // Note: This operation can generate multiple requests to a service.
  2363  //
  2364  //    // Example iterating over at most 3 pages of a ListAttacks operation.
  2365  //    pageNum := 0
  2366  //    err := client.ListAttacksPages(params,
  2367  //        func(page *shield.ListAttacksOutput, lastPage bool) bool {
  2368  //            pageNum++
  2369  //            fmt.Println(page)
  2370  //            return pageNum <= 3
  2371  //        })
  2372  //
  2373  func (c *Shield) ListAttacksPages(input *ListAttacksInput, fn func(*ListAttacksOutput, bool) bool) error {
  2374  	return c.ListAttacksPagesWithContext(aws.BackgroundContext(), input, fn)
  2375  }
  2376  
  2377  // ListAttacksPagesWithContext same as ListAttacksPages except
  2378  // it takes a Context and allows setting request options on the pages.
  2379  //
  2380  // The context must be non-nil and will be used for request cancellation. If
  2381  // the context is nil a panic will occur. In the future the SDK may create
  2382  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2383  // for more information on using Contexts.
  2384  func (c *Shield) ListAttacksPagesWithContext(ctx aws.Context, input *ListAttacksInput, fn func(*ListAttacksOutput, bool) bool, opts ...request.Option) error {
  2385  	p := request.Pagination{
  2386  		NewRequest: func() (*request.Request, error) {
  2387  			var inCpy *ListAttacksInput
  2388  			if input != nil {
  2389  				tmp := *input
  2390  				inCpy = &tmp
  2391  			}
  2392  			req, _ := c.ListAttacksRequest(inCpy)
  2393  			req.SetContext(ctx)
  2394  			req.ApplyOptions(opts...)
  2395  			return req, nil
  2396  		},
  2397  	}
  2398  
  2399  	for p.Next() {
  2400  		if !fn(p.Page().(*ListAttacksOutput), !p.HasNextPage()) {
  2401  			break
  2402  		}
  2403  	}
  2404  
  2405  	return p.Err()
  2406  }
  2407  
  2408  const opListProtectionGroups = "ListProtectionGroups"
  2409  
  2410  // ListProtectionGroupsRequest generates a "aws/request.Request" representing the
  2411  // client's request for the ListProtectionGroups operation. The "output" return
  2412  // value will be populated with the request's response once the request completes
  2413  // successfully.
  2414  //
  2415  // Use "Send" method on the returned Request to send the API call to the service.
  2416  // the "output" return value is not valid until after Send returns without error.
  2417  //
  2418  // See ListProtectionGroups for more information on using the ListProtectionGroups
  2419  // API call, and error handling.
  2420  //
  2421  // This method is useful when you want to inject custom logic or configuration
  2422  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2423  //
  2424  //
  2425  //    // Example sending a request using the ListProtectionGroupsRequest method.
  2426  //    req, resp := client.ListProtectionGroupsRequest(params)
  2427  //
  2428  //    err := req.Send()
  2429  //    if err == nil { // resp is now filled
  2430  //        fmt.Println(resp)
  2431  //    }
  2432  //
  2433  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroups
  2434  func (c *Shield) ListProtectionGroupsRequest(input *ListProtectionGroupsInput) (req *request.Request, output *ListProtectionGroupsOutput) {
  2435  	op := &request.Operation{
  2436  		Name:       opListProtectionGroups,
  2437  		HTTPMethod: "POST",
  2438  		HTTPPath:   "/",
  2439  		Paginator: &request.Paginator{
  2440  			InputTokens:     []string{"NextToken"},
  2441  			OutputTokens:    []string{"NextToken"},
  2442  			LimitToken:      "MaxResults",
  2443  			TruncationToken: "",
  2444  		},
  2445  	}
  2446  
  2447  	if input == nil {
  2448  		input = &ListProtectionGroupsInput{}
  2449  	}
  2450  
  2451  	output = &ListProtectionGroupsOutput{}
  2452  	req = c.newRequest(op, input, output)
  2453  	return
  2454  }
  2455  
  2456  // ListProtectionGroups API operation for AWS Shield.
  2457  //
  2458  // Retrieves the ProtectionGroup objects for the account.
  2459  //
  2460  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2461  // with awserr.Error's Code and Message methods to get detailed information about
  2462  // the error.
  2463  //
  2464  // See the AWS API reference guide for AWS Shield's
  2465  // API operation ListProtectionGroups for usage and error information.
  2466  //
  2467  // Returned Error Types:
  2468  //   * InternalErrorException
  2469  //   Exception that indicates that a problem occurred with the service infrastructure.
  2470  //   You can retry the request.
  2471  //
  2472  //   * ResourceNotFoundException
  2473  //   Exception indicating the specified resource does not exist. If available,
  2474  //   this exception includes details in additional properties.
  2475  //
  2476  //   * InvalidPaginationTokenException
  2477  //   Exception that indicates that the NextToken specified in the request is invalid.
  2478  //   Submit the request using the NextToken value that was returned in the response.
  2479  //
  2480  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroups
  2481  func (c *Shield) ListProtectionGroups(input *ListProtectionGroupsInput) (*ListProtectionGroupsOutput, error) {
  2482  	req, out := c.ListProtectionGroupsRequest(input)
  2483  	return out, req.Send()
  2484  }
  2485  
  2486  // ListProtectionGroupsWithContext is the same as ListProtectionGroups with the addition of
  2487  // the ability to pass a context and additional request options.
  2488  //
  2489  // See ListProtectionGroups for details on how to use this API operation.
  2490  //
  2491  // The context must be non-nil and will be used for request cancellation. If
  2492  // the context is nil a panic will occur. In the future the SDK may create
  2493  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2494  // for more information on using Contexts.
  2495  func (c *Shield) ListProtectionGroupsWithContext(ctx aws.Context, input *ListProtectionGroupsInput, opts ...request.Option) (*ListProtectionGroupsOutput, error) {
  2496  	req, out := c.ListProtectionGroupsRequest(input)
  2497  	req.SetContext(ctx)
  2498  	req.ApplyOptions(opts...)
  2499  	return out, req.Send()
  2500  }
  2501  
  2502  // ListProtectionGroupsPages iterates over the pages of a ListProtectionGroups operation,
  2503  // calling the "fn" function with the response data for each page. To stop
  2504  // iterating, return false from the fn function.
  2505  //
  2506  // See ListProtectionGroups method for more information on how to use this operation.
  2507  //
  2508  // Note: This operation can generate multiple requests to a service.
  2509  //
  2510  //    // Example iterating over at most 3 pages of a ListProtectionGroups operation.
  2511  //    pageNum := 0
  2512  //    err := client.ListProtectionGroupsPages(params,
  2513  //        func(page *shield.ListProtectionGroupsOutput, lastPage bool) bool {
  2514  //            pageNum++
  2515  //            fmt.Println(page)
  2516  //            return pageNum <= 3
  2517  //        })
  2518  //
  2519  func (c *Shield) ListProtectionGroupsPages(input *ListProtectionGroupsInput, fn func(*ListProtectionGroupsOutput, bool) bool) error {
  2520  	return c.ListProtectionGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
  2521  }
  2522  
  2523  // ListProtectionGroupsPagesWithContext same as ListProtectionGroupsPages except
  2524  // it takes a Context and allows setting request options on the pages.
  2525  //
  2526  // The context must be non-nil and will be used for request cancellation. If
  2527  // the context is nil a panic will occur. In the future the SDK may create
  2528  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2529  // for more information on using Contexts.
  2530  func (c *Shield) ListProtectionGroupsPagesWithContext(ctx aws.Context, input *ListProtectionGroupsInput, fn func(*ListProtectionGroupsOutput, bool) bool, opts ...request.Option) error {
  2531  	p := request.Pagination{
  2532  		NewRequest: func() (*request.Request, error) {
  2533  			var inCpy *ListProtectionGroupsInput
  2534  			if input != nil {
  2535  				tmp := *input
  2536  				inCpy = &tmp
  2537  			}
  2538  			req, _ := c.ListProtectionGroupsRequest(inCpy)
  2539  			req.SetContext(ctx)
  2540  			req.ApplyOptions(opts...)
  2541  			return req, nil
  2542  		},
  2543  	}
  2544  
  2545  	for p.Next() {
  2546  		if !fn(p.Page().(*ListProtectionGroupsOutput), !p.HasNextPage()) {
  2547  			break
  2548  		}
  2549  	}
  2550  
  2551  	return p.Err()
  2552  }
  2553  
  2554  const opListProtections = "ListProtections"
  2555  
  2556  // ListProtectionsRequest generates a "aws/request.Request" representing the
  2557  // client's request for the ListProtections operation. The "output" return
  2558  // value will be populated with the request's response once the request completes
  2559  // successfully.
  2560  //
  2561  // Use "Send" method on the returned Request to send the API call to the service.
  2562  // the "output" return value is not valid until after Send returns without error.
  2563  //
  2564  // See ListProtections for more information on using the ListProtections
  2565  // API call, and error handling.
  2566  //
  2567  // This method is useful when you want to inject custom logic or configuration
  2568  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2569  //
  2570  //
  2571  //    // Example sending a request using the ListProtectionsRequest method.
  2572  //    req, resp := client.ListProtectionsRequest(params)
  2573  //
  2574  //    err := req.Send()
  2575  //    if err == nil { // resp is now filled
  2576  //        fmt.Println(resp)
  2577  //    }
  2578  //
  2579  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtections
  2580  func (c *Shield) ListProtectionsRequest(input *ListProtectionsInput) (req *request.Request, output *ListProtectionsOutput) {
  2581  	op := &request.Operation{
  2582  		Name:       opListProtections,
  2583  		HTTPMethod: "POST",
  2584  		HTTPPath:   "/",
  2585  		Paginator: &request.Paginator{
  2586  			InputTokens:     []string{"NextToken"},
  2587  			OutputTokens:    []string{"NextToken"},
  2588  			LimitToken:      "MaxResults",
  2589  			TruncationToken: "",
  2590  		},
  2591  	}
  2592  
  2593  	if input == nil {
  2594  		input = &ListProtectionsInput{}
  2595  	}
  2596  
  2597  	output = &ListProtectionsOutput{}
  2598  	req = c.newRequest(op, input, output)
  2599  	return
  2600  }
  2601  
  2602  // ListProtections API operation for AWS Shield.
  2603  //
  2604  // Lists all Protection objects for the account.
  2605  //
  2606  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2607  // with awserr.Error's Code and Message methods to get detailed information about
  2608  // the error.
  2609  //
  2610  // See the AWS API reference guide for AWS Shield's
  2611  // API operation ListProtections for usage and error information.
  2612  //
  2613  // Returned Error Types:
  2614  //   * InternalErrorException
  2615  //   Exception that indicates that a problem occurred with the service infrastructure.
  2616  //   You can retry the request.
  2617  //
  2618  //   * ResourceNotFoundException
  2619  //   Exception indicating the specified resource does not exist. If available,
  2620  //   this exception includes details in additional properties.
  2621  //
  2622  //   * InvalidPaginationTokenException
  2623  //   Exception that indicates that the NextToken specified in the request is invalid.
  2624  //   Submit the request using the NextToken value that was returned in the response.
  2625  //
  2626  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtections
  2627  func (c *Shield) ListProtections(input *ListProtectionsInput) (*ListProtectionsOutput, error) {
  2628  	req, out := c.ListProtectionsRequest(input)
  2629  	return out, req.Send()
  2630  }
  2631  
  2632  // ListProtectionsWithContext is the same as ListProtections with the addition of
  2633  // the ability to pass a context and additional request options.
  2634  //
  2635  // See ListProtections for details on how to use this API operation.
  2636  //
  2637  // The context must be non-nil and will be used for request cancellation. If
  2638  // the context is nil a panic will occur. In the future the SDK may create
  2639  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2640  // for more information on using Contexts.
  2641  func (c *Shield) ListProtectionsWithContext(ctx aws.Context, input *ListProtectionsInput, opts ...request.Option) (*ListProtectionsOutput, error) {
  2642  	req, out := c.ListProtectionsRequest(input)
  2643  	req.SetContext(ctx)
  2644  	req.ApplyOptions(opts...)
  2645  	return out, req.Send()
  2646  }
  2647  
  2648  // ListProtectionsPages iterates over the pages of a ListProtections operation,
  2649  // calling the "fn" function with the response data for each page. To stop
  2650  // iterating, return false from the fn function.
  2651  //
  2652  // See ListProtections method for more information on how to use this operation.
  2653  //
  2654  // Note: This operation can generate multiple requests to a service.
  2655  //
  2656  //    // Example iterating over at most 3 pages of a ListProtections operation.
  2657  //    pageNum := 0
  2658  //    err := client.ListProtectionsPages(params,
  2659  //        func(page *shield.ListProtectionsOutput, lastPage bool) bool {
  2660  //            pageNum++
  2661  //            fmt.Println(page)
  2662  //            return pageNum <= 3
  2663  //        })
  2664  //
  2665  func (c *Shield) ListProtectionsPages(input *ListProtectionsInput, fn func(*ListProtectionsOutput, bool) bool) error {
  2666  	return c.ListProtectionsPagesWithContext(aws.BackgroundContext(), input, fn)
  2667  }
  2668  
  2669  // ListProtectionsPagesWithContext same as ListProtectionsPages except
  2670  // it takes a Context and allows setting request options on the pages.
  2671  //
  2672  // The context must be non-nil and will be used for request cancellation. If
  2673  // the context is nil a panic will occur. In the future the SDK may create
  2674  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2675  // for more information on using Contexts.
  2676  func (c *Shield) ListProtectionsPagesWithContext(ctx aws.Context, input *ListProtectionsInput, fn func(*ListProtectionsOutput, bool) bool, opts ...request.Option) error {
  2677  	p := request.Pagination{
  2678  		NewRequest: func() (*request.Request, error) {
  2679  			var inCpy *ListProtectionsInput
  2680  			if input != nil {
  2681  				tmp := *input
  2682  				inCpy = &tmp
  2683  			}
  2684  			req, _ := c.ListProtectionsRequest(inCpy)
  2685  			req.SetContext(ctx)
  2686  			req.ApplyOptions(opts...)
  2687  			return req, nil
  2688  		},
  2689  	}
  2690  
  2691  	for p.Next() {
  2692  		if !fn(p.Page().(*ListProtectionsOutput), !p.HasNextPage()) {
  2693  			break
  2694  		}
  2695  	}
  2696  
  2697  	return p.Err()
  2698  }
  2699  
  2700  const opListResourcesInProtectionGroup = "ListResourcesInProtectionGroup"
  2701  
  2702  // ListResourcesInProtectionGroupRequest generates a "aws/request.Request" representing the
  2703  // client's request for the ListResourcesInProtectionGroup operation. The "output" return
  2704  // value will be populated with the request's response once the request completes
  2705  // successfully.
  2706  //
  2707  // Use "Send" method on the returned Request to send the API call to the service.
  2708  // the "output" return value is not valid until after Send returns without error.
  2709  //
  2710  // See ListResourcesInProtectionGroup for more information on using the ListResourcesInProtectionGroup
  2711  // API call, and error handling.
  2712  //
  2713  // This method is useful when you want to inject custom logic or configuration
  2714  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2715  //
  2716  //
  2717  //    // Example sending a request using the ListResourcesInProtectionGroupRequest method.
  2718  //    req, resp := client.ListResourcesInProtectionGroupRequest(params)
  2719  //
  2720  //    err := req.Send()
  2721  //    if err == nil { // resp is now filled
  2722  //        fmt.Println(resp)
  2723  //    }
  2724  //
  2725  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroup
  2726  func (c *Shield) ListResourcesInProtectionGroupRequest(input *ListResourcesInProtectionGroupInput) (req *request.Request, output *ListResourcesInProtectionGroupOutput) {
  2727  	op := &request.Operation{
  2728  		Name:       opListResourcesInProtectionGroup,
  2729  		HTTPMethod: "POST",
  2730  		HTTPPath:   "/",
  2731  		Paginator: &request.Paginator{
  2732  			InputTokens:     []string{"NextToken"},
  2733  			OutputTokens:    []string{"NextToken"},
  2734  			LimitToken:      "MaxResults",
  2735  			TruncationToken: "",
  2736  		},
  2737  	}
  2738  
  2739  	if input == nil {
  2740  		input = &ListResourcesInProtectionGroupInput{}
  2741  	}
  2742  
  2743  	output = &ListResourcesInProtectionGroupOutput{}
  2744  	req = c.newRequest(op, input, output)
  2745  	return
  2746  }
  2747  
  2748  // ListResourcesInProtectionGroup API operation for AWS Shield.
  2749  //
  2750  // Retrieves the resources that are included in the protection group.
  2751  //
  2752  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2753  // with awserr.Error's Code and Message methods to get detailed information about
  2754  // the error.
  2755  //
  2756  // See the AWS API reference guide for AWS Shield's
  2757  // API operation ListResourcesInProtectionGroup for usage and error information.
  2758  //
  2759  // Returned Error Types:
  2760  //   * InternalErrorException
  2761  //   Exception that indicates that a problem occurred with the service infrastructure.
  2762  //   You can retry the request.
  2763  //
  2764  //   * ResourceNotFoundException
  2765  //   Exception indicating the specified resource does not exist. If available,
  2766  //   this exception includes details in additional properties.
  2767  //
  2768  //   * InvalidPaginationTokenException
  2769  //   Exception that indicates that the NextToken specified in the request is invalid.
  2770  //   Submit the request using the NextToken value that was returned in the response.
  2771  //
  2772  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroup
  2773  func (c *Shield) ListResourcesInProtectionGroup(input *ListResourcesInProtectionGroupInput) (*ListResourcesInProtectionGroupOutput, error) {
  2774  	req, out := c.ListResourcesInProtectionGroupRequest(input)
  2775  	return out, req.Send()
  2776  }
  2777  
  2778  // ListResourcesInProtectionGroupWithContext is the same as ListResourcesInProtectionGroup with the addition of
  2779  // the ability to pass a context and additional request options.
  2780  //
  2781  // See ListResourcesInProtectionGroup for details on how to use this API operation.
  2782  //
  2783  // The context must be non-nil and will be used for request cancellation. If
  2784  // the context is nil a panic will occur. In the future the SDK may create
  2785  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2786  // for more information on using Contexts.
  2787  func (c *Shield) ListResourcesInProtectionGroupWithContext(ctx aws.Context, input *ListResourcesInProtectionGroupInput, opts ...request.Option) (*ListResourcesInProtectionGroupOutput, error) {
  2788  	req, out := c.ListResourcesInProtectionGroupRequest(input)
  2789  	req.SetContext(ctx)
  2790  	req.ApplyOptions(opts...)
  2791  	return out, req.Send()
  2792  }
  2793  
  2794  // ListResourcesInProtectionGroupPages iterates over the pages of a ListResourcesInProtectionGroup operation,
  2795  // calling the "fn" function with the response data for each page. To stop
  2796  // iterating, return false from the fn function.
  2797  //
  2798  // See ListResourcesInProtectionGroup method for more information on how to use this operation.
  2799  //
  2800  // Note: This operation can generate multiple requests to a service.
  2801  //
  2802  //    // Example iterating over at most 3 pages of a ListResourcesInProtectionGroup operation.
  2803  //    pageNum := 0
  2804  //    err := client.ListResourcesInProtectionGroupPages(params,
  2805  //        func(page *shield.ListResourcesInProtectionGroupOutput, lastPage bool) bool {
  2806  //            pageNum++
  2807  //            fmt.Println(page)
  2808  //            return pageNum <= 3
  2809  //        })
  2810  //
  2811  func (c *Shield) ListResourcesInProtectionGroupPages(input *ListResourcesInProtectionGroupInput, fn func(*ListResourcesInProtectionGroupOutput, bool) bool) error {
  2812  	return c.ListResourcesInProtectionGroupPagesWithContext(aws.BackgroundContext(), input, fn)
  2813  }
  2814  
  2815  // ListResourcesInProtectionGroupPagesWithContext same as ListResourcesInProtectionGroupPages except
  2816  // it takes a Context and allows setting request options on the pages.
  2817  //
  2818  // The context must be non-nil and will be used for request cancellation. If
  2819  // the context is nil a panic will occur. In the future the SDK may create
  2820  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2821  // for more information on using Contexts.
  2822  func (c *Shield) ListResourcesInProtectionGroupPagesWithContext(ctx aws.Context, input *ListResourcesInProtectionGroupInput, fn func(*ListResourcesInProtectionGroupOutput, bool) bool, opts ...request.Option) error {
  2823  	p := request.Pagination{
  2824  		NewRequest: func() (*request.Request, error) {
  2825  			var inCpy *ListResourcesInProtectionGroupInput
  2826  			if input != nil {
  2827  				tmp := *input
  2828  				inCpy = &tmp
  2829  			}
  2830  			req, _ := c.ListResourcesInProtectionGroupRequest(inCpy)
  2831  			req.SetContext(ctx)
  2832  			req.ApplyOptions(opts...)
  2833  			return req, nil
  2834  		},
  2835  	}
  2836  
  2837  	for p.Next() {
  2838  		if !fn(p.Page().(*ListResourcesInProtectionGroupOutput), !p.HasNextPage()) {
  2839  			break
  2840  		}
  2841  	}
  2842  
  2843  	return p.Err()
  2844  }
  2845  
  2846  const opListTagsForResource = "ListTagsForResource"
  2847  
  2848  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2849  // client's request for the ListTagsForResource operation. The "output" return
  2850  // value will be populated with the request's response once the request completes
  2851  // successfully.
  2852  //
  2853  // Use "Send" method on the returned Request to send the API call to the service.
  2854  // the "output" return value is not valid until after Send returns without error.
  2855  //
  2856  // See ListTagsForResource for more information on using the ListTagsForResource
  2857  // API call, and error handling.
  2858  //
  2859  // This method is useful when you want to inject custom logic or configuration
  2860  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2861  //
  2862  //
  2863  //    // Example sending a request using the ListTagsForResourceRequest method.
  2864  //    req, resp := client.ListTagsForResourceRequest(params)
  2865  //
  2866  //    err := req.Send()
  2867  //    if err == nil { // resp is now filled
  2868  //        fmt.Println(resp)
  2869  //    }
  2870  //
  2871  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResource
  2872  func (c *Shield) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2873  	op := &request.Operation{
  2874  		Name:       opListTagsForResource,
  2875  		HTTPMethod: "POST",
  2876  		HTTPPath:   "/",
  2877  	}
  2878  
  2879  	if input == nil {
  2880  		input = &ListTagsForResourceInput{}
  2881  	}
  2882  
  2883  	output = &ListTagsForResourceOutput{}
  2884  	req = c.newRequest(op, input, output)
  2885  	return
  2886  }
  2887  
  2888  // ListTagsForResource API operation for AWS Shield.
  2889  //
  2890  // Gets information about Amazon Web Services tags for a specified Amazon Resource
  2891  // Name (ARN) in Shield.
  2892  //
  2893  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2894  // with awserr.Error's Code and Message methods to get detailed information about
  2895  // the error.
  2896  //
  2897  // See the AWS API reference guide for AWS Shield's
  2898  // API operation ListTagsForResource for usage and error information.
  2899  //
  2900  // Returned Error Types:
  2901  //   * InternalErrorException
  2902  //   Exception that indicates that a problem occurred with the service infrastructure.
  2903  //   You can retry the request.
  2904  //
  2905  //   * InvalidResourceException
  2906  //   Exception that indicates that the resource is invalid. You might not have
  2907  //   access to the resource, or the resource might not exist.
  2908  //
  2909  //   * ResourceNotFoundException
  2910  //   Exception indicating the specified resource does not exist. If available,
  2911  //   this exception includes details in additional properties.
  2912  //
  2913  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResource
  2914  func (c *Shield) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2915  	req, out := c.ListTagsForResourceRequest(input)
  2916  	return out, req.Send()
  2917  }
  2918  
  2919  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2920  // the ability to pass a context and additional request options.
  2921  //
  2922  // See ListTagsForResource for details on how to use this API operation.
  2923  //
  2924  // The context must be non-nil and will be used for request cancellation. If
  2925  // the context is nil a panic will occur. In the future the SDK may create
  2926  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2927  // for more information on using Contexts.
  2928  func (c *Shield) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2929  	req, out := c.ListTagsForResourceRequest(input)
  2930  	req.SetContext(ctx)
  2931  	req.ApplyOptions(opts...)
  2932  	return out, req.Send()
  2933  }
  2934  
  2935  const opTagResource = "TagResource"
  2936  
  2937  // TagResourceRequest generates a "aws/request.Request" representing the
  2938  // client's request for the TagResource operation. The "output" return
  2939  // value will be populated with the request's response once the request completes
  2940  // successfully.
  2941  //
  2942  // Use "Send" method on the returned Request to send the API call to the service.
  2943  // the "output" return value is not valid until after Send returns without error.
  2944  //
  2945  // See TagResource for more information on using the TagResource
  2946  // API call, and error handling.
  2947  //
  2948  // This method is useful when you want to inject custom logic or configuration
  2949  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2950  //
  2951  //
  2952  //    // Example sending a request using the TagResourceRequest method.
  2953  //    req, resp := client.TagResourceRequest(params)
  2954  //
  2955  //    err := req.Send()
  2956  //    if err == nil { // resp is now filled
  2957  //        fmt.Println(resp)
  2958  //    }
  2959  //
  2960  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResource
  2961  func (c *Shield) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  2962  	op := &request.Operation{
  2963  		Name:       opTagResource,
  2964  		HTTPMethod: "POST",
  2965  		HTTPPath:   "/",
  2966  	}
  2967  
  2968  	if input == nil {
  2969  		input = &TagResourceInput{}
  2970  	}
  2971  
  2972  	output = &TagResourceOutput{}
  2973  	req = c.newRequest(op, input, output)
  2974  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2975  	return
  2976  }
  2977  
  2978  // TagResource API operation for AWS Shield.
  2979  //
  2980  // Adds or updates tags for a resource in Shield.
  2981  //
  2982  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2983  // with awserr.Error's Code and Message methods to get detailed information about
  2984  // the error.
  2985  //
  2986  // See the AWS API reference guide for AWS Shield's
  2987  // API operation TagResource for usage and error information.
  2988  //
  2989  // Returned Error Types:
  2990  //   * InternalErrorException
  2991  //   Exception that indicates that a problem occurred with the service infrastructure.
  2992  //   You can retry the request.
  2993  //
  2994  //   * InvalidResourceException
  2995  //   Exception that indicates that the resource is invalid. You might not have
  2996  //   access to the resource, or the resource might not exist.
  2997  //
  2998  //   * InvalidParameterException
  2999  //   Exception that indicates that the parameters passed to the API are invalid.
  3000  //   If available, this exception includes details in additional properties.
  3001  //
  3002  //   * ResourceNotFoundException
  3003  //   Exception indicating the specified resource does not exist. If available,
  3004  //   this exception includes details in additional properties.
  3005  //
  3006  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResource
  3007  func (c *Shield) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  3008  	req, out := c.TagResourceRequest(input)
  3009  	return out, req.Send()
  3010  }
  3011  
  3012  // TagResourceWithContext is the same as TagResource with the addition of
  3013  // the ability to pass a context and additional request options.
  3014  //
  3015  // See TagResource for details on how to use this API operation.
  3016  //
  3017  // The context must be non-nil and will be used for request cancellation. If
  3018  // the context is nil a panic will occur. In the future the SDK may create
  3019  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3020  // for more information on using Contexts.
  3021  func (c *Shield) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  3022  	req, out := c.TagResourceRequest(input)
  3023  	req.SetContext(ctx)
  3024  	req.ApplyOptions(opts...)
  3025  	return out, req.Send()
  3026  }
  3027  
  3028  const opUntagResource = "UntagResource"
  3029  
  3030  // UntagResourceRequest generates a "aws/request.Request" representing the
  3031  // client's request for the UntagResource operation. The "output" return
  3032  // value will be populated with the request's response once the request completes
  3033  // successfully.
  3034  //
  3035  // Use "Send" method on the returned Request to send the API call to the service.
  3036  // the "output" return value is not valid until after Send returns without error.
  3037  //
  3038  // See UntagResource for more information on using the UntagResource
  3039  // API call, and error handling.
  3040  //
  3041  // This method is useful when you want to inject custom logic or configuration
  3042  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3043  //
  3044  //
  3045  //    // Example sending a request using the UntagResourceRequest method.
  3046  //    req, resp := client.UntagResourceRequest(params)
  3047  //
  3048  //    err := req.Send()
  3049  //    if err == nil { // resp is now filled
  3050  //        fmt.Println(resp)
  3051  //    }
  3052  //
  3053  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResource
  3054  func (c *Shield) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  3055  	op := &request.Operation{
  3056  		Name:       opUntagResource,
  3057  		HTTPMethod: "POST",
  3058  		HTTPPath:   "/",
  3059  	}
  3060  
  3061  	if input == nil {
  3062  		input = &UntagResourceInput{}
  3063  	}
  3064  
  3065  	output = &UntagResourceOutput{}
  3066  	req = c.newRequest(op, input, output)
  3067  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3068  	return
  3069  }
  3070  
  3071  // UntagResource API operation for AWS Shield.
  3072  //
  3073  // Removes tags from a resource in Shield.
  3074  //
  3075  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3076  // with awserr.Error's Code and Message methods to get detailed information about
  3077  // the error.
  3078  //
  3079  // See the AWS API reference guide for AWS Shield's
  3080  // API operation UntagResource for usage and error information.
  3081  //
  3082  // Returned Error Types:
  3083  //   * InternalErrorException
  3084  //   Exception that indicates that a problem occurred with the service infrastructure.
  3085  //   You can retry the request.
  3086  //
  3087  //   * InvalidResourceException
  3088  //   Exception that indicates that the resource is invalid. You might not have
  3089  //   access to the resource, or the resource might not exist.
  3090  //
  3091  //   * InvalidParameterException
  3092  //   Exception that indicates that the parameters passed to the API are invalid.
  3093  //   If available, this exception includes details in additional properties.
  3094  //
  3095  //   * ResourceNotFoundException
  3096  //   Exception indicating the specified resource does not exist. If available,
  3097  //   this exception includes details in additional properties.
  3098  //
  3099  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResource
  3100  func (c *Shield) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  3101  	req, out := c.UntagResourceRequest(input)
  3102  	return out, req.Send()
  3103  }
  3104  
  3105  // UntagResourceWithContext is the same as UntagResource with the addition of
  3106  // the ability to pass a context and additional request options.
  3107  //
  3108  // See UntagResource for details on how to use this API operation.
  3109  //
  3110  // The context must be non-nil and will be used for request cancellation. If
  3111  // the context is nil a panic will occur. In the future the SDK may create
  3112  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3113  // for more information on using Contexts.
  3114  func (c *Shield) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  3115  	req, out := c.UntagResourceRequest(input)
  3116  	req.SetContext(ctx)
  3117  	req.ApplyOptions(opts...)
  3118  	return out, req.Send()
  3119  }
  3120  
  3121  const opUpdateEmergencyContactSettings = "UpdateEmergencyContactSettings"
  3122  
  3123  // UpdateEmergencyContactSettingsRequest generates a "aws/request.Request" representing the
  3124  // client's request for the UpdateEmergencyContactSettings operation. The "output" return
  3125  // value will be populated with the request's response once the request completes
  3126  // successfully.
  3127  //
  3128  // Use "Send" method on the returned Request to send the API call to the service.
  3129  // the "output" return value is not valid until after Send returns without error.
  3130  //
  3131  // See UpdateEmergencyContactSettings for more information on using the UpdateEmergencyContactSettings
  3132  // API call, and error handling.
  3133  //
  3134  // This method is useful when you want to inject custom logic or configuration
  3135  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3136  //
  3137  //
  3138  //    // Example sending a request using the UpdateEmergencyContactSettingsRequest method.
  3139  //    req, resp := client.UpdateEmergencyContactSettingsRequest(params)
  3140  //
  3141  //    err := req.Send()
  3142  //    if err == nil { // resp is now filled
  3143  //        fmt.Println(resp)
  3144  //    }
  3145  //
  3146  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettings
  3147  func (c *Shield) UpdateEmergencyContactSettingsRequest(input *UpdateEmergencyContactSettingsInput) (req *request.Request, output *UpdateEmergencyContactSettingsOutput) {
  3148  	op := &request.Operation{
  3149  		Name:       opUpdateEmergencyContactSettings,
  3150  		HTTPMethod: "POST",
  3151  		HTTPPath:   "/",
  3152  	}
  3153  
  3154  	if input == nil {
  3155  		input = &UpdateEmergencyContactSettingsInput{}
  3156  	}
  3157  
  3158  	output = &UpdateEmergencyContactSettingsOutput{}
  3159  	req = c.newRequest(op, input, output)
  3160  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3161  	return
  3162  }
  3163  
  3164  // UpdateEmergencyContactSettings API operation for AWS Shield.
  3165  //
  3166  // Updates the details of the list of email addresses and phone numbers that
  3167  // the Shield Response Team (SRT) can use to contact you if you have proactive
  3168  // engagement enabled, for escalations to the SRT and to initiate proactive
  3169  // customer support.
  3170  //
  3171  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3172  // with awserr.Error's Code and Message methods to get detailed information about
  3173  // the error.
  3174  //
  3175  // See the AWS API reference guide for AWS Shield's
  3176  // API operation UpdateEmergencyContactSettings for usage and error information.
  3177  //
  3178  // Returned Error Types:
  3179  //   * InternalErrorException
  3180  //   Exception that indicates that a problem occurred with the service infrastructure.
  3181  //   You can retry the request.
  3182  //
  3183  //   * InvalidParameterException
  3184  //   Exception that indicates that the parameters passed to the API are invalid.
  3185  //   If available, this exception includes details in additional properties.
  3186  //
  3187  //   * OptimisticLockException
  3188  //   Exception that indicates that the resource state has been modified by another
  3189  //   client. Retrieve the resource and then retry your request.
  3190  //
  3191  //   * ResourceNotFoundException
  3192  //   Exception indicating the specified resource does not exist. If available,
  3193  //   this exception includes details in additional properties.
  3194  //
  3195  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettings
  3196  func (c *Shield) UpdateEmergencyContactSettings(input *UpdateEmergencyContactSettingsInput) (*UpdateEmergencyContactSettingsOutput, error) {
  3197  	req, out := c.UpdateEmergencyContactSettingsRequest(input)
  3198  	return out, req.Send()
  3199  }
  3200  
  3201  // UpdateEmergencyContactSettingsWithContext is the same as UpdateEmergencyContactSettings with the addition of
  3202  // the ability to pass a context and additional request options.
  3203  //
  3204  // See UpdateEmergencyContactSettings for details on how to use this API operation.
  3205  //
  3206  // The context must be non-nil and will be used for request cancellation. If
  3207  // the context is nil a panic will occur. In the future the SDK may create
  3208  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3209  // for more information on using Contexts.
  3210  func (c *Shield) UpdateEmergencyContactSettingsWithContext(ctx aws.Context, input *UpdateEmergencyContactSettingsInput, opts ...request.Option) (*UpdateEmergencyContactSettingsOutput, error) {
  3211  	req, out := c.UpdateEmergencyContactSettingsRequest(input)
  3212  	req.SetContext(ctx)
  3213  	req.ApplyOptions(opts...)
  3214  	return out, req.Send()
  3215  }
  3216  
  3217  const opUpdateProtectionGroup = "UpdateProtectionGroup"
  3218  
  3219  // UpdateProtectionGroupRequest generates a "aws/request.Request" representing the
  3220  // client's request for the UpdateProtectionGroup operation. The "output" return
  3221  // value will be populated with the request's response once the request completes
  3222  // successfully.
  3223  //
  3224  // Use "Send" method on the returned Request to send the API call to the service.
  3225  // the "output" return value is not valid until after Send returns without error.
  3226  //
  3227  // See UpdateProtectionGroup for more information on using the UpdateProtectionGroup
  3228  // API call, and error handling.
  3229  //
  3230  // This method is useful when you want to inject custom logic or configuration
  3231  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3232  //
  3233  //
  3234  //    // Example sending a request using the UpdateProtectionGroupRequest method.
  3235  //    req, resp := client.UpdateProtectionGroupRequest(params)
  3236  //
  3237  //    err := req.Send()
  3238  //    if err == nil { // resp is now filled
  3239  //        fmt.Println(resp)
  3240  //    }
  3241  //
  3242  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroup
  3243  func (c *Shield) UpdateProtectionGroupRequest(input *UpdateProtectionGroupInput) (req *request.Request, output *UpdateProtectionGroupOutput) {
  3244  	op := &request.Operation{
  3245  		Name:       opUpdateProtectionGroup,
  3246  		HTTPMethod: "POST",
  3247  		HTTPPath:   "/",
  3248  	}
  3249  
  3250  	if input == nil {
  3251  		input = &UpdateProtectionGroupInput{}
  3252  	}
  3253  
  3254  	output = &UpdateProtectionGroupOutput{}
  3255  	req = c.newRequest(op, input, output)
  3256  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3257  	return
  3258  }
  3259  
  3260  // UpdateProtectionGroup API operation for AWS Shield.
  3261  //
  3262  // Updates an existing protection group. A protection group is a grouping of
  3263  // protected resources so they can be handled as a collective. This resource
  3264  // grouping improves the accuracy of detection and reduces false positives.
  3265  //
  3266  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3267  // with awserr.Error's Code and Message methods to get detailed information about
  3268  // the error.
  3269  //
  3270  // See the AWS API reference guide for AWS Shield's
  3271  // API operation UpdateProtectionGroup for usage and error information.
  3272  //
  3273  // Returned Error Types:
  3274  //   * InternalErrorException
  3275  //   Exception that indicates that a problem occurred with the service infrastructure.
  3276  //   You can retry the request.
  3277  //
  3278  //   * ResourceNotFoundException
  3279  //   Exception indicating the specified resource does not exist. If available,
  3280  //   this exception includes details in additional properties.
  3281  //
  3282  //   * OptimisticLockException
  3283  //   Exception that indicates that the resource state has been modified by another
  3284  //   client. Retrieve the resource and then retry your request.
  3285  //
  3286  //   * InvalidParameterException
  3287  //   Exception that indicates that the parameters passed to the API are invalid.
  3288  //   If available, this exception includes details in additional properties.
  3289  //
  3290  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroup
  3291  func (c *Shield) UpdateProtectionGroup(input *UpdateProtectionGroupInput) (*UpdateProtectionGroupOutput, error) {
  3292  	req, out := c.UpdateProtectionGroupRequest(input)
  3293  	return out, req.Send()
  3294  }
  3295  
  3296  // UpdateProtectionGroupWithContext is the same as UpdateProtectionGroup with the addition of
  3297  // the ability to pass a context and additional request options.
  3298  //
  3299  // See UpdateProtectionGroup for details on how to use this API operation.
  3300  //
  3301  // The context must be non-nil and will be used for request cancellation. If
  3302  // the context is nil a panic will occur. In the future the SDK may create
  3303  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3304  // for more information on using Contexts.
  3305  func (c *Shield) UpdateProtectionGroupWithContext(ctx aws.Context, input *UpdateProtectionGroupInput, opts ...request.Option) (*UpdateProtectionGroupOutput, error) {
  3306  	req, out := c.UpdateProtectionGroupRequest(input)
  3307  	req.SetContext(ctx)
  3308  	req.ApplyOptions(opts...)
  3309  	return out, req.Send()
  3310  }
  3311  
  3312  const opUpdateSubscription = "UpdateSubscription"
  3313  
  3314  // UpdateSubscriptionRequest generates a "aws/request.Request" representing the
  3315  // client's request for the UpdateSubscription operation. The "output" return
  3316  // value will be populated with the request's response once the request completes
  3317  // successfully.
  3318  //
  3319  // Use "Send" method on the returned Request to send the API call to the service.
  3320  // the "output" return value is not valid until after Send returns without error.
  3321  //
  3322  // See UpdateSubscription for more information on using the UpdateSubscription
  3323  // API call, and error handling.
  3324  //
  3325  // This method is useful when you want to inject custom logic or configuration
  3326  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3327  //
  3328  //
  3329  //    // Example sending a request using the UpdateSubscriptionRequest method.
  3330  //    req, resp := client.UpdateSubscriptionRequest(params)
  3331  //
  3332  //    err := req.Send()
  3333  //    if err == nil { // resp is now filled
  3334  //        fmt.Println(resp)
  3335  //    }
  3336  //
  3337  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscription
  3338  func (c *Shield) UpdateSubscriptionRequest(input *UpdateSubscriptionInput) (req *request.Request, output *UpdateSubscriptionOutput) {
  3339  	op := &request.Operation{
  3340  		Name:       opUpdateSubscription,
  3341  		HTTPMethod: "POST",
  3342  		HTTPPath:   "/",
  3343  	}
  3344  
  3345  	if input == nil {
  3346  		input = &UpdateSubscriptionInput{}
  3347  	}
  3348  
  3349  	output = &UpdateSubscriptionOutput{}
  3350  	req = c.newRequest(op, input, output)
  3351  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3352  	return
  3353  }
  3354  
  3355  // UpdateSubscription API operation for AWS Shield.
  3356  //
  3357  // Updates the details of an existing subscription. Only enter values for parameters
  3358  // you want to change. Empty parameters are not updated.
  3359  //
  3360  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3361  // with awserr.Error's Code and Message methods to get detailed information about
  3362  // the error.
  3363  //
  3364  // See the AWS API reference guide for AWS Shield's
  3365  // API operation UpdateSubscription for usage and error information.
  3366  //
  3367  // Returned Error Types:
  3368  //   * InternalErrorException
  3369  //   Exception that indicates that a problem occurred with the service infrastructure.
  3370  //   You can retry the request.
  3371  //
  3372  //   * LockedSubscriptionException
  3373  //   You are trying to update a subscription that has not yet completed the 1-year
  3374  //   commitment. You can change the AutoRenew parameter during the last 30 days
  3375  //   of your subscription. This exception indicates that you are attempting to
  3376  //   change AutoRenew prior to that period.
  3377  //
  3378  //   * ResourceNotFoundException
  3379  //   Exception indicating the specified resource does not exist. If available,
  3380  //   this exception includes details in additional properties.
  3381  //
  3382  //   * InvalidParameterException
  3383  //   Exception that indicates that the parameters passed to the API are invalid.
  3384  //   If available, this exception includes details in additional properties.
  3385  //
  3386  //   * OptimisticLockException
  3387  //   Exception that indicates that the resource state has been modified by another
  3388  //   client. Retrieve the resource and then retry your request.
  3389  //
  3390  // See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscription
  3391  func (c *Shield) UpdateSubscription(input *UpdateSubscriptionInput) (*UpdateSubscriptionOutput, error) {
  3392  	req, out := c.UpdateSubscriptionRequest(input)
  3393  	return out, req.Send()
  3394  }
  3395  
  3396  // UpdateSubscriptionWithContext is the same as UpdateSubscription with the addition of
  3397  // the ability to pass a context and additional request options.
  3398  //
  3399  // See UpdateSubscription for details on how to use this API operation.
  3400  //
  3401  // The context must be non-nil and will be used for request cancellation. If
  3402  // the context is nil a panic will occur. In the future the SDK may create
  3403  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3404  // for more information on using Contexts.
  3405  func (c *Shield) UpdateSubscriptionWithContext(ctx aws.Context, input *UpdateSubscriptionInput, opts ...request.Option) (*UpdateSubscriptionOutput, error) {
  3406  	req, out := c.UpdateSubscriptionRequest(input)
  3407  	req.SetContext(ctx)
  3408  	req.ApplyOptions(opts...)
  3409  	return out, req.Send()
  3410  }
  3411  
  3412  // Exception that indicates the specified AttackId does not exist, or the requester
  3413  // does not have the appropriate permissions to access the AttackId.
  3414  type AccessDeniedException struct {
  3415  	_            struct{}                  `type:"structure"`
  3416  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3417  
  3418  	Message_ *string `locationName:"message" type:"string"`
  3419  }
  3420  
  3421  // String returns the string representation.
  3422  //
  3423  // API parameter values that are decorated as "sensitive" in the API will not
  3424  // be included in the string output. The member name will be present, but the
  3425  // value will be replaced with "sensitive".
  3426  func (s AccessDeniedException) String() string {
  3427  	return awsutil.Prettify(s)
  3428  }
  3429  
  3430  // GoString returns the string representation.
  3431  //
  3432  // API parameter values that are decorated as "sensitive" in the API will not
  3433  // be included in the string output. The member name will be present, but the
  3434  // value will be replaced with "sensitive".
  3435  func (s AccessDeniedException) GoString() string {
  3436  	return s.String()
  3437  }
  3438  
  3439  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  3440  	return &AccessDeniedException{
  3441  		RespMetadata: v,
  3442  	}
  3443  }
  3444  
  3445  // Code returns the exception type name.
  3446  func (s *AccessDeniedException) Code() string {
  3447  	return "AccessDeniedException"
  3448  }
  3449  
  3450  // Message returns the exception's message.
  3451  func (s *AccessDeniedException) Message() string {
  3452  	if s.Message_ != nil {
  3453  		return *s.Message_
  3454  	}
  3455  	return ""
  3456  }
  3457  
  3458  // OrigErr always returns nil, satisfies awserr.Error interface.
  3459  func (s *AccessDeniedException) OrigErr() error {
  3460  	return nil
  3461  }
  3462  
  3463  func (s *AccessDeniedException) Error() string {
  3464  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3465  }
  3466  
  3467  // Status code returns the HTTP status code for the request's response error.
  3468  func (s *AccessDeniedException) StatusCode() int {
  3469  	return s.RespMetadata.StatusCode
  3470  }
  3471  
  3472  // RequestID returns the service's response RequestID for request.
  3473  func (s *AccessDeniedException) RequestID() string {
  3474  	return s.RespMetadata.RequestID
  3475  }
  3476  
  3477  // In order to grant the necessary access to the Shield Response Team (SRT)
  3478  // the user submitting the request must have the iam:PassRole permission. This
  3479  // error indicates the user did not have the appropriate permissions. For more
  3480  // information, see Granting a User Permissions to Pass a Role to an Amazon
  3481  // Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
  3482  type AccessDeniedForDependencyException struct {
  3483  	_            struct{}                  `type:"structure"`
  3484  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3485  
  3486  	Message_ *string `locationName:"message" type:"string"`
  3487  }
  3488  
  3489  // String returns the string representation.
  3490  //
  3491  // API parameter values that are decorated as "sensitive" in the API will not
  3492  // be included in the string output. The member name will be present, but the
  3493  // value will be replaced with "sensitive".
  3494  func (s AccessDeniedForDependencyException) String() string {
  3495  	return awsutil.Prettify(s)
  3496  }
  3497  
  3498  // GoString returns the string representation.
  3499  //
  3500  // API parameter values that are decorated as "sensitive" in the API will not
  3501  // be included in the string output. The member name will be present, but the
  3502  // value will be replaced with "sensitive".
  3503  func (s AccessDeniedForDependencyException) GoString() string {
  3504  	return s.String()
  3505  }
  3506  
  3507  func newErrorAccessDeniedForDependencyException(v protocol.ResponseMetadata) error {
  3508  	return &AccessDeniedForDependencyException{
  3509  		RespMetadata: v,
  3510  	}
  3511  }
  3512  
  3513  // Code returns the exception type name.
  3514  func (s *AccessDeniedForDependencyException) Code() string {
  3515  	return "AccessDeniedForDependencyException"
  3516  }
  3517  
  3518  // Message returns the exception's message.
  3519  func (s *AccessDeniedForDependencyException) Message() string {
  3520  	if s.Message_ != nil {
  3521  		return *s.Message_
  3522  	}
  3523  	return ""
  3524  }
  3525  
  3526  // OrigErr always returns nil, satisfies awserr.Error interface.
  3527  func (s *AccessDeniedForDependencyException) OrigErr() error {
  3528  	return nil
  3529  }
  3530  
  3531  func (s *AccessDeniedForDependencyException) Error() string {
  3532  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3533  }
  3534  
  3535  // Status code returns the HTTP status code for the request's response error.
  3536  func (s *AccessDeniedForDependencyException) StatusCode() int {
  3537  	return s.RespMetadata.StatusCode
  3538  }
  3539  
  3540  // RequestID returns the service's response RequestID for request.
  3541  func (s *AccessDeniedForDependencyException) RequestID() string {
  3542  	return s.RespMetadata.RequestID
  3543  }
  3544  
  3545  type AssociateDRTLogBucketInput struct {
  3546  	_ struct{} `type:"structure"`
  3547  
  3548  	// The Amazon S3 bucket that contains the logs that you want to share.
  3549  	//
  3550  	// LogBucket is a required field
  3551  	LogBucket *string `min:"3" type:"string" required:"true"`
  3552  }
  3553  
  3554  // String returns the string representation.
  3555  //
  3556  // API parameter values that are decorated as "sensitive" in the API will not
  3557  // be included in the string output. The member name will be present, but the
  3558  // value will be replaced with "sensitive".
  3559  func (s AssociateDRTLogBucketInput) String() string {
  3560  	return awsutil.Prettify(s)
  3561  }
  3562  
  3563  // GoString returns the string representation.
  3564  //
  3565  // API parameter values that are decorated as "sensitive" in the API will not
  3566  // be included in the string output. The member name will be present, but the
  3567  // value will be replaced with "sensitive".
  3568  func (s AssociateDRTLogBucketInput) GoString() string {
  3569  	return s.String()
  3570  }
  3571  
  3572  // Validate inspects the fields of the type to determine if they are valid.
  3573  func (s *AssociateDRTLogBucketInput) Validate() error {
  3574  	invalidParams := request.ErrInvalidParams{Context: "AssociateDRTLogBucketInput"}
  3575  	if s.LogBucket == nil {
  3576  		invalidParams.Add(request.NewErrParamRequired("LogBucket"))
  3577  	}
  3578  	if s.LogBucket != nil && len(*s.LogBucket) < 3 {
  3579  		invalidParams.Add(request.NewErrParamMinLen("LogBucket", 3))
  3580  	}
  3581  
  3582  	if invalidParams.Len() > 0 {
  3583  		return invalidParams
  3584  	}
  3585  	return nil
  3586  }
  3587  
  3588  // SetLogBucket sets the LogBucket field's value.
  3589  func (s *AssociateDRTLogBucketInput) SetLogBucket(v string) *AssociateDRTLogBucketInput {
  3590  	s.LogBucket = &v
  3591  	return s
  3592  }
  3593  
  3594  type AssociateDRTLogBucketOutput struct {
  3595  	_ struct{} `type:"structure"`
  3596  }
  3597  
  3598  // String returns the string representation.
  3599  //
  3600  // API parameter values that are decorated as "sensitive" in the API will not
  3601  // be included in the string output. The member name will be present, but the
  3602  // value will be replaced with "sensitive".
  3603  func (s AssociateDRTLogBucketOutput) String() string {
  3604  	return awsutil.Prettify(s)
  3605  }
  3606  
  3607  // GoString returns the string representation.
  3608  //
  3609  // API parameter values that are decorated as "sensitive" in the API will not
  3610  // be included in the string output. The member name will be present, but the
  3611  // value will be replaced with "sensitive".
  3612  func (s AssociateDRTLogBucketOutput) GoString() string {
  3613  	return s.String()
  3614  }
  3615  
  3616  type AssociateDRTRoleInput struct {
  3617  	_ struct{} `type:"structure"`
  3618  
  3619  	// The Amazon Resource Name (ARN) of the role the SRT will use to access your
  3620  	// Amazon Web Services account.
  3621  	//
  3622  	// Prior to making the AssociateDRTRole request, you must attach the AWSShieldDRTAccessPolicy
  3623  	// (https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy)
  3624  	// managed policy to this role. For more information see Attaching and Detaching
  3625  	// IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
  3626  	//
  3627  	// RoleArn is a required field
  3628  	RoleArn *string `min:"1" type:"string" required:"true"`
  3629  }
  3630  
  3631  // String returns the string representation.
  3632  //
  3633  // API parameter values that are decorated as "sensitive" in the API will not
  3634  // be included in the string output. The member name will be present, but the
  3635  // value will be replaced with "sensitive".
  3636  func (s AssociateDRTRoleInput) String() string {
  3637  	return awsutil.Prettify(s)
  3638  }
  3639  
  3640  // GoString returns the string representation.
  3641  //
  3642  // API parameter values that are decorated as "sensitive" in the API will not
  3643  // be included in the string output. The member name will be present, but the
  3644  // value will be replaced with "sensitive".
  3645  func (s AssociateDRTRoleInput) GoString() string {
  3646  	return s.String()
  3647  }
  3648  
  3649  // Validate inspects the fields of the type to determine if they are valid.
  3650  func (s *AssociateDRTRoleInput) Validate() error {
  3651  	invalidParams := request.ErrInvalidParams{Context: "AssociateDRTRoleInput"}
  3652  	if s.RoleArn == nil {
  3653  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  3654  	}
  3655  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  3656  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  3657  	}
  3658  
  3659  	if invalidParams.Len() > 0 {
  3660  		return invalidParams
  3661  	}
  3662  	return nil
  3663  }
  3664  
  3665  // SetRoleArn sets the RoleArn field's value.
  3666  func (s *AssociateDRTRoleInput) SetRoleArn(v string) *AssociateDRTRoleInput {
  3667  	s.RoleArn = &v
  3668  	return s
  3669  }
  3670  
  3671  type AssociateDRTRoleOutput struct {
  3672  	_ struct{} `type:"structure"`
  3673  }
  3674  
  3675  // String returns the string representation.
  3676  //
  3677  // API parameter values that are decorated as "sensitive" in the API will not
  3678  // be included in the string output. The member name will be present, but the
  3679  // value will be replaced with "sensitive".
  3680  func (s AssociateDRTRoleOutput) String() string {
  3681  	return awsutil.Prettify(s)
  3682  }
  3683  
  3684  // GoString returns the string representation.
  3685  //
  3686  // API parameter values that are decorated as "sensitive" in the API will not
  3687  // be included in the string output. The member name will be present, but the
  3688  // value will be replaced with "sensitive".
  3689  func (s AssociateDRTRoleOutput) GoString() string {
  3690  	return s.String()
  3691  }
  3692  
  3693  type AssociateHealthCheckInput struct {
  3694  	_ struct{} `type:"structure"`
  3695  
  3696  	// The Amazon Resource Name (ARN) of the health check to associate with the
  3697  	// protection.
  3698  	//
  3699  	// HealthCheckArn is a required field
  3700  	HealthCheckArn *string `min:"1" type:"string" required:"true"`
  3701  
  3702  	// The unique identifier (ID) for the Protection object to add the health check
  3703  	// association to.
  3704  	//
  3705  	// ProtectionId is a required field
  3706  	ProtectionId *string `min:"1" type:"string" required:"true"`
  3707  }
  3708  
  3709  // String returns the string representation.
  3710  //
  3711  // API parameter values that are decorated as "sensitive" in the API will not
  3712  // be included in the string output. The member name will be present, but the
  3713  // value will be replaced with "sensitive".
  3714  func (s AssociateHealthCheckInput) String() string {
  3715  	return awsutil.Prettify(s)
  3716  }
  3717  
  3718  // GoString returns the string representation.
  3719  //
  3720  // API parameter values that are decorated as "sensitive" in the API will not
  3721  // be included in the string output. The member name will be present, but the
  3722  // value will be replaced with "sensitive".
  3723  func (s AssociateHealthCheckInput) GoString() string {
  3724  	return s.String()
  3725  }
  3726  
  3727  // Validate inspects the fields of the type to determine if they are valid.
  3728  func (s *AssociateHealthCheckInput) Validate() error {
  3729  	invalidParams := request.ErrInvalidParams{Context: "AssociateHealthCheckInput"}
  3730  	if s.HealthCheckArn == nil {
  3731  		invalidParams.Add(request.NewErrParamRequired("HealthCheckArn"))
  3732  	}
  3733  	if s.HealthCheckArn != nil && len(*s.HealthCheckArn) < 1 {
  3734  		invalidParams.Add(request.NewErrParamMinLen("HealthCheckArn", 1))
  3735  	}
  3736  	if s.ProtectionId == nil {
  3737  		invalidParams.Add(request.NewErrParamRequired("ProtectionId"))
  3738  	}
  3739  	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
  3740  		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
  3741  	}
  3742  
  3743  	if invalidParams.Len() > 0 {
  3744  		return invalidParams
  3745  	}
  3746  	return nil
  3747  }
  3748  
  3749  // SetHealthCheckArn sets the HealthCheckArn field's value.
  3750  func (s *AssociateHealthCheckInput) SetHealthCheckArn(v string) *AssociateHealthCheckInput {
  3751  	s.HealthCheckArn = &v
  3752  	return s
  3753  }
  3754  
  3755  // SetProtectionId sets the ProtectionId field's value.
  3756  func (s *AssociateHealthCheckInput) SetProtectionId(v string) *AssociateHealthCheckInput {
  3757  	s.ProtectionId = &v
  3758  	return s
  3759  }
  3760  
  3761  type AssociateHealthCheckOutput struct {
  3762  	_ struct{} `type:"structure"`
  3763  }
  3764  
  3765  // String returns the string representation.
  3766  //
  3767  // API parameter values that are decorated as "sensitive" in the API will not
  3768  // be included in the string output. The member name will be present, but the
  3769  // value will be replaced with "sensitive".
  3770  func (s AssociateHealthCheckOutput) String() string {
  3771  	return awsutil.Prettify(s)
  3772  }
  3773  
  3774  // GoString returns the string representation.
  3775  //
  3776  // API parameter values that are decorated as "sensitive" in the API will not
  3777  // be included in the string output. The member name will be present, but the
  3778  // value will be replaced with "sensitive".
  3779  func (s AssociateHealthCheckOutput) GoString() string {
  3780  	return s.String()
  3781  }
  3782  
  3783  type AssociateProactiveEngagementDetailsInput struct {
  3784  	_ struct{} `type:"structure"`
  3785  
  3786  	// A list of email addresses and phone numbers that the Shield Response Team
  3787  	// (SRT) can use to contact you for escalations to the SRT and to initiate proactive
  3788  	// customer support.
  3789  	//
  3790  	// To enable proactive engagement, the contact list must include at least one
  3791  	// phone number.
  3792  	//
  3793  	// The contacts that you provide here replace any contacts that were already
  3794  	// defined. If you already have contacts defined and want to use them, retrieve
  3795  	// the list using DescribeEmergencyContactSettings and then provide it here.
  3796  	//
  3797  	// EmergencyContactList is a required field
  3798  	EmergencyContactList []*EmergencyContact `type:"list" required:"true"`
  3799  }
  3800  
  3801  // String returns the string representation.
  3802  //
  3803  // API parameter values that are decorated as "sensitive" in the API will not
  3804  // be included in the string output. The member name will be present, but the
  3805  // value will be replaced with "sensitive".
  3806  func (s AssociateProactiveEngagementDetailsInput) String() string {
  3807  	return awsutil.Prettify(s)
  3808  }
  3809  
  3810  // GoString returns the string representation.
  3811  //
  3812  // API parameter values that are decorated as "sensitive" in the API will not
  3813  // be included in the string output. The member name will be present, but the
  3814  // value will be replaced with "sensitive".
  3815  func (s AssociateProactiveEngagementDetailsInput) GoString() string {
  3816  	return s.String()
  3817  }
  3818  
  3819  // Validate inspects the fields of the type to determine if they are valid.
  3820  func (s *AssociateProactiveEngagementDetailsInput) Validate() error {
  3821  	invalidParams := request.ErrInvalidParams{Context: "AssociateProactiveEngagementDetailsInput"}
  3822  	if s.EmergencyContactList == nil {
  3823  		invalidParams.Add(request.NewErrParamRequired("EmergencyContactList"))
  3824  	}
  3825  	if s.EmergencyContactList != nil {
  3826  		for i, v := range s.EmergencyContactList {
  3827  			if v == nil {
  3828  				continue
  3829  			}
  3830  			if err := v.Validate(); err != nil {
  3831  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmergencyContactList", i), err.(request.ErrInvalidParams))
  3832  			}
  3833  		}
  3834  	}
  3835  
  3836  	if invalidParams.Len() > 0 {
  3837  		return invalidParams
  3838  	}
  3839  	return nil
  3840  }
  3841  
  3842  // SetEmergencyContactList sets the EmergencyContactList field's value.
  3843  func (s *AssociateProactiveEngagementDetailsInput) SetEmergencyContactList(v []*EmergencyContact) *AssociateProactiveEngagementDetailsInput {
  3844  	s.EmergencyContactList = v
  3845  	return s
  3846  }
  3847  
  3848  type AssociateProactiveEngagementDetailsOutput struct {
  3849  	_ struct{} `type:"structure"`
  3850  }
  3851  
  3852  // String returns the string representation.
  3853  //
  3854  // API parameter values that are decorated as "sensitive" in the API will not
  3855  // be included in the string output. The member name will be present, but the
  3856  // value will be replaced with "sensitive".
  3857  func (s AssociateProactiveEngagementDetailsOutput) String() string {
  3858  	return awsutil.Prettify(s)
  3859  }
  3860  
  3861  // GoString returns the string representation.
  3862  //
  3863  // API parameter values that are decorated as "sensitive" in the API will not
  3864  // be included in the string output. The member name will be present, but the
  3865  // value will be replaced with "sensitive".
  3866  func (s AssociateProactiveEngagementDetailsOutput) GoString() string {
  3867  	return s.String()
  3868  }
  3869  
  3870  // The details of a DDoS attack.
  3871  type AttackDetail struct {
  3872  	_ struct{} `type:"structure"`
  3873  
  3874  	// List of counters that describe the attack for the specified time period.
  3875  	AttackCounters []*SummarizedCounter `type:"list"`
  3876  
  3877  	// The unique identifier (ID) of the attack.
  3878  	AttackId *string `min:"1" type:"string"`
  3879  
  3880  	// The array of objects that provide details of the Shield event.
  3881  	//
  3882  	// For infrastructure layer events (L3 and L4 events) after January 25, 2021,
  3883  	// you can view metrics for top contributors in Amazon CloudWatch metrics. For
  3884  	// more information, see Shield metrics and alarms (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms)
  3885  	// in the WAF Developer Guide.
  3886  	AttackProperties []*AttackProperty `type:"list"`
  3887  
  3888  	// The time the attack ended, in Unix time in seconds. For more information
  3889  	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
  3890  	EndTime *time.Time `type:"timestamp"`
  3891  
  3892  	// List of mitigation actions taken for the attack.
  3893  	Mitigations []*Mitigation `type:"list"`
  3894  
  3895  	// The ARN (Amazon Resource Name) of the resource that was attacked.
  3896  	ResourceArn *string `min:"1" type:"string"`
  3897  
  3898  	// The time the attack started, in Unix time in seconds. For more information
  3899  	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
  3900  	StartTime *time.Time `type:"timestamp"`
  3901  
  3902  	// If applicable, additional detail about the resource being attacked, for example,
  3903  	// IP address or URL.
  3904  	SubResources []*SubResourceSummary `type:"list"`
  3905  }
  3906  
  3907  // String returns the string representation.
  3908  //
  3909  // API parameter values that are decorated as "sensitive" in the API will not
  3910  // be included in the string output. The member name will be present, but the
  3911  // value will be replaced with "sensitive".
  3912  func (s AttackDetail) String() string {
  3913  	return awsutil.Prettify(s)
  3914  }
  3915  
  3916  // GoString returns the string representation.
  3917  //
  3918  // API parameter values that are decorated as "sensitive" in the API will not
  3919  // be included in the string output. The member name will be present, but the
  3920  // value will be replaced with "sensitive".
  3921  func (s AttackDetail) GoString() string {
  3922  	return s.String()
  3923  }
  3924  
  3925  // SetAttackCounters sets the AttackCounters field's value.
  3926  func (s *AttackDetail) SetAttackCounters(v []*SummarizedCounter) *AttackDetail {
  3927  	s.AttackCounters = v
  3928  	return s
  3929  }
  3930  
  3931  // SetAttackId sets the AttackId field's value.
  3932  func (s *AttackDetail) SetAttackId(v string) *AttackDetail {
  3933  	s.AttackId = &v
  3934  	return s
  3935  }
  3936  
  3937  // SetAttackProperties sets the AttackProperties field's value.
  3938  func (s *AttackDetail) SetAttackProperties(v []*AttackProperty) *AttackDetail {
  3939  	s.AttackProperties = v
  3940  	return s
  3941  }
  3942  
  3943  // SetEndTime sets the EndTime field's value.
  3944  func (s *AttackDetail) SetEndTime(v time.Time) *AttackDetail {
  3945  	s.EndTime = &v
  3946  	return s
  3947  }
  3948  
  3949  // SetMitigations sets the Mitigations field's value.
  3950  func (s *AttackDetail) SetMitigations(v []*Mitigation) *AttackDetail {
  3951  	s.Mitigations = v
  3952  	return s
  3953  }
  3954  
  3955  // SetResourceArn sets the ResourceArn field's value.
  3956  func (s *AttackDetail) SetResourceArn(v string) *AttackDetail {
  3957  	s.ResourceArn = &v
  3958  	return s
  3959  }
  3960  
  3961  // SetStartTime sets the StartTime field's value.
  3962  func (s *AttackDetail) SetStartTime(v time.Time) *AttackDetail {
  3963  	s.StartTime = &v
  3964  	return s
  3965  }
  3966  
  3967  // SetSubResources sets the SubResources field's value.
  3968  func (s *AttackDetail) SetSubResources(v []*SubResourceSummary) *AttackDetail {
  3969  	s.SubResources = v
  3970  	return s
  3971  }
  3972  
  3973  // Details of a Shield event. This is provided as part of an AttackDetail.
  3974  type AttackProperty struct {
  3975  	_ struct{} `type:"structure"`
  3976  
  3977  	// The type of Shield event that was observed. NETWORK indicates layer 3 and
  3978  	// layer 4 events and APPLICATION indicates layer 7 events.
  3979  	//
  3980  	// For infrastructure layer events (L3 and L4 events) after January 25, 2021,
  3981  	// you can view metrics for top contributors in Amazon CloudWatch metrics. For
  3982  	// more information, see Shield metrics and alarms (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms)
  3983  	// in the WAF Developer Guide.
  3984  	AttackLayer *string `type:"string" enum:"AttackLayer"`
  3985  
  3986  	// Defines the Shield event property information that is provided. The WORDPRESS_PINGBACK_REFLECTOR
  3987  	// and WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress reflective
  3988  	// pingback events.
  3989  	AttackPropertyIdentifier *string `type:"string" enum:"AttackPropertyIdentifier"`
  3990  
  3991  	// Contributor objects for the top five contributors to a Shield event.
  3992  	TopContributors []*Contributor `type:"list"`
  3993  
  3994  	// The total contributions made to this Shield event by all contributors.
  3995  	Total *int64 `type:"long"`
  3996  
  3997  	// The unit used for the Contributor Value property.
  3998  	Unit *string `type:"string" enum:"Unit"`
  3999  }
  4000  
  4001  // String returns the string representation.
  4002  //
  4003  // API parameter values that are decorated as "sensitive" in the API will not
  4004  // be included in the string output. The member name will be present, but the
  4005  // value will be replaced with "sensitive".
  4006  func (s AttackProperty) String() string {
  4007  	return awsutil.Prettify(s)
  4008  }
  4009  
  4010  // GoString returns the string representation.
  4011  //
  4012  // API parameter values that are decorated as "sensitive" in the API will not
  4013  // be included in the string output. The member name will be present, but the
  4014  // value will be replaced with "sensitive".
  4015  func (s AttackProperty) GoString() string {
  4016  	return s.String()
  4017  }
  4018  
  4019  // SetAttackLayer sets the AttackLayer field's value.
  4020  func (s *AttackProperty) SetAttackLayer(v string) *AttackProperty {
  4021  	s.AttackLayer = &v
  4022  	return s
  4023  }
  4024  
  4025  // SetAttackPropertyIdentifier sets the AttackPropertyIdentifier field's value.
  4026  func (s *AttackProperty) SetAttackPropertyIdentifier(v string) *AttackProperty {
  4027  	s.AttackPropertyIdentifier = &v
  4028  	return s
  4029  }
  4030  
  4031  // SetTopContributors sets the TopContributors field's value.
  4032  func (s *AttackProperty) SetTopContributors(v []*Contributor) *AttackProperty {
  4033  	s.TopContributors = v
  4034  	return s
  4035  }
  4036  
  4037  // SetTotal sets the Total field's value.
  4038  func (s *AttackProperty) SetTotal(v int64) *AttackProperty {
  4039  	s.Total = &v
  4040  	return s
  4041  }
  4042  
  4043  // SetUnit sets the Unit field's value.
  4044  func (s *AttackProperty) SetUnit(v string) *AttackProperty {
  4045  	s.Unit = &v
  4046  	return s
  4047  }
  4048  
  4049  // A single attack statistics data record. This is returned by DescribeAttackStatistics
  4050  // along with a time range indicating the time period that the attack statistics
  4051  // apply to.
  4052  type AttackStatisticsDataItem struct {
  4053  	_ struct{} `type:"structure"`
  4054  
  4055  	// The number of attacks detected during the time period. This is always present,
  4056  	// but might be zero.
  4057  	//
  4058  	// AttackCount is a required field
  4059  	AttackCount *int64 `type:"long" required:"true"`
  4060  
  4061  	// Information about the volume of attacks during the time period. If the accompanying
  4062  	// AttackCount is zero, this setting might be empty.
  4063  	AttackVolume *AttackVolume `type:"structure"`
  4064  }
  4065  
  4066  // String returns the string representation.
  4067  //
  4068  // API parameter values that are decorated as "sensitive" in the API will not
  4069  // be included in the string output. The member name will be present, but the
  4070  // value will be replaced with "sensitive".
  4071  func (s AttackStatisticsDataItem) String() string {
  4072  	return awsutil.Prettify(s)
  4073  }
  4074  
  4075  // GoString returns the string representation.
  4076  //
  4077  // API parameter values that are decorated as "sensitive" in the API will not
  4078  // be included in the string output. The member name will be present, but the
  4079  // value will be replaced with "sensitive".
  4080  func (s AttackStatisticsDataItem) GoString() string {
  4081  	return s.String()
  4082  }
  4083  
  4084  // SetAttackCount sets the AttackCount field's value.
  4085  func (s *AttackStatisticsDataItem) SetAttackCount(v int64) *AttackStatisticsDataItem {
  4086  	s.AttackCount = &v
  4087  	return s
  4088  }
  4089  
  4090  // SetAttackVolume sets the AttackVolume field's value.
  4091  func (s *AttackStatisticsDataItem) SetAttackVolume(v *AttackVolume) *AttackStatisticsDataItem {
  4092  	s.AttackVolume = v
  4093  	return s
  4094  }
  4095  
  4096  // Summarizes all DDoS attacks for a specified time period.
  4097  type AttackSummary struct {
  4098  	_ struct{} `type:"structure"`
  4099  
  4100  	// The unique identifier (ID) of the attack.
  4101  	AttackId *string `type:"string"`
  4102  
  4103  	// The list of attacks for a specified time period.
  4104  	AttackVectors []*AttackVectorDescription `type:"list"`
  4105  
  4106  	// The end time of the attack, in Unix time in seconds. For more information
  4107  	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
  4108  	EndTime *time.Time `type:"timestamp"`
  4109  
  4110  	// The ARN (Amazon Resource Name) of the resource that was attacked.
  4111  	ResourceArn *string `type:"string"`
  4112  
  4113  	// The start time of the attack, in Unix time in seconds. For more information
  4114  	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
  4115  	StartTime *time.Time `type:"timestamp"`
  4116  }
  4117  
  4118  // String returns the string representation.
  4119  //
  4120  // API parameter values that are decorated as "sensitive" in the API will not
  4121  // be included in the string output. The member name will be present, but the
  4122  // value will be replaced with "sensitive".
  4123  func (s AttackSummary) String() string {
  4124  	return awsutil.Prettify(s)
  4125  }
  4126  
  4127  // GoString returns the string representation.
  4128  //
  4129  // API parameter values that are decorated as "sensitive" in the API will not
  4130  // be included in the string output. The member name will be present, but the
  4131  // value will be replaced with "sensitive".
  4132  func (s AttackSummary) GoString() string {
  4133  	return s.String()
  4134  }
  4135  
  4136  // SetAttackId sets the AttackId field's value.
  4137  func (s *AttackSummary) SetAttackId(v string) *AttackSummary {
  4138  	s.AttackId = &v
  4139  	return s
  4140  }
  4141  
  4142  // SetAttackVectors sets the AttackVectors field's value.
  4143  func (s *AttackSummary) SetAttackVectors(v []*AttackVectorDescription) *AttackSummary {
  4144  	s.AttackVectors = v
  4145  	return s
  4146  }
  4147  
  4148  // SetEndTime sets the EndTime field's value.
  4149  func (s *AttackSummary) SetEndTime(v time.Time) *AttackSummary {
  4150  	s.EndTime = &v
  4151  	return s
  4152  }
  4153  
  4154  // SetResourceArn sets the ResourceArn field's value.
  4155  func (s *AttackSummary) SetResourceArn(v string) *AttackSummary {
  4156  	s.ResourceArn = &v
  4157  	return s
  4158  }
  4159  
  4160  // SetStartTime sets the StartTime field's value.
  4161  func (s *AttackSummary) SetStartTime(v time.Time) *AttackSummary {
  4162  	s.StartTime = &v
  4163  	return s
  4164  }
  4165  
  4166  // Describes the attack.
  4167  type AttackVectorDescription struct {
  4168  	_ struct{} `type:"structure"`
  4169  
  4170  	// The attack type. Valid values:
  4171  	//
  4172  	//    * UDP_TRAFFIC
  4173  	//
  4174  	//    * UDP_FRAGMENT
  4175  	//
  4176  	//    * GENERIC_UDP_REFLECTION
  4177  	//
  4178  	//    * DNS_REFLECTION
  4179  	//
  4180  	//    * NTP_REFLECTION
  4181  	//
  4182  	//    * CHARGEN_REFLECTION
  4183  	//
  4184  	//    * SSDP_REFLECTION
  4185  	//
  4186  	//    * PORT_MAPPER
  4187  	//
  4188  	//    * RIP_REFLECTION
  4189  	//
  4190  	//    * SNMP_REFLECTION
  4191  	//
  4192  	//    * MSSQL_REFLECTION
  4193  	//
  4194  	//    * NET_BIOS_REFLECTION
  4195  	//
  4196  	//    * SYN_FLOOD
  4197  	//
  4198  	//    * ACK_FLOOD
  4199  	//
  4200  	//    * REQUEST_FLOOD
  4201  	//
  4202  	//    * HTTP_REFLECTION
  4203  	//
  4204  	//    * UDS_REFLECTION
  4205  	//
  4206  	//    * MEMCACHED_REFLECTION
  4207  	//
  4208  	// VectorType is a required field
  4209  	VectorType *string `type:"string" required:"true"`
  4210  }
  4211  
  4212  // String returns the string representation.
  4213  //
  4214  // API parameter values that are decorated as "sensitive" in the API will not
  4215  // be included in the string output. The member name will be present, but the
  4216  // value will be replaced with "sensitive".
  4217  func (s AttackVectorDescription) String() string {
  4218  	return awsutil.Prettify(s)
  4219  }
  4220  
  4221  // GoString returns the string representation.
  4222  //
  4223  // API parameter values that are decorated as "sensitive" in the API will not
  4224  // be included in the string output. The member name will be present, but the
  4225  // value will be replaced with "sensitive".
  4226  func (s AttackVectorDescription) GoString() string {
  4227  	return s.String()
  4228  }
  4229  
  4230  // SetVectorType sets the VectorType field's value.
  4231  func (s *AttackVectorDescription) SetVectorType(v string) *AttackVectorDescription {
  4232  	s.VectorType = &v
  4233  	return s
  4234  }
  4235  
  4236  // Information about the volume of attacks during the time period, included
  4237  // in an AttackStatisticsDataItem. If the accompanying AttackCount in the statistics
  4238  // object is zero, this setting might be empty.
  4239  type AttackVolume struct {
  4240  	_ struct{} `type:"structure"`
  4241  
  4242  	// A statistics object that uses bits per second as the unit. This is included
  4243  	// for network level attacks.
  4244  	BitsPerSecond *AttackVolumeStatistics `type:"structure"`
  4245  
  4246  	// A statistics object that uses packets per second as the unit. This is included
  4247  	// for network level attacks.
  4248  	PacketsPerSecond *AttackVolumeStatistics `type:"structure"`
  4249  
  4250  	// A statistics object that uses requests per second as the unit. This is included
  4251  	// for application level attacks, and is only available for accounts that are
  4252  	// subscribed to Shield Advanced.
  4253  	RequestsPerSecond *AttackVolumeStatistics `type:"structure"`
  4254  }
  4255  
  4256  // String returns the string representation.
  4257  //
  4258  // API parameter values that are decorated as "sensitive" in the API will not
  4259  // be included in the string output. The member name will be present, but the
  4260  // value will be replaced with "sensitive".
  4261  func (s AttackVolume) String() string {
  4262  	return awsutil.Prettify(s)
  4263  }
  4264  
  4265  // GoString returns the string representation.
  4266  //
  4267  // API parameter values that are decorated as "sensitive" in the API will not
  4268  // be included in the string output. The member name will be present, but the
  4269  // value will be replaced with "sensitive".
  4270  func (s AttackVolume) GoString() string {
  4271  	return s.String()
  4272  }
  4273  
  4274  // SetBitsPerSecond sets the BitsPerSecond field's value.
  4275  func (s *AttackVolume) SetBitsPerSecond(v *AttackVolumeStatistics) *AttackVolume {
  4276  	s.BitsPerSecond = v
  4277  	return s
  4278  }
  4279  
  4280  // SetPacketsPerSecond sets the PacketsPerSecond field's value.
  4281  func (s *AttackVolume) SetPacketsPerSecond(v *AttackVolumeStatistics) *AttackVolume {
  4282  	s.PacketsPerSecond = v
  4283  	return s
  4284  }
  4285  
  4286  // SetRequestsPerSecond sets the RequestsPerSecond field's value.
  4287  func (s *AttackVolume) SetRequestsPerSecond(v *AttackVolumeStatistics) *AttackVolume {
  4288  	s.RequestsPerSecond = v
  4289  	return s
  4290  }
  4291  
  4292  // Statistics objects for the various data types in AttackVolume.
  4293  type AttackVolumeStatistics struct {
  4294  	_ struct{} `type:"structure"`
  4295  
  4296  	// The maximum attack volume observed for the given unit.
  4297  	//
  4298  	// Max is a required field
  4299  	Max *float64 `type:"double" required:"true"`
  4300  }
  4301  
  4302  // String returns the string representation.
  4303  //
  4304  // API parameter values that are decorated as "sensitive" in the API will not
  4305  // be included in the string output. The member name will be present, but the
  4306  // value will be replaced with "sensitive".
  4307  func (s AttackVolumeStatistics) String() string {
  4308  	return awsutil.Prettify(s)
  4309  }
  4310  
  4311  // GoString returns the string representation.
  4312  //
  4313  // API parameter values that are decorated as "sensitive" in the API will not
  4314  // be included in the string output. The member name will be present, but the
  4315  // value will be replaced with "sensitive".
  4316  func (s AttackVolumeStatistics) GoString() string {
  4317  	return s.String()
  4318  }
  4319  
  4320  // SetMax sets the Max field's value.
  4321  func (s *AttackVolumeStatistics) SetMax(v float64) *AttackVolumeStatistics {
  4322  	s.Max = &v
  4323  	return s
  4324  }
  4325  
  4326  // A contributor to the attack and their contribution.
  4327  type Contributor struct {
  4328  	_ struct{} `type:"structure"`
  4329  
  4330  	// The name of the contributor. This is dependent on the AttackPropertyIdentifier.
  4331  	// For example, if the AttackPropertyIdentifier is SOURCE_COUNTRY, the Name
  4332  	// could be United States.
  4333  	Name *string `type:"string"`
  4334  
  4335  	// The contribution of this contributor expressed in Protection units. For example
  4336  	// 10,000.
  4337  	Value *int64 `type:"long"`
  4338  }
  4339  
  4340  // String returns the string representation.
  4341  //
  4342  // API parameter values that are decorated as "sensitive" in the API will not
  4343  // be included in the string output. The member name will be present, but the
  4344  // value will be replaced with "sensitive".
  4345  func (s Contributor) String() string {
  4346  	return awsutil.Prettify(s)
  4347  }
  4348  
  4349  // GoString returns the string representation.
  4350  //
  4351  // API parameter values that are decorated as "sensitive" in the API will not
  4352  // be included in the string output. The member name will be present, but the
  4353  // value will be replaced with "sensitive".
  4354  func (s Contributor) GoString() string {
  4355  	return s.String()
  4356  }
  4357  
  4358  // SetName sets the Name field's value.
  4359  func (s *Contributor) SetName(v string) *Contributor {
  4360  	s.Name = &v
  4361  	return s
  4362  }
  4363  
  4364  // SetValue sets the Value field's value.
  4365  func (s *Contributor) SetValue(v int64) *Contributor {
  4366  	s.Value = &v
  4367  	return s
  4368  }
  4369  
  4370  type CreateProtectionGroupInput struct {
  4371  	_ struct{} `type:"structure"`
  4372  
  4373  	// Defines how Shield combines resource data for the group in order to detect,
  4374  	// mitigate, and report events.
  4375  	//
  4376  	//    * Sum - Use the total traffic across the group. This is a good choice
  4377  	//    for most cases. Examples include Elastic IP addresses for EC2 instances
  4378  	//    that scale manually or automatically.
  4379  	//
  4380  	//    * Mean - Use the average of the traffic across the group. This is a good
  4381  	//    choice for resources that share traffic uniformly. Examples include accelerators
  4382  	//    and load balancers.
  4383  	//
  4384  	//    * Max - Use the highest traffic from each resource. This is useful for
  4385  	//    resources that don't share traffic and for resources that share that traffic
  4386  	//    in a non-uniform way. Examples include Amazon CloudFront and origin resources
  4387  	//    for CloudFront distributions.
  4388  	//
  4389  	// Aggregation is a required field
  4390  	Aggregation *string `type:"string" required:"true" enum:"ProtectionGroupAggregation"`
  4391  
  4392  	// The Amazon Resource Names (ARNs) of the resources to include in the protection
  4393  	// group. You must set this when you set Pattern to ARBITRARY and you must not
  4394  	// set it for any other Pattern setting.
  4395  	Members []*string `type:"list"`
  4396  
  4397  	// The criteria to use to choose the protected resources for inclusion in the
  4398  	// group. You can include all resources that have protections, provide a list
  4399  	// of resource Amazon Resource Names (ARNs), or include all resources of a specified
  4400  	// resource type.
  4401  	//
  4402  	// Pattern is a required field
  4403  	Pattern *string `type:"string" required:"true" enum:"ProtectionGroupPattern"`
  4404  
  4405  	// The name of the protection group. You use this to identify the protection
  4406  	// group in lists and to manage the protection group, for example to update,
  4407  	// delete, or describe it.
  4408  	//
  4409  	// ProtectionGroupId is a required field
  4410  	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
  4411  
  4412  	// The resource type to include in the protection group. All protected resources
  4413  	// of this type are included in the protection group. Newly protected resources
  4414  	// of this type are automatically added to the group. You must set this when
  4415  	// you set Pattern to BY_RESOURCE_TYPE and you must not set it for any other
  4416  	// Pattern setting.
  4417  	ResourceType *string `type:"string" enum:"ProtectedResourceType"`
  4418  
  4419  	// One or more tag key-value pairs for the protection group.
  4420  	Tags []*Tag `type:"list"`
  4421  }
  4422  
  4423  // String returns the string representation.
  4424  //
  4425  // API parameter values that are decorated as "sensitive" in the API will not
  4426  // be included in the string output. The member name will be present, but the
  4427  // value will be replaced with "sensitive".
  4428  func (s CreateProtectionGroupInput) String() string {
  4429  	return awsutil.Prettify(s)
  4430  }
  4431  
  4432  // GoString returns the string representation.
  4433  //
  4434  // API parameter values that are decorated as "sensitive" in the API will not
  4435  // be included in the string output. The member name will be present, but the
  4436  // value will be replaced with "sensitive".
  4437  func (s CreateProtectionGroupInput) GoString() string {
  4438  	return s.String()
  4439  }
  4440  
  4441  // Validate inspects the fields of the type to determine if they are valid.
  4442  func (s *CreateProtectionGroupInput) Validate() error {
  4443  	invalidParams := request.ErrInvalidParams{Context: "CreateProtectionGroupInput"}
  4444  	if s.Aggregation == nil {
  4445  		invalidParams.Add(request.NewErrParamRequired("Aggregation"))
  4446  	}
  4447  	if s.Pattern == nil {
  4448  		invalidParams.Add(request.NewErrParamRequired("Pattern"))
  4449  	}
  4450  	if s.ProtectionGroupId == nil {
  4451  		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
  4452  	}
  4453  	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
  4454  		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
  4455  	}
  4456  	if s.Tags != nil {
  4457  		for i, v := range s.Tags {
  4458  			if v == nil {
  4459  				continue
  4460  			}
  4461  			if err := v.Validate(); err != nil {
  4462  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  4463  			}
  4464  		}
  4465  	}
  4466  
  4467  	if invalidParams.Len() > 0 {
  4468  		return invalidParams
  4469  	}
  4470  	return nil
  4471  }
  4472  
  4473  // SetAggregation sets the Aggregation field's value.
  4474  func (s *CreateProtectionGroupInput) SetAggregation(v string) *CreateProtectionGroupInput {
  4475  	s.Aggregation = &v
  4476  	return s
  4477  }
  4478  
  4479  // SetMembers sets the Members field's value.
  4480  func (s *CreateProtectionGroupInput) SetMembers(v []*string) *CreateProtectionGroupInput {
  4481  	s.Members = v
  4482  	return s
  4483  }
  4484  
  4485  // SetPattern sets the Pattern field's value.
  4486  func (s *CreateProtectionGroupInput) SetPattern(v string) *CreateProtectionGroupInput {
  4487  	s.Pattern = &v
  4488  	return s
  4489  }
  4490  
  4491  // SetProtectionGroupId sets the ProtectionGroupId field's value.
  4492  func (s *CreateProtectionGroupInput) SetProtectionGroupId(v string) *CreateProtectionGroupInput {
  4493  	s.ProtectionGroupId = &v
  4494  	return s
  4495  }
  4496  
  4497  // SetResourceType sets the ResourceType field's value.
  4498  func (s *CreateProtectionGroupInput) SetResourceType(v string) *CreateProtectionGroupInput {
  4499  	s.ResourceType = &v
  4500  	return s
  4501  }
  4502  
  4503  // SetTags sets the Tags field's value.
  4504  func (s *CreateProtectionGroupInput) SetTags(v []*Tag) *CreateProtectionGroupInput {
  4505  	s.Tags = v
  4506  	return s
  4507  }
  4508  
  4509  type CreateProtectionGroupOutput struct {
  4510  	_ struct{} `type:"structure"`
  4511  }
  4512  
  4513  // String returns the string representation.
  4514  //
  4515  // API parameter values that are decorated as "sensitive" in the API will not
  4516  // be included in the string output. The member name will be present, but the
  4517  // value will be replaced with "sensitive".
  4518  func (s CreateProtectionGroupOutput) String() string {
  4519  	return awsutil.Prettify(s)
  4520  }
  4521  
  4522  // GoString returns the string representation.
  4523  //
  4524  // API parameter values that are decorated as "sensitive" in the API will not
  4525  // be included in the string output. The member name will be present, but the
  4526  // value will be replaced with "sensitive".
  4527  func (s CreateProtectionGroupOutput) GoString() string {
  4528  	return s.String()
  4529  }
  4530  
  4531  type CreateProtectionInput struct {
  4532  	_ struct{} `type:"structure"`
  4533  
  4534  	// Friendly name for the Protection you are creating.
  4535  	//
  4536  	// Name is a required field
  4537  	Name *string `min:"1" type:"string" required:"true"`
  4538  
  4539  	// The ARN (Amazon Resource Name) of the resource to be protected.
  4540  	//
  4541  	// The ARN should be in one of the following formats:
  4542  	//
  4543  	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
  4544  	//
  4545  	//    * For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name
  4546  	//
  4547  	//    * For an Amazon CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id
  4548  	//
  4549  	//    * For an Global Accelerator accelerator: arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
  4550  	//
  4551  	//    * For Amazon Route 53: arn:aws:route53:::hostedzone/hosted-zone-id
  4552  	//
  4553  	//    * For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id
  4554  	//
  4555  	// ResourceArn is a required field
  4556  	ResourceArn *string `min:"1" type:"string" required:"true"`
  4557  
  4558  	// One or more tag key-value pairs for the Protection object that is created.
  4559  	Tags []*Tag `type:"list"`
  4560  }
  4561  
  4562  // String returns the string representation.
  4563  //
  4564  // API parameter values that are decorated as "sensitive" in the API will not
  4565  // be included in the string output. The member name will be present, but the
  4566  // value will be replaced with "sensitive".
  4567  func (s CreateProtectionInput) String() string {
  4568  	return awsutil.Prettify(s)
  4569  }
  4570  
  4571  // GoString returns the string representation.
  4572  //
  4573  // API parameter values that are decorated as "sensitive" in the API will not
  4574  // be included in the string output. The member name will be present, but the
  4575  // value will be replaced with "sensitive".
  4576  func (s CreateProtectionInput) GoString() string {
  4577  	return s.String()
  4578  }
  4579  
  4580  // Validate inspects the fields of the type to determine if they are valid.
  4581  func (s *CreateProtectionInput) Validate() error {
  4582  	invalidParams := request.ErrInvalidParams{Context: "CreateProtectionInput"}
  4583  	if s.Name == nil {
  4584  		invalidParams.Add(request.NewErrParamRequired("Name"))
  4585  	}
  4586  	if s.Name != nil && len(*s.Name) < 1 {
  4587  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  4588  	}
  4589  	if s.ResourceArn == nil {
  4590  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  4591  	}
  4592  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  4593  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  4594  	}
  4595  	if s.Tags != nil {
  4596  		for i, v := range s.Tags {
  4597  			if v == nil {
  4598  				continue
  4599  			}
  4600  			if err := v.Validate(); err != nil {
  4601  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  4602  			}
  4603  		}
  4604  	}
  4605  
  4606  	if invalidParams.Len() > 0 {
  4607  		return invalidParams
  4608  	}
  4609  	return nil
  4610  }
  4611  
  4612  // SetName sets the Name field's value.
  4613  func (s *CreateProtectionInput) SetName(v string) *CreateProtectionInput {
  4614  	s.Name = &v
  4615  	return s
  4616  }
  4617  
  4618  // SetResourceArn sets the ResourceArn field's value.
  4619  func (s *CreateProtectionInput) SetResourceArn(v string) *CreateProtectionInput {
  4620  	s.ResourceArn = &v
  4621  	return s
  4622  }
  4623  
  4624  // SetTags sets the Tags field's value.
  4625  func (s *CreateProtectionInput) SetTags(v []*Tag) *CreateProtectionInput {
  4626  	s.Tags = v
  4627  	return s
  4628  }
  4629  
  4630  type CreateProtectionOutput struct {
  4631  	_ struct{} `type:"structure"`
  4632  
  4633  	// The unique identifier (ID) for the Protection object that is created.
  4634  	ProtectionId *string `min:"1" type:"string"`
  4635  }
  4636  
  4637  // String returns the string representation.
  4638  //
  4639  // API parameter values that are decorated as "sensitive" in the API will not
  4640  // be included in the string output. The member name will be present, but the
  4641  // value will be replaced with "sensitive".
  4642  func (s CreateProtectionOutput) String() string {
  4643  	return awsutil.Prettify(s)
  4644  }
  4645  
  4646  // GoString returns the string representation.
  4647  //
  4648  // API parameter values that are decorated as "sensitive" in the API will not
  4649  // be included in the string output. The member name will be present, but the
  4650  // value will be replaced with "sensitive".
  4651  func (s CreateProtectionOutput) GoString() string {
  4652  	return s.String()
  4653  }
  4654  
  4655  // SetProtectionId sets the ProtectionId field's value.
  4656  func (s *CreateProtectionOutput) SetProtectionId(v string) *CreateProtectionOutput {
  4657  	s.ProtectionId = &v
  4658  	return s
  4659  }
  4660  
  4661  type CreateSubscriptionInput struct {
  4662  	_ struct{} `type:"structure"`
  4663  }
  4664  
  4665  // String returns the string representation.
  4666  //
  4667  // API parameter values that are decorated as "sensitive" in the API will not
  4668  // be included in the string output. The member name will be present, but the
  4669  // value will be replaced with "sensitive".
  4670  func (s CreateSubscriptionInput) String() string {
  4671  	return awsutil.Prettify(s)
  4672  }
  4673  
  4674  // GoString returns the string representation.
  4675  //
  4676  // API parameter values that are decorated as "sensitive" in the API will not
  4677  // be included in the string output. The member name will be present, but the
  4678  // value will be replaced with "sensitive".
  4679  func (s CreateSubscriptionInput) GoString() string {
  4680  	return s.String()
  4681  }
  4682  
  4683  type CreateSubscriptionOutput struct {
  4684  	_ struct{} `type:"structure"`
  4685  }
  4686  
  4687  // String returns the string representation.
  4688  //
  4689  // API parameter values that are decorated as "sensitive" in the API will not
  4690  // be included in the string output. The member name will be present, but the
  4691  // value will be replaced with "sensitive".
  4692  func (s CreateSubscriptionOutput) String() string {
  4693  	return awsutil.Prettify(s)
  4694  }
  4695  
  4696  // GoString returns the string representation.
  4697  //
  4698  // API parameter values that are decorated as "sensitive" in the API will not
  4699  // be included in the string output. The member name will be present, but the
  4700  // value will be replaced with "sensitive".
  4701  func (s CreateSubscriptionOutput) GoString() string {
  4702  	return s.String()
  4703  }
  4704  
  4705  type DeleteProtectionGroupInput struct {
  4706  	_ struct{} `type:"structure"`
  4707  
  4708  	// The name of the protection group. You use this to identify the protection
  4709  	// group in lists and to manage the protection group, for example to update,
  4710  	// delete, or describe it.
  4711  	//
  4712  	// ProtectionGroupId is a required field
  4713  	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
  4714  }
  4715  
  4716  // String returns the string representation.
  4717  //
  4718  // API parameter values that are decorated as "sensitive" in the API will not
  4719  // be included in the string output. The member name will be present, but the
  4720  // value will be replaced with "sensitive".
  4721  func (s DeleteProtectionGroupInput) String() string {
  4722  	return awsutil.Prettify(s)
  4723  }
  4724  
  4725  // GoString returns the string representation.
  4726  //
  4727  // API parameter values that are decorated as "sensitive" in the API will not
  4728  // be included in the string output. The member name will be present, but the
  4729  // value will be replaced with "sensitive".
  4730  func (s DeleteProtectionGroupInput) GoString() string {
  4731  	return s.String()
  4732  }
  4733  
  4734  // Validate inspects the fields of the type to determine if they are valid.
  4735  func (s *DeleteProtectionGroupInput) Validate() error {
  4736  	invalidParams := request.ErrInvalidParams{Context: "DeleteProtectionGroupInput"}
  4737  	if s.ProtectionGroupId == nil {
  4738  		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
  4739  	}
  4740  	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
  4741  		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
  4742  	}
  4743  
  4744  	if invalidParams.Len() > 0 {
  4745  		return invalidParams
  4746  	}
  4747  	return nil
  4748  }
  4749  
  4750  // SetProtectionGroupId sets the ProtectionGroupId field's value.
  4751  func (s *DeleteProtectionGroupInput) SetProtectionGroupId(v string) *DeleteProtectionGroupInput {
  4752  	s.ProtectionGroupId = &v
  4753  	return s
  4754  }
  4755  
  4756  type DeleteProtectionGroupOutput struct {
  4757  	_ struct{} `type:"structure"`
  4758  }
  4759  
  4760  // String returns the string representation.
  4761  //
  4762  // API parameter values that are decorated as "sensitive" in the API will not
  4763  // be included in the string output. The member name will be present, but the
  4764  // value will be replaced with "sensitive".
  4765  func (s DeleteProtectionGroupOutput) String() string {
  4766  	return awsutil.Prettify(s)
  4767  }
  4768  
  4769  // GoString returns the string representation.
  4770  //
  4771  // API parameter values that are decorated as "sensitive" in the API will not
  4772  // be included in the string output. The member name will be present, but the
  4773  // value will be replaced with "sensitive".
  4774  func (s DeleteProtectionGroupOutput) GoString() string {
  4775  	return s.String()
  4776  }
  4777  
  4778  type DeleteProtectionInput struct {
  4779  	_ struct{} `type:"structure"`
  4780  
  4781  	// The unique identifier (ID) for the Protection object to be deleted.
  4782  	//
  4783  	// ProtectionId is a required field
  4784  	ProtectionId *string `min:"1" type:"string" required:"true"`
  4785  }
  4786  
  4787  // String returns the string representation.
  4788  //
  4789  // API parameter values that are decorated as "sensitive" in the API will not
  4790  // be included in the string output. The member name will be present, but the
  4791  // value will be replaced with "sensitive".
  4792  func (s DeleteProtectionInput) String() string {
  4793  	return awsutil.Prettify(s)
  4794  }
  4795  
  4796  // GoString returns the string representation.
  4797  //
  4798  // API parameter values that are decorated as "sensitive" in the API will not
  4799  // be included in the string output. The member name will be present, but the
  4800  // value will be replaced with "sensitive".
  4801  func (s DeleteProtectionInput) GoString() string {
  4802  	return s.String()
  4803  }
  4804  
  4805  // Validate inspects the fields of the type to determine if they are valid.
  4806  func (s *DeleteProtectionInput) Validate() error {
  4807  	invalidParams := request.ErrInvalidParams{Context: "DeleteProtectionInput"}
  4808  	if s.ProtectionId == nil {
  4809  		invalidParams.Add(request.NewErrParamRequired("ProtectionId"))
  4810  	}
  4811  	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
  4812  		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
  4813  	}
  4814  
  4815  	if invalidParams.Len() > 0 {
  4816  		return invalidParams
  4817  	}
  4818  	return nil
  4819  }
  4820  
  4821  // SetProtectionId sets the ProtectionId field's value.
  4822  func (s *DeleteProtectionInput) SetProtectionId(v string) *DeleteProtectionInput {
  4823  	s.ProtectionId = &v
  4824  	return s
  4825  }
  4826  
  4827  type DeleteProtectionOutput struct {
  4828  	_ struct{} `type:"structure"`
  4829  }
  4830  
  4831  // String returns the string representation.
  4832  //
  4833  // API parameter values that are decorated as "sensitive" in the API will not
  4834  // be included in the string output. The member name will be present, but the
  4835  // value will be replaced with "sensitive".
  4836  func (s DeleteProtectionOutput) String() string {
  4837  	return awsutil.Prettify(s)
  4838  }
  4839  
  4840  // GoString returns the string representation.
  4841  //
  4842  // API parameter values that are decorated as "sensitive" in the API will not
  4843  // be included in the string output. The member name will be present, but the
  4844  // value will be replaced with "sensitive".
  4845  func (s DeleteProtectionOutput) GoString() string {
  4846  	return s.String()
  4847  }
  4848  
  4849  // Deprecated: DeleteSubscriptionInput has been deprecated
  4850  type DeleteSubscriptionInput struct {
  4851  	_ struct{} `deprecated:"true" type:"structure"`
  4852  }
  4853  
  4854  // String returns the string representation.
  4855  //
  4856  // API parameter values that are decorated as "sensitive" in the API will not
  4857  // be included in the string output. The member name will be present, but the
  4858  // value will be replaced with "sensitive".
  4859  func (s DeleteSubscriptionInput) String() string {
  4860  	return awsutil.Prettify(s)
  4861  }
  4862  
  4863  // GoString returns the string representation.
  4864  //
  4865  // API parameter values that are decorated as "sensitive" in the API will not
  4866  // be included in the string output. The member name will be present, but the
  4867  // value will be replaced with "sensitive".
  4868  func (s DeleteSubscriptionInput) GoString() string {
  4869  	return s.String()
  4870  }
  4871  
  4872  // Deprecated: DeleteSubscriptionOutput has been deprecated
  4873  type DeleteSubscriptionOutput struct {
  4874  	_ struct{} `deprecated:"true" type:"structure"`
  4875  }
  4876  
  4877  // String returns the string representation.
  4878  //
  4879  // API parameter values that are decorated as "sensitive" in the API will not
  4880  // be included in the string output. The member name will be present, but the
  4881  // value will be replaced with "sensitive".
  4882  func (s DeleteSubscriptionOutput) String() string {
  4883  	return awsutil.Prettify(s)
  4884  }
  4885  
  4886  // GoString returns the string representation.
  4887  //
  4888  // API parameter values that are decorated as "sensitive" in the API will not
  4889  // be included in the string output. The member name will be present, but the
  4890  // value will be replaced with "sensitive".
  4891  func (s DeleteSubscriptionOutput) GoString() string {
  4892  	return s.String()
  4893  }
  4894  
  4895  type DescribeAttackInput struct {
  4896  	_ struct{} `type:"structure"`
  4897  
  4898  	// The unique identifier (ID) for the attack that to be described.
  4899  	//
  4900  	// AttackId is a required field
  4901  	AttackId *string `min:"1" type:"string" required:"true"`
  4902  }
  4903  
  4904  // String returns the string representation.
  4905  //
  4906  // API parameter values that are decorated as "sensitive" in the API will not
  4907  // be included in the string output. The member name will be present, but the
  4908  // value will be replaced with "sensitive".
  4909  func (s DescribeAttackInput) String() string {
  4910  	return awsutil.Prettify(s)
  4911  }
  4912  
  4913  // GoString returns the string representation.
  4914  //
  4915  // API parameter values that are decorated as "sensitive" in the API will not
  4916  // be included in the string output. The member name will be present, but the
  4917  // value will be replaced with "sensitive".
  4918  func (s DescribeAttackInput) GoString() string {
  4919  	return s.String()
  4920  }
  4921  
  4922  // Validate inspects the fields of the type to determine if they are valid.
  4923  func (s *DescribeAttackInput) Validate() error {
  4924  	invalidParams := request.ErrInvalidParams{Context: "DescribeAttackInput"}
  4925  	if s.AttackId == nil {
  4926  		invalidParams.Add(request.NewErrParamRequired("AttackId"))
  4927  	}
  4928  	if s.AttackId != nil && len(*s.AttackId) < 1 {
  4929  		invalidParams.Add(request.NewErrParamMinLen("AttackId", 1))
  4930  	}
  4931  
  4932  	if invalidParams.Len() > 0 {
  4933  		return invalidParams
  4934  	}
  4935  	return nil
  4936  }
  4937  
  4938  // SetAttackId sets the AttackId field's value.
  4939  func (s *DescribeAttackInput) SetAttackId(v string) *DescribeAttackInput {
  4940  	s.AttackId = &v
  4941  	return s
  4942  }
  4943  
  4944  type DescribeAttackOutput struct {
  4945  	_ struct{} `type:"structure"`
  4946  
  4947  	// The attack that is described.
  4948  	Attack *AttackDetail `type:"structure"`
  4949  }
  4950  
  4951  // String returns the string representation.
  4952  //
  4953  // API parameter values that are decorated as "sensitive" in the API will not
  4954  // be included in the string output. The member name will be present, but the
  4955  // value will be replaced with "sensitive".
  4956  func (s DescribeAttackOutput) String() string {
  4957  	return awsutil.Prettify(s)
  4958  }
  4959  
  4960  // GoString returns the string representation.
  4961  //
  4962  // API parameter values that are decorated as "sensitive" in the API will not
  4963  // be included in the string output. The member name will be present, but the
  4964  // value will be replaced with "sensitive".
  4965  func (s DescribeAttackOutput) GoString() string {
  4966  	return s.String()
  4967  }
  4968  
  4969  // SetAttack sets the Attack field's value.
  4970  func (s *DescribeAttackOutput) SetAttack(v *AttackDetail) *DescribeAttackOutput {
  4971  	s.Attack = v
  4972  	return s
  4973  }
  4974  
  4975  type DescribeAttackStatisticsInput struct {
  4976  	_ struct{} `type:"structure"`
  4977  }
  4978  
  4979  // String returns the string representation.
  4980  //
  4981  // API parameter values that are decorated as "sensitive" in the API will not
  4982  // be included in the string output. The member name will be present, but the
  4983  // value will be replaced with "sensitive".
  4984  func (s DescribeAttackStatisticsInput) String() string {
  4985  	return awsutil.Prettify(s)
  4986  }
  4987  
  4988  // GoString returns the string representation.
  4989  //
  4990  // API parameter values that are decorated as "sensitive" in the API will not
  4991  // be included in the string output. The member name will be present, but the
  4992  // value will be replaced with "sensitive".
  4993  func (s DescribeAttackStatisticsInput) GoString() string {
  4994  	return s.String()
  4995  }
  4996  
  4997  type DescribeAttackStatisticsOutput struct {
  4998  	_ struct{} `type:"structure"`
  4999  
  5000  	// The data that describes the attacks detected during the time period.
  5001  	//
  5002  	// DataItems is a required field
  5003  	DataItems []*AttackStatisticsDataItem `type:"list" required:"true"`
  5004  
  5005  	// The time range.
  5006  	//
  5007  	// TimeRange is a required field
  5008  	TimeRange *TimeRange `type:"structure" required:"true"`
  5009  }
  5010  
  5011  // String returns the string representation.
  5012  //
  5013  // API parameter values that are decorated as "sensitive" in the API will not
  5014  // be included in the string output. The member name will be present, but the
  5015  // value will be replaced with "sensitive".
  5016  func (s DescribeAttackStatisticsOutput) String() string {
  5017  	return awsutil.Prettify(s)
  5018  }
  5019  
  5020  // GoString returns the string representation.
  5021  //
  5022  // API parameter values that are decorated as "sensitive" in the API will not
  5023  // be included in the string output. The member name will be present, but the
  5024  // value will be replaced with "sensitive".
  5025  func (s DescribeAttackStatisticsOutput) GoString() string {
  5026  	return s.String()
  5027  }
  5028  
  5029  // SetDataItems sets the DataItems field's value.
  5030  func (s *DescribeAttackStatisticsOutput) SetDataItems(v []*AttackStatisticsDataItem) *DescribeAttackStatisticsOutput {
  5031  	s.DataItems = v
  5032  	return s
  5033  }
  5034  
  5035  // SetTimeRange sets the TimeRange field's value.
  5036  func (s *DescribeAttackStatisticsOutput) SetTimeRange(v *TimeRange) *DescribeAttackStatisticsOutput {
  5037  	s.TimeRange = v
  5038  	return s
  5039  }
  5040  
  5041  type DescribeDRTAccessInput struct {
  5042  	_ struct{} `type:"structure"`
  5043  }
  5044  
  5045  // String returns the string representation.
  5046  //
  5047  // API parameter values that are decorated as "sensitive" in the API will not
  5048  // be included in the string output. The member name will be present, but the
  5049  // value will be replaced with "sensitive".
  5050  func (s DescribeDRTAccessInput) String() string {
  5051  	return awsutil.Prettify(s)
  5052  }
  5053  
  5054  // GoString returns the string representation.
  5055  //
  5056  // API parameter values that are decorated as "sensitive" in the API will not
  5057  // be included in the string output. The member name will be present, but the
  5058  // value will be replaced with "sensitive".
  5059  func (s DescribeDRTAccessInput) GoString() string {
  5060  	return s.String()
  5061  }
  5062  
  5063  type DescribeDRTAccessOutput struct {
  5064  	_ struct{} `type:"structure"`
  5065  
  5066  	// The list of Amazon S3 buckets accessed by the SRT.
  5067  	LogBucketList []*string `type:"list"`
  5068  
  5069  	// The Amazon Resource Name (ARN) of the role the SRT used to access your Amazon
  5070  	// Web Services account.
  5071  	RoleArn *string `min:"1" type:"string"`
  5072  }
  5073  
  5074  // String returns the string representation.
  5075  //
  5076  // API parameter values that are decorated as "sensitive" in the API will not
  5077  // be included in the string output. The member name will be present, but the
  5078  // value will be replaced with "sensitive".
  5079  func (s DescribeDRTAccessOutput) String() string {
  5080  	return awsutil.Prettify(s)
  5081  }
  5082  
  5083  // GoString returns the string representation.
  5084  //
  5085  // API parameter values that are decorated as "sensitive" in the API will not
  5086  // be included in the string output. The member name will be present, but the
  5087  // value will be replaced with "sensitive".
  5088  func (s DescribeDRTAccessOutput) GoString() string {
  5089  	return s.String()
  5090  }
  5091  
  5092  // SetLogBucketList sets the LogBucketList field's value.
  5093  func (s *DescribeDRTAccessOutput) SetLogBucketList(v []*string) *DescribeDRTAccessOutput {
  5094  	s.LogBucketList = v
  5095  	return s
  5096  }
  5097  
  5098  // SetRoleArn sets the RoleArn field's value.
  5099  func (s *DescribeDRTAccessOutput) SetRoleArn(v string) *DescribeDRTAccessOutput {
  5100  	s.RoleArn = &v
  5101  	return s
  5102  }
  5103  
  5104  type DescribeEmergencyContactSettingsInput struct {
  5105  	_ struct{} `type:"structure"`
  5106  }
  5107  
  5108  // String returns the string representation.
  5109  //
  5110  // API parameter values that are decorated as "sensitive" in the API will not
  5111  // be included in the string output. The member name will be present, but the
  5112  // value will be replaced with "sensitive".
  5113  func (s DescribeEmergencyContactSettingsInput) String() string {
  5114  	return awsutil.Prettify(s)
  5115  }
  5116  
  5117  // GoString returns the string representation.
  5118  //
  5119  // API parameter values that are decorated as "sensitive" in the API will not
  5120  // be included in the string output. The member name will be present, but the
  5121  // value will be replaced with "sensitive".
  5122  func (s DescribeEmergencyContactSettingsInput) GoString() string {
  5123  	return s.String()
  5124  }
  5125  
  5126  type DescribeEmergencyContactSettingsOutput struct {
  5127  	_ struct{} `type:"structure"`
  5128  
  5129  	// A list of email addresses and phone numbers that the Shield Response Team
  5130  	// (SRT) can use to contact you if you have proactive engagement enabled, for
  5131  	// escalations to the SRT and to initiate proactive customer support.
  5132  	EmergencyContactList []*EmergencyContact `type:"list"`
  5133  }
  5134  
  5135  // String returns the string representation.
  5136  //
  5137  // API parameter values that are decorated as "sensitive" in the API will not
  5138  // be included in the string output. The member name will be present, but the
  5139  // value will be replaced with "sensitive".
  5140  func (s DescribeEmergencyContactSettingsOutput) String() string {
  5141  	return awsutil.Prettify(s)
  5142  }
  5143  
  5144  // GoString returns the string representation.
  5145  //
  5146  // API parameter values that are decorated as "sensitive" in the API will not
  5147  // be included in the string output. The member name will be present, but the
  5148  // value will be replaced with "sensitive".
  5149  func (s DescribeEmergencyContactSettingsOutput) GoString() string {
  5150  	return s.String()
  5151  }
  5152  
  5153  // SetEmergencyContactList sets the EmergencyContactList field's value.
  5154  func (s *DescribeEmergencyContactSettingsOutput) SetEmergencyContactList(v []*EmergencyContact) *DescribeEmergencyContactSettingsOutput {
  5155  	s.EmergencyContactList = v
  5156  	return s
  5157  }
  5158  
  5159  type DescribeProtectionGroupInput struct {
  5160  	_ struct{} `type:"structure"`
  5161  
  5162  	// The name of the protection group. You use this to identify the protection
  5163  	// group in lists and to manage the protection group, for example to update,
  5164  	// delete, or describe it.
  5165  	//
  5166  	// ProtectionGroupId is a required field
  5167  	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
  5168  }
  5169  
  5170  // String returns the string representation.
  5171  //
  5172  // API parameter values that are decorated as "sensitive" in the API will not
  5173  // be included in the string output. The member name will be present, but the
  5174  // value will be replaced with "sensitive".
  5175  func (s DescribeProtectionGroupInput) String() string {
  5176  	return awsutil.Prettify(s)
  5177  }
  5178  
  5179  // GoString returns the string representation.
  5180  //
  5181  // API parameter values that are decorated as "sensitive" in the API will not
  5182  // be included in the string output. The member name will be present, but the
  5183  // value will be replaced with "sensitive".
  5184  func (s DescribeProtectionGroupInput) GoString() string {
  5185  	return s.String()
  5186  }
  5187  
  5188  // Validate inspects the fields of the type to determine if they are valid.
  5189  func (s *DescribeProtectionGroupInput) Validate() error {
  5190  	invalidParams := request.ErrInvalidParams{Context: "DescribeProtectionGroupInput"}
  5191  	if s.ProtectionGroupId == nil {
  5192  		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
  5193  	}
  5194  	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
  5195  		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
  5196  	}
  5197  
  5198  	if invalidParams.Len() > 0 {
  5199  		return invalidParams
  5200  	}
  5201  	return nil
  5202  }
  5203  
  5204  // SetProtectionGroupId sets the ProtectionGroupId field's value.
  5205  func (s *DescribeProtectionGroupInput) SetProtectionGroupId(v string) *DescribeProtectionGroupInput {
  5206  	s.ProtectionGroupId = &v
  5207  	return s
  5208  }
  5209  
  5210  type DescribeProtectionGroupOutput struct {
  5211  	_ struct{} `type:"structure"`
  5212  
  5213  	// A grouping of protected resources that you and Shield Advanced can monitor
  5214  	// as a collective. This resource grouping improves the accuracy of detection
  5215  	// and reduces false positives.
  5216  	//
  5217  	// ProtectionGroup is a required field
  5218  	ProtectionGroup *ProtectionGroup `type:"structure" required:"true"`
  5219  }
  5220  
  5221  // String returns the string representation.
  5222  //
  5223  // API parameter values that are decorated as "sensitive" in the API will not
  5224  // be included in the string output. The member name will be present, but the
  5225  // value will be replaced with "sensitive".
  5226  func (s DescribeProtectionGroupOutput) String() string {
  5227  	return awsutil.Prettify(s)
  5228  }
  5229  
  5230  // GoString returns the string representation.
  5231  //
  5232  // API parameter values that are decorated as "sensitive" in the API will not
  5233  // be included in the string output. The member name will be present, but the
  5234  // value will be replaced with "sensitive".
  5235  func (s DescribeProtectionGroupOutput) GoString() string {
  5236  	return s.String()
  5237  }
  5238  
  5239  // SetProtectionGroup sets the ProtectionGroup field's value.
  5240  func (s *DescribeProtectionGroupOutput) SetProtectionGroup(v *ProtectionGroup) *DescribeProtectionGroupOutput {
  5241  	s.ProtectionGroup = v
  5242  	return s
  5243  }
  5244  
  5245  type DescribeProtectionInput struct {
  5246  	_ struct{} `type:"structure"`
  5247  
  5248  	// The unique identifier (ID) for the Protection object that is described. When
  5249  	// submitting the DescribeProtection request you must provide either the ResourceArn
  5250  	// or the ProtectionID, but not both.
  5251  	ProtectionId *string `min:"1" type:"string"`
  5252  
  5253  	// The ARN (Amazon Resource Name) of the Amazon Web Services resource for the
  5254  	// Protection object that is described. When submitting the DescribeProtection
  5255  	// request you must provide either the ResourceArn or the ProtectionID, but
  5256  	// not both.
  5257  	ResourceArn *string `min:"1" type:"string"`
  5258  }
  5259  
  5260  // String returns the string representation.
  5261  //
  5262  // API parameter values that are decorated as "sensitive" in the API will not
  5263  // be included in the string output. The member name will be present, but the
  5264  // value will be replaced with "sensitive".
  5265  func (s DescribeProtectionInput) String() string {
  5266  	return awsutil.Prettify(s)
  5267  }
  5268  
  5269  // GoString returns the string representation.
  5270  //
  5271  // API parameter values that are decorated as "sensitive" in the API will not
  5272  // be included in the string output. The member name will be present, but the
  5273  // value will be replaced with "sensitive".
  5274  func (s DescribeProtectionInput) GoString() string {
  5275  	return s.String()
  5276  }
  5277  
  5278  // Validate inspects the fields of the type to determine if they are valid.
  5279  func (s *DescribeProtectionInput) Validate() error {
  5280  	invalidParams := request.ErrInvalidParams{Context: "DescribeProtectionInput"}
  5281  	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
  5282  		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
  5283  	}
  5284  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  5285  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  5286  	}
  5287  
  5288  	if invalidParams.Len() > 0 {
  5289  		return invalidParams
  5290  	}
  5291  	return nil
  5292  }
  5293  
  5294  // SetProtectionId sets the ProtectionId field's value.
  5295  func (s *DescribeProtectionInput) SetProtectionId(v string) *DescribeProtectionInput {
  5296  	s.ProtectionId = &v
  5297  	return s
  5298  }
  5299  
  5300  // SetResourceArn sets the ResourceArn field's value.
  5301  func (s *DescribeProtectionInput) SetResourceArn(v string) *DescribeProtectionInput {
  5302  	s.ResourceArn = &v
  5303  	return s
  5304  }
  5305  
  5306  type DescribeProtectionOutput struct {
  5307  	_ struct{} `type:"structure"`
  5308  
  5309  	// The Protection object that is described.
  5310  	Protection *Protection `type:"structure"`
  5311  }
  5312  
  5313  // String returns the string representation.
  5314  //
  5315  // API parameter values that are decorated as "sensitive" in the API will not
  5316  // be included in the string output. The member name will be present, but the
  5317  // value will be replaced with "sensitive".
  5318  func (s DescribeProtectionOutput) String() string {
  5319  	return awsutil.Prettify(s)
  5320  }
  5321  
  5322  // GoString returns the string representation.
  5323  //
  5324  // API parameter values that are decorated as "sensitive" in the API will not
  5325  // be included in the string output. The member name will be present, but the
  5326  // value will be replaced with "sensitive".
  5327  func (s DescribeProtectionOutput) GoString() string {
  5328  	return s.String()
  5329  }
  5330  
  5331  // SetProtection sets the Protection field's value.
  5332  func (s *DescribeProtectionOutput) SetProtection(v *Protection) *DescribeProtectionOutput {
  5333  	s.Protection = v
  5334  	return s
  5335  }
  5336  
  5337  type DescribeSubscriptionInput struct {
  5338  	_ struct{} `type:"structure"`
  5339  }
  5340  
  5341  // String returns the string representation.
  5342  //
  5343  // API parameter values that are decorated as "sensitive" in the API will not
  5344  // be included in the string output. The member name will be present, but the
  5345  // value will be replaced with "sensitive".
  5346  func (s DescribeSubscriptionInput) String() string {
  5347  	return awsutil.Prettify(s)
  5348  }
  5349  
  5350  // GoString returns the string representation.
  5351  //
  5352  // API parameter values that are decorated as "sensitive" in the API will not
  5353  // be included in the string output. The member name will be present, but the
  5354  // value will be replaced with "sensitive".
  5355  func (s DescribeSubscriptionInput) GoString() string {
  5356  	return s.String()
  5357  }
  5358  
  5359  type DescribeSubscriptionOutput struct {
  5360  	_ struct{} `type:"structure"`
  5361  
  5362  	// The Shield Advanced subscription details for an account.
  5363  	Subscription *Subscription `type:"structure"`
  5364  }
  5365  
  5366  // String returns the string representation.
  5367  //
  5368  // API parameter values that are decorated as "sensitive" in the API will not
  5369  // be included in the string output. The member name will be present, but the
  5370  // value will be replaced with "sensitive".
  5371  func (s DescribeSubscriptionOutput) String() string {
  5372  	return awsutil.Prettify(s)
  5373  }
  5374  
  5375  // GoString returns the string representation.
  5376  //
  5377  // API parameter values that are decorated as "sensitive" in the API will not
  5378  // be included in the string output. The member name will be present, but the
  5379  // value will be replaced with "sensitive".
  5380  func (s DescribeSubscriptionOutput) GoString() string {
  5381  	return s.String()
  5382  }
  5383  
  5384  // SetSubscription sets the Subscription field's value.
  5385  func (s *DescribeSubscriptionOutput) SetSubscription(v *Subscription) *DescribeSubscriptionOutput {
  5386  	s.Subscription = v
  5387  	return s
  5388  }
  5389  
  5390  type DisableProactiveEngagementInput struct {
  5391  	_ struct{} `type:"structure"`
  5392  }
  5393  
  5394  // String returns the string representation.
  5395  //
  5396  // API parameter values that are decorated as "sensitive" in the API will not
  5397  // be included in the string output. The member name will be present, but the
  5398  // value will be replaced with "sensitive".
  5399  func (s DisableProactiveEngagementInput) String() string {
  5400  	return awsutil.Prettify(s)
  5401  }
  5402  
  5403  // GoString returns the string representation.
  5404  //
  5405  // API parameter values that are decorated as "sensitive" in the API will not
  5406  // be included in the string output. The member name will be present, but the
  5407  // value will be replaced with "sensitive".
  5408  func (s DisableProactiveEngagementInput) GoString() string {
  5409  	return s.String()
  5410  }
  5411  
  5412  type DisableProactiveEngagementOutput struct {
  5413  	_ struct{} `type:"structure"`
  5414  }
  5415  
  5416  // String returns the string representation.
  5417  //
  5418  // API parameter values that are decorated as "sensitive" in the API will not
  5419  // be included in the string output. The member name will be present, but the
  5420  // value will be replaced with "sensitive".
  5421  func (s DisableProactiveEngagementOutput) String() string {
  5422  	return awsutil.Prettify(s)
  5423  }
  5424  
  5425  // GoString returns the string representation.
  5426  //
  5427  // API parameter values that are decorated as "sensitive" in the API will not
  5428  // be included in the string output. The member name will be present, but the
  5429  // value will be replaced with "sensitive".
  5430  func (s DisableProactiveEngagementOutput) GoString() string {
  5431  	return s.String()
  5432  }
  5433  
  5434  type DisassociateDRTLogBucketInput struct {
  5435  	_ struct{} `type:"structure"`
  5436  
  5437  	// The Amazon S3 bucket that contains the logs that you want to share.
  5438  	//
  5439  	// LogBucket is a required field
  5440  	LogBucket *string `min:"3" type:"string" required:"true"`
  5441  }
  5442  
  5443  // String returns the string representation.
  5444  //
  5445  // API parameter values that are decorated as "sensitive" in the API will not
  5446  // be included in the string output. The member name will be present, but the
  5447  // value will be replaced with "sensitive".
  5448  func (s DisassociateDRTLogBucketInput) String() string {
  5449  	return awsutil.Prettify(s)
  5450  }
  5451  
  5452  // GoString returns the string representation.
  5453  //
  5454  // API parameter values that are decorated as "sensitive" in the API will not
  5455  // be included in the string output. The member name will be present, but the
  5456  // value will be replaced with "sensitive".
  5457  func (s DisassociateDRTLogBucketInput) GoString() string {
  5458  	return s.String()
  5459  }
  5460  
  5461  // Validate inspects the fields of the type to determine if they are valid.
  5462  func (s *DisassociateDRTLogBucketInput) Validate() error {
  5463  	invalidParams := request.ErrInvalidParams{Context: "DisassociateDRTLogBucketInput"}
  5464  	if s.LogBucket == nil {
  5465  		invalidParams.Add(request.NewErrParamRequired("LogBucket"))
  5466  	}
  5467  	if s.LogBucket != nil && len(*s.LogBucket) < 3 {
  5468  		invalidParams.Add(request.NewErrParamMinLen("LogBucket", 3))
  5469  	}
  5470  
  5471  	if invalidParams.Len() > 0 {
  5472  		return invalidParams
  5473  	}
  5474  	return nil
  5475  }
  5476  
  5477  // SetLogBucket sets the LogBucket field's value.
  5478  func (s *DisassociateDRTLogBucketInput) SetLogBucket(v string) *DisassociateDRTLogBucketInput {
  5479  	s.LogBucket = &v
  5480  	return s
  5481  }
  5482  
  5483  type DisassociateDRTLogBucketOutput struct {
  5484  	_ struct{} `type:"structure"`
  5485  }
  5486  
  5487  // String returns the string representation.
  5488  //
  5489  // API parameter values that are decorated as "sensitive" in the API will not
  5490  // be included in the string output. The member name will be present, but the
  5491  // value will be replaced with "sensitive".
  5492  func (s DisassociateDRTLogBucketOutput) String() string {
  5493  	return awsutil.Prettify(s)
  5494  }
  5495  
  5496  // GoString returns the string representation.
  5497  //
  5498  // API parameter values that are decorated as "sensitive" in the API will not
  5499  // be included in the string output. The member name will be present, but the
  5500  // value will be replaced with "sensitive".
  5501  func (s DisassociateDRTLogBucketOutput) GoString() string {
  5502  	return s.String()
  5503  }
  5504  
  5505  type DisassociateDRTRoleInput struct {
  5506  	_ struct{} `type:"structure"`
  5507  }
  5508  
  5509  // String returns the string representation.
  5510  //
  5511  // API parameter values that are decorated as "sensitive" in the API will not
  5512  // be included in the string output. The member name will be present, but the
  5513  // value will be replaced with "sensitive".
  5514  func (s DisassociateDRTRoleInput) String() string {
  5515  	return awsutil.Prettify(s)
  5516  }
  5517  
  5518  // GoString returns the string representation.
  5519  //
  5520  // API parameter values that are decorated as "sensitive" in the API will not
  5521  // be included in the string output. The member name will be present, but the
  5522  // value will be replaced with "sensitive".
  5523  func (s DisassociateDRTRoleInput) GoString() string {
  5524  	return s.String()
  5525  }
  5526  
  5527  type DisassociateDRTRoleOutput struct {
  5528  	_ struct{} `type:"structure"`
  5529  }
  5530  
  5531  // String returns the string representation.
  5532  //
  5533  // API parameter values that are decorated as "sensitive" in the API will not
  5534  // be included in the string output. The member name will be present, but the
  5535  // value will be replaced with "sensitive".
  5536  func (s DisassociateDRTRoleOutput) String() string {
  5537  	return awsutil.Prettify(s)
  5538  }
  5539  
  5540  // GoString returns the string representation.
  5541  //
  5542  // API parameter values that are decorated as "sensitive" in the API will not
  5543  // be included in the string output. The member name will be present, but the
  5544  // value will be replaced with "sensitive".
  5545  func (s DisassociateDRTRoleOutput) GoString() string {
  5546  	return s.String()
  5547  }
  5548  
  5549  type DisassociateHealthCheckInput struct {
  5550  	_ struct{} `type:"structure"`
  5551  
  5552  	// The Amazon Resource Name (ARN) of the health check that is associated with
  5553  	// the protection.
  5554  	//
  5555  	// HealthCheckArn is a required field
  5556  	HealthCheckArn *string `min:"1" type:"string" required:"true"`
  5557  
  5558  	// The unique identifier (ID) for the Protection object to remove the health
  5559  	// check association from.
  5560  	//
  5561  	// ProtectionId is a required field
  5562  	ProtectionId *string `min:"1" type:"string" required:"true"`
  5563  }
  5564  
  5565  // String returns the string representation.
  5566  //
  5567  // API parameter values that are decorated as "sensitive" in the API will not
  5568  // be included in the string output. The member name will be present, but the
  5569  // value will be replaced with "sensitive".
  5570  func (s DisassociateHealthCheckInput) String() string {
  5571  	return awsutil.Prettify(s)
  5572  }
  5573  
  5574  // GoString returns the string representation.
  5575  //
  5576  // API parameter values that are decorated as "sensitive" in the API will not
  5577  // be included in the string output. The member name will be present, but the
  5578  // value will be replaced with "sensitive".
  5579  func (s DisassociateHealthCheckInput) GoString() string {
  5580  	return s.String()
  5581  }
  5582  
  5583  // Validate inspects the fields of the type to determine if they are valid.
  5584  func (s *DisassociateHealthCheckInput) Validate() error {
  5585  	invalidParams := request.ErrInvalidParams{Context: "DisassociateHealthCheckInput"}
  5586  	if s.HealthCheckArn == nil {
  5587  		invalidParams.Add(request.NewErrParamRequired("HealthCheckArn"))
  5588  	}
  5589  	if s.HealthCheckArn != nil && len(*s.HealthCheckArn) < 1 {
  5590  		invalidParams.Add(request.NewErrParamMinLen("HealthCheckArn", 1))
  5591  	}
  5592  	if s.ProtectionId == nil {
  5593  		invalidParams.Add(request.NewErrParamRequired("ProtectionId"))
  5594  	}
  5595  	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
  5596  		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
  5597  	}
  5598  
  5599  	if invalidParams.Len() > 0 {
  5600  		return invalidParams
  5601  	}
  5602  	return nil
  5603  }
  5604  
  5605  // SetHealthCheckArn sets the HealthCheckArn field's value.
  5606  func (s *DisassociateHealthCheckInput) SetHealthCheckArn(v string) *DisassociateHealthCheckInput {
  5607  	s.HealthCheckArn = &v
  5608  	return s
  5609  }
  5610  
  5611  // SetProtectionId sets the ProtectionId field's value.
  5612  func (s *DisassociateHealthCheckInput) SetProtectionId(v string) *DisassociateHealthCheckInput {
  5613  	s.ProtectionId = &v
  5614  	return s
  5615  }
  5616  
  5617  type DisassociateHealthCheckOutput struct {
  5618  	_ struct{} `type:"structure"`
  5619  }
  5620  
  5621  // String returns the string representation.
  5622  //
  5623  // API parameter values that are decorated as "sensitive" in the API will not
  5624  // be included in the string output. The member name will be present, but the
  5625  // value will be replaced with "sensitive".
  5626  func (s DisassociateHealthCheckOutput) String() string {
  5627  	return awsutil.Prettify(s)
  5628  }
  5629  
  5630  // GoString returns the string representation.
  5631  //
  5632  // API parameter values that are decorated as "sensitive" in the API will not
  5633  // be included in the string output. The member name will be present, but the
  5634  // value will be replaced with "sensitive".
  5635  func (s DisassociateHealthCheckOutput) GoString() string {
  5636  	return s.String()
  5637  }
  5638  
  5639  // Contact information that the SRT can use to contact you if you have proactive
  5640  // engagement enabled, for escalations to the SRT and to initiate proactive
  5641  // customer support.
  5642  type EmergencyContact struct {
  5643  	_ struct{} `type:"structure"`
  5644  
  5645  	// Additional notes regarding the contact.
  5646  	ContactNotes *string `min:"1" type:"string"`
  5647  
  5648  	// The email address for the contact.
  5649  	//
  5650  	// EmailAddress is a required field
  5651  	EmailAddress *string `min:"1" type:"string" required:"true"`
  5652  
  5653  	// The phone number for the contact.
  5654  	PhoneNumber *string `min:"1" type:"string"`
  5655  }
  5656  
  5657  // String returns the string representation.
  5658  //
  5659  // API parameter values that are decorated as "sensitive" in the API will not
  5660  // be included in the string output. The member name will be present, but the
  5661  // value will be replaced with "sensitive".
  5662  func (s EmergencyContact) String() string {
  5663  	return awsutil.Prettify(s)
  5664  }
  5665  
  5666  // GoString returns the string representation.
  5667  //
  5668  // API parameter values that are decorated as "sensitive" in the API will not
  5669  // be included in the string output. The member name will be present, but the
  5670  // value will be replaced with "sensitive".
  5671  func (s EmergencyContact) GoString() string {
  5672  	return s.String()
  5673  }
  5674  
  5675  // Validate inspects the fields of the type to determine if they are valid.
  5676  func (s *EmergencyContact) Validate() error {
  5677  	invalidParams := request.ErrInvalidParams{Context: "EmergencyContact"}
  5678  	if s.ContactNotes != nil && len(*s.ContactNotes) < 1 {
  5679  		invalidParams.Add(request.NewErrParamMinLen("ContactNotes", 1))
  5680  	}
  5681  	if s.EmailAddress == nil {
  5682  		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
  5683  	}
  5684  	if s.EmailAddress != nil && len(*s.EmailAddress) < 1 {
  5685  		invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1))
  5686  	}
  5687  	if s.PhoneNumber != nil && len(*s.PhoneNumber) < 1 {
  5688  		invalidParams.Add(request.NewErrParamMinLen("PhoneNumber", 1))
  5689  	}
  5690  
  5691  	if invalidParams.Len() > 0 {
  5692  		return invalidParams
  5693  	}
  5694  	return nil
  5695  }
  5696  
  5697  // SetContactNotes sets the ContactNotes field's value.
  5698  func (s *EmergencyContact) SetContactNotes(v string) *EmergencyContact {
  5699  	s.ContactNotes = &v
  5700  	return s
  5701  }
  5702  
  5703  // SetEmailAddress sets the EmailAddress field's value.
  5704  func (s *EmergencyContact) SetEmailAddress(v string) *EmergencyContact {
  5705  	s.EmailAddress = &v
  5706  	return s
  5707  }
  5708  
  5709  // SetPhoneNumber sets the PhoneNumber field's value.
  5710  func (s *EmergencyContact) SetPhoneNumber(v string) *EmergencyContact {
  5711  	s.PhoneNumber = &v
  5712  	return s
  5713  }
  5714  
  5715  type EnableProactiveEngagementInput struct {
  5716  	_ struct{} `type:"structure"`
  5717  }
  5718  
  5719  // String returns the string representation.
  5720  //
  5721  // API parameter values that are decorated as "sensitive" in the API will not
  5722  // be included in the string output. The member name will be present, but the
  5723  // value will be replaced with "sensitive".
  5724  func (s EnableProactiveEngagementInput) String() string {
  5725  	return awsutil.Prettify(s)
  5726  }
  5727  
  5728  // GoString returns the string representation.
  5729  //
  5730  // API parameter values that are decorated as "sensitive" in the API will not
  5731  // be included in the string output. The member name will be present, but the
  5732  // value will be replaced with "sensitive".
  5733  func (s EnableProactiveEngagementInput) GoString() string {
  5734  	return s.String()
  5735  }
  5736  
  5737  type EnableProactiveEngagementOutput struct {
  5738  	_ struct{} `type:"structure"`
  5739  }
  5740  
  5741  // String returns the string representation.
  5742  //
  5743  // API parameter values that are decorated as "sensitive" in the API will not
  5744  // be included in the string output. The member name will be present, but the
  5745  // value will be replaced with "sensitive".
  5746  func (s EnableProactiveEngagementOutput) String() string {
  5747  	return awsutil.Prettify(s)
  5748  }
  5749  
  5750  // GoString returns the string representation.
  5751  //
  5752  // API parameter values that are decorated as "sensitive" in the API will not
  5753  // be included in the string output. The member name will be present, but the
  5754  // value will be replaced with "sensitive".
  5755  func (s EnableProactiveEngagementOutput) GoString() string {
  5756  	return s.String()
  5757  }
  5758  
  5759  type GetSubscriptionStateInput struct {
  5760  	_ struct{} `type:"structure"`
  5761  }
  5762  
  5763  // String returns the string representation.
  5764  //
  5765  // API parameter values that are decorated as "sensitive" in the API will not
  5766  // be included in the string output. The member name will be present, but the
  5767  // value will be replaced with "sensitive".
  5768  func (s GetSubscriptionStateInput) String() string {
  5769  	return awsutil.Prettify(s)
  5770  }
  5771  
  5772  // GoString returns the string representation.
  5773  //
  5774  // API parameter values that are decorated as "sensitive" in the API will not
  5775  // be included in the string output. The member name will be present, but the
  5776  // value will be replaced with "sensitive".
  5777  func (s GetSubscriptionStateInput) GoString() string {
  5778  	return s.String()
  5779  }
  5780  
  5781  type GetSubscriptionStateOutput struct {
  5782  	_ struct{} `type:"structure"`
  5783  
  5784  	// The status of the subscription.
  5785  	//
  5786  	// SubscriptionState is a required field
  5787  	SubscriptionState *string `type:"string" required:"true" enum:"SubscriptionState"`
  5788  }
  5789  
  5790  // String returns the string representation.
  5791  //
  5792  // API parameter values that are decorated as "sensitive" in the API will not
  5793  // be included in the string output. The member name will be present, but the
  5794  // value will be replaced with "sensitive".
  5795  func (s GetSubscriptionStateOutput) String() string {
  5796  	return awsutil.Prettify(s)
  5797  }
  5798  
  5799  // GoString returns the string representation.
  5800  //
  5801  // API parameter values that are decorated as "sensitive" in the API will not
  5802  // be included in the string output. The member name will be present, but the
  5803  // value will be replaced with "sensitive".
  5804  func (s GetSubscriptionStateOutput) GoString() string {
  5805  	return s.String()
  5806  }
  5807  
  5808  // SetSubscriptionState sets the SubscriptionState field's value.
  5809  func (s *GetSubscriptionStateOutput) SetSubscriptionState(v string) *GetSubscriptionStateOutput {
  5810  	s.SubscriptionState = &v
  5811  	return s
  5812  }
  5813  
  5814  // Exception that indicates that a problem occurred with the service infrastructure.
  5815  // You can retry the request.
  5816  type InternalErrorException struct {
  5817  	_            struct{}                  `type:"structure"`
  5818  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5819  
  5820  	Message_ *string `locationName:"message" type:"string"`
  5821  }
  5822  
  5823  // String returns the string representation.
  5824  //
  5825  // API parameter values that are decorated as "sensitive" in the API will not
  5826  // be included in the string output. The member name will be present, but the
  5827  // value will be replaced with "sensitive".
  5828  func (s InternalErrorException) String() string {
  5829  	return awsutil.Prettify(s)
  5830  }
  5831  
  5832  // GoString returns the string representation.
  5833  //
  5834  // API parameter values that are decorated as "sensitive" in the API will not
  5835  // be included in the string output. The member name will be present, but the
  5836  // value will be replaced with "sensitive".
  5837  func (s InternalErrorException) GoString() string {
  5838  	return s.String()
  5839  }
  5840  
  5841  func newErrorInternalErrorException(v protocol.ResponseMetadata) error {
  5842  	return &InternalErrorException{
  5843  		RespMetadata: v,
  5844  	}
  5845  }
  5846  
  5847  // Code returns the exception type name.
  5848  func (s *InternalErrorException) Code() string {
  5849  	return "InternalErrorException"
  5850  }
  5851  
  5852  // Message returns the exception's message.
  5853  func (s *InternalErrorException) Message() string {
  5854  	if s.Message_ != nil {
  5855  		return *s.Message_
  5856  	}
  5857  	return ""
  5858  }
  5859  
  5860  // OrigErr always returns nil, satisfies awserr.Error interface.
  5861  func (s *InternalErrorException) OrigErr() error {
  5862  	return nil
  5863  }
  5864  
  5865  func (s *InternalErrorException) Error() string {
  5866  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5867  }
  5868  
  5869  // Status code returns the HTTP status code for the request's response error.
  5870  func (s *InternalErrorException) StatusCode() int {
  5871  	return s.RespMetadata.StatusCode
  5872  }
  5873  
  5874  // RequestID returns the service's response RequestID for request.
  5875  func (s *InternalErrorException) RequestID() string {
  5876  	return s.RespMetadata.RequestID
  5877  }
  5878  
  5879  // Exception that indicates that the operation would not cause any change to
  5880  // occur.
  5881  type InvalidOperationException struct {
  5882  	_            struct{}                  `type:"structure"`
  5883  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5884  
  5885  	Message_ *string `locationName:"message" type:"string"`
  5886  }
  5887  
  5888  // String returns the string representation.
  5889  //
  5890  // API parameter values that are decorated as "sensitive" in the API will not
  5891  // be included in the string output. The member name will be present, but the
  5892  // value will be replaced with "sensitive".
  5893  func (s InvalidOperationException) String() string {
  5894  	return awsutil.Prettify(s)
  5895  }
  5896  
  5897  // GoString returns the string representation.
  5898  //
  5899  // API parameter values that are decorated as "sensitive" in the API will not
  5900  // be included in the string output. The member name will be present, but the
  5901  // value will be replaced with "sensitive".
  5902  func (s InvalidOperationException) GoString() string {
  5903  	return s.String()
  5904  }
  5905  
  5906  func newErrorInvalidOperationException(v protocol.ResponseMetadata) error {
  5907  	return &InvalidOperationException{
  5908  		RespMetadata: v,
  5909  	}
  5910  }
  5911  
  5912  // Code returns the exception type name.
  5913  func (s *InvalidOperationException) Code() string {
  5914  	return "InvalidOperationException"
  5915  }
  5916  
  5917  // Message returns the exception's message.
  5918  func (s *InvalidOperationException) Message() string {
  5919  	if s.Message_ != nil {
  5920  		return *s.Message_
  5921  	}
  5922  	return ""
  5923  }
  5924  
  5925  // OrigErr always returns nil, satisfies awserr.Error interface.
  5926  func (s *InvalidOperationException) OrigErr() error {
  5927  	return nil
  5928  }
  5929  
  5930  func (s *InvalidOperationException) Error() string {
  5931  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5932  }
  5933  
  5934  // Status code returns the HTTP status code for the request's response error.
  5935  func (s *InvalidOperationException) StatusCode() int {
  5936  	return s.RespMetadata.StatusCode
  5937  }
  5938  
  5939  // RequestID returns the service's response RequestID for request.
  5940  func (s *InvalidOperationException) RequestID() string {
  5941  	return s.RespMetadata.RequestID
  5942  }
  5943  
  5944  // Exception that indicates that the NextToken specified in the request is invalid.
  5945  // Submit the request using the NextToken value that was returned in the response.
  5946  type InvalidPaginationTokenException struct {
  5947  	_            struct{}                  `type:"structure"`
  5948  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5949  
  5950  	Message_ *string `locationName:"message" type:"string"`
  5951  }
  5952  
  5953  // String returns the string representation.
  5954  //
  5955  // API parameter values that are decorated as "sensitive" in the API will not
  5956  // be included in the string output. The member name will be present, but the
  5957  // value will be replaced with "sensitive".
  5958  func (s InvalidPaginationTokenException) String() string {
  5959  	return awsutil.Prettify(s)
  5960  }
  5961  
  5962  // GoString returns the string representation.
  5963  //
  5964  // API parameter values that are decorated as "sensitive" in the API will not
  5965  // be included in the string output. The member name will be present, but the
  5966  // value will be replaced with "sensitive".
  5967  func (s InvalidPaginationTokenException) GoString() string {
  5968  	return s.String()
  5969  }
  5970  
  5971  func newErrorInvalidPaginationTokenException(v protocol.ResponseMetadata) error {
  5972  	return &InvalidPaginationTokenException{
  5973  		RespMetadata: v,
  5974  	}
  5975  }
  5976  
  5977  // Code returns the exception type name.
  5978  func (s *InvalidPaginationTokenException) Code() string {
  5979  	return "InvalidPaginationTokenException"
  5980  }
  5981  
  5982  // Message returns the exception's message.
  5983  func (s *InvalidPaginationTokenException) Message() string {
  5984  	if s.Message_ != nil {
  5985  		return *s.Message_
  5986  	}
  5987  	return ""
  5988  }
  5989  
  5990  // OrigErr always returns nil, satisfies awserr.Error interface.
  5991  func (s *InvalidPaginationTokenException) OrigErr() error {
  5992  	return nil
  5993  }
  5994  
  5995  func (s *InvalidPaginationTokenException) Error() string {
  5996  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5997  }
  5998  
  5999  // Status code returns the HTTP status code for the request's response error.
  6000  func (s *InvalidPaginationTokenException) StatusCode() int {
  6001  	return s.RespMetadata.StatusCode
  6002  }
  6003  
  6004  // RequestID returns the service's response RequestID for request.
  6005  func (s *InvalidPaginationTokenException) RequestID() string {
  6006  	return s.RespMetadata.RequestID
  6007  }
  6008  
  6009  // Exception that indicates that the parameters passed to the API are invalid.
  6010  // If available, this exception includes details in additional properties.
  6011  type InvalidParameterException struct {
  6012  	_            struct{}                  `type:"structure"`
  6013  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6014  
  6015  	// Fields that caused the exception.
  6016  	Fields []*ValidationExceptionField `locationName:"fields" type:"list"`
  6017  
  6018  	Message_ *string `locationName:"message" type:"string"`
  6019  
  6020  	// Additional information about the exception.
  6021  	Reason *string `locationName:"reason" type:"string" enum:"ValidationExceptionReason"`
  6022  }
  6023  
  6024  // String returns the string representation.
  6025  //
  6026  // API parameter values that are decorated as "sensitive" in the API will not
  6027  // be included in the string output. The member name will be present, but the
  6028  // value will be replaced with "sensitive".
  6029  func (s InvalidParameterException) String() string {
  6030  	return awsutil.Prettify(s)
  6031  }
  6032  
  6033  // GoString returns the string representation.
  6034  //
  6035  // API parameter values that are decorated as "sensitive" in the API will not
  6036  // be included in the string output. The member name will be present, but the
  6037  // value will be replaced with "sensitive".
  6038  func (s InvalidParameterException) GoString() string {
  6039  	return s.String()
  6040  }
  6041  
  6042  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
  6043  	return &InvalidParameterException{
  6044  		RespMetadata: v,
  6045  	}
  6046  }
  6047  
  6048  // Code returns the exception type name.
  6049  func (s *InvalidParameterException) Code() string {
  6050  	return "InvalidParameterException"
  6051  }
  6052  
  6053  // Message returns the exception's message.
  6054  func (s *InvalidParameterException) Message() string {
  6055  	if s.Message_ != nil {
  6056  		return *s.Message_
  6057  	}
  6058  	return ""
  6059  }
  6060  
  6061  // OrigErr always returns nil, satisfies awserr.Error interface.
  6062  func (s *InvalidParameterException) OrigErr() error {
  6063  	return nil
  6064  }
  6065  
  6066  func (s *InvalidParameterException) Error() string {
  6067  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  6068  }
  6069  
  6070  // Status code returns the HTTP status code for the request's response error.
  6071  func (s *InvalidParameterException) StatusCode() int {
  6072  	return s.RespMetadata.StatusCode
  6073  }
  6074  
  6075  // RequestID returns the service's response RequestID for request.
  6076  func (s *InvalidParameterException) RequestID() string {
  6077  	return s.RespMetadata.RequestID
  6078  }
  6079  
  6080  // Exception that indicates that the resource is invalid. You might not have
  6081  // access to the resource, or the resource might not exist.
  6082  type InvalidResourceException struct {
  6083  	_            struct{}                  `type:"structure"`
  6084  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6085  
  6086  	Message_ *string `locationName:"message" type:"string"`
  6087  }
  6088  
  6089  // String returns the string representation.
  6090  //
  6091  // API parameter values that are decorated as "sensitive" in the API will not
  6092  // be included in the string output. The member name will be present, but the
  6093  // value will be replaced with "sensitive".
  6094  func (s InvalidResourceException) String() string {
  6095  	return awsutil.Prettify(s)
  6096  }
  6097  
  6098  // GoString returns the string representation.
  6099  //
  6100  // API parameter values that are decorated as "sensitive" in the API will not
  6101  // be included in the string output. The member name will be present, but the
  6102  // value will be replaced with "sensitive".
  6103  func (s InvalidResourceException) GoString() string {
  6104  	return s.String()
  6105  }
  6106  
  6107  func newErrorInvalidResourceException(v protocol.ResponseMetadata) error {
  6108  	return &InvalidResourceException{
  6109  		RespMetadata: v,
  6110  	}
  6111  }
  6112  
  6113  // Code returns the exception type name.
  6114  func (s *InvalidResourceException) Code() string {
  6115  	return "InvalidResourceException"
  6116  }
  6117  
  6118  // Message returns the exception's message.
  6119  func (s *InvalidResourceException) Message() string {
  6120  	if s.Message_ != nil {
  6121  		return *s.Message_
  6122  	}
  6123  	return ""
  6124  }
  6125  
  6126  // OrigErr always returns nil, satisfies awserr.Error interface.
  6127  func (s *InvalidResourceException) OrigErr() error {
  6128  	return nil
  6129  }
  6130  
  6131  func (s *InvalidResourceException) Error() string {
  6132  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6133  }
  6134  
  6135  // Status code returns the HTTP status code for the request's response error.
  6136  func (s *InvalidResourceException) StatusCode() int {
  6137  	return s.RespMetadata.StatusCode
  6138  }
  6139  
  6140  // RequestID returns the service's response RequestID for request.
  6141  func (s *InvalidResourceException) RequestID() string {
  6142  	return s.RespMetadata.RequestID
  6143  }
  6144  
  6145  // Specifies how many protections of a given type you can create.
  6146  type Limit struct {
  6147  	_ struct{} `type:"structure"`
  6148  
  6149  	// The maximum number of protections that can be created for the specified Type.
  6150  	Max *int64 `type:"long"`
  6151  
  6152  	// The type of protection.
  6153  	Type *string `type:"string"`
  6154  }
  6155  
  6156  // String returns the string representation.
  6157  //
  6158  // API parameter values that are decorated as "sensitive" in the API will not
  6159  // be included in the string output. The member name will be present, but the
  6160  // value will be replaced with "sensitive".
  6161  func (s Limit) String() string {
  6162  	return awsutil.Prettify(s)
  6163  }
  6164  
  6165  // GoString returns the string representation.
  6166  //
  6167  // API parameter values that are decorated as "sensitive" in the API will not
  6168  // be included in the string output. The member name will be present, but the
  6169  // value will be replaced with "sensitive".
  6170  func (s Limit) GoString() string {
  6171  	return s.String()
  6172  }
  6173  
  6174  // SetMax sets the Max field's value.
  6175  func (s *Limit) SetMax(v int64) *Limit {
  6176  	s.Max = &v
  6177  	return s
  6178  }
  6179  
  6180  // SetType sets the Type field's value.
  6181  func (s *Limit) SetType(v string) *Limit {
  6182  	s.Type = &v
  6183  	return s
  6184  }
  6185  
  6186  // Exception that indicates that the operation would exceed a limit.
  6187  type LimitsExceededException struct {
  6188  	_            struct{}                  `type:"structure"`
  6189  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6190  
  6191  	// The threshold that would be exceeded.
  6192  	Limit *int64 `type:"long"`
  6193  
  6194  	Message_ *string `locationName:"message" type:"string"`
  6195  
  6196  	// The type of limit that would be exceeded.
  6197  	Type *string `type:"string"`
  6198  }
  6199  
  6200  // String returns the string representation.
  6201  //
  6202  // API parameter values that are decorated as "sensitive" in the API will not
  6203  // be included in the string output. The member name will be present, but the
  6204  // value will be replaced with "sensitive".
  6205  func (s LimitsExceededException) String() string {
  6206  	return awsutil.Prettify(s)
  6207  }
  6208  
  6209  // GoString returns the string representation.
  6210  //
  6211  // API parameter values that are decorated as "sensitive" in the API will not
  6212  // be included in the string output. The member name will be present, but the
  6213  // value will be replaced with "sensitive".
  6214  func (s LimitsExceededException) GoString() string {
  6215  	return s.String()
  6216  }
  6217  
  6218  func newErrorLimitsExceededException(v protocol.ResponseMetadata) error {
  6219  	return &LimitsExceededException{
  6220  		RespMetadata: v,
  6221  	}
  6222  }
  6223  
  6224  // Code returns the exception type name.
  6225  func (s *LimitsExceededException) Code() string {
  6226  	return "LimitsExceededException"
  6227  }
  6228  
  6229  // Message returns the exception's message.
  6230  func (s *LimitsExceededException) Message() string {
  6231  	if s.Message_ != nil {
  6232  		return *s.Message_
  6233  	}
  6234  	return ""
  6235  }
  6236  
  6237  // OrigErr always returns nil, satisfies awserr.Error interface.
  6238  func (s *LimitsExceededException) OrigErr() error {
  6239  	return nil
  6240  }
  6241  
  6242  func (s *LimitsExceededException) Error() string {
  6243  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  6244  }
  6245  
  6246  // Status code returns the HTTP status code for the request's response error.
  6247  func (s *LimitsExceededException) StatusCode() int {
  6248  	return s.RespMetadata.StatusCode
  6249  }
  6250  
  6251  // RequestID returns the service's response RequestID for request.
  6252  func (s *LimitsExceededException) RequestID() string {
  6253  	return s.RespMetadata.RequestID
  6254  }
  6255  
  6256  type ListAttacksInput struct {
  6257  	_ struct{} `type:"structure"`
  6258  
  6259  	// The end of the time period for the attacks. This is a timestamp type. The
  6260  	// sample request above indicates a number type because the default used by
  6261  	// WAF is Unix time in seconds. However any valid timestamp format (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types)
  6262  	// is allowed.
  6263  	EndTime *TimeRange `type:"structure"`
  6264  
  6265  	// The maximum number of AttackSummary objects to return. If you leave this
  6266  	// blank, Shield Advanced returns the first 20 results.
  6267  	//
  6268  	// This is a maximum value. Shield Advanced might return the results in smaller
  6269  	// batches. That is, the number of objects returned could be less than MaxResults,
  6270  	// even if there are still more objects yet to return. If there are more objects
  6271  	// to return, Shield Advanced returns a value in NextToken that you can use
  6272  	// in your next request, to get the next batch of objects.
  6273  	MaxResults *int64 `type:"integer"`
  6274  
  6275  	// The ListAttacksRequest.NextMarker value from a previous call to ListAttacksRequest.
  6276  	// Pass null if this is the first call.
  6277  	NextToken *string `min:"1" type:"string"`
  6278  
  6279  	// The ARN (Amazon Resource Name) of the resource that was attacked. If this
  6280  	// is left blank, all applicable resources for this account will be included.
  6281  	ResourceArns []*string `type:"list"`
  6282  
  6283  	// The start of the time period for the attacks. This is a timestamp type. The
  6284  	// sample request above indicates a number type because the default used by
  6285  	// WAF is Unix time in seconds. However any valid timestamp format (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types)
  6286  	// is allowed.
  6287  	StartTime *TimeRange `type:"structure"`
  6288  }
  6289  
  6290  // String returns the string representation.
  6291  //
  6292  // API parameter values that are decorated as "sensitive" in the API will not
  6293  // be included in the string output. The member name will be present, but the
  6294  // value will be replaced with "sensitive".
  6295  func (s ListAttacksInput) String() string {
  6296  	return awsutil.Prettify(s)
  6297  }
  6298  
  6299  // GoString returns the string representation.
  6300  //
  6301  // API parameter values that are decorated as "sensitive" in the API will not
  6302  // be included in the string output. The member name will be present, but the
  6303  // value will be replaced with "sensitive".
  6304  func (s ListAttacksInput) GoString() string {
  6305  	return s.String()
  6306  }
  6307  
  6308  // Validate inspects the fields of the type to determine if they are valid.
  6309  func (s *ListAttacksInput) Validate() error {
  6310  	invalidParams := request.ErrInvalidParams{Context: "ListAttacksInput"}
  6311  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6312  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6313  	}
  6314  
  6315  	if invalidParams.Len() > 0 {
  6316  		return invalidParams
  6317  	}
  6318  	return nil
  6319  }
  6320  
  6321  // SetEndTime sets the EndTime field's value.
  6322  func (s *ListAttacksInput) SetEndTime(v *TimeRange) *ListAttacksInput {
  6323  	s.EndTime = v
  6324  	return s
  6325  }
  6326  
  6327  // SetMaxResults sets the MaxResults field's value.
  6328  func (s *ListAttacksInput) SetMaxResults(v int64) *ListAttacksInput {
  6329  	s.MaxResults = &v
  6330  	return s
  6331  }
  6332  
  6333  // SetNextToken sets the NextToken field's value.
  6334  func (s *ListAttacksInput) SetNextToken(v string) *ListAttacksInput {
  6335  	s.NextToken = &v
  6336  	return s
  6337  }
  6338  
  6339  // SetResourceArns sets the ResourceArns field's value.
  6340  func (s *ListAttacksInput) SetResourceArns(v []*string) *ListAttacksInput {
  6341  	s.ResourceArns = v
  6342  	return s
  6343  }
  6344  
  6345  // SetStartTime sets the StartTime field's value.
  6346  func (s *ListAttacksInput) SetStartTime(v *TimeRange) *ListAttacksInput {
  6347  	s.StartTime = v
  6348  	return s
  6349  }
  6350  
  6351  type ListAttacksOutput struct {
  6352  	_ struct{} `type:"structure"`
  6353  
  6354  	// The attack information for the specified time range.
  6355  	AttackSummaries []*AttackSummary `type:"list"`
  6356  
  6357  	// The token returned by a previous call to indicate that there is more data
  6358  	// available. If not null, more results are available. Pass this value for the
  6359  	// NextMarker parameter in a subsequent call to ListAttacks to retrieve the
  6360  	// next set of items.
  6361  	//
  6362  	// Shield Advanced might return the list of AttackSummary objects in batches
  6363  	// smaller than the number specified by MaxResults. If there are more attack
  6364  	// summary objects to return, Shield Advanced will always also return a NextToken.
  6365  	NextToken *string `min:"1" type:"string"`
  6366  }
  6367  
  6368  // String returns the string representation.
  6369  //
  6370  // API parameter values that are decorated as "sensitive" in the API will not
  6371  // be included in the string output. The member name will be present, but the
  6372  // value will be replaced with "sensitive".
  6373  func (s ListAttacksOutput) String() string {
  6374  	return awsutil.Prettify(s)
  6375  }
  6376  
  6377  // GoString returns the string representation.
  6378  //
  6379  // API parameter values that are decorated as "sensitive" in the API will not
  6380  // be included in the string output. The member name will be present, but the
  6381  // value will be replaced with "sensitive".
  6382  func (s ListAttacksOutput) GoString() string {
  6383  	return s.String()
  6384  }
  6385  
  6386  // SetAttackSummaries sets the AttackSummaries field's value.
  6387  func (s *ListAttacksOutput) SetAttackSummaries(v []*AttackSummary) *ListAttacksOutput {
  6388  	s.AttackSummaries = v
  6389  	return s
  6390  }
  6391  
  6392  // SetNextToken sets the NextToken field's value.
  6393  func (s *ListAttacksOutput) SetNextToken(v string) *ListAttacksOutput {
  6394  	s.NextToken = &v
  6395  	return s
  6396  }
  6397  
  6398  type ListProtectionGroupsInput struct {
  6399  	_ struct{} `type:"structure"`
  6400  
  6401  	// The maximum number of ProtectionGroup objects to return. If you leave this
  6402  	// blank, Shield Advanced returns the first 20 results.
  6403  	//
  6404  	// This is a maximum value. Shield Advanced might return the results in smaller
  6405  	// batches. That is, the number of objects returned could be less than MaxResults,
  6406  	// even if there are still more objects yet to return. If there are more objects
  6407  	// to return, Shield Advanced returns a value in NextToken that you can use
  6408  	// in your next request, to get the next batch of objects.
  6409  	MaxResults *int64 `type:"integer"`
  6410  
  6411  	// The next token value from a previous call to ListProtectionGroups. Pass null
  6412  	// if this is the first call.
  6413  	NextToken *string `min:"1" type:"string"`
  6414  }
  6415  
  6416  // String returns the string representation.
  6417  //
  6418  // API parameter values that are decorated as "sensitive" in the API will not
  6419  // be included in the string output. The member name will be present, but the
  6420  // value will be replaced with "sensitive".
  6421  func (s ListProtectionGroupsInput) String() string {
  6422  	return awsutil.Prettify(s)
  6423  }
  6424  
  6425  // GoString returns the string representation.
  6426  //
  6427  // API parameter values that are decorated as "sensitive" in the API will not
  6428  // be included in the string output. The member name will be present, but the
  6429  // value will be replaced with "sensitive".
  6430  func (s ListProtectionGroupsInput) GoString() string {
  6431  	return s.String()
  6432  }
  6433  
  6434  // Validate inspects the fields of the type to determine if they are valid.
  6435  func (s *ListProtectionGroupsInput) Validate() error {
  6436  	invalidParams := request.ErrInvalidParams{Context: "ListProtectionGroupsInput"}
  6437  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6438  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6439  	}
  6440  
  6441  	if invalidParams.Len() > 0 {
  6442  		return invalidParams
  6443  	}
  6444  	return nil
  6445  }
  6446  
  6447  // SetMaxResults sets the MaxResults field's value.
  6448  func (s *ListProtectionGroupsInput) SetMaxResults(v int64) *ListProtectionGroupsInput {
  6449  	s.MaxResults = &v
  6450  	return s
  6451  }
  6452  
  6453  // SetNextToken sets the NextToken field's value.
  6454  func (s *ListProtectionGroupsInput) SetNextToken(v string) *ListProtectionGroupsInput {
  6455  	s.NextToken = &v
  6456  	return s
  6457  }
  6458  
  6459  type ListProtectionGroupsOutput struct {
  6460  	_ struct{} `type:"structure"`
  6461  
  6462  	// If you specify a value for MaxResults and you have more protection groups
  6463  	// than the value of MaxResults, Shield Advanced returns this token that you
  6464  	// can use in your next request, to get the next batch of objects.
  6465  	NextToken *string `min:"1" type:"string"`
  6466  
  6467  	// ProtectionGroups is a required field
  6468  	ProtectionGroups []*ProtectionGroup `type:"list" required:"true"`
  6469  }
  6470  
  6471  // String returns the string representation.
  6472  //
  6473  // API parameter values that are decorated as "sensitive" in the API will not
  6474  // be included in the string output. The member name will be present, but the
  6475  // value will be replaced with "sensitive".
  6476  func (s ListProtectionGroupsOutput) String() string {
  6477  	return awsutil.Prettify(s)
  6478  }
  6479  
  6480  // GoString returns the string representation.
  6481  //
  6482  // API parameter values that are decorated as "sensitive" in the API will not
  6483  // be included in the string output. The member name will be present, but the
  6484  // value will be replaced with "sensitive".
  6485  func (s ListProtectionGroupsOutput) GoString() string {
  6486  	return s.String()
  6487  }
  6488  
  6489  // SetNextToken sets the NextToken field's value.
  6490  func (s *ListProtectionGroupsOutput) SetNextToken(v string) *ListProtectionGroupsOutput {
  6491  	s.NextToken = &v
  6492  	return s
  6493  }
  6494  
  6495  // SetProtectionGroups sets the ProtectionGroups field's value.
  6496  func (s *ListProtectionGroupsOutput) SetProtectionGroups(v []*ProtectionGroup) *ListProtectionGroupsOutput {
  6497  	s.ProtectionGroups = v
  6498  	return s
  6499  }
  6500  
  6501  type ListProtectionsInput struct {
  6502  	_ struct{} `type:"structure"`
  6503  
  6504  	// The maximum number of Protection objects to return. If you leave this blank,
  6505  	// Shield Advanced returns the first 20 results.
  6506  	//
  6507  	// This is a maximum value. Shield Advanced might return the results in smaller
  6508  	// batches. That is, the number of objects returned could be less than MaxResults,
  6509  	// even if there are still more objects yet to return. If there are more objects
  6510  	// to return, Shield Advanced returns a value in NextToken that you can use
  6511  	// in your next request, to get the next batch of objects.
  6512  	MaxResults *int64 `type:"integer"`
  6513  
  6514  	// The ListProtectionsRequest.NextToken value from a previous call to ListProtections.
  6515  	// Pass null if this is the first call.
  6516  	NextToken *string `min:"1" type:"string"`
  6517  }
  6518  
  6519  // String returns the string representation.
  6520  //
  6521  // API parameter values that are decorated as "sensitive" in the API will not
  6522  // be included in the string output. The member name will be present, but the
  6523  // value will be replaced with "sensitive".
  6524  func (s ListProtectionsInput) String() string {
  6525  	return awsutil.Prettify(s)
  6526  }
  6527  
  6528  // GoString returns the string representation.
  6529  //
  6530  // API parameter values that are decorated as "sensitive" in the API will not
  6531  // be included in the string output. The member name will be present, but the
  6532  // value will be replaced with "sensitive".
  6533  func (s ListProtectionsInput) GoString() string {
  6534  	return s.String()
  6535  }
  6536  
  6537  // Validate inspects the fields of the type to determine if they are valid.
  6538  func (s *ListProtectionsInput) Validate() error {
  6539  	invalidParams := request.ErrInvalidParams{Context: "ListProtectionsInput"}
  6540  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6541  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6542  	}
  6543  
  6544  	if invalidParams.Len() > 0 {
  6545  		return invalidParams
  6546  	}
  6547  	return nil
  6548  }
  6549  
  6550  // SetMaxResults sets the MaxResults field's value.
  6551  func (s *ListProtectionsInput) SetMaxResults(v int64) *ListProtectionsInput {
  6552  	s.MaxResults = &v
  6553  	return s
  6554  }
  6555  
  6556  // SetNextToken sets the NextToken field's value.
  6557  func (s *ListProtectionsInput) SetNextToken(v string) *ListProtectionsInput {
  6558  	s.NextToken = &v
  6559  	return s
  6560  }
  6561  
  6562  type ListProtectionsOutput struct {
  6563  	_ struct{} `type:"structure"`
  6564  
  6565  	// If you specify a value for MaxResults and you have more Protections than
  6566  	// the value of MaxResults, Shield Advanced returns a NextToken value in the
  6567  	// response that allows you to list another group of Protections. For the second
  6568  	// and subsequent ListProtections requests, specify the value of NextToken from
  6569  	// the previous response to get information about another batch of Protections.
  6570  	//
  6571  	// Shield Advanced might return the list of Protection objects in batches smaller
  6572  	// than the number specified by MaxResults. If there are more Protection objects
  6573  	// to return, Shield Advanced will always also return a NextToken.
  6574  	NextToken *string `min:"1" type:"string"`
  6575  
  6576  	// The array of enabled Protection objects.
  6577  	Protections []*Protection `type:"list"`
  6578  }
  6579  
  6580  // String returns the string representation.
  6581  //
  6582  // API parameter values that are decorated as "sensitive" in the API will not
  6583  // be included in the string output. The member name will be present, but the
  6584  // value will be replaced with "sensitive".
  6585  func (s ListProtectionsOutput) String() string {
  6586  	return awsutil.Prettify(s)
  6587  }
  6588  
  6589  // GoString returns the string representation.
  6590  //
  6591  // API parameter values that are decorated as "sensitive" in the API will not
  6592  // be included in the string output. The member name will be present, but the
  6593  // value will be replaced with "sensitive".
  6594  func (s ListProtectionsOutput) GoString() string {
  6595  	return s.String()
  6596  }
  6597  
  6598  // SetNextToken sets the NextToken field's value.
  6599  func (s *ListProtectionsOutput) SetNextToken(v string) *ListProtectionsOutput {
  6600  	s.NextToken = &v
  6601  	return s
  6602  }
  6603  
  6604  // SetProtections sets the Protections field's value.
  6605  func (s *ListProtectionsOutput) SetProtections(v []*Protection) *ListProtectionsOutput {
  6606  	s.Protections = v
  6607  	return s
  6608  }
  6609  
  6610  type ListResourcesInProtectionGroupInput struct {
  6611  	_ struct{} `type:"structure"`
  6612  
  6613  	// The maximum number of resource ARN objects to return. If you leave this blank,
  6614  	// Shield Advanced returns the first 20 results.
  6615  	//
  6616  	// This is a maximum value. Shield Advanced might return the results in smaller
  6617  	// batches. That is, the number of objects returned could be less than MaxResults,
  6618  	// even if there are still more objects yet to return. If there are more objects
  6619  	// to return, Shield Advanced returns a value in NextToken that you can use
  6620  	// in your next request, to get the next batch of objects.
  6621  	MaxResults *int64 `type:"integer"`
  6622  
  6623  	// The next token value from a previous call to ListResourcesInProtectionGroup.
  6624  	// Pass null if this is the first call.
  6625  	NextToken *string `min:"1" type:"string"`
  6626  
  6627  	// The name of the protection group. You use this to identify the protection
  6628  	// group in lists and to manage the protection group, for example to update,
  6629  	// delete, or describe it.
  6630  	//
  6631  	// ProtectionGroupId is a required field
  6632  	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
  6633  }
  6634  
  6635  // String returns the string representation.
  6636  //
  6637  // API parameter values that are decorated as "sensitive" in the API will not
  6638  // be included in the string output. The member name will be present, but the
  6639  // value will be replaced with "sensitive".
  6640  func (s ListResourcesInProtectionGroupInput) String() string {
  6641  	return awsutil.Prettify(s)
  6642  }
  6643  
  6644  // GoString returns the string representation.
  6645  //
  6646  // API parameter values that are decorated as "sensitive" in the API will not
  6647  // be included in the string output. The member name will be present, but the
  6648  // value will be replaced with "sensitive".
  6649  func (s ListResourcesInProtectionGroupInput) GoString() string {
  6650  	return s.String()
  6651  }
  6652  
  6653  // Validate inspects the fields of the type to determine if they are valid.
  6654  func (s *ListResourcesInProtectionGroupInput) Validate() error {
  6655  	invalidParams := request.ErrInvalidParams{Context: "ListResourcesInProtectionGroupInput"}
  6656  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6657  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6658  	}
  6659  	if s.ProtectionGroupId == nil {
  6660  		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
  6661  	}
  6662  	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
  6663  		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
  6664  	}
  6665  
  6666  	if invalidParams.Len() > 0 {
  6667  		return invalidParams
  6668  	}
  6669  	return nil
  6670  }
  6671  
  6672  // SetMaxResults sets the MaxResults field's value.
  6673  func (s *ListResourcesInProtectionGroupInput) SetMaxResults(v int64) *ListResourcesInProtectionGroupInput {
  6674  	s.MaxResults = &v
  6675  	return s
  6676  }
  6677  
  6678  // SetNextToken sets the NextToken field's value.
  6679  func (s *ListResourcesInProtectionGroupInput) SetNextToken(v string) *ListResourcesInProtectionGroupInput {
  6680  	s.NextToken = &v
  6681  	return s
  6682  }
  6683  
  6684  // SetProtectionGroupId sets the ProtectionGroupId field's value.
  6685  func (s *ListResourcesInProtectionGroupInput) SetProtectionGroupId(v string) *ListResourcesInProtectionGroupInput {
  6686  	s.ProtectionGroupId = &v
  6687  	return s
  6688  }
  6689  
  6690  type ListResourcesInProtectionGroupOutput struct {
  6691  	_ struct{} `type:"structure"`
  6692  
  6693  	// If you specify a value for MaxResults and you have more resources in the
  6694  	// protection group than the value of MaxResults, Shield Advanced returns this
  6695  	// token that you can use in your next request, to get the next batch of objects.
  6696  	NextToken *string `min:"1" type:"string"`
  6697  
  6698  	// The Amazon Resource Names (ARNs) of the resources that are included in the
  6699  	// protection group.
  6700  	//
  6701  	// ResourceArns is a required field
  6702  	ResourceArns []*string `type:"list" required:"true"`
  6703  }
  6704  
  6705  // String returns the string representation.
  6706  //
  6707  // API parameter values that are decorated as "sensitive" in the API will not
  6708  // be included in the string output. The member name will be present, but the
  6709  // value will be replaced with "sensitive".
  6710  func (s ListResourcesInProtectionGroupOutput) String() string {
  6711  	return awsutil.Prettify(s)
  6712  }
  6713  
  6714  // GoString returns the string representation.
  6715  //
  6716  // API parameter values that are decorated as "sensitive" in the API will not
  6717  // be included in the string output. The member name will be present, but the
  6718  // value will be replaced with "sensitive".
  6719  func (s ListResourcesInProtectionGroupOutput) GoString() string {
  6720  	return s.String()
  6721  }
  6722  
  6723  // SetNextToken sets the NextToken field's value.
  6724  func (s *ListResourcesInProtectionGroupOutput) SetNextToken(v string) *ListResourcesInProtectionGroupOutput {
  6725  	s.NextToken = &v
  6726  	return s
  6727  }
  6728  
  6729  // SetResourceArns sets the ResourceArns field's value.
  6730  func (s *ListResourcesInProtectionGroupOutput) SetResourceArns(v []*string) *ListResourcesInProtectionGroupOutput {
  6731  	s.ResourceArns = v
  6732  	return s
  6733  }
  6734  
  6735  type ListTagsForResourceInput struct {
  6736  	_ struct{} `type:"structure"`
  6737  
  6738  	// The Amazon Resource Name (ARN) of the resource to get tags for.
  6739  	//
  6740  	// ResourceARN is a required field
  6741  	ResourceARN *string `min:"1" type:"string" required:"true"`
  6742  }
  6743  
  6744  // String returns the string representation.
  6745  //
  6746  // API parameter values that are decorated as "sensitive" in the API will not
  6747  // be included in the string output. The member name will be present, but the
  6748  // value will be replaced with "sensitive".
  6749  func (s ListTagsForResourceInput) String() string {
  6750  	return awsutil.Prettify(s)
  6751  }
  6752  
  6753  // GoString returns the string representation.
  6754  //
  6755  // API parameter values that are decorated as "sensitive" in the API will not
  6756  // be included in the string output. The member name will be present, but the
  6757  // value will be replaced with "sensitive".
  6758  func (s ListTagsForResourceInput) GoString() string {
  6759  	return s.String()
  6760  }
  6761  
  6762  // Validate inspects the fields of the type to determine if they are valid.
  6763  func (s *ListTagsForResourceInput) Validate() error {
  6764  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  6765  	if s.ResourceARN == nil {
  6766  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  6767  	}
  6768  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  6769  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  6770  	}
  6771  
  6772  	if invalidParams.Len() > 0 {
  6773  		return invalidParams
  6774  	}
  6775  	return nil
  6776  }
  6777  
  6778  // SetResourceARN sets the ResourceARN field's value.
  6779  func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
  6780  	s.ResourceARN = &v
  6781  	return s
  6782  }
  6783  
  6784  type ListTagsForResourceOutput struct {
  6785  	_ struct{} `type:"structure"`
  6786  
  6787  	// A list of tag key and value pairs associated with the specified resource.
  6788  	Tags []*Tag `type:"list"`
  6789  }
  6790  
  6791  // String returns the string representation.
  6792  //
  6793  // API parameter values that are decorated as "sensitive" in the API will not
  6794  // be included in the string output. The member name will be present, but the
  6795  // value will be replaced with "sensitive".
  6796  func (s ListTagsForResourceOutput) String() string {
  6797  	return awsutil.Prettify(s)
  6798  }
  6799  
  6800  // GoString returns the string representation.
  6801  //
  6802  // API parameter values that are decorated as "sensitive" in the API will not
  6803  // be included in the string output. The member name will be present, but the
  6804  // value will be replaced with "sensitive".
  6805  func (s ListTagsForResourceOutput) GoString() string {
  6806  	return s.String()
  6807  }
  6808  
  6809  // SetTags sets the Tags field's value.
  6810  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
  6811  	s.Tags = v
  6812  	return s
  6813  }
  6814  
  6815  // You are trying to update a subscription that has not yet completed the 1-year
  6816  // commitment. You can change the AutoRenew parameter during the last 30 days
  6817  // of your subscription. This exception indicates that you are attempting to
  6818  // change AutoRenew prior to that period.
  6819  type LockedSubscriptionException struct {
  6820  	_            struct{}                  `type:"structure"`
  6821  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6822  
  6823  	Message_ *string `locationName:"message" type:"string"`
  6824  }
  6825  
  6826  // String returns the string representation.
  6827  //
  6828  // API parameter values that are decorated as "sensitive" in the API will not
  6829  // be included in the string output. The member name will be present, but the
  6830  // value will be replaced with "sensitive".
  6831  func (s LockedSubscriptionException) String() string {
  6832  	return awsutil.Prettify(s)
  6833  }
  6834  
  6835  // GoString returns the string representation.
  6836  //
  6837  // API parameter values that are decorated as "sensitive" in the API will not
  6838  // be included in the string output. The member name will be present, but the
  6839  // value will be replaced with "sensitive".
  6840  func (s LockedSubscriptionException) GoString() string {
  6841  	return s.String()
  6842  }
  6843  
  6844  func newErrorLockedSubscriptionException(v protocol.ResponseMetadata) error {
  6845  	return &LockedSubscriptionException{
  6846  		RespMetadata: v,
  6847  	}
  6848  }
  6849  
  6850  // Code returns the exception type name.
  6851  func (s *LockedSubscriptionException) Code() string {
  6852  	return "LockedSubscriptionException"
  6853  }
  6854  
  6855  // Message returns the exception's message.
  6856  func (s *LockedSubscriptionException) Message() string {
  6857  	if s.Message_ != nil {
  6858  		return *s.Message_
  6859  	}
  6860  	return ""
  6861  }
  6862  
  6863  // OrigErr always returns nil, satisfies awserr.Error interface.
  6864  func (s *LockedSubscriptionException) OrigErr() error {
  6865  	return nil
  6866  }
  6867  
  6868  func (s *LockedSubscriptionException) Error() string {
  6869  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6870  }
  6871  
  6872  // Status code returns the HTTP status code for the request's response error.
  6873  func (s *LockedSubscriptionException) StatusCode() int {
  6874  	return s.RespMetadata.StatusCode
  6875  }
  6876  
  6877  // RequestID returns the service's response RequestID for request.
  6878  func (s *LockedSubscriptionException) RequestID() string {
  6879  	return s.RespMetadata.RequestID
  6880  }
  6881  
  6882  // The mitigation applied to a DDoS attack.
  6883  type Mitigation struct {
  6884  	_ struct{} `type:"structure"`
  6885  
  6886  	// The name of the mitigation taken for this attack.
  6887  	MitigationName *string `type:"string"`
  6888  }
  6889  
  6890  // String returns the string representation.
  6891  //
  6892  // API parameter values that are decorated as "sensitive" in the API will not
  6893  // be included in the string output. The member name will be present, but the
  6894  // value will be replaced with "sensitive".
  6895  func (s Mitigation) String() string {
  6896  	return awsutil.Prettify(s)
  6897  }
  6898  
  6899  // GoString returns the string representation.
  6900  //
  6901  // API parameter values that are decorated as "sensitive" in the API will not
  6902  // be included in the string output. The member name will be present, but the
  6903  // value will be replaced with "sensitive".
  6904  func (s Mitigation) GoString() string {
  6905  	return s.String()
  6906  }
  6907  
  6908  // SetMitigationName sets the MitigationName field's value.
  6909  func (s *Mitigation) SetMitigationName(v string) *Mitigation {
  6910  	s.MitigationName = &v
  6911  	return s
  6912  }
  6913  
  6914  // The ARN of the role that you specifed does not exist.
  6915  type NoAssociatedRoleException struct {
  6916  	_            struct{}                  `type:"structure"`
  6917  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6918  
  6919  	Message_ *string `locationName:"message" type:"string"`
  6920  }
  6921  
  6922  // String 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 NoAssociatedRoleException) String() string {
  6928  	return awsutil.Prettify(s)
  6929  }
  6930  
  6931  // GoString returns the string representation.
  6932  //
  6933  // API parameter values that are decorated as "sensitive" in the API will not
  6934  // be included in the string output. The member name will be present, but the
  6935  // value will be replaced with "sensitive".
  6936  func (s NoAssociatedRoleException) GoString() string {
  6937  	return s.String()
  6938  }
  6939  
  6940  func newErrorNoAssociatedRoleException(v protocol.ResponseMetadata) error {
  6941  	return &NoAssociatedRoleException{
  6942  		RespMetadata: v,
  6943  	}
  6944  }
  6945  
  6946  // Code returns the exception type name.
  6947  func (s *NoAssociatedRoleException) Code() string {
  6948  	return "NoAssociatedRoleException"
  6949  }
  6950  
  6951  // Message returns the exception's message.
  6952  func (s *NoAssociatedRoleException) Message() string {
  6953  	if s.Message_ != nil {
  6954  		return *s.Message_
  6955  	}
  6956  	return ""
  6957  }
  6958  
  6959  // OrigErr always returns nil, satisfies awserr.Error interface.
  6960  func (s *NoAssociatedRoleException) OrigErr() error {
  6961  	return nil
  6962  }
  6963  
  6964  func (s *NoAssociatedRoleException) Error() string {
  6965  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6966  }
  6967  
  6968  // Status code returns the HTTP status code for the request's response error.
  6969  func (s *NoAssociatedRoleException) StatusCode() int {
  6970  	return s.RespMetadata.StatusCode
  6971  }
  6972  
  6973  // RequestID returns the service's response RequestID for request.
  6974  func (s *NoAssociatedRoleException) RequestID() string {
  6975  	return s.RespMetadata.RequestID
  6976  }
  6977  
  6978  // Exception that indicates that the resource state has been modified by another
  6979  // client. Retrieve the resource and then retry your request.
  6980  type OptimisticLockException struct {
  6981  	_            struct{}                  `type:"structure"`
  6982  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6983  
  6984  	Message_ *string `locationName:"message" type:"string"`
  6985  }
  6986  
  6987  // String returns the string representation.
  6988  //
  6989  // API parameter values that are decorated as "sensitive" in the API will not
  6990  // be included in the string output. The member name will be present, but the
  6991  // value will be replaced with "sensitive".
  6992  func (s OptimisticLockException) String() string {
  6993  	return awsutil.Prettify(s)
  6994  }
  6995  
  6996  // GoString returns the string representation.
  6997  //
  6998  // API parameter values that are decorated as "sensitive" in the API will not
  6999  // be included in the string output. The member name will be present, but the
  7000  // value will be replaced with "sensitive".
  7001  func (s OptimisticLockException) GoString() string {
  7002  	return s.String()
  7003  }
  7004  
  7005  func newErrorOptimisticLockException(v protocol.ResponseMetadata) error {
  7006  	return &OptimisticLockException{
  7007  		RespMetadata: v,
  7008  	}
  7009  }
  7010  
  7011  // Code returns the exception type name.
  7012  func (s *OptimisticLockException) Code() string {
  7013  	return "OptimisticLockException"
  7014  }
  7015  
  7016  // Message returns the exception's message.
  7017  func (s *OptimisticLockException) Message() string {
  7018  	if s.Message_ != nil {
  7019  		return *s.Message_
  7020  	}
  7021  	return ""
  7022  }
  7023  
  7024  // OrigErr always returns nil, satisfies awserr.Error interface.
  7025  func (s *OptimisticLockException) OrigErr() error {
  7026  	return nil
  7027  }
  7028  
  7029  func (s *OptimisticLockException) Error() string {
  7030  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7031  }
  7032  
  7033  // Status code returns the HTTP status code for the request's response error.
  7034  func (s *OptimisticLockException) StatusCode() int {
  7035  	return s.RespMetadata.StatusCode
  7036  }
  7037  
  7038  // RequestID returns the service's response RequestID for request.
  7039  func (s *OptimisticLockException) RequestID() string {
  7040  	return s.RespMetadata.RequestID
  7041  }
  7042  
  7043  // An object that represents a resource that is under DDoS protection.
  7044  type Protection struct {
  7045  	_ struct{} `type:"structure"`
  7046  
  7047  	// The unique identifier (ID) for the Route 53 health check that's associated
  7048  	// with the protection.
  7049  	HealthCheckIds []*string `type:"list"`
  7050  
  7051  	// The unique identifier (ID) of the protection.
  7052  	Id *string `min:"1" type:"string"`
  7053  
  7054  	// The name of the protection. For example, My CloudFront distributions.
  7055  	Name *string `min:"1" type:"string"`
  7056  
  7057  	// The ARN (Amazon Resource Name) of the protection.
  7058  	ProtectionArn *string `min:"1" type:"string"`
  7059  
  7060  	// The ARN (Amazon Resource Name) of the Amazon Web Services resource that is
  7061  	// protected.
  7062  	ResourceArn *string `min:"1" type:"string"`
  7063  }
  7064  
  7065  // String returns the string representation.
  7066  //
  7067  // API parameter values that are decorated as "sensitive" in the API will not
  7068  // be included in the string output. The member name will be present, but the
  7069  // value will be replaced with "sensitive".
  7070  func (s Protection) String() string {
  7071  	return awsutil.Prettify(s)
  7072  }
  7073  
  7074  // GoString returns the string representation.
  7075  //
  7076  // API parameter values that are decorated as "sensitive" in the API will not
  7077  // be included in the string output. The member name will be present, but the
  7078  // value will be replaced with "sensitive".
  7079  func (s Protection) GoString() string {
  7080  	return s.String()
  7081  }
  7082  
  7083  // SetHealthCheckIds sets the HealthCheckIds field's value.
  7084  func (s *Protection) SetHealthCheckIds(v []*string) *Protection {
  7085  	s.HealthCheckIds = v
  7086  	return s
  7087  }
  7088  
  7089  // SetId sets the Id field's value.
  7090  func (s *Protection) SetId(v string) *Protection {
  7091  	s.Id = &v
  7092  	return s
  7093  }
  7094  
  7095  // SetName sets the Name field's value.
  7096  func (s *Protection) SetName(v string) *Protection {
  7097  	s.Name = &v
  7098  	return s
  7099  }
  7100  
  7101  // SetProtectionArn sets the ProtectionArn field's value.
  7102  func (s *Protection) SetProtectionArn(v string) *Protection {
  7103  	s.ProtectionArn = &v
  7104  	return s
  7105  }
  7106  
  7107  // SetResourceArn sets the ResourceArn field's value.
  7108  func (s *Protection) SetResourceArn(v string) *Protection {
  7109  	s.ResourceArn = &v
  7110  	return s
  7111  }
  7112  
  7113  // A grouping of protected resources that you and Shield Advanced can monitor
  7114  // as a collective. This resource grouping improves the accuracy of detection
  7115  // and reduces false positives.
  7116  type ProtectionGroup struct {
  7117  	_ struct{} `type:"structure"`
  7118  
  7119  	// Defines how Shield combines resource data for the group in order to detect,
  7120  	// mitigate, and report events.
  7121  	//
  7122  	//    * Sum - Use the total traffic across the group. This is a good choice
  7123  	//    for most cases. Examples include Elastic IP addresses for EC2 instances
  7124  	//    that scale manually or automatically.
  7125  	//
  7126  	//    * Mean - Use the average of the traffic across the group. This is a good
  7127  	//    choice for resources that share traffic uniformly. Examples include accelerators
  7128  	//    and load balancers.
  7129  	//
  7130  	//    * Max - Use the highest traffic from each resource. This is useful for
  7131  	//    resources that don't share traffic and for resources that share that traffic
  7132  	//    in a non-uniform way. Examples include Amazon CloudFront distributions
  7133  	//    and origin resources for CloudFront distributions.
  7134  	//
  7135  	// Aggregation is a required field
  7136  	Aggregation *string `type:"string" required:"true" enum:"ProtectionGroupAggregation"`
  7137  
  7138  	// The Amazon Resource Names (ARNs) of the resources to include in the protection
  7139  	// group. You must set this when you set Pattern to ARBITRARY and you must not
  7140  	// set it for any other Pattern setting.
  7141  	//
  7142  	// Members is a required field
  7143  	Members []*string `type:"list" required:"true"`
  7144  
  7145  	// The criteria to use to choose the protected resources for inclusion in the
  7146  	// group. You can include all resources that have protections, provide a list
  7147  	// of resource Amazon Resource Names (ARNs), or include all resources of a specified
  7148  	// resource type.
  7149  	//
  7150  	// Pattern is a required field
  7151  	Pattern *string `type:"string" required:"true" enum:"ProtectionGroupPattern"`
  7152  
  7153  	// The ARN (Amazon Resource Name) of the protection group.
  7154  	ProtectionGroupArn *string `min:"1" type:"string"`
  7155  
  7156  	// The name of the protection group. You use this to identify the protection
  7157  	// group in lists and to manage the protection group, for example to update,
  7158  	// delete, or describe it.
  7159  	//
  7160  	// ProtectionGroupId is a required field
  7161  	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
  7162  
  7163  	// The resource type to include in the protection group. All protected resources
  7164  	// of this type are included in the protection group. You must set this when
  7165  	// you set Pattern to BY_RESOURCE_TYPE and you must not set it for any other
  7166  	// Pattern setting.
  7167  	ResourceType *string `type:"string" enum:"ProtectedResourceType"`
  7168  }
  7169  
  7170  // String returns the string representation.
  7171  //
  7172  // API parameter values that are decorated as "sensitive" in the API will not
  7173  // be included in the string output. The member name will be present, but the
  7174  // value will be replaced with "sensitive".
  7175  func (s ProtectionGroup) String() string {
  7176  	return awsutil.Prettify(s)
  7177  }
  7178  
  7179  // GoString returns the string representation.
  7180  //
  7181  // API parameter values that are decorated as "sensitive" in the API will not
  7182  // be included in the string output. The member name will be present, but the
  7183  // value will be replaced with "sensitive".
  7184  func (s ProtectionGroup) GoString() string {
  7185  	return s.String()
  7186  }
  7187  
  7188  // SetAggregation sets the Aggregation field's value.
  7189  func (s *ProtectionGroup) SetAggregation(v string) *ProtectionGroup {
  7190  	s.Aggregation = &v
  7191  	return s
  7192  }
  7193  
  7194  // SetMembers sets the Members field's value.
  7195  func (s *ProtectionGroup) SetMembers(v []*string) *ProtectionGroup {
  7196  	s.Members = v
  7197  	return s
  7198  }
  7199  
  7200  // SetPattern sets the Pattern field's value.
  7201  func (s *ProtectionGroup) SetPattern(v string) *ProtectionGroup {
  7202  	s.Pattern = &v
  7203  	return s
  7204  }
  7205  
  7206  // SetProtectionGroupArn sets the ProtectionGroupArn field's value.
  7207  func (s *ProtectionGroup) SetProtectionGroupArn(v string) *ProtectionGroup {
  7208  	s.ProtectionGroupArn = &v
  7209  	return s
  7210  }
  7211  
  7212  // SetProtectionGroupId sets the ProtectionGroupId field's value.
  7213  func (s *ProtectionGroup) SetProtectionGroupId(v string) *ProtectionGroup {
  7214  	s.ProtectionGroupId = &v
  7215  	return s
  7216  }
  7217  
  7218  // SetResourceType sets the ResourceType field's value.
  7219  func (s *ProtectionGroup) SetResourceType(v string) *ProtectionGroup {
  7220  	s.ResourceType = &v
  7221  	return s
  7222  }
  7223  
  7224  // Limits settings on protection groups with arbitrary pattern type.
  7225  type ProtectionGroupArbitraryPatternLimits struct {
  7226  	_ struct{} `type:"structure"`
  7227  
  7228  	// The maximum number of resources you can specify for a single arbitrary pattern
  7229  	// in a protection group.
  7230  	//
  7231  	// MaxMembers is a required field
  7232  	MaxMembers *int64 `type:"long" required:"true"`
  7233  }
  7234  
  7235  // String returns the string representation.
  7236  //
  7237  // API parameter values that are decorated as "sensitive" in the API will not
  7238  // be included in the string output. The member name will be present, but the
  7239  // value will be replaced with "sensitive".
  7240  func (s ProtectionGroupArbitraryPatternLimits) String() string {
  7241  	return awsutil.Prettify(s)
  7242  }
  7243  
  7244  // GoString returns the string representation.
  7245  //
  7246  // API parameter values that are decorated as "sensitive" in the API will not
  7247  // be included in the string output. The member name will be present, but the
  7248  // value will be replaced with "sensitive".
  7249  func (s ProtectionGroupArbitraryPatternLimits) GoString() string {
  7250  	return s.String()
  7251  }
  7252  
  7253  // SetMaxMembers sets the MaxMembers field's value.
  7254  func (s *ProtectionGroupArbitraryPatternLimits) SetMaxMembers(v int64) *ProtectionGroupArbitraryPatternLimits {
  7255  	s.MaxMembers = &v
  7256  	return s
  7257  }
  7258  
  7259  // Limits settings on protection groups for your subscription.
  7260  type ProtectionGroupLimits struct {
  7261  	_ struct{} `type:"structure"`
  7262  
  7263  	// The maximum number of protection groups that you can have at one time.
  7264  	//
  7265  	// MaxProtectionGroups is a required field
  7266  	MaxProtectionGroups *int64 `type:"long" required:"true"`
  7267  
  7268  	// Limits settings by pattern type in the protection groups for your subscription.
  7269  	//
  7270  	// PatternTypeLimits is a required field
  7271  	PatternTypeLimits *ProtectionGroupPatternTypeLimits `type:"structure" required:"true"`
  7272  }
  7273  
  7274  // String returns the string representation.
  7275  //
  7276  // API parameter values that are decorated as "sensitive" in the API will not
  7277  // be included in the string output. The member name will be present, but the
  7278  // value will be replaced with "sensitive".
  7279  func (s ProtectionGroupLimits) String() string {
  7280  	return awsutil.Prettify(s)
  7281  }
  7282  
  7283  // GoString returns the string representation.
  7284  //
  7285  // API parameter values that are decorated as "sensitive" in the API will not
  7286  // be included in the string output. The member name will be present, but the
  7287  // value will be replaced with "sensitive".
  7288  func (s ProtectionGroupLimits) GoString() string {
  7289  	return s.String()
  7290  }
  7291  
  7292  // SetMaxProtectionGroups sets the MaxProtectionGroups field's value.
  7293  func (s *ProtectionGroupLimits) SetMaxProtectionGroups(v int64) *ProtectionGroupLimits {
  7294  	s.MaxProtectionGroups = &v
  7295  	return s
  7296  }
  7297  
  7298  // SetPatternTypeLimits sets the PatternTypeLimits field's value.
  7299  func (s *ProtectionGroupLimits) SetPatternTypeLimits(v *ProtectionGroupPatternTypeLimits) *ProtectionGroupLimits {
  7300  	s.PatternTypeLimits = v
  7301  	return s
  7302  }
  7303  
  7304  // Limits settings by pattern type in the protection groups for your subscription.
  7305  type ProtectionGroupPatternTypeLimits struct {
  7306  	_ struct{} `type:"structure"`
  7307  
  7308  	// Limits settings on protection groups with arbitrary pattern type.
  7309  	//
  7310  	// ArbitraryPatternLimits is a required field
  7311  	ArbitraryPatternLimits *ProtectionGroupArbitraryPatternLimits `type:"structure" required:"true"`
  7312  }
  7313  
  7314  // String returns the string representation.
  7315  //
  7316  // API parameter values that are decorated as "sensitive" in the API will not
  7317  // be included in the string output. The member name will be present, but the
  7318  // value will be replaced with "sensitive".
  7319  func (s ProtectionGroupPatternTypeLimits) String() string {
  7320  	return awsutil.Prettify(s)
  7321  }
  7322  
  7323  // GoString returns the string representation.
  7324  //
  7325  // API parameter values that are decorated as "sensitive" in the API will not
  7326  // be included in the string output. The member name will be present, but the
  7327  // value will be replaced with "sensitive".
  7328  func (s ProtectionGroupPatternTypeLimits) GoString() string {
  7329  	return s.String()
  7330  }
  7331  
  7332  // SetArbitraryPatternLimits sets the ArbitraryPatternLimits field's value.
  7333  func (s *ProtectionGroupPatternTypeLimits) SetArbitraryPatternLimits(v *ProtectionGroupArbitraryPatternLimits) *ProtectionGroupPatternTypeLimits {
  7334  	s.ArbitraryPatternLimits = v
  7335  	return s
  7336  }
  7337  
  7338  // Limits settings on protections for your subscription.
  7339  type ProtectionLimits struct {
  7340  	_ struct{} `type:"structure"`
  7341  
  7342  	// The maximum number of resource types that you can specify in a protection.
  7343  	//
  7344  	// ProtectedResourceTypeLimits is a required field
  7345  	ProtectedResourceTypeLimits []*Limit `type:"list" required:"true"`
  7346  }
  7347  
  7348  // String returns the string representation.
  7349  //
  7350  // API parameter values that are decorated as "sensitive" in the API will not
  7351  // be included in the string output. The member name will be present, but the
  7352  // value will be replaced with "sensitive".
  7353  func (s ProtectionLimits) String() string {
  7354  	return awsutil.Prettify(s)
  7355  }
  7356  
  7357  // GoString returns the string representation.
  7358  //
  7359  // API parameter values that are decorated as "sensitive" in the API will not
  7360  // be included in the string output. The member name will be present, but the
  7361  // value will be replaced with "sensitive".
  7362  func (s ProtectionLimits) GoString() string {
  7363  	return s.String()
  7364  }
  7365  
  7366  // SetProtectedResourceTypeLimits sets the ProtectedResourceTypeLimits field's value.
  7367  func (s *ProtectionLimits) SetProtectedResourceTypeLimits(v []*Limit) *ProtectionLimits {
  7368  	s.ProtectedResourceTypeLimits = v
  7369  	return s
  7370  }
  7371  
  7372  // Exception indicating the specified resource already exists. If available,
  7373  // this exception includes details in additional properties.
  7374  type ResourceAlreadyExistsException struct {
  7375  	_            struct{}                  `type:"structure"`
  7376  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7377  
  7378  	Message_ *string `locationName:"message" type:"string"`
  7379  
  7380  	// The type of resource that already exists.
  7381  	ResourceType *string `locationName:"resourceType" type:"string"`
  7382  }
  7383  
  7384  // String returns the string representation.
  7385  //
  7386  // API parameter values that are decorated as "sensitive" in the API will not
  7387  // be included in the string output. The member name will be present, but the
  7388  // value will be replaced with "sensitive".
  7389  func (s ResourceAlreadyExistsException) String() string {
  7390  	return awsutil.Prettify(s)
  7391  }
  7392  
  7393  // GoString returns the string representation.
  7394  //
  7395  // API parameter values that are decorated as "sensitive" in the API will not
  7396  // be included in the string output. The member name will be present, but the
  7397  // value will be replaced with "sensitive".
  7398  func (s ResourceAlreadyExistsException) GoString() string {
  7399  	return s.String()
  7400  }
  7401  
  7402  func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
  7403  	return &ResourceAlreadyExistsException{
  7404  		RespMetadata: v,
  7405  	}
  7406  }
  7407  
  7408  // Code returns the exception type name.
  7409  func (s *ResourceAlreadyExistsException) Code() string {
  7410  	return "ResourceAlreadyExistsException"
  7411  }
  7412  
  7413  // Message returns the exception's message.
  7414  func (s *ResourceAlreadyExistsException) Message() string {
  7415  	if s.Message_ != nil {
  7416  		return *s.Message_
  7417  	}
  7418  	return ""
  7419  }
  7420  
  7421  // OrigErr always returns nil, satisfies awserr.Error interface.
  7422  func (s *ResourceAlreadyExistsException) OrigErr() error {
  7423  	return nil
  7424  }
  7425  
  7426  func (s *ResourceAlreadyExistsException) Error() string {
  7427  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  7428  }
  7429  
  7430  // Status code returns the HTTP status code for the request's response error.
  7431  func (s *ResourceAlreadyExistsException) StatusCode() int {
  7432  	return s.RespMetadata.StatusCode
  7433  }
  7434  
  7435  // RequestID returns the service's response RequestID for request.
  7436  func (s *ResourceAlreadyExistsException) RequestID() string {
  7437  	return s.RespMetadata.RequestID
  7438  }
  7439  
  7440  // Exception indicating the specified resource does not exist. If available,
  7441  // this exception includes details in additional properties.
  7442  type ResourceNotFoundException struct {
  7443  	_            struct{}                  `type:"structure"`
  7444  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7445  
  7446  	Message_ *string `locationName:"message" type:"string"`
  7447  
  7448  	// Type of resource.
  7449  	ResourceType *string `locationName:"resourceType" type:"string"`
  7450  }
  7451  
  7452  // String returns the string representation.
  7453  //
  7454  // API parameter values that are decorated as "sensitive" in the API will not
  7455  // be included in the string output. The member name will be present, but the
  7456  // value will be replaced with "sensitive".
  7457  func (s ResourceNotFoundException) String() string {
  7458  	return awsutil.Prettify(s)
  7459  }
  7460  
  7461  // GoString returns the string representation.
  7462  //
  7463  // API parameter values that are decorated as "sensitive" in the API will not
  7464  // be included in the string output. The member name will be present, but the
  7465  // value will be replaced with "sensitive".
  7466  func (s ResourceNotFoundException) GoString() string {
  7467  	return s.String()
  7468  }
  7469  
  7470  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  7471  	return &ResourceNotFoundException{
  7472  		RespMetadata: v,
  7473  	}
  7474  }
  7475  
  7476  // Code returns the exception type name.
  7477  func (s *ResourceNotFoundException) Code() string {
  7478  	return "ResourceNotFoundException"
  7479  }
  7480  
  7481  // Message returns the exception's message.
  7482  func (s *ResourceNotFoundException) Message() string {
  7483  	if s.Message_ != nil {
  7484  		return *s.Message_
  7485  	}
  7486  	return ""
  7487  }
  7488  
  7489  // OrigErr always returns nil, satisfies awserr.Error interface.
  7490  func (s *ResourceNotFoundException) OrigErr() error {
  7491  	return nil
  7492  }
  7493  
  7494  func (s *ResourceNotFoundException) Error() string {
  7495  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  7496  }
  7497  
  7498  // Status code returns the HTTP status code for the request's response error.
  7499  func (s *ResourceNotFoundException) StatusCode() int {
  7500  	return s.RespMetadata.StatusCode
  7501  }
  7502  
  7503  // RequestID returns the service's response RequestID for request.
  7504  func (s *ResourceNotFoundException) RequestID() string {
  7505  	return s.RespMetadata.RequestID
  7506  }
  7507  
  7508  // The attack information for the specified SubResource.
  7509  type SubResourceSummary struct {
  7510  	_ struct{} `type:"structure"`
  7511  
  7512  	// The list of attack types and associated counters.
  7513  	AttackVectors []*SummarizedAttackVector `type:"list"`
  7514  
  7515  	// The counters that describe the details of the attack.
  7516  	Counters []*SummarizedCounter `type:"list"`
  7517  
  7518  	// The unique identifier (ID) of the SubResource.
  7519  	Id *string `type:"string"`
  7520  
  7521  	// The SubResource type.
  7522  	Type *string `type:"string" enum:"SubResourceType"`
  7523  }
  7524  
  7525  // String returns the string representation.
  7526  //
  7527  // API parameter values that are decorated as "sensitive" in the API will not
  7528  // be included in the string output. The member name will be present, but the
  7529  // value will be replaced with "sensitive".
  7530  func (s SubResourceSummary) String() string {
  7531  	return awsutil.Prettify(s)
  7532  }
  7533  
  7534  // GoString returns the string representation.
  7535  //
  7536  // API parameter values that are decorated as "sensitive" in the API will not
  7537  // be included in the string output. The member name will be present, but the
  7538  // value will be replaced with "sensitive".
  7539  func (s SubResourceSummary) GoString() string {
  7540  	return s.String()
  7541  }
  7542  
  7543  // SetAttackVectors sets the AttackVectors field's value.
  7544  func (s *SubResourceSummary) SetAttackVectors(v []*SummarizedAttackVector) *SubResourceSummary {
  7545  	s.AttackVectors = v
  7546  	return s
  7547  }
  7548  
  7549  // SetCounters sets the Counters field's value.
  7550  func (s *SubResourceSummary) SetCounters(v []*SummarizedCounter) *SubResourceSummary {
  7551  	s.Counters = v
  7552  	return s
  7553  }
  7554  
  7555  // SetId sets the Id field's value.
  7556  func (s *SubResourceSummary) SetId(v string) *SubResourceSummary {
  7557  	s.Id = &v
  7558  	return s
  7559  }
  7560  
  7561  // SetType sets the Type field's value.
  7562  func (s *SubResourceSummary) SetType(v string) *SubResourceSummary {
  7563  	s.Type = &v
  7564  	return s
  7565  }
  7566  
  7567  // Information about the Shield Advanced subscription for an account.
  7568  type Subscription struct {
  7569  	_ struct{} `type:"structure"`
  7570  
  7571  	// If ENABLED, the subscription will be automatically renewed at the end of
  7572  	// the existing subscription period.
  7573  	//
  7574  	// When you initally create a subscription, AutoRenew is set to ENABLED. You
  7575  	// can change this by submitting an UpdateSubscription request. If the UpdateSubscription
  7576  	// request does not included a value for AutoRenew, the existing value for AutoRenew
  7577  	// remains unchanged.
  7578  	AutoRenew *string `type:"string" enum:"AutoRenew"`
  7579  
  7580  	// The date and time your subscription will end.
  7581  	EndTime *time.Time `type:"timestamp"`
  7582  
  7583  	// Specifies how many protections of a given type you can create.
  7584  	Limits []*Limit `type:"list"`
  7585  
  7586  	// If ENABLED, the Shield Response Team (SRT) will use email and phone to notify
  7587  	// contacts about escalations to the SRT and to initiate proactive customer
  7588  	// support.
  7589  	//
  7590  	// If PENDING, you have requested proactive engagement and the request is pending.
  7591  	// The status changes to ENABLED when your request is fully processed.
  7592  	//
  7593  	// If DISABLED, the SRT will not proactively notify contacts about escalations
  7594  	// or to initiate proactive customer support.
  7595  	ProactiveEngagementStatus *string `type:"string" enum:"ProactiveEngagementStatus"`
  7596  
  7597  	// The start time of the subscription, in Unix time in seconds. For more information
  7598  	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
  7599  	StartTime *time.Time `type:"timestamp"`
  7600  
  7601  	// The ARN (Amazon Resource Name) of the subscription.
  7602  	SubscriptionArn *string `min:"1" type:"string"`
  7603  
  7604  	// Limits settings for your subscription.
  7605  	//
  7606  	// SubscriptionLimits is a required field
  7607  	SubscriptionLimits *SubscriptionLimits `type:"structure" required:"true"`
  7608  
  7609  	// The length, in seconds, of the Shield Advanced subscription for the account.
  7610  	TimeCommitmentInSeconds *int64 `type:"long"`
  7611  }
  7612  
  7613  // String returns the string representation.
  7614  //
  7615  // API parameter values that are decorated as "sensitive" in the API will not
  7616  // be included in the string output. The member name will be present, but the
  7617  // value will be replaced with "sensitive".
  7618  func (s Subscription) String() string {
  7619  	return awsutil.Prettify(s)
  7620  }
  7621  
  7622  // GoString returns the string representation.
  7623  //
  7624  // API parameter values that are decorated as "sensitive" in the API will not
  7625  // be included in the string output. The member name will be present, but the
  7626  // value will be replaced with "sensitive".
  7627  func (s Subscription) GoString() string {
  7628  	return s.String()
  7629  }
  7630  
  7631  // SetAutoRenew sets the AutoRenew field's value.
  7632  func (s *Subscription) SetAutoRenew(v string) *Subscription {
  7633  	s.AutoRenew = &v
  7634  	return s
  7635  }
  7636  
  7637  // SetEndTime sets the EndTime field's value.
  7638  func (s *Subscription) SetEndTime(v time.Time) *Subscription {
  7639  	s.EndTime = &v
  7640  	return s
  7641  }
  7642  
  7643  // SetLimits sets the Limits field's value.
  7644  func (s *Subscription) SetLimits(v []*Limit) *Subscription {
  7645  	s.Limits = v
  7646  	return s
  7647  }
  7648  
  7649  // SetProactiveEngagementStatus sets the ProactiveEngagementStatus field's value.
  7650  func (s *Subscription) SetProactiveEngagementStatus(v string) *Subscription {
  7651  	s.ProactiveEngagementStatus = &v
  7652  	return s
  7653  }
  7654  
  7655  // SetStartTime sets the StartTime field's value.
  7656  func (s *Subscription) SetStartTime(v time.Time) *Subscription {
  7657  	s.StartTime = &v
  7658  	return s
  7659  }
  7660  
  7661  // SetSubscriptionArn sets the SubscriptionArn field's value.
  7662  func (s *Subscription) SetSubscriptionArn(v string) *Subscription {
  7663  	s.SubscriptionArn = &v
  7664  	return s
  7665  }
  7666  
  7667  // SetSubscriptionLimits sets the SubscriptionLimits field's value.
  7668  func (s *Subscription) SetSubscriptionLimits(v *SubscriptionLimits) *Subscription {
  7669  	s.SubscriptionLimits = v
  7670  	return s
  7671  }
  7672  
  7673  // SetTimeCommitmentInSeconds sets the TimeCommitmentInSeconds field's value.
  7674  func (s *Subscription) SetTimeCommitmentInSeconds(v int64) *Subscription {
  7675  	s.TimeCommitmentInSeconds = &v
  7676  	return s
  7677  }
  7678  
  7679  // Limits settings for your subscription.
  7680  type SubscriptionLimits struct {
  7681  	_ struct{} `type:"structure"`
  7682  
  7683  	// Limits settings on protection groups for your subscription.
  7684  	//
  7685  	// ProtectionGroupLimits is a required field
  7686  	ProtectionGroupLimits *ProtectionGroupLimits `type:"structure" required:"true"`
  7687  
  7688  	// Limits settings on protections for your subscription.
  7689  	//
  7690  	// ProtectionLimits is a required field
  7691  	ProtectionLimits *ProtectionLimits `type:"structure" required:"true"`
  7692  }
  7693  
  7694  // String returns the string representation.
  7695  //
  7696  // API parameter values that are decorated as "sensitive" in the API will not
  7697  // be included in the string output. The member name will be present, but the
  7698  // value will be replaced with "sensitive".
  7699  func (s SubscriptionLimits) String() string {
  7700  	return awsutil.Prettify(s)
  7701  }
  7702  
  7703  // GoString returns the string representation.
  7704  //
  7705  // API parameter values that are decorated as "sensitive" in the API will not
  7706  // be included in the string output. The member name will be present, but the
  7707  // value will be replaced with "sensitive".
  7708  func (s SubscriptionLimits) GoString() string {
  7709  	return s.String()
  7710  }
  7711  
  7712  // SetProtectionGroupLimits sets the ProtectionGroupLimits field's value.
  7713  func (s *SubscriptionLimits) SetProtectionGroupLimits(v *ProtectionGroupLimits) *SubscriptionLimits {
  7714  	s.ProtectionGroupLimits = v
  7715  	return s
  7716  }
  7717  
  7718  // SetProtectionLimits sets the ProtectionLimits field's value.
  7719  func (s *SubscriptionLimits) SetProtectionLimits(v *ProtectionLimits) *SubscriptionLimits {
  7720  	s.ProtectionLimits = v
  7721  	return s
  7722  }
  7723  
  7724  // A summary of information about the attack.
  7725  type SummarizedAttackVector struct {
  7726  	_ struct{} `type:"structure"`
  7727  
  7728  	// The list of counters that describe the details of the attack.
  7729  	VectorCounters []*SummarizedCounter `type:"list"`
  7730  
  7731  	// The attack type, for example, SNMP reflection or SYN flood.
  7732  	//
  7733  	// VectorType is a required field
  7734  	VectorType *string `type:"string" required:"true"`
  7735  }
  7736  
  7737  // String returns the string representation.
  7738  //
  7739  // API parameter values that are decorated as "sensitive" in the API will not
  7740  // be included in the string output. The member name will be present, but the
  7741  // value will be replaced with "sensitive".
  7742  func (s SummarizedAttackVector) String() string {
  7743  	return awsutil.Prettify(s)
  7744  }
  7745  
  7746  // GoString returns the string representation.
  7747  //
  7748  // API parameter values that are decorated as "sensitive" in the API will not
  7749  // be included in the string output. The member name will be present, but the
  7750  // value will be replaced with "sensitive".
  7751  func (s SummarizedAttackVector) GoString() string {
  7752  	return s.String()
  7753  }
  7754  
  7755  // SetVectorCounters sets the VectorCounters field's value.
  7756  func (s *SummarizedAttackVector) SetVectorCounters(v []*SummarizedCounter) *SummarizedAttackVector {
  7757  	s.VectorCounters = v
  7758  	return s
  7759  }
  7760  
  7761  // SetVectorType sets the VectorType field's value.
  7762  func (s *SummarizedAttackVector) SetVectorType(v string) *SummarizedAttackVector {
  7763  	s.VectorType = &v
  7764  	return s
  7765  }
  7766  
  7767  // The counter that describes a DDoS attack.
  7768  type SummarizedCounter struct {
  7769  	_ struct{} `type:"structure"`
  7770  
  7771  	// The average value of the counter for a specified time period.
  7772  	Average *float64 `type:"double"`
  7773  
  7774  	// The maximum value of the counter for a specified time period.
  7775  	Max *float64 `type:"double"`
  7776  
  7777  	// The number of counters for a specified time period.
  7778  	N *int64 `type:"integer"`
  7779  
  7780  	// The counter name.
  7781  	Name *string `type:"string"`
  7782  
  7783  	// The total of counter values for a specified time period.
  7784  	Sum *float64 `type:"double"`
  7785  
  7786  	// The unit of the counters.
  7787  	Unit *string `type:"string"`
  7788  }
  7789  
  7790  // String returns the string representation.
  7791  //
  7792  // API parameter values that are decorated as "sensitive" in the API will not
  7793  // be included in the string output. The member name will be present, but the
  7794  // value will be replaced with "sensitive".
  7795  func (s SummarizedCounter) String() string {
  7796  	return awsutil.Prettify(s)
  7797  }
  7798  
  7799  // GoString returns the string representation.
  7800  //
  7801  // API parameter values that are decorated as "sensitive" in the API will not
  7802  // be included in the string output. The member name will be present, but the
  7803  // value will be replaced with "sensitive".
  7804  func (s SummarizedCounter) GoString() string {
  7805  	return s.String()
  7806  }
  7807  
  7808  // SetAverage sets the Average field's value.
  7809  func (s *SummarizedCounter) SetAverage(v float64) *SummarizedCounter {
  7810  	s.Average = &v
  7811  	return s
  7812  }
  7813  
  7814  // SetMax sets the Max field's value.
  7815  func (s *SummarizedCounter) SetMax(v float64) *SummarizedCounter {
  7816  	s.Max = &v
  7817  	return s
  7818  }
  7819  
  7820  // SetN sets the N field's value.
  7821  func (s *SummarizedCounter) SetN(v int64) *SummarizedCounter {
  7822  	s.N = &v
  7823  	return s
  7824  }
  7825  
  7826  // SetName sets the Name field's value.
  7827  func (s *SummarizedCounter) SetName(v string) *SummarizedCounter {
  7828  	s.Name = &v
  7829  	return s
  7830  }
  7831  
  7832  // SetSum sets the Sum field's value.
  7833  func (s *SummarizedCounter) SetSum(v float64) *SummarizedCounter {
  7834  	s.Sum = &v
  7835  	return s
  7836  }
  7837  
  7838  // SetUnit sets the Unit field's value.
  7839  func (s *SummarizedCounter) SetUnit(v string) *SummarizedCounter {
  7840  	s.Unit = &v
  7841  	return s
  7842  }
  7843  
  7844  // A tag associated with an Amazon Web Services resource. Tags are key:value
  7845  // pairs that you can use to categorize and manage your resources, for purposes
  7846  // like billing or other management. Typically, the tag key represents a category,
  7847  // such as "environment", and the tag value represents a specific value within
  7848  // that category, such as "test," "development," or "production". Or you might
  7849  // set the tag key to "customer" and the value to the customer name or ID. You
  7850  // can specify one or more tags to add to each Amazon Web Services resource,
  7851  // up to 50 tags for a resource.
  7852  type Tag struct {
  7853  	_ struct{} `type:"structure"`
  7854  
  7855  	// Part of the key:value pair that defines a tag. You can use a tag key to describe
  7856  	// a category of information, such as "customer." Tag keys are case-sensitive.
  7857  	Key *string `min:"1" type:"string"`
  7858  
  7859  	// Part of the key:value pair that defines a tag. You can use a tag value to
  7860  	// describe a specific value within a category, such as "companyA" or "companyB."
  7861  	// Tag values are case-sensitive.
  7862  	Value *string `type:"string"`
  7863  }
  7864  
  7865  // String returns the string representation.
  7866  //
  7867  // API parameter values that are decorated as "sensitive" in the API will not
  7868  // be included in the string output. The member name will be present, but the
  7869  // value will be replaced with "sensitive".
  7870  func (s Tag) String() string {
  7871  	return awsutil.Prettify(s)
  7872  }
  7873  
  7874  // GoString returns the string representation.
  7875  //
  7876  // API parameter values that are decorated as "sensitive" in the API will not
  7877  // be included in the string output. The member name will be present, but the
  7878  // value will be replaced with "sensitive".
  7879  func (s Tag) GoString() string {
  7880  	return s.String()
  7881  }
  7882  
  7883  // Validate inspects the fields of the type to determine if they are valid.
  7884  func (s *Tag) Validate() error {
  7885  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  7886  	if s.Key != nil && len(*s.Key) < 1 {
  7887  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  7888  	}
  7889  
  7890  	if invalidParams.Len() > 0 {
  7891  		return invalidParams
  7892  	}
  7893  	return nil
  7894  }
  7895  
  7896  // SetKey sets the Key field's value.
  7897  func (s *Tag) SetKey(v string) *Tag {
  7898  	s.Key = &v
  7899  	return s
  7900  }
  7901  
  7902  // SetValue sets the Value field's value.
  7903  func (s *Tag) SetValue(v string) *Tag {
  7904  	s.Value = &v
  7905  	return s
  7906  }
  7907  
  7908  type TagResourceInput struct {
  7909  	_ struct{} `type:"structure"`
  7910  
  7911  	// The Amazon Resource Name (ARN) of the resource that you want to add or update
  7912  	// tags for.
  7913  	//
  7914  	// ResourceARN is a required field
  7915  	ResourceARN *string `min:"1" type:"string" required:"true"`
  7916  
  7917  	// The tags that you want to modify or add to the resource.
  7918  	//
  7919  	// Tags is a required field
  7920  	Tags []*Tag `type:"list" required:"true"`
  7921  }
  7922  
  7923  // String returns the string representation.
  7924  //
  7925  // API parameter values that are decorated as "sensitive" in the API will not
  7926  // be included in the string output. The member name will be present, but the
  7927  // value will be replaced with "sensitive".
  7928  func (s TagResourceInput) String() string {
  7929  	return awsutil.Prettify(s)
  7930  }
  7931  
  7932  // GoString returns the string representation.
  7933  //
  7934  // API parameter values that are decorated as "sensitive" in the API will not
  7935  // be included in the string output. The member name will be present, but the
  7936  // value will be replaced with "sensitive".
  7937  func (s TagResourceInput) GoString() string {
  7938  	return s.String()
  7939  }
  7940  
  7941  // Validate inspects the fields of the type to determine if they are valid.
  7942  func (s *TagResourceInput) Validate() error {
  7943  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  7944  	if s.ResourceARN == nil {
  7945  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  7946  	}
  7947  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  7948  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  7949  	}
  7950  	if s.Tags == nil {
  7951  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  7952  	}
  7953  	if s.Tags != nil {
  7954  		for i, v := range s.Tags {
  7955  			if v == nil {
  7956  				continue
  7957  			}
  7958  			if err := v.Validate(); err != nil {
  7959  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7960  			}
  7961  		}
  7962  	}
  7963  
  7964  	if invalidParams.Len() > 0 {
  7965  		return invalidParams
  7966  	}
  7967  	return nil
  7968  }
  7969  
  7970  // SetResourceARN sets the ResourceARN field's value.
  7971  func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
  7972  	s.ResourceARN = &v
  7973  	return s
  7974  }
  7975  
  7976  // SetTags sets the Tags field's value.
  7977  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
  7978  	s.Tags = v
  7979  	return s
  7980  }
  7981  
  7982  type TagResourceOutput struct {
  7983  	_ struct{} `type:"structure"`
  7984  }
  7985  
  7986  // String returns the string representation.
  7987  //
  7988  // API parameter values that are decorated as "sensitive" in the API will not
  7989  // be included in the string output. The member name will be present, but the
  7990  // value will be replaced with "sensitive".
  7991  func (s TagResourceOutput) String() string {
  7992  	return awsutil.Prettify(s)
  7993  }
  7994  
  7995  // GoString returns the string representation.
  7996  //
  7997  // API parameter values that are decorated as "sensitive" in the API will not
  7998  // be included in the string output. The member name will be present, but the
  7999  // value will be replaced with "sensitive".
  8000  func (s TagResourceOutput) GoString() string {
  8001  	return s.String()
  8002  }
  8003  
  8004  // The time range.
  8005  type TimeRange struct {
  8006  	_ struct{} `type:"structure"`
  8007  
  8008  	// The start time, in Unix time in seconds. For more information see timestamp
  8009  	// (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
  8010  	FromInclusive *time.Time `type:"timestamp"`
  8011  
  8012  	// The end time, in Unix time in seconds. For more information see timestamp
  8013  	// (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
  8014  	ToExclusive *time.Time `type:"timestamp"`
  8015  }
  8016  
  8017  // String returns the string representation.
  8018  //
  8019  // API parameter values that are decorated as "sensitive" in the API will not
  8020  // be included in the string output. The member name will be present, but the
  8021  // value will be replaced with "sensitive".
  8022  func (s TimeRange) String() string {
  8023  	return awsutil.Prettify(s)
  8024  }
  8025  
  8026  // GoString returns the string representation.
  8027  //
  8028  // API parameter values that are decorated as "sensitive" in the API will not
  8029  // be included in the string output. The member name will be present, but the
  8030  // value will be replaced with "sensitive".
  8031  func (s TimeRange) GoString() string {
  8032  	return s.String()
  8033  }
  8034  
  8035  // SetFromInclusive sets the FromInclusive field's value.
  8036  func (s *TimeRange) SetFromInclusive(v time.Time) *TimeRange {
  8037  	s.FromInclusive = &v
  8038  	return s
  8039  }
  8040  
  8041  // SetToExclusive sets the ToExclusive field's value.
  8042  func (s *TimeRange) SetToExclusive(v time.Time) *TimeRange {
  8043  	s.ToExclusive = &v
  8044  	return s
  8045  }
  8046  
  8047  type UntagResourceInput struct {
  8048  	_ struct{} `type:"structure"`
  8049  
  8050  	// The Amazon Resource Name (ARN) of the resource that you want to remove tags
  8051  	// from.
  8052  	//
  8053  	// ResourceARN is a required field
  8054  	ResourceARN *string `min:"1" type:"string" required:"true"`
  8055  
  8056  	// The tag key for each tag that you want to remove from the resource.
  8057  	//
  8058  	// TagKeys is a required field
  8059  	TagKeys []*string `type:"list" required:"true"`
  8060  }
  8061  
  8062  // String returns the string representation.
  8063  //
  8064  // API parameter values that are decorated as "sensitive" in the API will not
  8065  // be included in the string output. The member name will be present, but the
  8066  // value will be replaced with "sensitive".
  8067  func (s UntagResourceInput) String() string {
  8068  	return awsutil.Prettify(s)
  8069  }
  8070  
  8071  // GoString returns the string representation.
  8072  //
  8073  // API parameter values that are decorated as "sensitive" in the API will not
  8074  // be included in the string output. The member name will be present, but the
  8075  // value will be replaced with "sensitive".
  8076  func (s UntagResourceInput) GoString() string {
  8077  	return s.String()
  8078  }
  8079  
  8080  // Validate inspects the fields of the type to determine if they are valid.
  8081  func (s *UntagResourceInput) Validate() error {
  8082  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
  8083  	if s.ResourceARN == nil {
  8084  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  8085  	}
  8086  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  8087  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  8088  	}
  8089  	if s.TagKeys == nil {
  8090  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  8091  	}
  8092  
  8093  	if invalidParams.Len() > 0 {
  8094  		return invalidParams
  8095  	}
  8096  	return nil
  8097  }
  8098  
  8099  // SetResourceARN sets the ResourceARN field's value.
  8100  func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
  8101  	s.ResourceARN = &v
  8102  	return s
  8103  }
  8104  
  8105  // SetTagKeys sets the TagKeys field's value.
  8106  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  8107  	s.TagKeys = v
  8108  	return s
  8109  }
  8110  
  8111  type UntagResourceOutput struct {
  8112  	_ struct{} `type:"structure"`
  8113  }
  8114  
  8115  // String returns the string representation.
  8116  //
  8117  // API parameter values that are decorated as "sensitive" in the API will not
  8118  // be included in the string output. The member name will be present, but the
  8119  // value will be replaced with "sensitive".
  8120  func (s UntagResourceOutput) String() string {
  8121  	return awsutil.Prettify(s)
  8122  }
  8123  
  8124  // GoString returns the string representation.
  8125  //
  8126  // API parameter values that are decorated as "sensitive" in the API will not
  8127  // be included in the string output. The member name will be present, but the
  8128  // value will be replaced with "sensitive".
  8129  func (s UntagResourceOutput) GoString() string {
  8130  	return s.String()
  8131  }
  8132  
  8133  type UpdateEmergencyContactSettingsInput struct {
  8134  	_ struct{} `type:"structure"`
  8135  
  8136  	// A list of email addresses and phone numbers that the Shield Response Team
  8137  	// (SRT) can use to contact you if you have proactive engagement enabled, for
  8138  	// escalations to the SRT and to initiate proactive customer support.
  8139  	//
  8140  	// If you have proactive engagement enabled, the contact list must include at
  8141  	// least one phone number.
  8142  	EmergencyContactList []*EmergencyContact `type:"list"`
  8143  }
  8144  
  8145  // String returns the string representation.
  8146  //
  8147  // API parameter values that are decorated as "sensitive" in the API will not
  8148  // be included in the string output. The member name will be present, but the
  8149  // value will be replaced with "sensitive".
  8150  func (s UpdateEmergencyContactSettingsInput) String() string {
  8151  	return awsutil.Prettify(s)
  8152  }
  8153  
  8154  // GoString returns the string representation.
  8155  //
  8156  // API parameter values that are decorated as "sensitive" in the API will not
  8157  // be included in the string output. The member name will be present, but the
  8158  // value will be replaced with "sensitive".
  8159  func (s UpdateEmergencyContactSettingsInput) GoString() string {
  8160  	return s.String()
  8161  }
  8162  
  8163  // Validate inspects the fields of the type to determine if they are valid.
  8164  func (s *UpdateEmergencyContactSettingsInput) Validate() error {
  8165  	invalidParams := request.ErrInvalidParams{Context: "UpdateEmergencyContactSettingsInput"}
  8166  	if s.EmergencyContactList != nil {
  8167  		for i, v := range s.EmergencyContactList {
  8168  			if v == nil {
  8169  				continue
  8170  			}
  8171  			if err := v.Validate(); err != nil {
  8172  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmergencyContactList", i), err.(request.ErrInvalidParams))
  8173  			}
  8174  		}
  8175  	}
  8176  
  8177  	if invalidParams.Len() > 0 {
  8178  		return invalidParams
  8179  	}
  8180  	return nil
  8181  }
  8182  
  8183  // SetEmergencyContactList sets the EmergencyContactList field's value.
  8184  func (s *UpdateEmergencyContactSettingsInput) SetEmergencyContactList(v []*EmergencyContact) *UpdateEmergencyContactSettingsInput {
  8185  	s.EmergencyContactList = v
  8186  	return s
  8187  }
  8188  
  8189  type UpdateEmergencyContactSettingsOutput struct {
  8190  	_ struct{} `type:"structure"`
  8191  }
  8192  
  8193  // String returns the string representation.
  8194  //
  8195  // API parameter values that are decorated as "sensitive" in the API will not
  8196  // be included in the string output. The member name will be present, but the
  8197  // value will be replaced with "sensitive".
  8198  func (s UpdateEmergencyContactSettingsOutput) String() string {
  8199  	return awsutil.Prettify(s)
  8200  }
  8201  
  8202  // GoString returns the string representation.
  8203  //
  8204  // API parameter values that are decorated as "sensitive" in the API will not
  8205  // be included in the string output. The member name will be present, but the
  8206  // value will be replaced with "sensitive".
  8207  func (s UpdateEmergencyContactSettingsOutput) GoString() string {
  8208  	return s.String()
  8209  }
  8210  
  8211  type UpdateProtectionGroupInput struct {
  8212  	_ struct{} `type:"structure"`
  8213  
  8214  	// Defines how Shield combines resource data for the group in order to detect,
  8215  	// mitigate, and report events.
  8216  	//
  8217  	//    * Sum - Use the total traffic across the group. This is a good choice
  8218  	//    for most cases. Examples include Elastic IP addresses for EC2 instances
  8219  	//    that scale manually or automatically.
  8220  	//
  8221  	//    * Mean - Use the average of the traffic across the group. This is a good
  8222  	//    choice for resources that share traffic uniformly. Examples include accelerators
  8223  	//    and load balancers.
  8224  	//
  8225  	//    * Max - Use the highest traffic from each resource. This is useful for
  8226  	//    resources that don't share traffic and for resources that share that traffic
  8227  	//    in a non-uniform way. Examples include Amazon CloudFront distributions
  8228  	//    and origin resources for CloudFront distributions.
  8229  	//
  8230  	// Aggregation is a required field
  8231  	Aggregation *string `type:"string" required:"true" enum:"ProtectionGroupAggregation"`
  8232  
  8233  	// The Amazon Resource Names (ARNs) of the resources to include in the protection
  8234  	// group. You must set this when you set Pattern to ARBITRARY and you must not
  8235  	// set it for any other Pattern setting.
  8236  	Members []*string `type:"list"`
  8237  
  8238  	// The criteria to use to choose the protected resources for inclusion in the
  8239  	// group. You can include all resources that have protections, provide a list
  8240  	// of resource Amazon Resource Names (ARNs), or include all resources of a specified
  8241  	// resource type.
  8242  	//
  8243  	// Pattern is a required field
  8244  	Pattern *string `type:"string" required:"true" enum:"ProtectionGroupPattern"`
  8245  
  8246  	// The name of the protection group. You use this to identify the protection
  8247  	// group in lists and to manage the protection group, for example to update,
  8248  	// delete, or describe it.
  8249  	//
  8250  	// ProtectionGroupId is a required field
  8251  	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
  8252  
  8253  	// The resource type to include in the protection group. All protected resources
  8254  	// of this type are included in the protection group. You must set this when
  8255  	// you set Pattern to BY_RESOURCE_TYPE and you must not set it for any other
  8256  	// Pattern setting.
  8257  	ResourceType *string `type:"string" enum:"ProtectedResourceType"`
  8258  }
  8259  
  8260  // String returns the string representation.
  8261  //
  8262  // API parameter values that are decorated as "sensitive" in the API will not
  8263  // be included in the string output. The member name will be present, but the
  8264  // value will be replaced with "sensitive".
  8265  func (s UpdateProtectionGroupInput) String() string {
  8266  	return awsutil.Prettify(s)
  8267  }
  8268  
  8269  // GoString returns the string representation.
  8270  //
  8271  // API parameter values that are decorated as "sensitive" in the API will not
  8272  // be included in the string output. The member name will be present, but the
  8273  // value will be replaced with "sensitive".
  8274  func (s UpdateProtectionGroupInput) GoString() string {
  8275  	return s.String()
  8276  }
  8277  
  8278  // Validate inspects the fields of the type to determine if they are valid.
  8279  func (s *UpdateProtectionGroupInput) Validate() error {
  8280  	invalidParams := request.ErrInvalidParams{Context: "UpdateProtectionGroupInput"}
  8281  	if s.Aggregation == nil {
  8282  		invalidParams.Add(request.NewErrParamRequired("Aggregation"))
  8283  	}
  8284  	if s.Pattern == nil {
  8285  		invalidParams.Add(request.NewErrParamRequired("Pattern"))
  8286  	}
  8287  	if s.ProtectionGroupId == nil {
  8288  		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
  8289  	}
  8290  	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
  8291  		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
  8292  	}
  8293  
  8294  	if invalidParams.Len() > 0 {
  8295  		return invalidParams
  8296  	}
  8297  	return nil
  8298  }
  8299  
  8300  // SetAggregation sets the Aggregation field's value.
  8301  func (s *UpdateProtectionGroupInput) SetAggregation(v string) *UpdateProtectionGroupInput {
  8302  	s.Aggregation = &v
  8303  	return s
  8304  }
  8305  
  8306  // SetMembers sets the Members field's value.
  8307  func (s *UpdateProtectionGroupInput) SetMembers(v []*string) *UpdateProtectionGroupInput {
  8308  	s.Members = v
  8309  	return s
  8310  }
  8311  
  8312  // SetPattern sets the Pattern field's value.
  8313  func (s *UpdateProtectionGroupInput) SetPattern(v string) *UpdateProtectionGroupInput {
  8314  	s.Pattern = &v
  8315  	return s
  8316  }
  8317  
  8318  // SetProtectionGroupId sets the ProtectionGroupId field's value.
  8319  func (s *UpdateProtectionGroupInput) SetProtectionGroupId(v string) *UpdateProtectionGroupInput {
  8320  	s.ProtectionGroupId = &v
  8321  	return s
  8322  }
  8323  
  8324  // SetResourceType sets the ResourceType field's value.
  8325  func (s *UpdateProtectionGroupInput) SetResourceType(v string) *UpdateProtectionGroupInput {
  8326  	s.ResourceType = &v
  8327  	return s
  8328  }
  8329  
  8330  type UpdateProtectionGroupOutput struct {
  8331  	_ struct{} `type:"structure"`
  8332  }
  8333  
  8334  // String returns the string representation.
  8335  //
  8336  // API parameter values that are decorated as "sensitive" in the API will not
  8337  // be included in the string output. The member name will be present, but the
  8338  // value will be replaced with "sensitive".
  8339  func (s UpdateProtectionGroupOutput) String() string {
  8340  	return awsutil.Prettify(s)
  8341  }
  8342  
  8343  // GoString returns the string representation.
  8344  //
  8345  // API parameter values that are decorated as "sensitive" in the API will not
  8346  // be included in the string output. The member name will be present, but the
  8347  // value will be replaced with "sensitive".
  8348  func (s UpdateProtectionGroupOutput) GoString() string {
  8349  	return s.String()
  8350  }
  8351  
  8352  type UpdateSubscriptionInput struct {
  8353  	_ struct{} `type:"structure"`
  8354  
  8355  	// When you initally create a subscription, AutoRenew is set to ENABLED. If
  8356  	// ENABLED, the subscription will be automatically renewed at the end of the
  8357  	// existing subscription period. You can change this by submitting an UpdateSubscription
  8358  	// request. If the UpdateSubscription request does not included a value for
  8359  	// AutoRenew, the existing value for AutoRenew remains unchanged.
  8360  	AutoRenew *string `type:"string" enum:"AutoRenew"`
  8361  }
  8362  
  8363  // String returns the string representation.
  8364  //
  8365  // API parameter values that are decorated as "sensitive" in the API will not
  8366  // be included in the string output. The member name will be present, but the
  8367  // value will be replaced with "sensitive".
  8368  func (s UpdateSubscriptionInput) String() string {
  8369  	return awsutil.Prettify(s)
  8370  }
  8371  
  8372  // GoString returns the string representation.
  8373  //
  8374  // API parameter values that are decorated as "sensitive" in the API will not
  8375  // be included in the string output. The member name will be present, but the
  8376  // value will be replaced with "sensitive".
  8377  func (s UpdateSubscriptionInput) GoString() string {
  8378  	return s.String()
  8379  }
  8380  
  8381  // SetAutoRenew sets the AutoRenew field's value.
  8382  func (s *UpdateSubscriptionInput) SetAutoRenew(v string) *UpdateSubscriptionInput {
  8383  	s.AutoRenew = &v
  8384  	return s
  8385  }
  8386  
  8387  type UpdateSubscriptionOutput struct {
  8388  	_ struct{} `type:"structure"`
  8389  }
  8390  
  8391  // String returns the string representation.
  8392  //
  8393  // API parameter values that are decorated as "sensitive" in the API will not
  8394  // be included in the string output. The member name will be present, but the
  8395  // value will be replaced with "sensitive".
  8396  func (s UpdateSubscriptionOutput) String() string {
  8397  	return awsutil.Prettify(s)
  8398  }
  8399  
  8400  // GoString returns the string representation.
  8401  //
  8402  // API parameter values that are decorated as "sensitive" in the API will not
  8403  // be included in the string output. The member name will be present, but the
  8404  // value will be replaced with "sensitive".
  8405  func (s UpdateSubscriptionOutput) GoString() string {
  8406  	return s.String()
  8407  }
  8408  
  8409  // Provides information about a particular parameter passed inside a request
  8410  // that resulted in an exception.
  8411  type ValidationExceptionField struct {
  8412  	_ struct{} `type:"structure"`
  8413  
  8414  	// The message describing why the parameter failed validation.
  8415  	//
  8416  	// Message is a required field
  8417  	Message *string `locationName:"message" type:"string" required:"true"`
  8418  
  8419  	// The name of the parameter that failed validation.
  8420  	//
  8421  	// Name is a required field
  8422  	Name *string `locationName:"name" type:"string" required:"true"`
  8423  }
  8424  
  8425  // String returns the string representation.
  8426  //
  8427  // API parameter values that are decorated as "sensitive" in the API will not
  8428  // be included in the string output. The member name will be present, but the
  8429  // value will be replaced with "sensitive".
  8430  func (s ValidationExceptionField) String() string {
  8431  	return awsutil.Prettify(s)
  8432  }
  8433  
  8434  // GoString returns the string representation.
  8435  //
  8436  // API parameter values that are decorated as "sensitive" in the API will not
  8437  // be included in the string output. The member name will be present, but the
  8438  // value will be replaced with "sensitive".
  8439  func (s ValidationExceptionField) GoString() string {
  8440  	return s.String()
  8441  }
  8442  
  8443  // SetMessage sets the Message field's value.
  8444  func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField {
  8445  	s.Message = &v
  8446  	return s
  8447  }
  8448  
  8449  // SetName sets the Name field's value.
  8450  func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField {
  8451  	s.Name = &v
  8452  	return s
  8453  }
  8454  
  8455  const (
  8456  	// AttackLayerNetwork is a AttackLayer enum value
  8457  	AttackLayerNetwork = "NETWORK"
  8458  
  8459  	// AttackLayerApplication is a AttackLayer enum value
  8460  	AttackLayerApplication = "APPLICATION"
  8461  )
  8462  
  8463  // AttackLayer_Values returns all elements of the AttackLayer enum
  8464  func AttackLayer_Values() []string {
  8465  	return []string{
  8466  		AttackLayerNetwork,
  8467  		AttackLayerApplication,
  8468  	}
  8469  }
  8470  
  8471  const (
  8472  	// AttackPropertyIdentifierDestinationUrl is a AttackPropertyIdentifier enum value
  8473  	AttackPropertyIdentifierDestinationUrl = "DESTINATION_URL"
  8474  
  8475  	// AttackPropertyIdentifierReferrer is a AttackPropertyIdentifier enum value
  8476  	AttackPropertyIdentifierReferrer = "REFERRER"
  8477  
  8478  	// AttackPropertyIdentifierSourceAsn is a AttackPropertyIdentifier enum value
  8479  	AttackPropertyIdentifierSourceAsn = "SOURCE_ASN"
  8480  
  8481  	// AttackPropertyIdentifierSourceCountry is a AttackPropertyIdentifier enum value
  8482  	AttackPropertyIdentifierSourceCountry = "SOURCE_COUNTRY"
  8483  
  8484  	// AttackPropertyIdentifierSourceIpAddress is a AttackPropertyIdentifier enum value
  8485  	AttackPropertyIdentifierSourceIpAddress = "SOURCE_IP_ADDRESS"
  8486  
  8487  	// AttackPropertyIdentifierSourceUserAgent is a AttackPropertyIdentifier enum value
  8488  	AttackPropertyIdentifierSourceUserAgent = "SOURCE_USER_AGENT"
  8489  
  8490  	// AttackPropertyIdentifierWordpressPingbackReflector is a AttackPropertyIdentifier enum value
  8491  	AttackPropertyIdentifierWordpressPingbackReflector = "WORDPRESS_PINGBACK_REFLECTOR"
  8492  
  8493  	// AttackPropertyIdentifierWordpressPingbackSource is a AttackPropertyIdentifier enum value
  8494  	AttackPropertyIdentifierWordpressPingbackSource = "WORDPRESS_PINGBACK_SOURCE"
  8495  )
  8496  
  8497  // AttackPropertyIdentifier_Values returns all elements of the AttackPropertyIdentifier enum
  8498  func AttackPropertyIdentifier_Values() []string {
  8499  	return []string{
  8500  		AttackPropertyIdentifierDestinationUrl,
  8501  		AttackPropertyIdentifierReferrer,
  8502  		AttackPropertyIdentifierSourceAsn,
  8503  		AttackPropertyIdentifierSourceCountry,
  8504  		AttackPropertyIdentifierSourceIpAddress,
  8505  		AttackPropertyIdentifierSourceUserAgent,
  8506  		AttackPropertyIdentifierWordpressPingbackReflector,
  8507  		AttackPropertyIdentifierWordpressPingbackSource,
  8508  	}
  8509  }
  8510  
  8511  const (
  8512  	// AutoRenewEnabled is a AutoRenew enum value
  8513  	AutoRenewEnabled = "ENABLED"
  8514  
  8515  	// AutoRenewDisabled is a AutoRenew enum value
  8516  	AutoRenewDisabled = "DISABLED"
  8517  )
  8518  
  8519  // AutoRenew_Values returns all elements of the AutoRenew enum
  8520  func AutoRenew_Values() []string {
  8521  	return []string{
  8522  		AutoRenewEnabled,
  8523  		AutoRenewDisabled,
  8524  	}
  8525  }
  8526  
  8527  const (
  8528  	// ProactiveEngagementStatusEnabled is a ProactiveEngagementStatus enum value
  8529  	ProactiveEngagementStatusEnabled = "ENABLED"
  8530  
  8531  	// ProactiveEngagementStatusDisabled is a ProactiveEngagementStatus enum value
  8532  	ProactiveEngagementStatusDisabled = "DISABLED"
  8533  
  8534  	// ProactiveEngagementStatusPending is a ProactiveEngagementStatus enum value
  8535  	ProactiveEngagementStatusPending = "PENDING"
  8536  )
  8537  
  8538  // ProactiveEngagementStatus_Values returns all elements of the ProactiveEngagementStatus enum
  8539  func ProactiveEngagementStatus_Values() []string {
  8540  	return []string{
  8541  		ProactiveEngagementStatusEnabled,
  8542  		ProactiveEngagementStatusDisabled,
  8543  		ProactiveEngagementStatusPending,
  8544  	}
  8545  }
  8546  
  8547  const (
  8548  	// ProtectedResourceTypeCloudfrontDistribution is a ProtectedResourceType enum value
  8549  	ProtectedResourceTypeCloudfrontDistribution = "CLOUDFRONT_DISTRIBUTION"
  8550  
  8551  	// ProtectedResourceTypeRoute53HostedZone is a ProtectedResourceType enum value
  8552  	ProtectedResourceTypeRoute53HostedZone = "ROUTE_53_HOSTED_ZONE"
  8553  
  8554  	// ProtectedResourceTypeElasticIpAllocation is a ProtectedResourceType enum value
  8555  	ProtectedResourceTypeElasticIpAllocation = "ELASTIC_IP_ALLOCATION"
  8556  
  8557  	// ProtectedResourceTypeClassicLoadBalancer is a ProtectedResourceType enum value
  8558  	ProtectedResourceTypeClassicLoadBalancer = "CLASSIC_LOAD_BALANCER"
  8559  
  8560  	// ProtectedResourceTypeApplicationLoadBalancer is a ProtectedResourceType enum value
  8561  	ProtectedResourceTypeApplicationLoadBalancer = "APPLICATION_LOAD_BALANCER"
  8562  
  8563  	// ProtectedResourceTypeGlobalAccelerator is a ProtectedResourceType enum value
  8564  	ProtectedResourceTypeGlobalAccelerator = "GLOBAL_ACCELERATOR"
  8565  )
  8566  
  8567  // ProtectedResourceType_Values returns all elements of the ProtectedResourceType enum
  8568  func ProtectedResourceType_Values() []string {
  8569  	return []string{
  8570  		ProtectedResourceTypeCloudfrontDistribution,
  8571  		ProtectedResourceTypeRoute53HostedZone,
  8572  		ProtectedResourceTypeElasticIpAllocation,
  8573  		ProtectedResourceTypeClassicLoadBalancer,
  8574  		ProtectedResourceTypeApplicationLoadBalancer,
  8575  		ProtectedResourceTypeGlobalAccelerator,
  8576  	}
  8577  }
  8578  
  8579  const (
  8580  	// ProtectionGroupAggregationSum is a ProtectionGroupAggregation enum value
  8581  	ProtectionGroupAggregationSum = "SUM"
  8582  
  8583  	// ProtectionGroupAggregationMean is a ProtectionGroupAggregation enum value
  8584  	ProtectionGroupAggregationMean = "MEAN"
  8585  
  8586  	// ProtectionGroupAggregationMax is a ProtectionGroupAggregation enum value
  8587  	ProtectionGroupAggregationMax = "MAX"
  8588  )
  8589  
  8590  // ProtectionGroupAggregation_Values returns all elements of the ProtectionGroupAggregation enum
  8591  func ProtectionGroupAggregation_Values() []string {
  8592  	return []string{
  8593  		ProtectionGroupAggregationSum,
  8594  		ProtectionGroupAggregationMean,
  8595  		ProtectionGroupAggregationMax,
  8596  	}
  8597  }
  8598  
  8599  const (
  8600  	// ProtectionGroupPatternAll is a ProtectionGroupPattern enum value
  8601  	ProtectionGroupPatternAll = "ALL"
  8602  
  8603  	// ProtectionGroupPatternArbitrary is a ProtectionGroupPattern enum value
  8604  	ProtectionGroupPatternArbitrary = "ARBITRARY"
  8605  
  8606  	// ProtectionGroupPatternByResourceType is a ProtectionGroupPattern enum value
  8607  	ProtectionGroupPatternByResourceType = "BY_RESOURCE_TYPE"
  8608  )
  8609  
  8610  // ProtectionGroupPattern_Values returns all elements of the ProtectionGroupPattern enum
  8611  func ProtectionGroupPattern_Values() []string {
  8612  	return []string{
  8613  		ProtectionGroupPatternAll,
  8614  		ProtectionGroupPatternArbitrary,
  8615  		ProtectionGroupPatternByResourceType,
  8616  	}
  8617  }
  8618  
  8619  const (
  8620  	// SubResourceTypeIp is a SubResourceType enum value
  8621  	SubResourceTypeIp = "IP"
  8622  
  8623  	// SubResourceTypeUrl is a SubResourceType enum value
  8624  	SubResourceTypeUrl = "URL"
  8625  )
  8626  
  8627  // SubResourceType_Values returns all elements of the SubResourceType enum
  8628  func SubResourceType_Values() []string {
  8629  	return []string{
  8630  		SubResourceTypeIp,
  8631  		SubResourceTypeUrl,
  8632  	}
  8633  }
  8634  
  8635  const (
  8636  	// SubscriptionStateActive is a SubscriptionState enum value
  8637  	SubscriptionStateActive = "ACTIVE"
  8638  
  8639  	// SubscriptionStateInactive is a SubscriptionState enum value
  8640  	SubscriptionStateInactive = "INACTIVE"
  8641  )
  8642  
  8643  // SubscriptionState_Values returns all elements of the SubscriptionState enum
  8644  func SubscriptionState_Values() []string {
  8645  	return []string{
  8646  		SubscriptionStateActive,
  8647  		SubscriptionStateInactive,
  8648  	}
  8649  }
  8650  
  8651  const (
  8652  	// UnitBits is a Unit enum value
  8653  	UnitBits = "BITS"
  8654  
  8655  	// UnitBytes is a Unit enum value
  8656  	UnitBytes = "BYTES"
  8657  
  8658  	// UnitPackets is a Unit enum value
  8659  	UnitPackets = "PACKETS"
  8660  
  8661  	// UnitRequests is a Unit enum value
  8662  	UnitRequests = "REQUESTS"
  8663  )
  8664  
  8665  // Unit_Values returns all elements of the Unit enum
  8666  func Unit_Values() []string {
  8667  	return []string{
  8668  		UnitBits,
  8669  		UnitBytes,
  8670  		UnitPackets,
  8671  		UnitRequests,
  8672  	}
  8673  }
  8674  
  8675  const (
  8676  	// ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value
  8677  	ValidationExceptionReasonFieldValidationFailed = "FIELD_VALIDATION_FAILED"
  8678  
  8679  	// ValidationExceptionReasonOther is a ValidationExceptionReason enum value
  8680  	ValidationExceptionReasonOther = "OTHER"
  8681  )
  8682  
  8683  // ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum
  8684  func ValidationExceptionReason_Values() []string {
  8685  	return []string{
  8686  		ValidationExceptionReasonFieldValidationFailed,
  8687  		ValidationExceptionReasonOther,
  8688  	}
  8689  }