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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package iot
     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/restjson"
    14  )
    15  
    16  const opAcceptCertificateTransfer = "AcceptCertificateTransfer"
    17  
    18  // AcceptCertificateTransferRequest generates a "aws/request.Request" representing the
    19  // client's request for the AcceptCertificateTransfer 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 AcceptCertificateTransfer for more information on using the AcceptCertificateTransfer
    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 AcceptCertificateTransferRequest method.
    34  //    req, resp := client.AcceptCertificateTransferRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  func (c *IoT) AcceptCertificateTransferRequest(input *AcceptCertificateTransferInput) (req *request.Request, output *AcceptCertificateTransferOutput) {
    41  	op := &request.Operation{
    42  		Name:       opAcceptCertificateTransfer,
    43  		HTTPMethod: "PATCH",
    44  		HTTPPath:   "/accept-certificate-transfer/{certificateId}",
    45  	}
    46  
    47  	if input == nil {
    48  		input = &AcceptCertificateTransferInput{}
    49  	}
    50  
    51  	output = &AcceptCertificateTransferOutput{}
    52  	req = c.newRequest(op, input, output)
    53  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    54  	return
    55  }
    56  
    57  // AcceptCertificateTransfer API operation for AWS IoT.
    58  //
    59  // Accepts a pending certificate transfer. The default state of the certificate
    60  // is INACTIVE.
    61  //
    62  // To check for pending certificate transfers, call ListCertificates to enumerate
    63  // your certificates.
    64  //
    65  // Requires permission to access the AcceptCertificateTransfer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
    66  // action.
    67  //
    68  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    69  // with awserr.Error's Code and Message methods to get detailed information about
    70  // the error.
    71  //
    72  // See the AWS API reference guide for AWS IoT's
    73  // API operation AcceptCertificateTransfer for usage and error information.
    74  //
    75  // Returned Error Types:
    76  //   * ResourceNotFoundException
    77  //   The specified resource does not exist.
    78  //
    79  //   * TransferAlreadyCompletedException
    80  //   You can't revert the certificate transfer because the transfer is already
    81  //   complete.
    82  //
    83  //   * InvalidRequestException
    84  //   The request is not valid.
    85  //
    86  //   * ThrottlingException
    87  //   The rate exceeds the limit.
    88  //
    89  //   * UnauthorizedException
    90  //   You are not authorized to perform this operation.
    91  //
    92  //   * ServiceUnavailableException
    93  //   The service is temporarily unavailable.
    94  //
    95  //   * InternalFailureException
    96  //   An unexpected error has occurred.
    97  //
    98  func (c *IoT) AcceptCertificateTransfer(input *AcceptCertificateTransferInput) (*AcceptCertificateTransferOutput, error) {
    99  	req, out := c.AcceptCertificateTransferRequest(input)
   100  	return out, req.Send()
   101  }
   102  
   103  // AcceptCertificateTransferWithContext is the same as AcceptCertificateTransfer with the addition of
   104  // the ability to pass a context and additional request options.
   105  //
   106  // See AcceptCertificateTransfer for details on how to use this API operation.
   107  //
   108  // The context must be non-nil and will be used for request cancellation. If
   109  // the context is nil a panic will occur. In the future the SDK may create
   110  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   111  // for more information on using Contexts.
   112  func (c *IoT) AcceptCertificateTransferWithContext(ctx aws.Context, input *AcceptCertificateTransferInput, opts ...request.Option) (*AcceptCertificateTransferOutput, error) {
   113  	req, out := c.AcceptCertificateTransferRequest(input)
   114  	req.SetContext(ctx)
   115  	req.ApplyOptions(opts...)
   116  	return out, req.Send()
   117  }
   118  
   119  const opAddThingToBillingGroup = "AddThingToBillingGroup"
   120  
   121  // AddThingToBillingGroupRequest generates a "aws/request.Request" representing the
   122  // client's request for the AddThingToBillingGroup operation. The "output" return
   123  // value will be populated with the request's response once the request completes
   124  // successfully.
   125  //
   126  // Use "Send" method on the returned Request to send the API call to the service.
   127  // the "output" return value is not valid until after Send returns without error.
   128  //
   129  // See AddThingToBillingGroup for more information on using the AddThingToBillingGroup
   130  // API call, and error handling.
   131  //
   132  // This method is useful when you want to inject custom logic or configuration
   133  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   134  //
   135  //
   136  //    // Example sending a request using the AddThingToBillingGroupRequest method.
   137  //    req, resp := client.AddThingToBillingGroupRequest(params)
   138  //
   139  //    err := req.Send()
   140  //    if err == nil { // resp is now filled
   141  //        fmt.Println(resp)
   142  //    }
   143  func (c *IoT) AddThingToBillingGroupRequest(input *AddThingToBillingGroupInput) (req *request.Request, output *AddThingToBillingGroupOutput) {
   144  	op := &request.Operation{
   145  		Name:       opAddThingToBillingGroup,
   146  		HTTPMethod: "PUT",
   147  		HTTPPath:   "/billing-groups/addThingToBillingGroup",
   148  	}
   149  
   150  	if input == nil {
   151  		input = &AddThingToBillingGroupInput{}
   152  	}
   153  
   154  	output = &AddThingToBillingGroupOutput{}
   155  	req = c.newRequest(op, input, output)
   156  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   157  	return
   158  }
   159  
   160  // AddThingToBillingGroup API operation for AWS IoT.
   161  //
   162  // Adds a thing to a billing group.
   163  //
   164  // Requires permission to access the AddThingToBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   165  // action.
   166  //
   167  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   168  // with awserr.Error's Code and Message methods to get detailed information about
   169  // the error.
   170  //
   171  // See the AWS API reference guide for AWS IoT's
   172  // API operation AddThingToBillingGroup for usage and error information.
   173  //
   174  // Returned Error Types:
   175  //   * InvalidRequestException
   176  //   The request is not valid.
   177  //
   178  //   * ThrottlingException
   179  //   The rate exceeds the limit.
   180  //
   181  //   * InternalFailureException
   182  //   An unexpected error has occurred.
   183  //
   184  //   * ResourceNotFoundException
   185  //   The specified resource does not exist.
   186  //
   187  func (c *IoT) AddThingToBillingGroup(input *AddThingToBillingGroupInput) (*AddThingToBillingGroupOutput, error) {
   188  	req, out := c.AddThingToBillingGroupRequest(input)
   189  	return out, req.Send()
   190  }
   191  
   192  // AddThingToBillingGroupWithContext is the same as AddThingToBillingGroup with the addition of
   193  // the ability to pass a context and additional request options.
   194  //
   195  // See AddThingToBillingGroup for details on how to use this API operation.
   196  //
   197  // The context must be non-nil and will be used for request cancellation. If
   198  // the context is nil a panic will occur. In the future the SDK may create
   199  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   200  // for more information on using Contexts.
   201  func (c *IoT) AddThingToBillingGroupWithContext(ctx aws.Context, input *AddThingToBillingGroupInput, opts ...request.Option) (*AddThingToBillingGroupOutput, error) {
   202  	req, out := c.AddThingToBillingGroupRequest(input)
   203  	req.SetContext(ctx)
   204  	req.ApplyOptions(opts...)
   205  	return out, req.Send()
   206  }
   207  
   208  const opAddThingToThingGroup = "AddThingToThingGroup"
   209  
   210  // AddThingToThingGroupRequest generates a "aws/request.Request" representing the
   211  // client's request for the AddThingToThingGroup operation. The "output" return
   212  // value will be populated with the request's response once the request completes
   213  // successfully.
   214  //
   215  // Use "Send" method on the returned Request to send the API call to the service.
   216  // the "output" return value is not valid until after Send returns without error.
   217  //
   218  // See AddThingToThingGroup for more information on using the AddThingToThingGroup
   219  // API call, and error handling.
   220  //
   221  // This method is useful when you want to inject custom logic or configuration
   222  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   223  //
   224  //
   225  //    // Example sending a request using the AddThingToThingGroupRequest method.
   226  //    req, resp := client.AddThingToThingGroupRequest(params)
   227  //
   228  //    err := req.Send()
   229  //    if err == nil { // resp is now filled
   230  //        fmt.Println(resp)
   231  //    }
   232  func (c *IoT) AddThingToThingGroupRequest(input *AddThingToThingGroupInput) (req *request.Request, output *AddThingToThingGroupOutput) {
   233  	op := &request.Operation{
   234  		Name:       opAddThingToThingGroup,
   235  		HTTPMethod: "PUT",
   236  		HTTPPath:   "/thing-groups/addThingToThingGroup",
   237  	}
   238  
   239  	if input == nil {
   240  		input = &AddThingToThingGroupInput{}
   241  	}
   242  
   243  	output = &AddThingToThingGroupOutput{}
   244  	req = c.newRequest(op, input, output)
   245  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   246  	return
   247  }
   248  
   249  // AddThingToThingGroup API operation for AWS IoT.
   250  //
   251  // Adds a thing to a thing group.
   252  //
   253  // Requires permission to access the AddThingToThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   254  // action.
   255  //
   256  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   257  // with awserr.Error's Code and Message methods to get detailed information about
   258  // the error.
   259  //
   260  // See the AWS API reference guide for AWS IoT's
   261  // API operation AddThingToThingGroup for usage and error information.
   262  //
   263  // Returned Error Types:
   264  //   * InvalidRequestException
   265  //   The request is not valid.
   266  //
   267  //   * ThrottlingException
   268  //   The rate exceeds the limit.
   269  //
   270  //   * InternalFailureException
   271  //   An unexpected error has occurred.
   272  //
   273  //   * ResourceNotFoundException
   274  //   The specified resource does not exist.
   275  //
   276  func (c *IoT) AddThingToThingGroup(input *AddThingToThingGroupInput) (*AddThingToThingGroupOutput, error) {
   277  	req, out := c.AddThingToThingGroupRequest(input)
   278  	return out, req.Send()
   279  }
   280  
   281  // AddThingToThingGroupWithContext is the same as AddThingToThingGroup with the addition of
   282  // the ability to pass a context and additional request options.
   283  //
   284  // See AddThingToThingGroup for details on how to use this API operation.
   285  //
   286  // The context must be non-nil and will be used for request cancellation. If
   287  // the context is nil a panic will occur. In the future the SDK may create
   288  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   289  // for more information on using Contexts.
   290  func (c *IoT) AddThingToThingGroupWithContext(ctx aws.Context, input *AddThingToThingGroupInput, opts ...request.Option) (*AddThingToThingGroupOutput, error) {
   291  	req, out := c.AddThingToThingGroupRequest(input)
   292  	req.SetContext(ctx)
   293  	req.ApplyOptions(opts...)
   294  	return out, req.Send()
   295  }
   296  
   297  const opAssociateTargetsWithJob = "AssociateTargetsWithJob"
   298  
   299  // AssociateTargetsWithJobRequest generates a "aws/request.Request" representing the
   300  // client's request for the AssociateTargetsWithJob operation. The "output" return
   301  // value will be populated with the request's response once the request completes
   302  // successfully.
   303  //
   304  // Use "Send" method on the returned Request to send the API call to the service.
   305  // the "output" return value is not valid until after Send returns without error.
   306  //
   307  // See AssociateTargetsWithJob for more information on using the AssociateTargetsWithJob
   308  // API call, and error handling.
   309  //
   310  // This method is useful when you want to inject custom logic or configuration
   311  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   312  //
   313  //
   314  //    // Example sending a request using the AssociateTargetsWithJobRequest method.
   315  //    req, resp := client.AssociateTargetsWithJobRequest(params)
   316  //
   317  //    err := req.Send()
   318  //    if err == nil { // resp is now filled
   319  //        fmt.Println(resp)
   320  //    }
   321  func (c *IoT) AssociateTargetsWithJobRequest(input *AssociateTargetsWithJobInput) (req *request.Request, output *AssociateTargetsWithJobOutput) {
   322  	op := &request.Operation{
   323  		Name:       opAssociateTargetsWithJob,
   324  		HTTPMethod: "POST",
   325  		HTTPPath:   "/jobs/{jobId}/targets",
   326  	}
   327  
   328  	if input == nil {
   329  		input = &AssociateTargetsWithJobInput{}
   330  	}
   331  
   332  	output = &AssociateTargetsWithJobOutput{}
   333  	req = c.newRequest(op, input, output)
   334  	return
   335  }
   336  
   337  // AssociateTargetsWithJob API operation for AWS IoT.
   338  //
   339  // Associates a group with a continuous job. The following criteria must be
   340  // met:
   341  //
   342  //    * The job must have been created with the targetSelection field set to
   343  //    "CONTINUOUS".
   344  //
   345  //    * The job status must currently be "IN_PROGRESS".
   346  //
   347  //    * The total number of targets associated with a job must not exceed 100.
   348  //
   349  // Requires permission to access the AssociateTargetsWithJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   350  // action.
   351  //
   352  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   353  // with awserr.Error's Code and Message methods to get detailed information about
   354  // the error.
   355  //
   356  // See the AWS API reference guide for AWS IoT's
   357  // API operation AssociateTargetsWithJob for usage and error information.
   358  //
   359  // Returned Error Types:
   360  //   * InvalidRequestException
   361  //   The request is not valid.
   362  //
   363  //   * ResourceNotFoundException
   364  //   The specified resource does not exist.
   365  //
   366  //   * LimitExceededException
   367  //   A limit has been exceeded.
   368  //
   369  //   * ThrottlingException
   370  //   The rate exceeds the limit.
   371  //
   372  //   * ServiceUnavailableException
   373  //   The service is temporarily unavailable.
   374  //
   375  func (c *IoT) AssociateTargetsWithJob(input *AssociateTargetsWithJobInput) (*AssociateTargetsWithJobOutput, error) {
   376  	req, out := c.AssociateTargetsWithJobRequest(input)
   377  	return out, req.Send()
   378  }
   379  
   380  // AssociateTargetsWithJobWithContext is the same as AssociateTargetsWithJob with the addition of
   381  // the ability to pass a context and additional request options.
   382  //
   383  // See AssociateTargetsWithJob for details on how to use this API operation.
   384  //
   385  // The context must be non-nil and will be used for request cancellation. If
   386  // the context is nil a panic will occur. In the future the SDK may create
   387  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   388  // for more information on using Contexts.
   389  func (c *IoT) AssociateTargetsWithJobWithContext(ctx aws.Context, input *AssociateTargetsWithJobInput, opts ...request.Option) (*AssociateTargetsWithJobOutput, error) {
   390  	req, out := c.AssociateTargetsWithJobRequest(input)
   391  	req.SetContext(ctx)
   392  	req.ApplyOptions(opts...)
   393  	return out, req.Send()
   394  }
   395  
   396  const opAttachPolicy = "AttachPolicy"
   397  
   398  // AttachPolicyRequest generates a "aws/request.Request" representing the
   399  // client's request for the AttachPolicy operation. The "output" return
   400  // value will be populated with the request's response once the request completes
   401  // successfully.
   402  //
   403  // Use "Send" method on the returned Request to send the API call to the service.
   404  // the "output" return value is not valid until after Send returns without error.
   405  //
   406  // See AttachPolicy for more information on using the AttachPolicy
   407  // API call, and error handling.
   408  //
   409  // This method is useful when you want to inject custom logic or configuration
   410  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   411  //
   412  //
   413  //    // Example sending a request using the AttachPolicyRequest method.
   414  //    req, resp := client.AttachPolicyRequest(params)
   415  //
   416  //    err := req.Send()
   417  //    if err == nil { // resp is now filled
   418  //        fmt.Println(resp)
   419  //    }
   420  func (c *IoT) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
   421  	op := &request.Operation{
   422  		Name:       opAttachPolicy,
   423  		HTTPMethod: "PUT",
   424  		HTTPPath:   "/target-policies/{policyName}",
   425  	}
   426  
   427  	if input == nil {
   428  		input = &AttachPolicyInput{}
   429  	}
   430  
   431  	output = &AttachPolicyOutput{}
   432  	req = c.newRequest(op, input, output)
   433  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   434  	return
   435  }
   436  
   437  // AttachPolicy API operation for AWS IoT.
   438  //
   439  // Attaches the specified policy to the specified principal (certificate or
   440  // other credential).
   441  //
   442  // Requires permission to access the AttachPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   443  // action.
   444  //
   445  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   446  // with awserr.Error's Code and Message methods to get detailed information about
   447  // the error.
   448  //
   449  // See the AWS API reference guide for AWS IoT's
   450  // API operation AttachPolicy for usage and error information.
   451  //
   452  // Returned Error Types:
   453  //   * ResourceNotFoundException
   454  //   The specified resource does not exist.
   455  //
   456  //   * InvalidRequestException
   457  //   The request is not valid.
   458  //
   459  //   * ThrottlingException
   460  //   The rate exceeds the limit.
   461  //
   462  //   * UnauthorizedException
   463  //   You are not authorized to perform this operation.
   464  //
   465  //   * ServiceUnavailableException
   466  //   The service is temporarily unavailable.
   467  //
   468  //   * InternalFailureException
   469  //   An unexpected error has occurred.
   470  //
   471  //   * LimitExceededException
   472  //   A limit has been exceeded.
   473  //
   474  func (c *IoT) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
   475  	req, out := c.AttachPolicyRequest(input)
   476  	return out, req.Send()
   477  }
   478  
   479  // AttachPolicyWithContext is the same as AttachPolicy with the addition of
   480  // the ability to pass a context and additional request options.
   481  //
   482  // See AttachPolicy for details on how to use this API operation.
   483  //
   484  // The context must be non-nil and will be used for request cancellation. If
   485  // the context is nil a panic will occur. In the future the SDK may create
   486  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   487  // for more information on using Contexts.
   488  func (c *IoT) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
   489  	req, out := c.AttachPolicyRequest(input)
   490  	req.SetContext(ctx)
   491  	req.ApplyOptions(opts...)
   492  	return out, req.Send()
   493  }
   494  
   495  const opAttachPrincipalPolicy = "AttachPrincipalPolicy"
   496  
   497  // AttachPrincipalPolicyRequest generates a "aws/request.Request" representing the
   498  // client's request for the AttachPrincipalPolicy operation. The "output" return
   499  // value will be populated with the request's response once the request completes
   500  // successfully.
   501  //
   502  // Use "Send" method on the returned Request to send the API call to the service.
   503  // the "output" return value is not valid until after Send returns without error.
   504  //
   505  // See AttachPrincipalPolicy for more information on using the AttachPrincipalPolicy
   506  // API call, and error handling.
   507  //
   508  // This method is useful when you want to inject custom logic or configuration
   509  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   510  //
   511  //
   512  //    // Example sending a request using the AttachPrincipalPolicyRequest method.
   513  //    req, resp := client.AttachPrincipalPolicyRequest(params)
   514  //
   515  //    err := req.Send()
   516  //    if err == nil { // resp is now filled
   517  //        fmt.Println(resp)
   518  //    }
   519  //
   520  // Deprecated: AttachPrincipalPolicy has been deprecated
   521  func (c *IoT) AttachPrincipalPolicyRequest(input *AttachPrincipalPolicyInput) (req *request.Request, output *AttachPrincipalPolicyOutput) {
   522  	if c.Client.Config.Logger != nil {
   523  		c.Client.Config.Logger.Log("This operation, AttachPrincipalPolicy, has been deprecated")
   524  	}
   525  	op := &request.Operation{
   526  		Name:       opAttachPrincipalPolicy,
   527  		HTTPMethod: "PUT",
   528  		HTTPPath:   "/principal-policies/{policyName}",
   529  	}
   530  
   531  	if input == nil {
   532  		input = &AttachPrincipalPolicyInput{}
   533  	}
   534  
   535  	output = &AttachPrincipalPolicyOutput{}
   536  	req = c.newRequest(op, input, output)
   537  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   538  	return
   539  }
   540  
   541  // AttachPrincipalPolicy API operation for AWS IoT.
   542  //
   543  // Attaches the specified policy to the specified principal (certificate or
   544  // other credential).
   545  //
   546  // Note: This action is deprecated. Please use AttachPolicy instead.
   547  //
   548  // Requires permission to access the AttachPrincipalPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   549  // action.
   550  //
   551  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   552  // with awserr.Error's Code and Message methods to get detailed information about
   553  // the error.
   554  //
   555  // See the AWS API reference guide for AWS IoT's
   556  // API operation AttachPrincipalPolicy for usage and error information.
   557  //
   558  // Returned Error Types:
   559  //   * ResourceNotFoundException
   560  //   The specified resource does not exist.
   561  //
   562  //   * InvalidRequestException
   563  //   The request is not valid.
   564  //
   565  //   * ThrottlingException
   566  //   The rate exceeds the limit.
   567  //
   568  //   * UnauthorizedException
   569  //   You are not authorized to perform this operation.
   570  //
   571  //   * ServiceUnavailableException
   572  //   The service is temporarily unavailable.
   573  //
   574  //   * InternalFailureException
   575  //   An unexpected error has occurred.
   576  //
   577  //   * LimitExceededException
   578  //   A limit has been exceeded.
   579  //
   580  //
   581  // Deprecated: AttachPrincipalPolicy has been deprecated
   582  func (c *IoT) AttachPrincipalPolicy(input *AttachPrincipalPolicyInput) (*AttachPrincipalPolicyOutput, error) {
   583  	req, out := c.AttachPrincipalPolicyRequest(input)
   584  	return out, req.Send()
   585  }
   586  
   587  // AttachPrincipalPolicyWithContext is the same as AttachPrincipalPolicy with the addition of
   588  // the ability to pass a context and additional request options.
   589  //
   590  // See AttachPrincipalPolicy for details on how to use this API operation.
   591  //
   592  // The context must be non-nil and will be used for request cancellation. If
   593  // the context is nil a panic will occur. In the future the SDK may create
   594  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   595  // for more information on using Contexts.
   596  //
   597  // Deprecated: AttachPrincipalPolicyWithContext has been deprecated
   598  func (c *IoT) AttachPrincipalPolicyWithContext(ctx aws.Context, input *AttachPrincipalPolicyInput, opts ...request.Option) (*AttachPrincipalPolicyOutput, error) {
   599  	req, out := c.AttachPrincipalPolicyRequest(input)
   600  	req.SetContext(ctx)
   601  	req.ApplyOptions(opts...)
   602  	return out, req.Send()
   603  }
   604  
   605  const opAttachSecurityProfile = "AttachSecurityProfile"
   606  
   607  // AttachSecurityProfileRequest generates a "aws/request.Request" representing the
   608  // client's request for the AttachSecurityProfile operation. The "output" return
   609  // value will be populated with the request's response once the request completes
   610  // successfully.
   611  //
   612  // Use "Send" method on the returned Request to send the API call to the service.
   613  // the "output" return value is not valid until after Send returns without error.
   614  //
   615  // See AttachSecurityProfile for more information on using the AttachSecurityProfile
   616  // API call, and error handling.
   617  //
   618  // This method is useful when you want to inject custom logic or configuration
   619  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   620  //
   621  //
   622  //    // Example sending a request using the AttachSecurityProfileRequest method.
   623  //    req, resp := client.AttachSecurityProfileRequest(params)
   624  //
   625  //    err := req.Send()
   626  //    if err == nil { // resp is now filled
   627  //        fmt.Println(resp)
   628  //    }
   629  func (c *IoT) AttachSecurityProfileRequest(input *AttachSecurityProfileInput) (req *request.Request, output *AttachSecurityProfileOutput) {
   630  	op := &request.Operation{
   631  		Name:       opAttachSecurityProfile,
   632  		HTTPMethod: "PUT",
   633  		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
   634  	}
   635  
   636  	if input == nil {
   637  		input = &AttachSecurityProfileInput{}
   638  	}
   639  
   640  	output = &AttachSecurityProfileOutput{}
   641  	req = c.newRequest(op, input, output)
   642  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   643  	return
   644  }
   645  
   646  // AttachSecurityProfile API operation for AWS IoT.
   647  //
   648  // Associates a Device Defender security profile with a thing group or this
   649  // account. Each thing group or account can have up to five security profiles
   650  // associated with it.
   651  //
   652  // Requires permission to access the AttachSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   653  // action.
   654  //
   655  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   656  // with awserr.Error's Code and Message methods to get detailed information about
   657  // the error.
   658  //
   659  // See the AWS API reference guide for AWS IoT's
   660  // API operation AttachSecurityProfile for usage and error information.
   661  //
   662  // Returned Error Types:
   663  //   * InvalidRequestException
   664  //   The request is not valid.
   665  //
   666  //   * ResourceNotFoundException
   667  //   The specified resource does not exist.
   668  //
   669  //   * LimitExceededException
   670  //   A limit has been exceeded.
   671  //
   672  //   * VersionConflictException
   673  //   An exception thrown when the version of an entity specified with the expectedVersion
   674  //   parameter does not match the latest version in the system.
   675  //
   676  //   * ThrottlingException
   677  //   The rate exceeds the limit.
   678  //
   679  //   * InternalFailureException
   680  //   An unexpected error has occurred.
   681  //
   682  func (c *IoT) AttachSecurityProfile(input *AttachSecurityProfileInput) (*AttachSecurityProfileOutput, error) {
   683  	req, out := c.AttachSecurityProfileRequest(input)
   684  	return out, req.Send()
   685  }
   686  
   687  // AttachSecurityProfileWithContext is the same as AttachSecurityProfile with the addition of
   688  // the ability to pass a context and additional request options.
   689  //
   690  // See AttachSecurityProfile for details on how to use this API operation.
   691  //
   692  // The context must be non-nil and will be used for request cancellation. If
   693  // the context is nil a panic will occur. In the future the SDK may create
   694  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   695  // for more information on using Contexts.
   696  func (c *IoT) AttachSecurityProfileWithContext(ctx aws.Context, input *AttachSecurityProfileInput, opts ...request.Option) (*AttachSecurityProfileOutput, error) {
   697  	req, out := c.AttachSecurityProfileRequest(input)
   698  	req.SetContext(ctx)
   699  	req.ApplyOptions(opts...)
   700  	return out, req.Send()
   701  }
   702  
   703  const opAttachThingPrincipal = "AttachThingPrincipal"
   704  
   705  // AttachThingPrincipalRequest generates a "aws/request.Request" representing the
   706  // client's request for the AttachThingPrincipal operation. The "output" return
   707  // value will be populated with the request's response once the request completes
   708  // successfully.
   709  //
   710  // Use "Send" method on the returned Request to send the API call to the service.
   711  // the "output" return value is not valid until after Send returns without error.
   712  //
   713  // See AttachThingPrincipal for more information on using the AttachThingPrincipal
   714  // API call, and error handling.
   715  //
   716  // This method is useful when you want to inject custom logic or configuration
   717  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   718  //
   719  //
   720  //    // Example sending a request using the AttachThingPrincipalRequest method.
   721  //    req, resp := client.AttachThingPrincipalRequest(params)
   722  //
   723  //    err := req.Send()
   724  //    if err == nil { // resp is now filled
   725  //        fmt.Println(resp)
   726  //    }
   727  func (c *IoT) AttachThingPrincipalRequest(input *AttachThingPrincipalInput) (req *request.Request, output *AttachThingPrincipalOutput) {
   728  	op := &request.Operation{
   729  		Name:       opAttachThingPrincipal,
   730  		HTTPMethod: "PUT",
   731  		HTTPPath:   "/things/{thingName}/principals",
   732  	}
   733  
   734  	if input == nil {
   735  		input = &AttachThingPrincipalInput{}
   736  	}
   737  
   738  	output = &AttachThingPrincipalOutput{}
   739  	req = c.newRequest(op, input, output)
   740  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   741  	return
   742  }
   743  
   744  // AttachThingPrincipal API operation for AWS IoT.
   745  //
   746  // Attaches the specified principal to the specified thing. A principal can
   747  // be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
   748  // or federated identities.
   749  //
   750  // Requires permission to access the AttachThingPrincipal (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   751  // action.
   752  //
   753  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   754  // with awserr.Error's Code and Message methods to get detailed information about
   755  // the error.
   756  //
   757  // See the AWS API reference guide for AWS IoT's
   758  // API operation AttachThingPrincipal for usage and error information.
   759  //
   760  // Returned Error Types:
   761  //   * ResourceNotFoundException
   762  //   The specified resource does not exist.
   763  //
   764  //   * InvalidRequestException
   765  //   The request is not valid.
   766  //
   767  //   * ThrottlingException
   768  //   The rate exceeds the limit.
   769  //
   770  //   * UnauthorizedException
   771  //   You are not authorized to perform this operation.
   772  //
   773  //   * ServiceUnavailableException
   774  //   The service is temporarily unavailable.
   775  //
   776  //   * InternalFailureException
   777  //   An unexpected error has occurred.
   778  //
   779  func (c *IoT) AttachThingPrincipal(input *AttachThingPrincipalInput) (*AttachThingPrincipalOutput, error) {
   780  	req, out := c.AttachThingPrincipalRequest(input)
   781  	return out, req.Send()
   782  }
   783  
   784  // AttachThingPrincipalWithContext is the same as AttachThingPrincipal with the addition of
   785  // the ability to pass a context and additional request options.
   786  //
   787  // See AttachThingPrincipal for details on how to use this API operation.
   788  //
   789  // The context must be non-nil and will be used for request cancellation. If
   790  // the context is nil a panic will occur. In the future the SDK may create
   791  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   792  // for more information on using Contexts.
   793  func (c *IoT) AttachThingPrincipalWithContext(ctx aws.Context, input *AttachThingPrincipalInput, opts ...request.Option) (*AttachThingPrincipalOutput, error) {
   794  	req, out := c.AttachThingPrincipalRequest(input)
   795  	req.SetContext(ctx)
   796  	req.ApplyOptions(opts...)
   797  	return out, req.Send()
   798  }
   799  
   800  const opCancelAuditMitigationActionsTask = "CancelAuditMitigationActionsTask"
   801  
   802  // CancelAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
   803  // client's request for the CancelAuditMitigationActionsTask operation. The "output" return
   804  // value will be populated with the request's response once the request completes
   805  // successfully.
   806  //
   807  // Use "Send" method on the returned Request to send the API call to the service.
   808  // the "output" return value is not valid until after Send returns without error.
   809  //
   810  // See CancelAuditMitigationActionsTask for more information on using the CancelAuditMitigationActionsTask
   811  // API call, and error handling.
   812  //
   813  // This method is useful when you want to inject custom logic or configuration
   814  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   815  //
   816  //
   817  //    // Example sending a request using the CancelAuditMitigationActionsTaskRequest method.
   818  //    req, resp := client.CancelAuditMitigationActionsTaskRequest(params)
   819  //
   820  //    err := req.Send()
   821  //    if err == nil { // resp is now filled
   822  //        fmt.Println(resp)
   823  //    }
   824  func (c *IoT) CancelAuditMitigationActionsTaskRequest(input *CancelAuditMitigationActionsTaskInput) (req *request.Request, output *CancelAuditMitigationActionsTaskOutput) {
   825  	op := &request.Operation{
   826  		Name:       opCancelAuditMitigationActionsTask,
   827  		HTTPMethod: "PUT",
   828  		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}/cancel",
   829  	}
   830  
   831  	if input == nil {
   832  		input = &CancelAuditMitigationActionsTaskInput{}
   833  	}
   834  
   835  	output = &CancelAuditMitigationActionsTaskOutput{}
   836  	req = c.newRequest(op, input, output)
   837  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   838  	return
   839  }
   840  
   841  // CancelAuditMitigationActionsTask API operation for AWS IoT.
   842  //
   843  // Cancels a mitigation action task that is in progress. If the task is not
   844  // in progress, an InvalidRequestException occurs.
   845  //
   846  // Requires permission to access the CancelAuditMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   847  // action.
   848  //
   849  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   850  // with awserr.Error's Code and Message methods to get detailed information about
   851  // the error.
   852  //
   853  // See the AWS API reference guide for AWS IoT's
   854  // API operation CancelAuditMitigationActionsTask for usage and error information.
   855  //
   856  // Returned Error Types:
   857  //   * ResourceNotFoundException
   858  //   The specified resource does not exist.
   859  //
   860  //   * InvalidRequestException
   861  //   The request is not valid.
   862  //
   863  //   * ThrottlingException
   864  //   The rate exceeds the limit.
   865  //
   866  //   * InternalFailureException
   867  //   An unexpected error has occurred.
   868  //
   869  func (c *IoT) CancelAuditMitigationActionsTask(input *CancelAuditMitigationActionsTaskInput) (*CancelAuditMitigationActionsTaskOutput, error) {
   870  	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
   871  	return out, req.Send()
   872  }
   873  
   874  // CancelAuditMitigationActionsTaskWithContext is the same as CancelAuditMitigationActionsTask with the addition of
   875  // the ability to pass a context and additional request options.
   876  //
   877  // See CancelAuditMitigationActionsTask for details on how to use this API operation.
   878  //
   879  // The context must be non-nil and will be used for request cancellation. If
   880  // the context is nil a panic will occur. In the future the SDK may create
   881  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   882  // for more information on using Contexts.
   883  func (c *IoT) CancelAuditMitigationActionsTaskWithContext(ctx aws.Context, input *CancelAuditMitigationActionsTaskInput, opts ...request.Option) (*CancelAuditMitigationActionsTaskOutput, error) {
   884  	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
   885  	req.SetContext(ctx)
   886  	req.ApplyOptions(opts...)
   887  	return out, req.Send()
   888  }
   889  
   890  const opCancelAuditTask = "CancelAuditTask"
   891  
   892  // CancelAuditTaskRequest generates a "aws/request.Request" representing the
   893  // client's request for the CancelAuditTask operation. The "output" return
   894  // value will be populated with the request's response once the request completes
   895  // successfully.
   896  //
   897  // Use "Send" method on the returned Request to send the API call to the service.
   898  // the "output" return value is not valid until after Send returns without error.
   899  //
   900  // See CancelAuditTask for more information on using the CancelAuditTask
   901  // API call, and error handling.
   902  //
   903  // This method is useful when you want to inject custom logic or configuration
   904  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   905  //
   906  //
   907  //    // Example sending a request using the CancelAuditTaskRequest method.
   908  //    req, resp := client.CancelAuditTaskRequest(params)
   909  //
   910  //    err := req.Send()
   911  //    if err == nil { // resp is now filled
   912  //        fmt.Println(resp)
   913  //    }
   914  func (c *IoT) CancelAuditTaskRequest(input *CancelAuditTaskInput) (req *request.Request, output *CancelAuditTaskOutput) {
   915  	op := &request.Operation{
   916  		Name:       opCancelAuditTask,
   917  		HTTPMethod: "PUT",
   918  		HTTPPath:   "/audit/tasks/{taskId}/cancel",
   919  	}
   920  
   921  	if input == nil {
   922  		input = &CancelAuditTaskInput{}
   923  	}
   924  
   925  	output = &CancelAuditTaskOutput{}
   926  	req = c.newRequest(op, input, output)
   927  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   928  	return
   929  }
   930  
   931  // CancelAuditTask API operation for AWS IoT.
   932  //
   933  // Cancels an audit that is in progress. The audit can be either scheduled or
   934  // on demand. If the audit isn't in progress, an "InvalidRequestException" occurs.
   935  //
   936  // Requires permission to access the CancelAuditTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
   937  // action.
   938  //
   939  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   940  // with awserr.Error's Code and Message methods to get detailed information about
   941  // the error.
   942  //
   943  // See the AWS API reference guide for AWS IoT's
   944  // API operation CancelAuditTask for usage and error information.
   945  //
   946  // Returned Error Types:
   947  //   * ResourceNotFoundException
   948  //   The specified resource does not exist.
   949  //
   950  //   * InvalidRequestException
   951  //   The request is not valid.
   952  //
   953  //   * ThrottlingException
   954  //   The rate exceeds the limit.
   955  //
   956  //   * InternalFailureException
   957  //   An unexpected error has occurred.
   958  //
   959  func (c *IoT) CancelAuditTask(input *CancelAuditTaskInput) (*CancelAuditTaskOutput, error) {
   960  	req, out := c.CancelAuditTaskRequest(input)
   961  	return out, req.Send()
   962  }
   963  
   964  // CancelAuditTaskWithContext is the same as CancelAuditTask with the addition of
   965  // the ability to pass a context and additional request options.
   966  //
   967  // See CancelAuditTask for details on how to use this API operation.
   968  //
   969  // The context must be non-nil and will be used for request cancellation. If
   970  // the context is nil a panic will occur. In the future the SDK may create
   971  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   972  // for more information on using Contexts.
   973  func (c *IoT) CancelAuditTaskWithContext(ctx aws.Context, input *CancelAuditTaskInput, opts ...request.Option) (*CancelAuditTaskOutput, error) {
   974  	req, out := c.CancelAuditTaskRequest(input)
   975  	req.SetContext(ctx)
   976  	req.ApplyOptions(opts...)
   977  	return out, req.Send()
   978  }
   979  
   980  const opCancelCertificateTransfer = "CancelCertificateTransfer"
   981  
   982  // CancelCertificateTransferRequest generates a "aws/request.Request" representing the
   983  // client's request for the CancelCertificateTransfer operation. The "output" return
   984  // value will be populated with the request's response once the request completes
   985  // successfully.
   986  //
   987  // Use "Send" method on the returned Request to send the API call to the service.
   988  // the "output" return value is not valid until after Send returns without error.
   989  //
   990  // See CancelCertificateTransfer for more information on using the CancelCertificateTransfer
   991  // API call, and error handling.
   992  //
   993  // This method is useful when you want to inject custom logic or configuration
   994  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   995  //
   996  //
   997  //    // Example sending a request using the CancelCertificateTransferRequest method.
   998  //    req, resp := client.CancelCertificateTransferRequest(params)
   999  //
  1000  //    err := req.Send()
  1001  //    if err == nil { // resp is now filled
  1002  //        fmt.Println(resp)
  1003  //    }
  1004  func (c *IoT) CancelCertificateTransferRequest(input *CancelCertificateTransferInput) (req *request.Request, output *CancelCertificateTransferOutput) {
  1005  	op := &request.Operation{
  1006  		Name:       opCancelCertificateTransfer,
  1007  		HTTPMethod: "PATCH",
  1008  		HTTPPath:   "/cancel-certificate-transfer/{certificateId}",
  1009  	}
  1010  
  1011  	if input == nil {
  1012  		input = &CancelCertificateTransferInput{}
  1013  	}
  1014  
  1015  	output = &CancelCertificateTransferOutput{}
  1016  	req = c.newRequest(op, input, output)
  1017  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1018  	return
  1019  }
  1020  
  1021  // CancelCertificateTransfer API operation for AWS IoT.
  1022  //
  1023  // Cancels a pending transfer for the specified certificate.
  1024  //
  1025  // Note Only the transfer source account can use this operation to cancel a
  1026  // transfer. (Transfer destinations can use RejectCertificateTransfer instead.)
  1027  // After transfer, IoT returns the certificate to the source account in the
  1028  // INACTIVE state. After the destination account has accepted the transfer,
  1029  // the transfer cannot be cancelled.
  1030  //
  1031  // After a certificate transfer is cancelled, the status of the certificate
  1032  // changes from PENDING_TRANSFER to INACTIVE.
  1033  //
  1034  // Requires permission to access the CancelCertificateTransfer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1035  // action.
  1036  //
  1037  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1038  // with awserr.Error's Code and Message methods to get detailed information about
  1039  // the error.
  1040  //
  1041  // See the AWS API reference guide for AWS IoT's
  1042  // API operation CancelCertificateTransfer for usage and error information.
  1043  //
  1044  // Returned Error Types:
  1045  //   * ResourceNotFoundException
  1046  //   The specified resource does not exist.
  1047  //
  1048  //   * TransferAlreadyCompletedException
  1049  //   You can't revert the certificate transfer because the transfer is already
  1050  //   complete.
  1051  //
  1052  //   * InvalidRequestException
  1053  //   The request is not valid.
  1054  //
  1055  //   * ThrottlingException
  1056  //   The rate exceeds the limit.
  1057  //
  1058  //   * UnauthorizedException
  1059  //   You are not authorized to perform this operation.
  1060  //
  1061  //   * ServiceUnavailableException
  1062  //   The service is temporarily unavailable.
  1063  //
  1064  //   * InternalFailureException
  1065  //   An unexpected error has occurred.
  1066  //
  1067  func (c *IoT) CancelCertificateTransfer(input *CancelCertificateTransferInput) (*CancelCertificateTransferOutput, error) {
  1068  	req, out := c.CancelCertificateTransferRequest(input)
  1069  	return out, req.Send()
  1070  }
  1071  
  1072  // CancelCertificateTransferWithContext is the same as CancelCertificateTransfer with the addition of
  1073  // the ability to pass a context and additional request options.
  1074  //
  1075  // See CancelCertificateTransfer for details on how to use this API operation.
  1076  //
  1077  // The context must be non-nil and will be used for request cancellation. If
  1078  // the context is nil a panic will occur. In the future the SDK may create
  1079  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1080  // for more information on using Contexts.
  1081  func (c *IoT) CancelCertificateTransferWithContext(ctx aws.Context, input *CancelCertificateTransferInput, opts ...request.Option) (*CancelCertificateTransferOutput, error) {
  1082  	req, out := c.CancelCertificateTransferRequest(input)
  1083  	req.SetContext(ctx)
  1084  	req.ApplyOptions(opts...)
  1085  	return out, req.Send()
  1086  }
  1087  
  1088  const opCancelDetectMitigationActionsTask = "CancelDetectMitigationActionsTask"
  1089  
  1090  // CancelDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
  1091  // client's request for the CancelDetectMitigationActionsTask operation. The "output" return
  1092  // value will be populated with the request's response once the request completes
  1093  // successfully.
  1094  //
  1095  // Use "Send" method on the returned Request to send the API call to the service.
  1096  // the "output" return value is not valid until after Send returns without error.
  1097  //
  1098  // See CancelDetectMitigationActionsTask for more information on using the CancelDetectMitigationActionsTask
  1099  // API call, and error handling.
  1100  //
  1101  // This method is useful when you want to inject custom logic or configuration
  1102  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1103  //
  1104  //
  1105  //    // Example sending a request using the CancelDetectMitigationActionsTaskRequest method.
  1106  //    req, resp := client.CancelDetectMitigationActionsTaskRequest(params)
  1107  //
  1108  //    err := req.Send()
  1109  //    if err == nil { // resp is now filled
  1110  //        fmt.Println(resp)
  1111  //    }
  1112  func (c *IoT) CancelDetectMitigationActionsTaskRequest(input *CancelDetectMitigationActionsTaskInput) (req *request.Request, output *CancelDetectMitigationActionsTaskOutput) {
  1113  	op := &request.Operation{
  1114  		Name:       opCancelDetectMitigationActionsTask,
  1115  		HTTPMethod: "PUT",
  1116  		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}/cancel",
  1117  	}
  1118  
  1119  	if input == nil {
  1120  		input = &CancelDetectMitigationActionsTaskInput{}
  1121  	}
  1122  
  1123  	output = &CancelDetectMitigationActionsTaskOutput{}
  1124  	req = c.newRequest(op, input, output)
  1125  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1126  	return
  1127  }
  1128  
  1129  // CancelDetectMitigationActionsTask API operation for AWS IoT.
  1130  //
  1131  // Cancels a Device Defender ML Detect mitigation action.
  1132  //
  1133  // Requires permission to access the CancelDetectMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1134  // action.
  1135  //
  1136  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1137  // with awserr.Error's Code and Message methods to get detailed information about
  1138  // the error.
  1139  //
  1140  // See the AWS API reference guide for AWS IoT's
  1141  // API operation CancelDetectMitigationActionsTask for usage and error information.
  1142  //
  1143  // Returned Error Types:
  1144  //   * ResourceNotFoundException
  1145  //   The specified resource does not exist.
  1146  //
  1147  //   * InvalidRequestException
  1148  //   The request is not valid.
  1149  //
  1150  //   * ThrottlingException
  1151  //   The rate exceeds the limit.
  1152  //
  1153  //   * InternalFailureException
  1154  //   An unexpected error has occurred.
  1155  //
  1156  func (c *IoT) CancelDetectMitigationActionsTask(input *CancelDetectMitigationActionsTaskInput) (*CancelDetectMitigationActionsTaskOutput, error) {
  1157  	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
  1158  	return out, req.Send()
  1159  }
  1160  
  1161  // CancelDetectMitigationActionsTaskWithContext is the same as CancelDetectMitigationActionsTask with the addition of
  1162  // the ability to pass a context and additional request options.
  1163  //
  1164  // See CancelDetectMitigationActionsTask for details on how to use this API operation.
  1165  //
  1166  // The context must be non-nil and will be used for request cancellation. If
  1167  // the context is nil a panic will occur. In the future the SDK may create
  1168  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1169  // for more information on using Contexts.
  1170  func (c *IoT) CancelDetectMitigationActionsTaskWithContext(ctx aws.Context, input *CancelDetectMitigationActionsTaskInput, opts ...request.Option) (*CancelDetectMitigationActionsTaskOutput, error) {
  1171  	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
  1172  	req.SetContext(ctx)
  1173  	req.ApplyOptions(opts...)
  1174  	return out, req.Send()
  1175  }
  1176  
  1177  const opCancelJob = "CancelJob"
  1178  
  1179  // CancelJobRequest generates a "aws/request.Request" representing the
  1180  // client's request for the CancelJob operation. The "output" return
  1181  // value will be populated with the request's response once the request completes
  1182  // successfully.
  1183  //
  1184  // Use "Send" method on the returned Request to send the API call to the service.
  1185  // the "output" return value is not valid until after Send returns without error.
  1186  //
  1187  // See CancelJob for more information on using the CancelJob
  1188  // API call, and error handling.
  1189  //
  1190  // This method is useful when you want to inject custom logic or configuration
  1191  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1192  //
  1193  //
  1194  //    // Example sending a request using the CancelJobRequest method.
  1195  //    req, resp := client.CancelJobRequest(params)
  1196  //
  1197  //    err := req.Send()
  1198  //    if err == nil { // resp is now filled
  1199  //        fmt.Println(resp)
  1200  //    }
  1201  func (c *IoT) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
  1202  	op := &request.Operation{
  1203  		Name:       opCancelJob,
  1204  		HTTPMethod: "PUT",
  1205  		HTTPPath:   "/jobs/{jobId}/cancel",
  1206  	}
  1207  
  1208  	if input == nil {
  1209  		input = &CancelJobInput{}
  1210  	}
  1211  
  1212  	output = &CancelJobOutput{}
  1213  	req = c.newRequest(op, input, output)
  1214  	return
  1215  }
  1216  
  1217  // CancelJob API operation for AWS IoT.
  1218  //
  1219  // Cancels a job.
  1220  //
  1221  // Requires permission to access the CancelJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1222  // action.
  1223  //
  1224  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1225  // with awserr.Error's Code and Message methods to get detailed information about
  1226  // the error.
  1227  //
  1228  // See the AWS API reference guide for AWS IoT's
  1229  // API operation CancelJob for usage and error information.
  1230  //
  1231  // Returned Error Types:
  1232  //   * InvalidRequestException
  1233  //   The request is not valid.
  1234  //
  1235  //   * ResourceNotFoundException
  1236  //   The specified resource does not exist.
  1237  //
  1238  //   * ThrottlingException
  1239  //   The rate exceeds the limit.
  1240  //
  1241  //   * ServiceUnavailableException
  1242  //   The service is temporarily unavailable.
  1243  //
  1244  func (c *IoT) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
  1245  	req, out := c.CancelJobRequest(input)
  1246  	return out, req.Send()
  1247  }
  1248  
  1249  // CancelJobWithContext is the same as CancelJob with the addition of
  1250  // the ability to pass a context and additional request options.
  1251  //
  1252  // See CancelJob for details on how to use this API operation.
  1253  //
  1254  // The context must be non-nil and will be used for request cancellation. If
  1255  // the context is nil a panic will occur. In the future the SDK may create
  1256  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1257  // for more information on using Contexts.
  1258  func (c *IoT) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
  1259  	req, out := c.CancelJobRequest(input)
  1260  	req.SetContext(ctx)
  1261  	req.ApplyOptions(opts...)
  1262  	return out, req.Send()
  1263  }
  1264  
  1265  const opCancelJobExecution = "CancelJobExecution"
  1266  
  1267  // CancelJobExecutionRequest generates a "aws/request.Request" representing the
  1268  // client's request for the CancelJobExecution operation. The "output" return
  1269  // value will be populated with the request's response once the request completes
  1270  // successfully.
  1271  //
  1272  // Use "Send" method on the returned Request to send the API call to the service.
  1273  // the "output" return value is not valid until after Send returns without error.
  1274  //
  1275  // See CancelJobExecution for more information on using the CancelJobExecution
  1276  // API call, and error handling.
  1277  //
  1278  // This method is useful when you want to inject custom logic or configuration
  1279  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1280  //
  1281  //
  1282  //    // Example sending a request using the CancelJobExecutionRequest method.
  1283  //    req, resp := client.CancelJobExecutionRequest(params)
  1284  //
  1285  //    err := req.Send()
  1286  //    if err == nil { // resp is now filled
  1287  //        fmt.Println(resp)
  1288  //    }
  1289  func (c *IoT) CancelJobExecutionRequest(input *CancelJobExecutionInput) (req *request.Request, output *CancelJobExecutionOutput) {
  1290  	op := &request.Operation{
  1291  		Name:       opCancelJobExecution,
  1292  		HTTPMethod: "PUT",
  1293  		HTTPPath:   "/things/{thingName}/jobs/{jobId}/cancel",
  1294  	}
  1295  
  1296  	if input == nil {
  1297  		input = &CancelJobExecutionInput{}
  1298  	}
  1299  
  1300  	output = &CancelJobExecutionOutput{}
  1301  	req = c.newRequest(op, input, output)
  1302  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1303  	return
  1304  }
  1305  
  1306  // CancelJobExecution API operation for AWS IoT.
  1307  //
  1308  // Cancels the execution of a job for a given thing.
  1309  //
  1310  // Requires permission to access the CancelJobExecution (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1311  // action.
  1312  //
  1313  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1314  // with awserr.Error's Code and Message methods to get detailed information about
  1315  // the error.
  1316  //
  1317  // See the AWS API reference guide for AWS IoT's
  1318  // API operation CancelJobExecution for usage and error information.
  1319  //
  1320  // Returned Error Types:
  1321  //   * InvalidRequestException
  1322  //   The request is not valid.
  1323  //
  1324  //   * InvalidStateTransitionException
  1325  //   An attempt was made to change to an invalid state, for example by deleting
  1326  //   a job or a job execution which is "IN_PROGRESS" without setting the force
  1327  //   parameter.
  1328  //
  1329  //   * ResourceNotFoundException
  1330  //   The specified resource does not exist.
  1331  //
  1332  //   * ThrottlingException
  1333  //   The rate exceeds the limit.
  1334  //
  1335  //   * ServiceUnavailableException
  1336  //   The service is temporarily unavailable.
  1337  //
  1338  //   * VersionConflictException
  1339  //   An exception thrown when the version of an entity specified with the expectedVersion
  1340  //   parameter does not match the latest version in the system.
  1341  //
  1342  func (c *IoT) CancelJobExecution(input *CancelJobExecutionInput) (*CancelJobExecutionOutput, error) {
  1343  	req, out := c.CancelJobExecutionRequest(input)
  1344  	return out, req.Send()
  1345  }
  1346  
  1347  // CancelJobExecutionWithContext is the same as CancelJobExecution with the addition of
  1348  // the ability to pass a context and additional request options.
  1349  //
  1350  // See CancelJobExecution for details on how to use this API operation.
  1351  //
  1352  // The context must be non-nil and will be used for request cancellation. If
  1353  // the context is nil a panic will occur. In the future the SDK may create
  1354  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1355  // for more information on using Contexts.
  1356  func (c *IoT) CancelJobExecutionWithContext(ctx aws.Context, input *CancelJobExecutionInput, opts ...request.Option) (*CancelJobExecutionOutput, error) {
  1357  	req, out := c.CancelJobExecutionRequest(input)
  1358  	req.SetContext(ctx)
  1359  	req.ApplyOptions(opts...)
  1360  	return out, req.Send()
  1361  }
  1362  
  1363  const opClearDefaultAuthorizer = "ClearDefaultAuthorizer"
  1364  
  1365  // ClearDefaultAuthorizerRequest generates a "aws/request.Request" representing the
  1366  // client's request for the ClearDefaultAuthorizer operation. The "output" return
  1367  // value will be populated with the request's response once the request completes
  1368  // successfully.
  1369  //
  1370  // Use "Send" method on the returned Request to send the API call to the service.
  1371  // the "output" return value is not valid until after Send returns without error.
  1372  //
  1373  // See ClearDefaultAuthorizer for more information on using the ClearDefaultAuthorizer
  1374  // API call, and error handling.
  1375  //
  1376  // This method is useful when you want to inject custom logic or configuration
  1377  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1378  //
  1379  //
  1380  //    // Example sending a request using the ClearDefaultAuthorizerRequest method.
  1381  //    req, resp := client.ClearDefaultAuthorizerRequest(params)
  1382  //
  1383  //    err := req.Send()
  1384  //    if err == nil { // resp is now filled
  1385  //        fmt.Println(resp)
  1386  //    }
  1387  func (c *IoT) ClearDefaultAuthorizerRequest(input *ClearDefaultAuthorizerInput) (req *request.Request, output *ClearDefaultAuthorizerOutput) {
  1388  	op := &request.Operation{
  1389  		Name:       opClearDefaultAuthorizer,
  1390  		HTTPMethod: "DELETE",
  1391  		HTTPPath:   "/default-authorizer",
  1392  	}
  1393  
  1394  	if input == nil {
  1395  		input = &ClearDefaultAuthorizerInput{}
  1396  	}
  1397  
  1398  	output = &ClearDefaultAuthorizerOutput{}
  1399  	req = c.newRequest(op, input, output)
  1400  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1401  	return
  1402  }
  1403  
  1404  // ClearDefaultAuthorizer API operation for AWS IoT.
  1405  //
  1406  // Clears the default authorizer.
  1407  //
  1408  // Requires permission to access the ClearDefaultAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1409  // action.
  1410  //
  1411  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1412  // with awserr.Error's Code and Message methods to get detailed information about
  1413  // the error.
  1414  //
  1415  // See the AWS API reference guide for AWS IoT's
  1416  // API operation ClearDefaultAuthorizer for usage and error information.
  1417  //
  1418  // Returned Error Types:
  1419  //   * ResourceNotFoundException
  1420  //   The specified resource does not exist.
  1421  //
  1422  //   * InvalidRequestException
  1423  //   The request is not valid.
  1424  //
  1425  //   * ThrottlingException
  1426  //   The rate exceeds the limit.
  1427  //
  1428  //   * UnauthorizedException
  1429  //   You are not authorized to perform this operation.
  1430  //
  1431  //   * ServiceUnavailableException
  1432  //   The service is temporarily unavailable.
  1433  //
  1434  //   * InternalFailureException
  1435  //   An unexpected error has occurred.
  1436  //
  1437  func (c *IoT) ClearDefaultAuthorizer(input *ClearDefaultAuthorizerInput) (*ClearDefaultAuthorizerOutput, error) {
  1438  	req, out := c.ClearDefaultAuthorizerRequest(input)
  1439  	return out, req.Send()
  1440  }
  1441  
  1442  // ClearDefaultAuthorizerWithContext is the same as ClearDefaultAuthorizer with the addition of
  1443  // the ability to pass a context and additional request options.
  1444  //
  1445  // See ClearDefaultAuthorizer for details on how to use this API operation.
  1446  //
  1447  // The context must be non-nil and will be used for request cancellation. If
  1448  // the context is nil a panic will occur. In the future the SDK may create
  1449  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1450  // for more information on using Contexts.
  1451  func (c *IoT) ClearDefaultAuthorizerWithContext(ctx aws.Context, input *ClearDefaultAuthorizerInput, opts ...request.Option) (*ClearDefaultAuthorizerOutput, error) {
  1452  	req, out := c.ClearDefaultAuthorizerRequest(input)
  1453  	req.SetContext(ctx)
  1454  	req.ApplyOptions(opts...)
  1455  	return out, req.Send()
  1456  }
  1457  
  1458  const opConfirmTopicRuleDestination = "ConfirmTopicRuleDestination"
  1459  
  1460  // ConfirmTopicRuleDestinationRequest generates a "aws/request.Request" representing the
  1461  // client's request for the ConfirmTopicRuleDestination operation. The "output" return
  1462  // value will be populated with the request's response once the request completes
  1463  // successfully.
  1464  //
  1465  // Use "Send" method on the returned Request to send the API call to the service.
  1466  // the "output" return value is not valid until after Send returns without error.
  1467  //
  1468  // See ConfirmTopicRuleDestination for more information on using the ConfirmTopicRuleDestination
  1469  // API call, and error handling.
  1470  //
  1471  // This method is useful when you want to inject custom logic or configuration
  1472  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1473  //
  1474  //
  1475  //    // Example sending a request using the ConfirmTopicRuleDestinationRequest method.
  1476  //    req, resp := client.ConfirmTopicRuleDestinationRequest(params)
  1477  //
  1478  //    err := req.Send()
  1479  //    if err == nil { // resp is now filled
  1480  //        fmt.Println(resp)
  1481  //    }
  1482  func (c *IoT) ConfirmTopicRuleDestinationRequest(input *ConfirmTopicRuleDestinationInput) (req *request.Request, output *ConfirmTopicRuleDestinationOutput) {
  1483  	op := &request.Operation{
  1484  		Name:       opConfirmTopicRuleDestination,
  1485  		HTTPMethod: "GET",
  1486  		HTTPPath:   "/confirmdestination/{confirmationToken+}",
  1487  	}
  1488  
  1489  	if input == nil {
  1490  		input = &ConfirmTopicRuleDestinationInput{}
  1491  	}
  1492  
  1493  	output = &ConfirmTopicRuleDestinationOutput{}
  1494  	req = c.newRequest(op, input, output)
  1495  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1496  	return
  1497  }
  1498  
  1499  // ConfirmTopicRuleDestination API operation for AWS IoT.
  1500  //
  1501  // Confirms a topic rule destination. When you create a rule requiring a destination,
  1502  // IoT sends a confirmation message to the endpoint or base address you specify.
  1503  // The message includes a token which you pass back when calling ConfirmTopicRuleDestination
  1504  // to confirm that you own or have access to the endpoint.
  1505  //
  1506  // Requires permission to access the ConfirmTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1507  // action.
  1508  //
  1509  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1510  // with awserr.Error's Code and Message methods to get detailed information about
  1511  // the error.
  1512  //
  1513  // See the AWS API reference guide for AWS IoT's
  1514  // API operation ConfirmTopicRuleDestination for usage and error information.
  1515  //
  1516  // Returned Error Types:
  1517  //   * InternalException
  1518  //   An unexpected error has occurred.
  1519  //
  1520  //   * InvalidRequestException
  1521  //   The request is not valid.
  1522  //
  1523  //   * ServiceUnavailableException
  1524  //   The service is temporarily unavailable.
  1525  //
  1526  //   * UnauthorizedException
  1527  //   You are not authorized to perform this operation.
  1528  //
  1529  //   * ConflictingResourceUpdateException
  1530  //   A conflicting resource update exception. This exception is thrown when two
  1531  //   pending updates cause a conflict.
  1532  //
  1533  func (c *IoT) ConfirmTopicRuleDestination(input *ConfirmTopicRuleDestinationInput) (*ConfirmTopicRuleDestinationOutput, error) {
  1534  	req, out := c.ConfirmTopicRuleDestinationRequest(input)
  1535  	return out, req.Send()
  1536  }
  1537  
  1538  // ConfirmTopicRuleDestinationWithContext is the same as ConfirmTopicRuleDestination with the addition of
  1539  // the ability to pass a context and additional request options.
  1540  //
  1541  // See ConfirmTopicRuleDestination for details on how to use this API operation.
  1542  //
  1543  // The context must be non-nil and will be used for request cancellation. If
  1544  // the context is nil a panic will occur. In the future the SDK may create
  1545  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1546  // for more information on using Contexts.
  1547  func (c *IoT) ConfirmTopicRuleDestinationWithContext(ctx aws.Context, input *ConfirmTopicRuleDestinationInput, opts ...request.Option) (*ConfirmTopicRuleDestinationOutput, error) {
  1548  	req, out := c.ConfirmTopicRuleDestinationRequest(input)
  1549  	req.SetContext(ctx)
  1550  	req.ApplyOptions(opts...)
  1551  	return out, req.Send()
  1552  }
  1553  
  1554  const opCreateAuditSuppression = "CreateAuditSuppression"
  1555  
  1556  // CreateAuditSuppressionRequest generates a "aws/request.Request" representing the
  1557  // client's request for the CreateAuditSuppression operation. The "output" return
  1558  // value will be populated with the request's response once the request completes
  1559  // successfully.
  1560  //
  1561  // Use "Send" method on the returned Request to send the API call to the service.
  1562  // the "output" return value is not valid until after Send returns without error.
  1563  //
  1564  // See CreateAuditSuppression for more information on using the CreateAuditSuppression
  1565  // API call, and error handling.
  1566  //
  1567  // This method is useful when you want to inject custom logic or configuration
  1568  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1569  //
  1570  //
  1571  //    // Example sending a request using the CreateAuditSuppressionRequest method.
  1572  //    req, resp := client.CreateAuditSuppressionRequest(params)
  1573  //
  1574  //    err := req.Send()
  1575  //    if err == nil { // resp is now filled
  1576  //        fmt.Println(resp)
  1577  //    }
  1578  func (c *IoT) CreateAuditSuppressionRequest(input *CreateAuditSuppressionInput) (req *request.Request, output *CreateAuditSuppressionOutput) {
  1579  	op := &request.Operation{
  1580  		Name:       opCreateAuditSuppression,
  1581  		HTTPMethod: "POST",
  1582  		HTTPPath:   "/audit/suppressions/create",
  1583  	}
  1584  
  1585  	if input == nil {
  1586  		input = &CreateAuditSuppressionInput{}
  1587  	}
  1588  
  1589  	output = &CreateAuditSuppressionOutput{}
  1590  	req = c.newRequest(op, input, output)
  1591  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1592  	return
  1593  }
  1594  
  1595  // CreateAuditSuppression API operation for AWS IoT.
  1596  //
  1597  // Creates a Device Defender audit suppression.
  1598  //
  1599  // Requires permission to access the CreateAuditSuppression (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1600  // action.
  1601  //
  1602  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1603  // with awserr.Error's Code and Message methods to get detailed information about
  1604  // the error.
  1605  //
  1606  // See the AWS API reference guide for AWS IoT's
  1607  // API operation CreateAuditSuppression for usage and error information.
  1608  //
  1609  // Returned Error Types:
  1610  //   * InvalidRequestException
  1611  //   The request is not valid.
  1612  //
  1613  //   * ResourceAlreadyExistsException
  1614  //   The resource already exists.
  1615  //
  1616  //   * ThrottlingException
  1617  //   The rate exceeds the limit.
  1618  //
  1619  //   * InternalFailureException
  1620  //   An unexpected error has occurred.
  1621  //
  1622  //   * LimitExceededException
  1623  //   A limit has been exceeded.
  1624  //
  1625  func (c *IoT) CreateAuditSuppression(input *CreateAuditSuppressionInput) (*CreateAuditSuppressionOutput, error) {
  1626  	req, out := c.CreateAuditSuppressionRequest(input)
  1627  	return out, req.Send()
  1628  }
  1629  
  1630  // CreateAuditSuppressionWithContext is the same as CreateAuditSuppression with the addition of
  1631  // the ability to pass a context and additional request options.
  1632  //
  1633  // See CreateAuditSuppression for details on how to use this API operation.
  1634  //
  1635  // The context must be non-nil and will be used for request cancellation. If
  1636  // the context is nil a panic will occur. In the future the SDK may create
  1637  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1638  // for more information on using Contexts.
  1639  func (c *IoT) CreateAuditSuppressionWithContext(ctx aws.Context, input *CreateAuditSuppressionInput, opts ...request.Option) (*CreateAuditSuppressionOutput, error) {
  1640  	req, out := c.CreateAuditSuppressionRequest(input)
  1641  	req.SetContext(ctx)
  1642  	req.ApplyOptions(opts...)
  1643  	return out, req.Send()
  1644  }
  1645  
  1646  const opCreateAuthorizer = "CreateAuthorizer"
  1647  
  1648  // CreateAuthorizerRequest generates a "aws/request.Request" representing the
  1649  // client's request for the CreateAuthorizer operation. The "output" return
  1650  // value will be populated with the request's response once the request completes
  1651  // successfully.
  1652  //
  1653  // Use "Send" method on the returned Request to send the API call to the service.
  1654  // the "output" return value is not valid until after Send returns without error.
  1655  //
  1656  // See CreateAuthorizer for more information on using the CreateAuthorizer
  1657  // API call, and error handling.
  1658  //
  1659  // This method is useful when you want to inject custom logic or configuration
  1660  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1661  //
  1662  //
  1663  //    // Example sending a request using the CreateAuthorizerRequest method.
  1664  //    req, resp := client.CreateAuthorizerRequest(params)
  1665  //
  1666  //    err := req.Send()
  1667  //    if err == nil { // resp is now filled
  1668  //        fmt.Println(resp)
  1669  //    }
  1670  func (c *IoT) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *CreateAuthorizerOutput) {
  1671  	op := &request.Operation{
  1672  		Name:       opCreateAuthorizer,
  1673  		HTTPMethod: "POST",
  1674  		HTTPPath:   "/authorizer/{authorizerName}",
  1675  	}
  1676  
  1677  	if input == nil {
  1678  		input = &CreateAuthorizerInput{}
  1679  	}
  1680  
  1681  	output = &CreateAuthorizerOutput{}
  1682  	req = c.newRequest(op, input, output)
  1683  	return
  1684  }
  1685  
  1686  // CreateAuthorizer API operation for AWS IoT.
  1687  //
  1688  // Creates an authorizer.
  1689  //
  1690  // Requires permission to access the CreateAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1691  // action.
  1692  //
  1693  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1694  // with awserr.Error's Code and Message methods to get detailed information about
  1695  // the error.
  1696  //
  1697  // See the AWS API reference guide for AWS IoT's
  1698  // API operation CreateAuthorizer for usage and error information.
  1699  //
  1700  // Returned Error Types:
  1701  //   * ResourceAlreadyExistsException
  1702  //   The resource already exists.
  1703  //
  1704  //   * InvalidRequestException
  1705  //   The request is not valid.
  1706  //
  1707  //   * LimitExceededException
  1708  //   A limit has been exceeded.
  1709  //
  1710  //   * ThrottlingException
  1711  //   The rate exceeds the limit.
  1712  //
  1713  //   * UnauthorizedException
  1714  //   You are not authorized to perform this operation.
  1715  //
  1716  //   * ServiceUnavailableException
  1717  //   The service is temporarily unavailable.
  1718  //
  1719  //   * InternalFailureException
  1720  //   An unexpected error has occurred.
  1721  //
  1722  func (c *IoT) CreateAuthorizer(input *CreateAuthorizerInput) (*CreateAuthorizerOutput, error) {
  1723  	req, out := c.CreateAuthorizerRequest(input)
  1724  	return out, req.Send()
  1725  }
  1726  
  1727  // CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
  1728  // the ability to pass a context and additional request options.
  1729  //
  1730  // See CreateAuthorizer for details on how to use this API operation.
  1731  //
  1732  // The context must be non-nil and will be used for request cancellation. If
  1733  // the context is nil a panic will occur. In the future the SDK may create
  1734  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1735  // for more information on using Contexts.
  1736  func (c *IoT) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*CreateAuthorizerOutput, error) {
  1737  	req, out := c.CreateAuthorizerRequest(input)
  1738  	req.SetContext(ctx)
  1739  	req.ApplyOptions(opts...)
  1740  	return out, req.Send()
  1741  }
  1742  
  1743  const opCreateBillingGroup = "CreateBillingGroup"
  1744  
  1745  // CreateBillingGroupRequest generates a "aws/request.Request" representing the
  1746  // client's request for the CreateBillingGroup operation. The "output" return
  1747  // value will be populated with the request's response once the request completes
  1748  // successfully.
  1749  //
  1750  // Use "Send" method on the returned Request to send the API call to the service.
  1751  // the "output" return value is not valid until after Send returns without error.
  1752  //
  1753  // See CreateBillingGroup for more information on using the CreateBillingGroup
  1754  // API call, and error handling.
  1755  //
  1756  // This method is useful when you want to inject custom logic or configuration
  1757  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1758  //
  1759  //
  1760  //    // Example sending a request using the CreateBillingGroupRequest method.
  1761  //    req, resp := client.CreateBillingGroupRequest(params)
  1762  //
  1763  //    err := req.Send()
  1764  //    if err == nil { // resp is now filled
  1765  //        fmt.Println(resp)
  1766  //    }
  1767  func (c *IoT) CreateBillingGroupRequest(input *CreateBillingGroupInput) (req *request.Request, output *CreateBillingGroupOutput) {
  1768  	op := &request.Operation{
  1769  		Name:       opCreateBillingGroup,
  1770  		HTTPMethod: "POST",
  1771  		HTTPPath:   "/billing-groups/{billingGroupName}",
  1772  	}
  1773  
  1774  	if input == nil {
  1775  		input = &CreateBillingGroupInput{}
  1776  	}
  1777  
  1778  	output = &CreateBillingGroupOutput{}
  1779  	req = c.newRequest(op, input, output)
  1780  	return
  1781  }
  1782  
  1783  // CreateBillingGroup API operation for AWS IoT.
  1784  //
  1785  // Creates a billing group.
  1786  //
  1787  // Requires permission to access the CreateBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1788  // action.
  1789  //
  1790  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1791  // with awserr.Error's Code and Message methods to get detailed information about
  1792  // the error.
  1793  //
  1794  // See the AWS API reference guide for AWS IoT's
  1795  // API operation CreateBillingGroup for usage and error information.
  1796  //
  1797  // Returned Error Types:
  1798  //   * InvalidRequestException
  1799  //   The request is not valid.
  1800  //
  1801  //   * ResourceAlreadyExistsException
  1802  //   The resource already exists.
  1803  //
  1804  //   * ThrottlingException
  1805  //   The rate exceeds the limit.
  1806  //
  1807  //   * InternalFailureException
  1808  //   An unexpected error has occurred.
  1809  //
  1810  func (c *IoT) CreateBillingGroup(input *CreateBillingGroupInput) (*CreateBillingGroupOutput, error) {
  1811  	req, out := c.CreateBillingGroupRequest(input)
  1812  	return out, req.Send()
  1813  }
  1814  
  1815  // CreateBillingGroupWithContext is the same as CreateBillingGroup with the addition of
  1816  // the ability to pass a context and additional request options.
  1817  //
  1818  // See CreateBillingGroup for details on how to use this API operation.
  1819  //
  1820  // The context must be non-nil and will be used for request cancellation. If
  1821  // the context is nil a panic will occur. In the future the SDK may create
  1822  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1823  // for more information on using Contexts.
  1824  func (c *IoT) CreateBillingGroupWithContext(ctx aws.Context, input *CreateBillingGroupInput, opts ...request.Option) (*CreateBillingGroupOutput, error) {
  1825  	req, out := c.CreateBillingGroupRequest(input)
  1826  	req.SetContext(ctx)
  1827  	req.ApplyOptions(opts...)
  1828  	return out, req.Send()
  1829  }
  1830  
  1831  const opCreateCertificateFromCsr = "CreateCertificateFromCsr"
  1832  
  1833  // CreateCertificateFromCsrRequest generates a "aws/request.Request" representing the
  1834  // client's request for the CreateCertificateFromCsr operation. The "output" return
  1835  // value will be populated with the request's response once the request completes
  1836  // successfully.
  1837  //
  1838  // Use "Send" method on the returned Request to send the API call to the service.
  1839  // the "output" return value is not valid until after Send returns without error.
  1840  //
  1841  // See CreateCertificateFromCsr for more information on using the CreateCertificateFromCsr
  1842  // API call, and error handling.
  1843  //
  1844  // This method is useful when you want to inject custom logic or configuration
  1845  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1846  //
  1847  //
  1848  //    // Example sending a request using the CreateCertificateFromCsrRequest method.
  1849  //    req, resp := client.CreateCertificateFromCsrRequest(params)
  1850  //
  1851  //    err := req.Send()
  1852  //    if err == nil { // resp is now filled
  1853  //        fmt.Println(resp)
  1854  //    }
  1855  func (c *IoT) CreateCertificateFromCsrRequest(input *CreateCertificateFromCsrInput) (req *request.Request, output *CreateCertificateFromCsrOutput) {
  1856  	op := &request.Operation{
  1857  		Name:       opCreateCertificateFromCsr,
  1858  		HTTPMethod: "POST",
  1859  		HTTPPath:   "/certificates",
  1860  	}
  1861  
  1862  	if input == nil {
  1863  		input = &CreateCertificateFromCsrInput{}
  1864  	}
  1865  
  1866  	output = &CreateCertificateFromCsrOutput{}
  1867  	req = c.newRequest(op, input, output)
  1868  	return
  1869  }
  1870  
  1871  // CreateCertificateFromCsr API operation for AWS IoT.
  1872  //
  1873  // Creates an X.509 certificate using the specified certificate signing request.
  1874  //
  1875  // Note: The CSR must include a public key that is either an RSA key with a
  1876  // length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384
  1877  // curves.
  1878  //
  1879  // Note: Reusing the same certificate signing request (CSR) results in a distinct
  1880  // certificate.
  1881  //
  1882  // Requires permission to access the CreateCertificateFromCsr (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  1883  // action.
  1884  //
  1885  // You can create multiple certificates in a batch by creating a directory,
  1886  // copying multiple .csr files into that directory, and then specifying that
  1887  // directory on the command line. The following commands show how to create
  1888  // a batch of certificates given a batch of CSRs.
  1889  //
  1890  // Assuming a set of CSRs are located inside of the directory my-csr-directory:
  1891  //
  1892  // On Linux and OS X, the command is:
  1893  //
  1894  // $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr
  1895  // --certificate-signing-request file://my-csr-directory/{}
  1896  //
  1897  // This command lists all of the CSRs in my-csr-directory and pipes each CSR
  1898  // file name to the aws iot create-certificate-from-csr Amazon Web Services
  1899  // CLI command to create a certificate for the corresponding CSR.
  1900  //
  1901  // The aws iot create-certificate-from-csr part of the command can also be run
  1902  // in parallel to speed up the certificate creation process:
  1903  //
  1904  // $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr
  1905  // --certificate-signing-request file://my-csr-directory/{}
  1906  //
  1907  // On Windows PowerShell, the command to create certificates for all CSRs in
  1908  // my-csr-directory is:
  1909  //
  1910  // > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request
  1911  // file://my-csr-directory/$_}
  1912  //
  1913  // On a Windows command prompt, the command to create certificates for all CSRs
  1914  // in my-csr-directory is:
  1915  //
  1916  // > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr
  1917  // --certificate-signing-request file://@path"
  1918  //
  1919  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1920  // with awserr.Error's Code and Message methods to get detailed information about
  1921  // the error.
  1922  //
  1923  // See the AWS API reference guide for AWS IoT's
  1924  // API operation CreateCertificateFromCsr for usage and error information.
  1925  //
  1926  // Returned Error Types:
  1927  //   * InvalidRequestException
  1928  //   The request is not valid.
  1929  //
  1930  //   * ThrottlingException
  1931  //   The rate exceeds the limit.
  1932  //
  1933  //   * UnauthorizedException
  1934  //   You are not authorized to perform this operation.
  1935  //
  1936  //   * ServiceUnavailableException
  1937  //   The service is temporarily unavailable.
  1938  //
  1939  //   * InternalFailureException
  1940  //   An unexpected error has occurred.
  1941  //
  1942  func (c *IoT) CreateCertificateFromCsr(input *CreateCertificateFromCsrInput) (*CreateCertificateFromCsrOutput, error) {
  1943  	req, out := c.CreateCertificateFromCsrRequest(input)
  1944  	return out, req.Send()
  1945  }
  1946  
  1947  // CreateCertificateFromCsrWithContext is the same as CreateCertificateFromCsr with the addition of
  1948  // the ability to pass a context and additional request options.
  1949  //
  1950  // See CreateCertificateFromCsr for details on how to use this API operation.
  1951  //
  1952  // The context must be non-nil and will be used for request cancellation. If
  1953  // the context is nil a panic will occur. In the future the SDK may create
  1954  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1955  // for more information on using Contexts.
  1956  func (c *IoT) CreateCertificateFromCsrWithContext(ctx aws.Context, input *CreateCertificateFromCsrInput, opts ...request.Option) (*CreateCertificateFromCsrOutput, error) {
  1957  	req, out := c.CreateCertificateFromCsrRequest(input)
  1958  	req.SetContext(ctx)
  1959  	req.ApplyOptions(opts...)
  1960  	return out, req.Send()
  1961  }
  1962  
  1963  const opCreateCustomMetric = "CreateCustomMetric"
  1964  
  1965  // CreateCustomMetricRequest generates a "aws/request.Request" representing the
  1966  // client's request for the CreateCustomMetric operation. The "output" return
  1967  // value will be populated with the request's response once the request completes
  1968  // successfully.
  1969  //
  1970  // Use "Send" method on the returned Request to send the API call to the service.
  1971  // the "output" return value is not valid until after Send returns without error.
  1972  //
  1973  // See CreateCustomMetric for more information on using the CreateCustomMetric
  1974  // API call, and error handling.
  1975  //
  1976  // This method is useful when you want to inject custom logic or configuration
  1977  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1978  //
  1979  //
  1980  //    // Example sending a request using the CreateCustomMetricRequest method.
  1981  //    req, resp := client.CreateCustomMetricRequest(params)
  1982  //
  1983  //    err := req.Send()
  1984  //    if err == nil { // resp is now filled
  1985  //        fmt.Println(resp)
  1986  //    }
  1987  func (c *IoT) CreateCustomMetricRequest(input *CreateCustomMetricInput) (req *request.Request, output *CreateCustomMetricOutput) {
  1988  	op := &request.Operation{
  1989  		Name:       opCreateCustomMetric,
  1990  		HTTPMethod: "POST",
  1991  		HTTPPath:   "/custom-metric/{metricName}",
  1992  	}
  1993  
  1994  	if input == nil {
  1995  		input = &CreateCustomMetricInput{}
  1996  	}
  1997  
  1998  	output = &CreateCustomMetricOutput{}
  1999  	req = c.newRequest(op, input, output)
  2000  	return
  2001  }
  2002  
  2003  // CreateCustomMetric API operation for AWS IoT.
  2004  //
  2005  // Use this API to define a Custom Metric published by your devices to Device
  2006  // Defender.
  2007  //
  2008  // Requires permission to access the CreateCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2009  // action.
  2010  //
  2011  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2012  // with awserr.Error's Code and Message methods to get detailed information about
  2013  // the error.
  2014  //
  2015  // See the AWS API reference guide for AWS IoT's
  2016  // API operation CreateCustomMetric for usage and error information.
  2017  //
  2018  // Returned Error Types:
  2019  //   * InvalidRequestException
  2020  //   The request is not valid.
  2021  //
  2022  //   * LimitExceededException
  2023  //   A limit has been exceeded.
  2024  //
  2025  //   * ResourceAlreadyExistsException
  2026  //   The resource already exists.
  2027  //
  2028  //   * ThrottlingException
  2029  //   The rate exceeds the limit.
  2030  //
  2031  //   * InternalFailureException
  2032  //   An unexpected error has occurred.
  2033  //
  2034  func (c *IoT) CreateCustomMetric(input *CreateCustomMetricInput) (*CreateCustomMetricOutput, error) {
  2035  	req, out := c.CreateCustomMetricRequest(input)
  2036  	return out, req.Send()
  2037  }
  2038  
  2039  // CreateCustomMetricWithContext is the same as CreateCustomMetric with the addition of
  2040  // the ability to pass a context and additional request options.
  2041  //
  2042  // See CreateCustomMetric for details on how to use this API operation.
  2043  //
  2044  // The context must be non-nil and will be used for request cancellation. If
  2045  // the context is nil a panic will occur. In the future the SDK may create
  2046  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2047  // for more information on using Contexts.
  2048  func (c *IoT) CreateCustomMetricWithContext(ctx aws.Context, input *CreateCustomMetricInput, opts ...request.Option) (*CreateCustomMetricOutput, error) {
  2049  	req, out := c.CreateCustomMetricRequest(input)
  2050  	req.SetContext(ctx)
  2051  	req.ApplyOptions(opts...)
  2052  	return out, req.Send()
  2053  }
  2054  
  2055  const opCreateDimension = "CreateDimension"
  2056  
  2057  // CreateDimensionRequest generates a "aws/request.Request" representing the
  2058  // client's request for the CreateDimension operation. The "output" return
  2059  // value will be populated with the request's response once the request completes
  2060  // successfully.
  2061  //
  2062  // Use "Send" method on the returned Request to send the API call to the service.
  2063  // the "output" return value is not valid until after Send returns without error.
  2064  //
  2065  // See CreateDimension for more information on using the CreateDimension
  2066  // API call, and error handling.
  2067  //
  2068  // This method is useful when you want to inject custom logic or configuration
  2069  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2070  //
  2071  //
  2072  //    // Example sending a request using the CreateDimensionRequest method.
  2073  //    req, resp := client.CreateDimensionRequest(params)
  2074  //
  2075  //    err := req.Send()
  2076  //    if err == nil { // resp is now filled
  2077  //        fmt.Println(resp)
  2078  //    }
  2079  func (c *IoT) CreateDimensionRequest(input *CreateDimensionInput) (req *request.Request, output *CreateDimensionOutput) {
  2080  	op := &request.Operation{
  2081  		Name:       opCreateDimension,
  2082  		HTTPMethod: "POST",
  2083  		HTTPPath:   "/dimensions/{name}",
  2084  	}
  2085  
  2086  	if input == nil {
  2087  		input = &CreateDimensionInput{}
  2088  	}
  2089  
  2090  	output = &CreateDimensionOutput{}
  2091  	req = c.newRequest(op, input, output)
  2092  	return
  2093  }
  2094  
  2095  // CreateDimension API operation for AWS IoT.
  2096  //
  2097  // Create a dimension that you can use to limit the scope of a metric used in
  2098  // a security profile for IoT Device Defender. For example, using a TOPIC_FILTER
  2099  // dimension, you can narrow down the scope of the metric only to MQTT topics
  2100  // whose name match the pattern specified in the dimension.
  2101  //
  2102  // Requires permission to access the CreateDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2103  // action.
  2104  //
  2105  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2106  // with awserr.Error's Code and Message methods to get detailed information about
  2107  // the error.
  2108  //
  2109  // See the AWS API reference guide for AWS IoT's
  2110  // API operation CreateDimension for usage and error information.
  2111  //
  2112  // Returned Error Types:
  2113  //   * InternalFailureException
  2114  //   An unexpected error has occurred.
  2115  //
  2116  //   * InvalidRequestException
  2117  //   The request is not valid.
  2118  //
  2119  //   * LimitExceededException
  2120  //   A limit has been exceeded.
  2121  //
  2122  //   * ResourceAlreadyExistsException
  2123  //   The resource already exists.
  2124  //
  2125  //   * ThrottlingException
  2126  //   The rate exceeds the limit.
  2127  //
  2128  func (c *IoT) CreateDimension(input *CreateDimensionInput) (*CreateDimensionOutput, error) {
  2129  	req, out := c.CreateDimensionRequest(input)
  2130  	return out, req.Send()
  2131  }
  2132  
  2133  // CreateDimensionWithContext is the same as CreateDimension with the addition of
  2134  // the ability to pass a context and additional request options.
  2135  //
  2136  // See CreateDimension for details on how to use this API operation.
  2137  //
  2138  // The context must be non-nil and will be used for request cancellation. If
  2139  // the context is nil a panic will occur. In the future the SDK may create
  2140  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2141  // for more information on using Contexts.
  2142  func (c *IoT) CreateDimensionWithContext(ctx aws.Context, input *CreateDimensionInput, opts ...request.Option) (*CreateDimensionOutput, error) {
  2143  	req, out := c.CreateDimensionRequest(input)
  2144  	req.SetContext(ctx)
  2145  	req.ApplyOptions(opts...)
  2146  	return out, req.Send()
  2147  }
  2148  
  2149  const opCreateDomainConfiguration = "CreateDomainConfiguration"
  2150  
  2151  // CreateDomainConfigurationRequest generates a "aws/request.Request" representing the
  2152  // client's request for the CreateDomainConfiguration operation. The "output" return
  2153  // value will be populated with the request's response once the request completes
  2154  // successfully.
  2155  //
  2156  // Use "Send" method on the returned Request to send the API call to the service.
  2157  // the "output" return value is not valid until after Send returns without error.
  2158  //
  2159  // See CreateDomainConfiguration for more information on using the CreateDomainConfiguration
  2160  // API call, and error handling.
  2161  //
  2162  // This method is useful when you want to inject custom logic or configuration
  2163  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2164  //
  2165  //
  2166  //    // Example sending a request using the CreateDomainConfigurationRequest method.
  2167  //    req, resp := client.CreateDomainConfigurationRequest(params)
  2168  //
  2169  //    err := req.Send()
  2170  //    if err == nil { // resp is now filled
  2171  //        fmt.Println(resp)
  2172  //    }
  2173  func (c *IoT) CreateDomainConfigurationRequest(input *CreateDomainConfigurationInput) (req *request.Request, output *CreateDomainConfigurationOutput) {
  2174  	op := &request.Operation{
  2175  		Name:       opCreateDomainConfiguration,
  2176  		HTTPMethod: "POST",
  2177  		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
  2178  	}
  2179  
  2180  	if input == nil {
  2181  		input = &CreateDomainConfigurationInput{}
  2182  	}
  2183  
  2184  	output = &CreateDomainConfigurationOutput{}
  2185  	req = c.newRequest(op, input, output)
  2186  	return
  2187  }
  2188  
  2189  // CreateDomainConfiguration API operation for AWS IoT.
  2190  //
  2191  // Creates a domain configuration.
  2192  //
  2193  // Requires permission to access the CreateDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2194  // action.
  2195  //
  2196  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2197  // with awserr.Error's Code and Message methods to get detailed information about
  2198  // the error.
  2199  //
  2200  // See the AWS API reference guide for AWS IoT's
  2201  // API operation CreateDomainConfiguration for usage and error information.
  2202  //
  2203  // Returned Error Types:
  2204  //   * LimitExceededException
  2205  //   A limit has been exceeded.
  2206  //
  2207  //   * CertificateValidationException
  2208  //   The certificate is invalid.
  2209  //
  2210  //   * ResourceAlreadyExistsException
  2211  //   The resource already exists.
  2212  //
  2213  //   * ServiceUnavailableException
  2214  //   The service is temporarily unavailable.
  2215  //
  2216  //   * InternalFailureException
  2217  //   An unexpected error has occurred.
  2218  //
  2219  //   * InvalidRequestException
  2220  //   The request is not valid.
  2221  //
  2222  //   * UnauthorizedException
  2223  //   You are not authorized to perform this operation.
  2224  //
  2225  //   * ThrottlingException
  2226  //   The rate exceeds the limit.
  2227  //
  2228  func (c *IoT) CreateDomainConfiguration(input *CreateDomainConfigurationInput) (*CreateDomainConfigurationOutput, error) {
  2229  	req, out := c.CreateDomainConfigurationRequest(input)
  2230  	return out, req.Send()
  2231  }
  2232  
  2233  // CreateDomainConfigurationWithContext is the same as CreateDomainConfiguration with the addition of
  2234  // the ability to pass a context and additional request options.
  2235  //
  2236  // See CreateDomainConfiguration for details on how to use this API operation.
  2237  //
  2238  // The context must be non-nil and will be used for request cancellation. If
  2239  // the context is nil a panic will occur. In the future the SDK may create
  2240  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2241  // for more information on using Contexts.
  2242  func (c *IoT) CreateDomainConfigurationWithContext(ctx aws.Context, input *CreateDomainConfigurationInput, opts ...request.Option) (*CreateDomainConfigurationOutput, error) {
  2243  	req, out := c.CreateDomainConfigurationRequest(input)
  2244  	req.SetContext(ctx)
  2245  	req.ApplyOptions(opts...)
  2246  	return out, req.Send()
  2247  }
  2248  
  2249  const opCreateDynamicThingGroup = "CreateDynamicThingGroup"
  2250  
  2251  // CreateDynamicThingGroupRequest generates a "aws/request.Request" representing the
  2252  // client's request for the CreateDynamicThingGroup operation. The "output" return
  2253  // value will be populated with the request's response once the request completes
  2254  // successfully.
  2255  //
  2256  // Use "Send" method on the returned Request to send the API call to the service.
  2257  // the "output" return value is not valid until after Send returns without error.
  2258  //
  2259  // See CreateDynamicThingGroup for more information on using the CreateDynamicThingGroup
  2260  // API call, and error handling.
  2261  //
  2262  // This method is useful when you want to inject custom logic or configuration
  2263  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2264  //
  2265  //
  2266  //    // Example sending a request using the CreateDynamicThingGroupRequest method.
  2267  //    req, resp := client.CreateDynamicThingGroupRequest(params)
  2268  //
  2269  //    err := req.Send()
  2270  //    if err == nil { // resp is now filled
  2271  //        fmt.Println(resp)
  2272  //    }
  2273  func (c *IoT) CreateDynamicThingGroupRequest(input *CreateDynamicThingGroupInput) (req *request.Request, output *CreateDynamicThingGroupOutput) {
  2274  	op := &request.Operation{
  2275  		Name:       opCreateDynamicThingGroup,
  2276  		HTTPMethod: "POST",
  2277  		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
  2278  	}
  2279  
  2280  	if input == nil {
  2281  		input = &CreateDynamicThingGroupInput{}
  2282  	}
  2283  
  2284  	output = &CreateDynamicThingGroupOutput{}
  2285  	req = c.newRequest(op, input, output)
  2286  	return
  2287  }
  2288  
  2289  // CreateDynamicThingGroup API operation for AWS IoT.
  2290  //
  2291  // Creates a dynamic thing group.
  2292  //
  2293  // Requires permission to access the CreateDynamicThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2294  // action.
  2295  //
  2296  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2297  // with awserr.Error's Code and Message methods to get detailed information about
  2298  // the error.
  2299  //
  2300  // See the AWS API reference guide for AWS IoT's
  2301  // API operation CreateDynamicThingGroup for usage and error information.
  2302  //
  2303  // Returned Error Types:
  2304  //   * InvalidRequestException
  2305  //   The request is not valid.
  2306  //
  2307  //   * ResourceAlreadyExistsException
  2308  //   The resource already exists.
  2309  //
  2310  //   * ResourceNotFoundException
  2311  //   The specified resource does not exist.
  2312  //
  2313  //   * ThrottlingException
  2314  //   The rate exceeds the limit.
  2315  //
  2316  //   * InternalFailureException
  2317  //   An unexpected error has occurred.
  2318  //
  2319  //   * InvalidQueryException
  2320  //   The query is invalid.
  2321  //
  2322  //   * LimitExceededException
  2323  //   A limit has been exceeded.
  2324  //
  2325  func (c *IoT) CreateDynamicThingGroup(input *CreateDynamicThingGroupInput) (*CreateDynamicThingGroupOutput, error) {
  2326  	req, out := c.CreateDynamicThingGroupRequest(input)
  2327  	return out, req.Send()
  2328  }
  2329  
  2330  // CreateDynamicThingGroupWithContext is the same as CreateDynamicThingGroup with the addition of
  2331  // the ability to pass a context and additional request options.
  2332  //
  2333  // See CreateDynamicThingGroup for details on how to use this API operation.
  2334  //
  2335  // The context must be non-nil and will be used for request cancellation. If
  2336  // the context is nil a panic will occur. In the future the SDK may create
  2337  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2338  // for more information on using Contexts.
  2339  func (c *IoT) CreateDynamicThingGroupWithContext(ctx aws.Context, input *CreateDynamicThingGroupInput, opts ...request.Option) (*CreateDynamicThingGroupOutput, error) {
  2340  	req, out := c.CreateDynamicThingGroupRequest(input)
  2341  	req.SetContext(ctx)
  2342  	req.ApplyOptions(opts...)
  2343  	return out, req.Send()
  2344  }
  2345  
  2346  const opCreateFleetMetric = "CreateFleetMetric"
  2347  
  2348  // CreateFleetMetricRequest generates a "aws/request.Request" representing the
  2349  // client's request for the CreateFleetMetric operation. The "output" return
  2350  // value will be populated with the request's response once the request completes
  2351  // successfully.
  2352  //
  2353  // Use "Send" method on the returned Request to send the API call to the service.
  2354  // the "output" return value is not valid until after Send returns without error.
  2355  //
  2356  // See CreateFleetMetric for more information on using the CreateFleetMetric
  2357  // API call, and error handling.
  2358  //
  2359  // This method is useful when you want to inject custom logic or configuration
  2360  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2361  //
  2362  //
  2363  //    // Example sending a request using the CreateFleetMetricRequest method.
  2364  //    req, resp := client.CreateFleetMetricRequest(params)
  2365  //
  2366  //    err := req.Send()
  2367  //    if err == nil { // resp is now filled
  2368  //        fmt.Println(resp)
  2369  //    }
  2370  func (c *IoT) CreateFleetMetricRequest(input *CreateFleetMetricInput) (req *request.Request, output *CreateFleetMetricOutput) {
  2371  	op := &request.Operation{
  2372  		Name:       opCreateFleetMetric,
  2373  		HTTPMethod: "PUT",
  2374  		HTTPPath:   "/fleet-metric/{metricName}",
  2375  	}
  2376  
  2377  	if input == nil {
  2378  		input = &CreateFleetMetricInput{}
  2379  	}
  2380  
  2381  	output = &CreateFleetMetricOutput{}
  2382  	req = c.newRequest(op, input, output)
  2383  	return
  2384  }
  2385  
  2386  // CreateFleetMetric API operation for AWS IoT.
  2387  //
  2388  // Creates a fleet metric.
  2389  //
  2390  // Requires permission to access the CreateFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2391  // action.
  2392  //
  2393  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2394  // with awserr.Error's Code and Message methods to get detailed information about
  2395  // the error.
  2396  //
  2397  // See the AWS API reference guide for AWS IoT's
  2398  // API operation CreateFleetMetric for usage and error information.
  2399  //
  2400  // Returned Error Types:
  2401  //   * InvalidRequestException
  2402  //   The request is not valid.
  2403  //
  2404  //   * ThrottlingException
  2405  //   The rate exceeds the limit.
  2406  //
  2407  //   * UnauthorizedException
  2408  //   You are not authorized to perform this operation.
  2409  //
  2410  //   * ServiceUnavailableException
  2411  //   The service is temporarily unavailable.
  2412  //
  2413  //   * InternalFailureException
  2414  //   An unexpected error has occurred.
  2415  //
  2416  //   * LimitExceededException
  2417  //   A limit has been exceeded.
  2418  //
  2419  //   * ResourceAlreadyExistsException
  2420  //   The resource already exists.
  2421  //
  2422  //   * ResourceNotFoundException
  2423  //   The specified resource does not exist.
  2424  //
  2425  //   * InvalidQueryException
  2426  //   The query is invalid.
  2427  //
  2428  //   * InvalidAggregationException
  2429  //   The aggregation is invalid.
  2430  //
  2431  //   * IndexNotReadyException
  2432  //   The index is not ready.
  2433  //
  2434  func (c *IoT) CreateFleetMetric(input *CreateFleetMetricInput) (*CreateFleetMetricOutput, error) {
  2435  	req, out := c.CreateFleetMetricRequest(input)
  2436  	return out, req.Send()
  2437  }
  2438  
  2439  // CreateFleetMetricWithContext is the same as CreateFleetMetric with the addition of
  2440  // the ability to pass a context and additional request options.
  2441  //
  2442  // See CreateFleetMetric for details on how to use this API operation.
  2443  //
  2444  // The context must be non-nil and will be used for request cancellation. If
  2445  // the context is nil a panic will occur. In the future the SDK may create
  2446  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2447  // for more information on using Contexts.
  2448  func (c *IoT) CreateFleetMetricWithContext(ctx aws.Context, input *CreateFleetMetricInput, opts ...request.Option) (*CreateFleetMetricOutput, error) {
  2449  	req, out := c.CreateFleetMetricRequest(input)
  2450  	req.SetContext(ctx)
  2451  	req.ApplyOptions(opts...)
  2452  	return out, req.Send()
  2453  }
  2454  
  2455  const opCreateJob = "CreateJob"
  2456  
  2457  // CreateJobRequest generates a "aws/request.Request" representing the
  2458  // client's request for the CreateJob operation. The "output" return
  2459  // value will be populated with the request's response once the request completes
  2460  // successfully.
  2461  //
  2462  // Use "Send" method on the returned Request to send the API call to the service.
  2463  // the "output" return value is not valid until after Send returns without error.
  2464  //
  2465  // See CreateJob for more information on using the CreateJob
  2466  // API call, and error handling.
  2467  //
  2468  // This method is useful when you want to inject custom logic or configuration
  2469  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2470  //
  2471  //
  2472  //    // Example sending a request using the CreateJobRequest method.
  2473  //    req, resp := client.CreateJobRequest(params)
  2474  //
  2475  //    err := req.Send()
  2476  //    if err == nil { // resp is now filled
  2477  //        fmt.Println(resp)
  2478  //    }
  2479  func (c *IoT) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
  2480  	op := &request.Operation{
  2481  		Name:       opCreateJob,
  2482  		HTTPMethod: "PUT",
  2483  		HTTPPath:   "/jobs/{jobId}",
  2484  	}
  2485  
  2486  	if input == nil {
  2487  		input = &CreateJobInput{}
  2488  	}
  2489  
  2490  	output = &CreateJobOutput{}
  2491  	req = c.newRequest(op, input, output)
  2492  	return
  2493  }
  2494  
  2495  // CreateJob API operation for AWS IoT.
  2496  //
  2497  // Creates a job.
  2498  //
  2499  // Requires permission to access the CreateJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2500  // action.
  2501  //
  2502  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2503  // with awserr.Error's Code and Message methods to get detailed information about
  2504  // the error.
  2505  //
  2506  // See the AWS API reference guide for AWS IoT's
  2507  // API operation CreateJob for usage and error information.
  2508  //
  2509  // Returned Error Types:
  2510  //   * InvalidRequestException
  2511  //   The request is not valid.
  2512  //
  2513  //   * ResourceNotFoundException
  2514  //   The specified resource does not exist.
  2515  //
  2516  //   * ResourceAlreadyExistsException
  2517  //   The resource already exists.
  2518  //
  2519  //   * LimitExceededException
  2520  //   A limit has been exceeded.
  2521  //
  2522  //   * ThrottlingException
  2523  //   The rate exceeds the limit.
  2524  //
  2525  //   * ServiceUnavailableException
  2526  //   The service is temporarily unavailable.
  2527  //
  2528  func (c *IoT) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
  2529  	req, out := c.CreateJobRequest(input)
  2530  	return out, req.Send()
  2531  }
  2532  
  2533  // CreateJobWithContext is the same as CreateJob with the addition of
  2534  // the ability to pass a context and additional request options.
  2535  //
  2536  // See CreateJob for details on how to use this API operation.
  2537  //
  2538  // The context must be non-nil and will be used for request cancellation. If
  2539  // the context is nil a panic will occur. In the future the SDK may create
  2540  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2541  // for more information on using Contexts.
  2542  func (c *IoT) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
  2543  	req, out := c.CreateJobRequest(input)
  2544  	req.SetContext(ctx)
  2545  	req.ApplyOptions(opts...)
  2546  	return out, req.Send()
  2547  }
  2548  
  2549  const opCreateJobTemplate = "CreateJobTemplate"
  2550  
  2551  // CreateJobTemplateRequest generates a "aws/request.Request" representing the
  2552  // client's request for the CreateJobTemplate operation. The "output" return
  2553  // value will be populated with the request's response once the request completes
  2554  // successfully.
  2555  //
  2556  // Use "Send" method on the returned Request to send the API call to the service.
  2557  // the "output" return value is not valid until after Send returns without error.
  2558  //
  2559  // See CreateJobTemplate for more information on using the CreateJobTemplate
  2560  // API call, and error handling.
  2561  //
  2562  // This method is useful when you want to inject custom logic or configuration
  2563  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2564  //
  2565  //
  2566  //    // Example sending a request using the CreateJobTemplateRequest method.
  2567  //    req, resp := client.CreateJobTemplateRequest(params)
  2568  //
  2569  //    err := req.Send()
  2570  //    if err == nil { // resp is now filled
  2571  //        fmt.Println(resp)
  2572  //    }
  2573  func (c *IoT) CreateJobTemplateRequest(input *CreateJobTemplateInput) (req *request.Request, output *CreateJobTemplateOutput) {
  2574  	op := &request.Operation{
  2575  		Name:       opCreateJobTemplate,
  2576  		HTTPMethod: "PUT",
  2577  		HTTPPath:   "/job-templates/{jobTemplateId}",
  2578  	}
  2579  
  2580  	if input == nil {
  2581  		input = &CreateJobTemplateInput{}
  2582  	}
  2583  
  2584  	output = &CreateJobTemplateOutput{}
  2585  	req = c.newRequest(op, input, output)
  2586  	return
  2587  }
  2588  
  2589  // CreateJobTemplate API operation for AWS IoT.
  2590  //
  2591  // Creates a job template.
  2592  //
  2593  // Requires permission to access the CreateJobTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2594  // action.
  2595  //
  2596  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2597  // with awserr.Error's Code and Message methods to get detailed information about
  2598  // the error.
  2599  //
  2600  // See the AWS API reference guide for AWS IoT's
  2601  // API operation CreateJobTemplate for usage and error information.
  2602  //
  2603  // Returned Error Types:
  2604  //   * InvalidRequestException
  2605  //   The request is not valid.
  2606  //
  2607  //   * ResourceNotFoundException
  2608  //   The specified resource does not exist.
  2609  //
  2610  //   * ConflictException
  2611  //   A resource with the same name already exists.
  2612  //
  2613  //   * LimitExceededException
  2614  //   A limit has been exceeded.
  2615  //
  2616  //   * ThrottlingException
  2617  //   The rate exceeds the limit.
  2618  //
  2619  //   * InternalFailureException
  2620  //   An unexpected error has occurred.
  2621  //
  2622  func (c *IoT) CreateJobTemplate(input *CreateJobTemplateInput) (*CreateJobTemplateOutput, error) {
  2623  	req, out := c.CreateJobTemplateRequest(input)
  2624  	return out, req.Send()
  2625  }
  2626  
  2627  // CreateJobTemplateWithContext is the same as CreateJobTemplate with the addition of
  2628  // the ability to pass a context and additional request options.
  2629  //
  2630  // See CreateJobTemplate for details on how to use this API operation.
  2631  //
  2632  // The context must be non-nil and will be used for request cancellation. If
  2633  // the context is nil a panic will occur. In the future the SDK may create
  2634  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2635  // for more information on using Contexts.
  2636  func (c *IoT) CreateJobTemplateWithContext(ctx aws.Context, input *CreateJobTemplateInput, opts ...request.Option) (*CreateJobTemplateOutput, error) {
  2637  	req, out := c.CreateJobTemplateRequest(input)
  2638  	req.SetContext(ctx)
  2639  	req.ApplyOptions(opts...)
  2640  	return out, req.Send()
  2641  }
  2642  
  2643  const opCreateKeysAndCertificate = "CreateKeysAndCertificate"
  2644  
  2645  // CreateKeysAndCertificateRequest generates a "aws/request.Request" representing the
  2646  // client's request for the CreateKeysAndCertificate operation. The "output" return
  2647  // value will be populated with the request's response once the request completes
  2648  // successfully.
  2649  //
  2650  // Use "Send" method on the returned Request to send the API call to the service.
  2651  // the "output" return value is not valid until after Send returns without error.
  2652  //
  2653  // See CreateKeysAndCertificate for more information on using the CreateKeysAndCertificate
  2654  // API call, and error handling.
  2655  //
  2656  // This method is useful when you want to inject custom logic or configuration
  2657  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2658  //
  2659  //
  2660  //    // Example sending a request using the CreateKeysAndCertificateRequest method.
  2661  //    req, resp := client.CreateKeysAndCertificateRequest(params)
  2662  //
  2663  //    err := req.Send()
  2664  //    if err == nil { // resp is now filled
  2665  //        fmt.Println(resp)
  2666  //    }
  2667  func (c *IoT) CreateKeysAndCertificateRequest(input *CreateKeysAndCertificateInput) (req *request.Request, output *CreateKeysAndCertificateOutput) {
  2668  	op := &request.Operation{
  2669  		Name:       opCreateKeysAndCertificate,
  2670  		HTTPMethod: "POST",
  2671  		HTTPPath:   "/keys-and-certificate",
  2672  	}
  2673  
  2674  	if input == nil {
  2675  		input = &CreateKeysAndCertificateInput{}
  2676  	}
  2677  
  2678  	output = &CreateKeysAndCertificateOutput{}
  2679  	req = c.newRequest(op, input, output)
  2680  	return
  2681  }
  2682  
  2683  // CreateKeysAndCertificate API operation for AWS IoT.
  2684  //
  2685  // Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
  2686  // issued public key. You can also call CreateKeysAndCertificate over MQTT from
  2687  // a device, for more information, see Provisioning MQTT API (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api).
  2688  //
  2689  // Note This is the only time IoT issues the private key for this certificate,
  2690  // so it is important to keep it in a secure location.
  2691  //
  2692  // Requires permission to access the CreateKeysAndCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2693  // action.
  2694  //
  2695  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2696  // with awserr.Error's Code and Message methods to get detailed information about
  2697  // the error.
  2698  //
  2699  // See the AWS API reference guide for AWS IoT's
  2700  // API operation CreateKeysAndCertificate for usage and error information.
  2701  //
  2702  // Returned Error Types:
  2703  //   * InvalidRequestException
  2704  //   The request is not valid.
  2705  //
  2706  //   * ThrottlingException
  2707  //   The rate exceeds the limit.
  2708  //
  2709  //   * UnauthorizedException
  2710  //   You are not authorized to perform this operation.
  2711  //
  2712  //   * ServiceUnavailableException
  2713  //   The service is temporarily unavailable.
  2714  //
  2715  //   * InternalFailureException
  2716  //   An unexpected error has occurred.
  2717  //
  2718  func (c *IoT) CreateKeysAndCertificate(input *CreateKeysAndCertificateInput) (*CreateKeysAndCertificateOutput, error) {
  2719  	req, out := c.CreateKeysAndCertificateRequest(input)
  2720  	return out, req.Send()
  2721  }
  2722  
  2723  // CreateKeysAndCertificateWithContext is the same as CreateKeysAndCertificate with the addition of
  2724  // the ability to pass a context and additional request options.
  2725  //
  2726  // See CreateKeysAndCertificate for details on how to use this API operation.
  2727  //
  2728  // The context must be non-nil and will be used for request cancellation. If
  2729  // the context is nil a panic will occur. In the future the SDK may create
  2730  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2731  // for more information on using Contexts.
  2732  func (c *IoT) CreateKeysAndCertificateWithContext(ctx aws.Context, input *CreateKeysAndCertificateInput, opts ...request.Option) (*CreateKeysAndCertificateOutput, error) {
  2733  	req, out := c.CreateKeysAndCertificateRequest(input)
  2734  	req.SetContext(ctx)
  2735  	req.ApplyOptions(opts...)
  2736  	return out, req.Send()
  2737  }
  2738  
  2739  const opCreateMitigationAction = "CreateMitigationAction"
  2740  
  2741  // CreateMitigationActionRequest generates a "aws/request.Request" representing the
  2742  // client's request for the CreateMitigationAction operation. The "output" return
  2743  // value will be populated with the request's response once the request completes
  2744  // successfully.
  2745  //
  2746  // Use "Send" method on the returned Request to send the API call to the service.
  2747  // the "output" return value is not valid until after Send returns without error.
  2748  //
  2749  // See CreateMitigationAction for more information on using the CreateMitigationAction
  2750  // API call, and error handling.
  2751  //
  2752  // This method is useful when you want to inject custom logic or configuration
  2753  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2754  //
  2755  //
  2756  //    // Example sending a request using the CreateMitigationActionRequest method.
  2757  //    req, resp := client.CreateMitigationActionRequest(params)
  2758  //
  2759  //    err := req.Send()
  2760  //    if err == nil { // resp is now filled
  2761  //        fmt.Println(resp)
  2762  //    }
  2763  func (c *IoT) CreateMitigationActionRequest(input *CreateMitigationActionInput) (req *request.Request, output *CreateMitigationActionOutput) {
  2764  	op := &request.Operation{
  2765  		Name:       opCreateMitigationAction,
  2766  		HTTPMethod: "POST",
  2767  		HTTPPath:   "/mitigationactions/actions/{actionName}",
  2768  	}
  2769  
  2770  	if input == nil {
  2771  		input = &CreateMitigationActionInput{}
  2772  	}
  2773  
  2774  	output = &CreateMitigationActionOutput{}
  2775  	req = c.newRequest(op, input, output)
  2776  	return
  2777  }
  2778  
  2779  // CreateMitigationAction API operation for AWS IoT.
  2780  //
  2781  // Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask.
  2782  // Only certain types of mitigation actions can be applied to specific check
  2783  // names. For more information, see Mitigation actions (https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html).
  2784  // Each mitigation action can apply only one type of change.
  2785  //
  2786  // Requires permission to access the CreateMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2787  // action.
  2788  //
  2789  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2790  // with awserr.Error's Code and Message methods to get detailed information about
  2791  // the error.
  2792  //
  2793  // See the AWS API reference guide for AWS IoT's
  2794  // API operation CreateMitigationAction for usage and error information.
  2795  //
  2796  // Returned Error Types:
  2797  //   * InvalidRequestException
  2798  //   The request is not valid.
  2799  //
  2800  //   * ResourceAlreadyExistsException
  2801  //   The resource already exists.
  2802  //
  2803  //   * LimitExceededException
  2804  //   A limit has been exceeded.
  2805  //
  2806  //   * ThrottlingException
  2807  //   The rate exceeds the limit.
  2808  //
  2809  //   * InternalFailureException
  2810  //   An unexpected error has occurred.
  2811  //
  2812  func (c *IoT) CreateMitigationAction(input *CreateMitigationActionInput) (*CreateMitigationActionOutput, error) {
  2813  	req, out := c.CreateMitigationActionRequest(input)
  2814  	return out, req.Send()
  2815  }
  2816  
  2817  // CreateMitigationActionWithContext is the same as CreateMitigationAction with the addition of
  2818  // the ability to pass a context and additional request options.
  2819  //
  2820  // See CreateMitigationAction for details on how to use this API operation.
  2821  //
  2822  // The context must be non-nil and will be used for request cancellation. If
  2823  // the context is nil a panic will occur. In the future the SDK may create
  2824  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2825  // for more information on using Contexts.
  2826  func (c *IoT) CreateMitigationActionWithContext(ctx aws.Context, input *CreateMitigationActionInput, opts ...request.Option) (*CreateMitigationActionOutput, error) {
  2827  	req, out := c.CreateMitigationActionRequest(input)
  2828  	req.SetContext(ctx)
  2829  	req.ApplyOptions(opts...)
  2830  	return out, req.Send()
  2831  }
  2832  
  2833  const opCreateOTAUpdate = "CreateOTAUpdate"
  2834  
  2835  // CreateOTAUpdateRequest generates a "aws/request.Request" representing the
  2836  // client's request for the CreateOTAUpdate operation. The "output" return
  2837  // value will be populated with the request's response once the request completes
  2838  // successfully.
  2839  //
  2840  // Use "Send" method on the returned Request to send the API call to the service.
  2841  // the "output" return value is not valid until after Send returns without error.
  2842  //
  2843  // See CreateOTAUpdate for more information on using the CreateOTAUpdate
  2844  // API call, and error handling.
  2845  //
  2846  // This method is useful when you want to inject custom logic or configuration
  2847  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2848  //
  2849  //
  2850  //    // Example sending a request using the CreateOTAUpdateRequest method.
  2851  //    req, resp := client.CreateOTAUpdateRequest(params)
  2852  //
  2853  //    err := req.Send()
  2854  //    if err == nil { // resp is now filled
  2855  //        fmt.Println(resp)
  2856  //    }
  2857  func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request.Request, output *CreateOTAUpdateOutput) {
  2858  	op := &request.Operation{
  2859  		Name:       opCreateOTAUpdate,
  2860  		HTTPMethod: "POST",
  2861  		HTTPPath:   "/otaUpdates/{otaUpdateId}",
  2862  	}
  2863  
  2864  	if input == nil {
  2865  		input = &CreateOTAUpdateInput{}
  2866  	}
  2867  
  2868  	output = &CreateOTAUpdateOutput{}
  2869  	req = c.newRequest(op, input, output)
  2870  	return
  2871  }
  2872  
  2873  // CreateOTAUpdate API operation for AWS IoT.
  2874  //
  2875  // Creates an IoT OTA update on a target group of things or groups.
  2876  //
  2877  // Requires permission to access the CreateOTAUpdate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2878  // action.
  2879  //
  2880  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2881  // with awserr.Error's Code and Message methods to get detailed information about
  2882  // the error.
  2883  //
  2884  // See the AWS API reference guide for AWS IoT's
  2885  // API operation CreateOTAUpdate for usage and error information.
  2886  //
  2887  // Returned Error Types:
  2888  //   * InvalidRequestException
  2889  //   The request is not valid.
  2890  //
  2891  //   * LimitExceededException
  2892  //   A limit has been exceeded.
  2893  //
  2894  //   * ResourceNotFoundException
  2895  //   The specified resource does not exist.
  2896  //
  2897  //   * ResourceAlreadyExistsException
  2898  //   The resource already exists.
  2899  //
  2900  //   * ThrottlingException
  2901  //   The rate exceeds the limit.
  2902  //
  2903  //   * UnauthorizedException
  2904  //   You are not authorized to perform this operation.
  2905  //
  2906  //   * InternalFailureException
  2907  //   An unexpected error has occurred.
  2908  //
  2909  //   * ServiceUnavailableException
  2910  //   The service is temporarily unavailable.
  2911  //
  2912  func (c *IoT) CreateOTAUpdate(input *CreateOTAUpdateInput) (*CreateOTAUpdateOutput, error) {
  2913  	req, out := c.CreateOTAUpdateRequest(input)
  2914  	return out, req.Send()
  2915  }
  2916  
  2917  // CreateOTAUpdateWithContext is the same as CreateOTAUpdate with the addition of
  2918  // the ability to pass a context and additional request options.
  2919  //
  2920  // See CreateOTAUpdate for details on how to use this API operation.
  2921  //
  2922  // The context must be non-nil and will be used for request cancellation. If
  2923  // the context is nil a panic will occur. In the future the SDK may create
  2924  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2925  // for more information on using Contexts.
  2926  func (c *IoT) CreateOTAUpdateWithContext(ctx aws.Context, input *CreateOTAUpdateInput, opts ...request.Option) (*CreateOTAUpdateOutput, error) {
  2927  	req, out := c.CreateOTAUpdateRequest(input)
  2928  	req.SetContext(ctx)
  2929  	req.ApplyOptions(opts...)
  2930  	return out, req.Send()
  2931  }
  2932  
  2933  const opCreatePolicy = "CreatePolicy"
  2934  
  2935  // CreatePolicyRequest generates a "aws/request.Request" representing the
  2936  // client's request for the CreatePolicy operation. The "output" return
  2937  // value will be populated with the request's response once the request completes
  2938  // successfully.
  2939  //
  2940  // Use "Send" method on the returned Request to send the API call to the service.
  2941  // the "output" return value is not valid until after Send returns without error.
  2942  //
  2943  // See CreatePolicy for more information on using the CreatePolicy
  2944  // API call, and error handling.
  2945  //
  2946  // This method is useful when you want to inject custom logic or configuration
  2947  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2948  //
  2949  //
  2950  //    // Example sending a request using the CreatePolicyRequest method.
  2951  //    req, resp := client.CreatePolicyRequest(params)
  2952  //
  2953  //    err := req.Send()
  2954  //    if err == nil { // resp is now filled
  2955  //        fmt.Println(resp)
  2956  //    }
  2957  func (c *IoT) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
  2958  	op := &request.Operation{
  2959  		Name:       opCreatePolicy,
  2960  		HTTPMethod: "POST",
  2961  		HTTPPath:   "/policies/{policyName}",
  2962  	}
  2963  
  2964  	if input == nil {
  2965  		input = &CreatePolicyInput{}
  2966  	}
  2967  
  2968  	output = &CreatePolicyOutput{}
  2969  	req = c.newRequest(op, input, output)
  2970  	return
  2971  }
  2972  
  2973  // CreatePolicy API operation for AWS IoT.
  2974  //
  2975  // Creates an IoT policy.
  2976  //
  2977  // The created policy is the default version for the policy. This operation
  2978  // creates a policy version with a version identifier of 1 and sets 1 as the
  2979  // policy's default version.
  2980  //
  2981  // Requires permission to access the CreatePolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  2982  // action.
  2983  //
  2984  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2985  // with awserr.Error's Code and Message methods to get detailed information about
  2986  // the error.
  2987  //
  2988  // See the AWS API reference guide for AWS IoT's
  2989  // API operation CreatePolicy for usage and error information.
  2990  //
  2991  // Returned Error Types:
  2992  //   * ResourceAlreadyExistsException
  2993  //   The resource already exists.
  2994  //
  2995  //   * MalformedPolicyException
  2996  //   The policy documentation is not valid.
  2997  //
  2998  //   * InvalidRequestException
  2999  //   The request is not valid.
  3000  //
  3001  //   * ThrottlingException
  3002  //   The rate exceeds the limit.
  3003  //
  3004  //   * UnauthorizedException
  3005  //   You are not authorized to perform this operation.
  3006  //
  3007  //   * ServiceUnavailableException
  3008  //   The service is temporarily unavailable.
  3009  //
  3010  //   * InternalFailureException
  3011  //   An unexpected error has occurred.
  3012  //
  3013  func (c *IoT) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
  3014  	req, out := c.CreatePolicyRequest(input)
  3015  	return out, req.Send()
  3016  }
  3017  
  3018  // CreatePolicyWithContext is the same as CreatePolicy with the addition of
  3019  // the ability to pass a context and additional request options.
  3020  //
  3021  // See CreatePolicy for details on how to use this API operation.
  3022  //
  3023  // The context must be non-nil and will be used for request cancellation. If
  3024  // the context is nil a panic will occur. In the future the SDK may create
  3025  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3026  // for more information on using Contexts.
  3027  func (c *IoT) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
  3028  	req, out := c.CreatePolicyRequest(input)
  3029  	req.SetContext(ctx)
  3030  	req.ApplyOptions(opts...)
  3031  	return out, req.Send()
  3032  }
  3033  
  3034  const opCreatePolicyVersion = "CreatePolicyVersion"
  3035  
  3036  // CreatePolicyVersionRequest generates a "aws/request.Request" representing the
  3037  // client's request for the CreatePolicyVersion operation. The "output" return
  3038  // value will be populated with the request's response once the request completes
  3039  // successfully.
  3040  //
  3041  // Use "Send" method on the returned Request to send the API call to the service.
  3042  // the "output" return value is not valid until after Send returns without error.
  3043  //
  3044  // See CreatePolicyVersion for more information on using the CreatePolicyVersion
  3045  // API call, and error handling.
  3046  //
  3047  // This method is useful when you want to inject custom logic or configuration
  3048  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3049  //
  3050  //
  3051  //    // Example sending a request using the CreatePolicyVersionRequest method.
  3052  //    req, resp := client.CreatePolicyVersionRequest(params)
  3053  //
  3054  //    err := req.Send()
  3055  //    if err == nil { // resp is now filled
  3056  //        fmt.Println(resp)
  3057  //    }
  3058  func (c *IoT) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
  3059  	op := &request.Operation{
  3060  		Name:       opCreatePolicyVersion,
  3061  		HTTPMethod: "POST",
  3062  		HTTPPath:   "/policies/{policyName}/version",
  3063  	}
  3064  
  3065  	if input == nil {
  3066  		input = &CreatePolicyVersionInput{}
  3067  	}
  3068  
  3069  	output = &CreatePolicyVersionOutput{}
  3070  	req = c.newRequest(op, input, output)
  3071  	return
  3072  }
  3073  
  3074  // CreatePolicyVersion API operation for AWS IoT.
  3075  //
  3076  // Creates a new version of the specified IoT policy. To update a policy, create
  3077  // a new policy version. A managed policy can have up to five versions. If the
  3078  // policy has five versions, you must use DeletePolicyVersion to delete an existing
  3079  // version before you create a new one.
  3080  //
  3081  // Optionally, you can set the new version as the policy's default version.
  3082  // The default version is the operative version (that is, the version that is
  3083  // in effect for the certificates to which the policy is attached).
  3084  //
  3085  // Requires permission to access the CreatePolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3086  // action.
  3087  //
  3088  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3089  // with awserr.Error's Code and Message methods to get detailed information about
  3090  // the error.
  3091  //
  3092  // See the AWS API reference guide for AWS IoT's
  3093  // API operation CreatePolicyVersion for usage and error information.
  3094  //
  3095  // Returned Error Types:
  3096  //   * ResourceNotFoundException
  3097  //   The specified resource does not exist.
  3098  //
  3099  //   * MalformedPolicyException
  3100  //   The policy documentation is not valid.
  3101  //
  3102  //   * VersionsLimitExceededException
  3103  //   The number of policy versions exceeds the limit.
  3104  //
  3105  //   * InvalidRequestException
  3106  //   The request is not valid.
  3107  //
  3108  //   * ThrottlingException
  3109  //   The rate exceeds the limit.
  3110  //
  3111  //   * UnauthorizedException
  3112  //   You are not authorized to perform this operation.
  3113  //
  3114  //   * ServiceUnavailableException
  3115  //   The service is temporarily unavailable.
  3116  //
  3117  //   * InternalFailureException
  3118  //   An unexpected error has occurred.
  3119  //
  3120  func (c *IoT) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
  3121  	req, out := c.CreatePolicyVersionRequest(input)
  3122  	return out, req.Send()
  3123  }
  3124  
  3125  // CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
  3126  // the ability to pass a context and additional request options.
  3127  //
  3128  // See CreatePolicyVersion for details on how to use this API operation.
  3129  //
  3130  // The context must be non-nil and will be used for request cancellation. If
  3131  // the context is nil a panic will occur. In the future the SDK may create
  3132  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3133  // for more information on using Contexts.
  3134  func (c *IoT) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
  3135  	req, out := c.CreatePolicyVersionRequest(input)
  3136  	req.SetContext(ctx)
  3137  	req.ApplyOptions(opts...)
  3138  	return out, req.Send()
  3139  }
  3140  
  3141  const opCreateProvisioningClaim = "CreateProvisioningClaim"
  3142  
  3143  // CreateProvisioningClaimRequest generates a "aws/request.Request" representing the
  3144  // client's request for the CreateProvisioningClaim operation. The "output" return
  3145  // value will be populated with the request's response once the request completes
  3146  // successfully.
  3147  //
  3148  // Use "Send" method on the returned Request to send the API call to the service.
  3149  // the "output" return value is not valid until after Send returns without error.
  3150  //
  3151  // See CreateProvisioningClaim for more information on using the CreateProvisioningClaim
  3152  // API call, and error handling.
  3153  //
  3154  // This method is useful when you want to inject custom logic or configuration
  3155  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3156  //
  3157  //
  3158  //    // Example sending a request using the CreateProvisioningClaimRequest method.
  3159  //    req, resp := client.CreateProvisioningClaimRequest(params)
  3160  //
  3161  //    err := req.Send()
  3162  //    if err == nil { // resp is now filled
  3163  //        fmt.Println(resp)
  3164  //    }
  3165  func (c *IoT) CreateProvisioningClaimRequest(input *CreateProvisioningClaimInput) (req *request.Request, output *CreateProvisioningClaimOutput) {
  3166  	op := &request.Operation{
  3167  		Name:       opCreateProvisioningClaim,
  3168  		HTTPMethod: "POST",
  3169  		HTTPPath:   "/provisioning-templates/{templateName}/provisioning-claim",
  3170  	}
  3171  
  3172  	if input == nil {
  3173  		input = &CreateProvisioningClaimInput{}
  3174  	}
  3175  
  3176  	output = &CreateProvisioningClaimOutput{}
  3177  	req = c.newRequest(op, input, output)
  3178  	return
  3179  }
  3180  
  3181  // CreateProvisioningClaim API operation for AWS IoT.
  3182  //
  3183  // Creates a provisioning claim.
  3184  //
  3185  // Requires permission to access the CreateProvisioningClaim (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3186  // action.
  3187  //
  3188  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3189  // with awserr.Error's Code and Message methods to get detailed information about
  3190  // the error.
  3191  //
  3192  // See the AWS API reference guide for AWS IoT's
  3193  // API operation CreateProvisioningClaim for usage and error information.
  3194  //
  3195  // Returned Error Types:
  3196  //   * InvalidRequestException
  3197  //   The request is not valid.
  3198  //
  3199  //   * ResourceNotFoundException
  3200  //   The specified resource does not exist.
  3201  //
  3202  //   * ThrottlingException
  3203  //   The rate exceeds the limit.
  3204  //
  3205  //   * UnauthorizedException
  3206  //   You are not authorized to perform this operation.
  3207  //
  3208  //   * ServiceUnavailableException
  3209  //   The service is temporarily unavailable.
  3210  //
  3211  //   * InternalFailureException
  3212  //   An unexpected error has occurred.
  3213  //
  3214  func (c *IoT) CreateProvisioningClaim(input *CreateProvisioningClaimInput) (*CreateProvisioningClaimOutput, error) {
  3215  	req, out := c.CreateProvisioningClaimRequest(input)
  3216  	return out, req.Send()
  3217  }
  3218  
  3219  // CreateProvisioningClaimWithContext is the same as CreateProvisioningClaim with the addition of
  3220  // the ability to pass a context and additional request options.
  3221  //
  3222  // See CreateProvisioningClaim for details on how to use this API operation.
  3223  //
  3224  // The context must be non-nil and will be used for request cancellation. If
  3225  // the context is nil a panic will occur. In the future the SDK may create
  3226  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3227  // for more information on using Contexts.
  3228  func (c *IoT) CreateProvisioningClaimWithContext(ctx aws.Context, input *CreateProvisioningClaimInput, opts ...request.Option) (*CreateProvisioningClaimOutput, error) {
  3229  	req, out := c.CreateProvisioningClaimRequest(input)
  3230  	req.SetContext(ctx)
  3231  	req.ApplyOptions(opts...)
  3232  	return out, req.Send()
  3233  }
  3234  
  3235  const opCreateProvisioningTemplate = "CreateProvisioningTemplate"
  3236  
  3237  // CreateProvisioningTemplateRequest generates a "aws/request.Request" representing the
  3238  // client's request for the CreateProvisioningTemplate operation. The "output" return
  3239  // value will be populated with the request's response once the request completes
  3240  // successfully.
  3241  //
  3242  // Use "Send" method on the returned Request to send the API call to the service.
  3243  // the "output" return value is not valid until after Send returns without error.
  3244  //
  3245  // See CreateProvisioningTemplate for more information on using the CreateProvisioningTemplate
  3246  // API call, and error handling.
  3247  //
  3248  // This method is useful when you want to inject custom logic or configuration
  3249  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3250  //
  3251  //
  3252  //    // Example sending a request using the CreateProvisioningTemplateRequest method.
  3253  //    req, resp := client.CreateProvisioningTemplateRequest(params)
  3254  //
  3255  //    err := req.Send()
  3256  //    if err == nil { // resp is now filled
  3257  //        fmt.Println(resp)
  3258  //    }
  3259  func (c *IoT) CreateProvisioningTemplateRequest(input *CreateProvisioningTemplateInput) (req *request.Request, output *CreateProvisioningTemplateOutput) {
  3260  	op := &request.Operation{
  3261  		Name:       opCreateProvisioningTemplate,
  3262  		HTTPMethod: "POST",
  3263  		HTTPPath:   "/provisioning-templates",
  3264  	}
  3265  
  3266  	if input == nil {
  3267  		input = &CreateProvisioningTemplateInput{}
  3268  	}
  3269  
  3270  	output = &CreateProvisioningTemplateOutput{}
  3271  	req = c.newRequest(op, input, output)
  3272  	return
  3273  }
  3274  
  3275  // CreateProvisioningTemplate API operation for AWS IoT.
  3276  //
  3277  // Creates a fleet provisioning template.
  3278  //
  3279  // Requires permission to access the CreateProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3280  // action.
  3281  //
  3282  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3283  // with awserr.Error's Code and Message methods to get detailed information about
  3284  // the error.
  3285  //
  3286  // See the AWS API reference guide for AWS IoT's
  3287  // API operation CreateProvisioningTemplate for usage and error information.
  3288  //
  3289  // Returned Error Types:
  3290  //   * InternalFailureException
  3291  //   An unexpected error has occurred.
  3292  //
  3293  //   * InvalidRequestException
  3294  //   The request is not valid.
  3295  //
  3296  //   * LimitExceededException
  3297  //   A limit has been exceeded.
  3298  //
  3299  //   * ThrottlingException
  3300  //   The rate exceeds the limit.
  3301  //
  3302  //   * UnauthorizedException
  3303  //   You are not authorized to perform this operation.
  3304  //
  3305  //   * ResourceAlreadyExistsException
  3306  //   The resource already exists.
  3307  //
  3308  func (c *IoT) CreateProvisioningTemplate(input *CreateProvisioningTemplateInput) (*CreateProvisioningTemplateOutput, error) {
  3309  	req, out := c.CreateProvisioningTemplateRequest(input)
  3310  	return out, req.Send()
  3311  }
  3312  
  3313  // CreateProvisioningTemplateWithContext is the same as CreateProvisioningTemplate with the addition of
  3314  // the ability to pass a context and additional request options.
  3315  //
  3316  // See CreateProvisioningTemplate for details on how to use this API operation.
  3317  //
  3318  // The context must be non-nil and will be used for request cancellation. If
  3319  // the context is nil a panic will occur. In the future the SDK may create
  3320  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3321  // for more information on using Contexts.
  3322  func (c *IoT) CreateProvisioningTemplateWithContext(ctx aws.Context, input *CreateProvisioningTemplateInput, opts ...request.Option) (*CreateProvisioningTemplateOutput, error) {
  3323  	req, out := c.CreateProvisioningTemplateRequest(input)
  3324  	req.SetContext(ctx)
  3325  	req.ApplyOptions(opts...)
  3326  	return out, req.Send()
  3327  }
  3328  
  3329  const opCreateProvisioningTemplateVersion = "CreateProvisioningTemplateVersion"
  3330  
  3331  // CreateProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
  3332  // client's request for the CreateProvisioningTemplateVersion operation. The "output" return
  3333  // value will be populated with the request's response once the request completes
  3334  // successfully.
  3335  //
  3336  // Use "Send" method on the returned Request to send the API call to the service.
  3337  // the "output" return value is not valid until after Send returns without error.
  3338  //
  3339  // See CreateProvisioningTemplateVersion for more information on using the CreateProvisioningTemplateVersion
  3340  // API call, and error handling.
  3341  //
  3342  // This method is useful when you want to inject custom logic or configuration
  3343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3344  //
  3345  //
  3346  //    // Example sending a request using the CreateProvisioningTemplateVersionRequest method.
  3347  //    req, resp := client.CreateProvisioningTemplateVersionRequest(params)
  3348  //
  3349  //    err := req.Send()
  3350  //    if err == nil { // resp is now filled
  3351  //        fmt.Println(resp)
  3352  //    }
  3353  func (c *IoT) CreateProvisioningTemplateVersionRequest(input *CreateProvisioningTemplateVersionInput) (req *request.Request, output *CreateProvisioningTemplateVersionOutput) {
  3354  	op := &request.Operation{
  3355  		Name:       opCreateProvisioningTemplateVersion,
  3356  		HTTPMethod: "POST",
  3357  		HTTPPath:   "/provisioning-templates/{templateName}/versions",
  3358  	}
  3359  
  3360  	if input == nil {
  3361  		input = &CreateProvisioningTemplateVersionInput{}
  3362  	}
  3363  
  3364  	output = &CreateProvisioningTemplateVersionOutput{}
  3365  	req = c.newRequest(op, input, output)
  3366  	return
  3367  }
  3368  
  3369  // CreateProvisioningTemplateVersion API operation for AWS IoT.
  3370  //
  3371  // Creates a new version of a fleet provisioning template.
  3372  //
  3373  // Requires permission to access the CreateProvisioningTemplateVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3374  // action.
  3375  //
  3376  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3377  // with awserr.Error's Code and Message methods to get detailed information about
  3378  // the error.
  3379  //
  3380  // See the AWS API reference guide for AWS IoT's
  3381  // API operation CreateProvisioningTemplateVersion for usage and error information.
  3382  //
  3383  // Returned Error Types:
  3384  //   * VersionsLimitExceededException
  3385  //   The number of policy versions exceeds the limit.
  3386  //
  3387  //   * InternalFailureException
  3388  //   An unexpected error has occurred.
  3389  //
  3390  //   * InvalidRequestException
  3391  //   The request is not valid.
  3392  //
  3393  //   * ThrottlingException
  3394  //   The rate exceeds the limit.
  3395  //
  3396  //   * ResourceNotFoundException
  3397  //   The specified resource does not exist.
  3398  //
  3399  //   * UnauthorizedException
  3400  //   You are not authorized to perform this operation.
  3401  //
  3402  //   * ConflictingResourceUpdateException
  3403  //   A conflicting resource update exception. This exception is thrown when two
  3404  //   pending updates cause a conflict.
  3405  //
  3406  func (c *IoT) CreateProvisioningTemplateVersion(input *CreateProvisioningTemplateVersionInput) (*CreateProvisioningTemplateVersionOutput, error) {
  3407  	req, out := c.CreateProvisioningTemplateVersionRequest(input)
  3408  	return out, req.Send()
  3409  }
  3410  
  3411  // CreateProvisioningTemplateVersionWithContext is the same as CreateProvisioningTemplateVersion with the addition of
  3412  // the ability to pass a context and additional request options.
  3413  //
  3414  // See CreateProvisioningTemplateVersion for details on how to use this API operation.
  3415  //
  3416  // The context must be non-nil and will be used for request cancellation. If
  3417  // the context is nil a panic will occur. In the future the SDK may create
  3418  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3419  // for more information on using Contexts.
  3420  func (c *IoT) CreateProvisioningTemplateVersionWithContext(ctx aws.Context, input *CreateProvisioningTemplateVersionInput, opts ...request.Option) (*CreateProvisioningTemplateVersionOutput, error) {
  3421  	req, out := c.CreateProvisioningTemplateVersionRequest(input)
  3422  	req.SetContext(ctx)
  3423  	req.ApplyOptions(opts...)
  3424  	return out, req.Send()
  3425  }
  3426  
  3427  const opCreateRoleAlias = "CreateRoleAlias"
  3428  
  3429  // CreateRoleAliasRequest generates a "aws/request.Request" representing the
  3430  // client's request for the CreateRoleAlias operation. The "output" return
  3431  // value will be populated with the request's response once the request completes
  3432  // successfully.
  3433  //
  3434  // Use "Send" method on the returned Request to send the API call to the service.
  3435  // the "output" return value is not valid until after Send returns without error.
  3436  //
  3437  // See CreateRoleAlias for more information on using the CreateRoleAlias
  3438  // API call, and error handling.
  3439  //
  3440  // This method is useful when you want to inject custom logic or configuration
  3441  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3442  //
  3443  //
  3444  //    // Example sending a request using the CreateRoleAliasRequest method.
  3445  //    req, resp := client.CreateRoleAliasRequest(params)
  3446  //
  3447  //    err := req.Send()
  3448  //    if err == nil { // resp is now filled
  3449  //        fmt.Println(resp)
  3450  //    }
  3451  func (c *IoT) CreateRoleAliasRequest(input *CreateRoleAliasInput) (req *request.Request, output *CreateRoleAliasOutput) {
  3452  	op := &request.Operation{
  3453  		Name:       opCreateRoleAlias,
  3454  		HTTPMethod: "POST",
  3455  		HTTPPath:   "/role-aliases/{roleAlias}",
  3456  	}
  3457  
  3458  	if input == nil {
  3459  		input = &CreateRoleAliasInput{}
  3460  	}
  3461  
  3462  	output = &CreateRoleAliasOutput{}
  3463  	req = c.newRequest(op, input, output)
  3464  	return
  3465  }
  3466  
  3467  // CreateRoleAlias API operation for AWS IoT.
  3468  //
  3469  // Creates a role alias.
  3470  //
  3471  // Requires permission to access the CreateRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3472  // action.
  3473  //
  3474  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3475  // with awserr.Error's Code and Message methods to get detailed information about
  3476  // the error.
  3477  //
  3478  // See the AWS API reference guide for AWS IoT's
  3479  // API operation CreateRoleAlias for usage and error information.
  3480  //
  3481  // Returned Error Types:
  3482  //   * ResourceAlreadyExistsException
  3483  //   The resource already exists.
  3484  //
  3485  //   * InvalidRequestException
  3486  //   The request is not valid.
  3487  //
  3488  //   * LimitExceededException
  3489  //   A limit has been exceeded.
  3490  //
  3491  //   * ThrottlingException
  3492  //   The rate exceeds the limit.
  3493  //
  3494  //   * UnauthorizedException
  3495  //   You are not authorized to perform this operation.
  3496  //
  3497  //   * ServiceUnavailableException
  3498  //   The service is temporarily unavailable.
  3499  //
  3500  //   * InternalFailureException
  3501  //   An unexpected error has occurred.
  3502  //
  3503  func (c *IoT) CreateRoleAlias(input *CreateRoleAliasInput) (*CreateRoleAliasOutput, error) {
  3504  	req, out := c.CreateRoleAliasRequest(input)
  3505  	return out, req.Send()
  3506  }
  3507  
  3508  // CreateRoleAliasWithContext is the same as CreateRoleAlias with the addition of
  3509  // the ability to pass a context and additional request options.
  3510  //
  3511  // See CreateRoleAlias for details on how to use this API operation.
  3512  //
  3513  // The context must be non-nil and will be used for request cancellation. If
  3514  // the context is nil a panic will occur. In the future the SDK may create
  3515  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3516  // for more information on using Contexts.
  3517  func (c *IoT) CreateRoleAliasWithContext(ctx aws.Context, input *CreateRoleAliasInput, opts ...request.Option) (*CreateRoleAliasOutput, error) {
  3518  	req, out := c.CreateRoleAliasRequest(input)
  3519  	req.SetContext(ctx)
  3520  	req.ApplyOptions(opts...)
  3521  	return out, req.Send()
  3522  }
  3523  
  3524  const opCreateScheduledAudit = "CreateScheduledAudit"
  3525  
  3526  // CreateScheduledAuditRequest generates a "aws/request.Request" representing the
  3527  // client's request for the CreateScheduledAudit operation. The "output" return
  3528  // value will be populated with the request's response once the request completes
  3529  // successfully.
  3530  //
  3531  // Use "Send" method on the returned Request to send the API call to the service.
  3532  // the "output" return value is not valid until after Send returns without error.
  3533  //
  3534  // See CreateScheduledAudit for more information on using the CreateScheduledAudit
  3535  // API call, and error handling.
  3536  //
  3537  // This method is useful when you want to inject custom logic or configuration
  3538  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3539  //
  3540  //
  3541  //    // Example sending a request using the CreateScheduledAuditRequest method.
  3542  //    req, resp := client.CreateScheduledAuditRequest(params)
  3543  //
  3544  //    err := req.Send()
  3545  //    if err == nil { // resp is now filled
  3546  //        fmt.Println(resp)
  3547  //    }
  3548  func (c *IoT) CreateScheduledAuditRequest(input *CreateScheduledAuditInput) (req *request.Request, output *CreateScheduledAuditOutput) {
  3549  	op := &request.Operation{
  3550  		Name:       opCreateScheduledAudit,
  3551  		HTTPMethod: "POST",
  3552  		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
  3553  	}
  3554  
  3555  	if input == nil {
  3556  		input = &CreateScheduledAuditInput{}
  3557  	}
  3558  
  3559  	output = &CreateScheduledAuditOutput{}
  3560  	req = c.newRequest(op, input, output)
  3561  	return
  3562  }
  3563  
  3564  // CreateScheduledAudit API operation for AWS IoT.
  3565  //
  3566  // Creates a scheduled audit that is run at a specified time interval.
  3567  //
  3568  // Requires permission to access the CreateScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3569  // action.
  3570  //
  3571  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3572  // with awserr.Error's Code and Message methods to get detailed information about
  3573  // the error.
  3574  //
  3575  // See the AWS API reference guide for AWS IoT's
  3576  // API operation CreateScheduledAudit for usage and error information.
  3577  //
  3578  // Returned Error Types:
  3579  //   * InvalidRequestException
  3580  //   The request is not valid.
  3581  //
  3582  //   * ResourceAlreadyExistsException
  3583  //   The resource already exists.
  3584  //
  3585  //   * ThrottlingException
  3586  //   The rate exceeds the limit.
  3587  //
  3588  //   * InternalFailureException
  3589  //   An unexpected error has occurred.
  3590  //
  3591  //   * LimitExceededException
  3592  //   A limit has been exceeded.
  3593  //
  3594  func (c *IoT) CreateScheduledAudit(input *CreateScheduledAuditInput) (*CreateScheduledAuditOutput, error) {
  3595  	req, out := c.CreateScheduledAuditRequest(input)
  3596  	return out, req.Send()
  3597  }
  3598  
  3599  // CreateScheduledAuditWithContext is the same as CreateScheduledAudit with the addition of
  3600  // the ability to pass a context and additional request options.
  3601  //
  3602  // See CreateScheduledAudit for details on how to use this API operation.
  3603  //
  3604  // The context must be non-nil and will be used for request cancellation. If
  3605  // the context is nil a panic will occur. In the future the SDK may create
  3606  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3607  // for more information on using Contexts.
  3608  func (c *IoT) CreateScheduledAuditWithContext(ctx aws.Context, input *CreateScheduledAuditInput, opts ...request.Option) (*CreateScheduledAuditOutput, error) {
  3609  	req, out := c.CreateScheduledAuditRequest(input)
  3610  	req.SetContext(ctx)
  3611  	req.ApplyOptions(opts...)
  3612  	return out, req.Send()
  3613  }
  3614  
  3615  const opCreateSecurityProfile = "CreateSecurityProfile"
  3616  
  3617  // CreateSecurityProfileRequest generates a "aws/request.Request" representing the
  3618  // client's request for the CreateSecurityProfile operation. The "output" return
  3619  // value will be populated with the request's response once the request completes
  3620  // successfully.
  3621  //
  3622  // Use "Send" method on the returned Request to send the API call to the service.
  3623  // the "output" return value is not valid until after Send returns without error.
  3624  //
  3625  // See CreateSecurityProfile for more information on using the CreateSecurityProfile
  3626  // API call, and error handling.
  3627  //
  3628  // This method is useful when you want to inject custom logic or configuration
  3629  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3630  //
  3631  //
  3632  //    // Example sending a request using the CreateSecurityProfileRequest method.
  3633  //    req, resp := client.CreateSecurityProfileRequest(params)
  3634  //
  3635  //    err := req.Send()
  3636  //    if err == nil { // resp is now filled
  3637  //        fmt.Println(resp)
  3638  //    }
  3639  func (c *IoT) CreateSecurityProfileRequest(input *CreateSecurityProfileInput) (req *request.Request, output *CreateSecurityProfileOutput) {
  3640  	op := &request.Operation{
  3641  		Name:       opCreateSecurityProfile,
  3642  		HTTPMethod: "POST",
  3643  		HTTPPath:   "/security-profiles/{securityProfileName}",
  3644  	}
  3645  
  3646  	if input == nil {
  3647  		input = &CreateSecurityProfileInput{}
  3648  	}
  3649  
  3650  	output = &CreateSecurityProfileOutput{}
  3651  	req = c.newRequest(op, input, output)
  3652  	return
  3653  }
  3654  
  3655  // CreateSecurityProfile API operation for AWS IoT.
  3656  //
  3657  // Creates a Device Defender security profile.
  3658  //
  3659  // Requires permission to access the CreateSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3660  // action.
  3661  //
  3662  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3663  // with awserr.Error's Code and Message methods to get detailed information about
  3664  // the error.
  3665  //
  3666  // See the AWS API reference guide for AWS IoT's
  3667  // API operation CreateSecurityProfile for usage and error information.
  3668  //
  3669  // Returned Error Types:
  3670  //   * InvalidRequestException
  3671  //   The request is not valid.
  3672  //
  3673  //   * ResourceAlreadyExistsException
  3674  //   The resource already exists.
  3675  //
  3676  //   * ThrottlingException
  3677  //   The rate exceeds the limit.
  3678  //
  3679  //   * InternalFailureException
  3680  //   An unexpected error has occurred.
  3681  //
  3682  func (c *IoT) CreateSecurityProfile(input *CreateSecurityProfileInput) (*CreateSecurityProfileOutput, error) {
  3683  	req, out := c.CreateSecurityProfileRequest(input)
  3684  	return out, req.Send()
  3685  }
  3686  
  3687  // CreateSecurityProfileWithContext is the same as CreateSecurityProfile with the addition of
  3688  // the ability to pass a context and additional request options.
  3689  //
  3690  // See CreateSecurityProfile for details on how to use this API operation.
  3691  //
  3692  // The context must be non-nil and will be used for request cancellation. If
  3693  // the context is nil a panic will occur. In the future the SDK may create
  3694  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3695  // for more information on using Contexts.
  3696  func (c *IoT) CreateSecurityProfileWithContext(ctx aws.Context, input *CreateSecurityProfileInput, opts ...request.Option) (*CreateSecurityProfileOutput, error) {
  3697  	req, out := c.CreateSecurityProfileRequest(input)
  3698  	req.SetContext(ctx)
  3699  	req.ApplyOptions(opts...)
  3700  	return out, req.Send()
  3701  }
  3702  
  3703  const opCreateStream = "CreateStream"
  3704  
  3705  // CreateStreamRequest generates a "aws/request.Request" representing the
  3706  // client's request for the CreateStream operation. The "output" return
  3707  // value will be populated with the request's response once the request completes
  3708  // successfully.
  3709  //
  3710  // Use "Send" method on the returned Request to send the API call to the service.
  3711  // the "output" return value is not valid until after Send returns without error.
  3712  //
  3713  // See CreateStream for more information on using the CreateStream
  3714  // API call, and error handling.
  3715  //
  3716  // This method is useful when you want to inject custom logic or configuration
  3717  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3718  //
  3719  //
  3720  //    // Example sending a request using the CreateStreamRequest method.
  3721  //    req, resp := client.CreateStreamRequest(params)
  3722  //
  3723  //    err := req.Send()
  3724  //    if err == nil { // resp is now filled
  3725  //        fmt.Println(resp)
  3726  //    }
  3727  func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
  3728  	op := &request.Operation{
  3729  		Name:       opCreateStream,
  3730  		HTTPMethod: "POST",
  3731  		HTTPPath:   "/streams/{streamId}",
  3732  	}
  3733  
  3734  	if input == nil {
  3735  		input = &CreateStreamInput{}
  3736  	}
  3737  
  3738  	output = &CreateStreamOutput{}
  3739  	req = c.newRequest(op, input, output)
  3740  	return
  3741  }
  3742  
  3743  // CreateStream API operation for AWS IoT.
  3744  //
  3745  // Creates a stream for delivering one or more large files in chunks over MQTT.
  3746  // A stream transports data bytes in chunks or blocks packaged as MQTT messages
  3747  // from a source like S3. You can have one or more files associated with a stream.
  3748  //
  3749  // Requires permission to access the CreateStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3750  // action.
  3751  //
  3752  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3753  // with awserr.Error's Code and Message methods to get detailed information about
  3754  // the error.
  3755  //
  3756  // See the AWS API reference guide for AWS IoT's
  3757  // API operation CreateStream for usage and error information.
  3758  //
  3759  // Returned Error Types:
  3760  //   * InvalidRequestException
  3761  //   The request is not valid.
  3762  //
  3763  //   * LimitExceededException
  3764  //   A limit has been exceeded.
  3765  //
  3766  //   * ResourceNotFoundException
  3767  //   The specified resource does not exist.
  3768  //
  3769  //   * ResourceAlreadyExistsException
  3770  //   The resource already exists.
  3771  //
  3772  //   * ThrottlingException
  3773  //   The rate exceeds the limit.
  3774  //
  3775  //   * UnauthorizedException
  3776  //   You are not authorized to perform this operation.
  3777  //
  3778  //   * ServiceUnavailableException
  3779  //   The service is temporarily unavailable.
  3780  //
  3781  //   * InternalFailureException
  3782  //   An unexpected error has occurred.
  3783  //
  3784  func (c *IoT) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
  3785  	req, out := c.CreateStreamRequest(input)
  3786  	return out, req.Send()
  3787  }
  3788  
  3789  // CreateStreamWithContext is the same as CreateStream with the addition of
  3790  // the ability to pass a context and additional request options.
  3791  //
  3792  // See CreateStream for details on how to use this API operation.
  3793  //
  3794  // The context must be non-nil and will be used for request cancellation. If
  3795  // the context is nil a panic will occur. In the future the SDK may create
  3796  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3797  // for more information on using Contexts.
  3798  func (c *IoT) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
  3799  	req, out := c.CreateStreamRequest(input)
  3800  	req.SetContext(ctx)
  3801  	req.ApplyOptions(opts...)
  3802  	return out, req.Send()
  3803  }
  3804  
  3805  const opCreateThing = "CreateThing"
  3806  
  3807  // CreateThingRequest generates a "aws/request.Request" representing the
  3808  // client's request for the CreateThing operation. The "output" return
  3809  // value will be populated with the request's response once the request completes
  3810  // successfully.
  3811  //
  3812  // Use "Send" method on the returned Request to send the API call to the service.
  3813  // the "output" return value is not valid until after Send returns without error.
  3814  //
  3815  // See CreateThing for more information on using the CreateThing
  3816  // API call, and error handling.
  3817  //
  3818  // This method is useful when you want to inject custom logic or configuration
  3819  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3820  //
  3821  //
  3822  //    // Example sending a request using the CreateThingRequest method.
  3823  //    req, resp := client.CreateThingRequest(params)
  3824  //
  3825  //    err := req.Send()
  3826  //    if err == nil { // resp is now filled
  3827  //        fmt.Println(resp)
  3828  //    }
  3829  func (c *IoT) CreateThingRequest(input *CreateThingInput) (req *request.Request, output *CreateThingOutput) {
  3830  	op := &request.Operation{
  3831  		Name:       opCreateThing,
  3832  		HTTPMethod: "POST",
  3833  		HTTPPath:   "/things/{thingName}",
  3834  	}
  3835  
  3836  	if input == nil {
  3837  		input = &CreateThingInput{}
  3838  	}
  3839  
  3840  	output = &CreateThingOutput{}
  3841  	req = c.newRequest(op, input, output)
  3842  	return
  3843  }
  3844  
  3845  // CreateThing API operation for AWS IoT.
  3846  //
  3847  // Creates a thing record in the registry. If this call is made multiple times
  3848  // using the same thing name and configuration, the call will succeed. If this
  3849  // call is made with the same thing name but different configuration a ResourceAlreadyExistsException
  3850  // is thrown.
  3851  //
  3852  // This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
  3853  // for information about authorizing control plane actions.
  3854  //
  3855  // Requires permission to access the CreateThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3856  // action.
  3857  //
  3858  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3859  // with awserr.Error's Code and Message methods to get detailed information about
  3860  // the error.
  3861  //
  3862  // See the AWS API reference guide for AWS IoT's
  3863  // API operation CreateThing for usage and error information.
  3864  //
  3865  // Returned Error Types:
  3866  //   * InvalidRequestException
  3867  //   The request is not valid.
  3868  //
  3869  //   * ThrottlingException
  3870  //   The rate exceeds the limit.
  3871  //
  3872  //   * UnauthorizedException
  3873  //   You are not authorized to perform this operation.
  3874  //
  3875  //   * ServiceUnavailableException
  3876  //   The service is temporarily unavailable.
  3877  //
  3878  //   * InternalFailureException
  3879  //   An unexpected error has occurred.
  3880  //
  3881  //   * ResourceAlreadyExistsException
  3882  //   The resource already exists.
  3883  //
  3884  //   * ResourceNotFoundException
  3885  //   The specified resource does not exist.
  3886  //
  3887  func (c *IoT) CreateThing(input *CreateThingInput) (*CreateThingOutput, error) {
  3888  	req, out := c.CreateThingRequest(input)
  3889  	return out, req.Send()
  3890  }
  3891  
  3892  // CreateThingWithContext is the same as CreateThing with the addition of
  3893  // the ability to pass a context and additional request options.
  3894  //
  3895  // See CreateThing for details on how to use this API operation.
  3896  //
  3897  // The context must be non-nil and will be used for request cancellation. If
  3898  // the context is nil a panic will occur. In the future the SDK may create
  3899  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3900  // for more information on using Contexts.
  3901  func (c *IoT) CreateThingWithContext(ctx aws.Context, input *CreateThingInput, opts ...request.Option) (*CreateThingOutput, error) {
  3902  	req, out := c.CreateThingRequest(input)
  3903  	req.SetContext(ctx)
  3904  	req.ApplyOptions(opts...)
  3905  	return out, req.Send()
  3906  }
  3907  
  3908  const opCreateThingGroup = "CreateThingGroup"
  3909  
  3910  // CreateThingGroupRequest generates a "aws/request.Request" representing the
  3911  // client's request for the CreateThingGroup operation. The "output" return
  3912  // value will be populated with the request's response once the request completes
  3913  // successfully.
  3914  //
  3915  // Use "Send" method on the returned Request to send the API call to the service.
  3916  // the "output" return value is not valid until after Send returns without error.
  3917  //
  3918  // See CreateThingGroup for more information on using the CreateThingGroup
  3919  // API call, and error handling.
  3920  //
  3921  // This method is useful when you want to inject custom logic or configuration
  3922  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3923  //
  3924  //
  3925  //    // Example sending a request using the CreateThingGroupRequest method.
  3926  //    req, resp := client.CreateThingGroupRequest(params)
  3927  //
  3928  //    err := req.Send()
  3929  //    if err == nil { // resp is now filled
  3930  //        fmt.Println(resp)
  3931  //    }
  3932  func (c *IoT) CreateThingGroupRequest(input *CreateThingGroupInput) (req *request.Request, output *CreateThingGroupOutput) {
  3933  	op := &request.Operation{
  3934  		Name:       opCreateThingGroup,
  3935  		HTTPMethod: "POST",
  3936  		HTTPPath:   "/thing-groups/{thingGroupName}",
  3937  	}
  3938  
  3939  	if input == nil {
  3940  		input = &CreateThingGroupInput{}
  3941  	}
  3942  
  3943  	output = &CreateThingGroupOutput{}
  3944  	req = c.newRequest(op, input, output)
  3945  	return
  3946  }
  3947  
  3948  // CreateThingGroup API operation for AWS IoT.
  3949  //
  3950  // Create a thing group.
  3951  //
  3952  // This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
  3953  // for information about authorizing control plane actions.
  3954  //
  3955  // Requires permission to access the CreateThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  3956  // action.
  3957  //
  3958  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3959  // with awserr.Error's Code and Message methods to get detailed information about
  3960  // the error.
  3961  //
  3962  // See the AWS API reference guide for AWS IoT's
  3963  // API operation CreateThingGroup for usage and error information.
  3964  //
  3965  // Returned Error Types:
  3966  //   * InvalidRequestException
  3967  //   The request is not valid.
  3968  //
  3969  //   * ResourceAlreadyExistsException
  3970  //   The resource already exists.
  3971  //
  3972  //   * ThrottlingException
  3973  //   The rate exceeds the limit.
  3974  //
  3975  //   * InternalFailureException
  3976  //   An unexpected error has occurred.
  3977  //
  3978  func (c *IoT) CreateThingGroup(input *CreateThingGroupInput) (*CreateThingGroupOutput, error) {
  3979  	req, out := c.CreateThingGroupRequest(input)
  3980  	return out, req.Send()
  3981  }
  3982  
  3983  // CreateThingGroupWithContext is the same as CreateThingGroup with the addition of
  3984  // the ability to pass a context and additional request options.
  3985  //
  3986  // See CreateThingGroup for details on how to use this API operation.
  3987  //
  3988  // The context must be non-nil and will be used for request cancellation. If
  3989  // the context is nil a panic will occur. In the future the SDK may create
  3990  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3991  // for more information on using Contexts.
  3992  func (c *IoT) CreateThingGroupWithContext(ctx aws.Context, input *CreateThingGroupInput, opts ...request.Option) (*CreateThingGroupOutput, error) {
  3993  	req, out := c.CreateThingGroupRequest(input)
  3994  	req.SetContext(ctx)
  3995  	req.ApplyOptions(opts...)
  3996  	return out, req.Send()
  3997  }
  3998  
  3999  const opCreateThingType = "CreateThingType"
  4000  
  4001  // CreateThingTypeRequest generates a "aws/request.Request" representing the
  4002  // client's request for the CreateThingType operation. The "output" return
  4003  // value will be populated with the request's response once the request completes
  4004  // successfully.
  4005  //
  4006  // Use "Send" method on the returned Request to send the API call to the service.
  4007  // the "output" return value is not valid until after Send returns without error.
  4008  //
  4009  // See CreateThingType for more information on using the CreateThingType
  4010  // API call, and error handling.
  4011  //
  4012  // This method is useful when you want to inject custom logic or configuration
  4013  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4014  //
  4015  //
  4016  //    // Example sending a request using the CreateThingTypeRequest method.
  4017  //    req, resp := client.CreateThingTypeRequest(params)
  4018  //
  4019  //    err := req.Send()
  4020  //    if err == nil { // resp is now filled
  4021  //        fmt.Println(resp)
  4022  //    }
  4023  func (c *IoT) CreateThingTypeRequest(input *CreateThingTypeInput) (req *request.Request, output *CreateThingTypeOutput) {
  4024  	op := &request.Operation{
  4025  		Name:       opCreateThingType,
  4026  		HTTPMethod: "POST",
  4027  		HTTPPath:   "/thing-types/{thingTypeName}",
  4028  	}
  4029  
  4030  	if input == nil {
  4031  		input = &CreateThingTypeInput{}
  4032  	}
  4033  
  4034  	output = &CreateThingTypeOutput{}
  4035  	req = c.newRequest(op, input, output)
  4036  	return
  4037  }
  4038  
  4039  // CreateThingType API operation for AWS IoT.
  4040  //
  4041  // Creates a new thing type.
  4042  //
  4043  // Requires permission to access the CreateThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4044  // action.
  4045  //
  4046  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4047  // with awserr.Error's Code and Message methods to get detailed information about
  4048  // the error.
  4049  //
  4050  // See the AWS API reference guide for AWS IoT's
  4051  // API operation CreateThingType for usage and error information.
  4052  //
  4053  // Returned Error Types:
  4054  //   * InvalidRequestException
  4055  //   The request is not valid.
  4056  //
  4057  //   * ThrottlingException
  4058  //   The rate exceeds the limit.
  4059  //
  4060  //   * UnauthorizedException
  4061  //   You are not authorized to perform this operation.
  4062  //
  4063  //   * ServiceUnavailableException
  4064  //   The service is temporarily unavailable.
  4065  //
  4066  //   * InternalFailureException
  4067  //   An unexpected error has occurred.
  4068  //
  4069  //   * ResourceAlreadyExistsException
  4070  //   The resource already exists.
  4071  //
  4072  func (c *IoT) CreateThingType(input *CreateThingTypeInput) (*CreateThingTypeOutput, error) {
  4073  	req, out := c.CreateThingTypeRequest(input)
  4074  	return out, req.Send()
  4075  }
  4076  
  4077  // CreateThingTypeWithContext is the same as CreateThingType with the addition of
  4078  // the ability to pass a context and additional request options.
  4079  //
  4080  // See CreateThingType for details on how to use this API operation.
  4081  //
  4082  // The context must be non-nil and will be used for request cancellation. If
  4083  // the context is nil a panic will occur. In the future the SDK may create
  4084  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4085  // for more information on using Contexts.
  4086  func (c *IoT) CreateThingTypeWithContext(ctx aws.Context, input *CreateThingTypeInput, opts ...request.Option) (*CreateThingTypeOutput, error) {
  4087  	req, out := c.CreateThingTypeRequest(input)
  4088  	req.SetContext(ctx)
  4089  	req.ApplyOptions(opts...)
  4090  	return out, req.Send()
  4091  }
  4092  
  4093  const opCreateTopicRule = "CreateTopicRule"
  4094  
  4095  // CreateTopicRuleRequest generates a "aws/request.Request" representing the
  4096  // client's request for the CreateTopicRule operation. The "output" return
  4097  // value will be populated with the request's response once the request completes
  4098  // successfully.
  4099  //
  4100  // Use "Send" method on the returned Request to send the API call to the service.
  4101  // the "output" return value is not valid until after Send returns without error.
  4102  //
  4103  // See CreateTopicRule for more information on using the CreateTopicRule
  4104  // API call, and error handling.
  4105  //
  4106  // This method is useful when you want to inject custom logic or configuration
  4107  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4108  //
  4109  //
  4110  //    // Example sending a request using the CreateTopicRuleRequest method.
  4111  //    req, resp := client.CreateTopicRuleRequest(params)
  4112  //
  4113  //    err := req.Send()
  4114  //    if err == nil { // resp is now filled
  4115  //        fmt.Println(resp)
  4116  //    }
  4117  func (c *IoT) CreateTopicRuleRequest(input *CreateTopicRuleInput) (req *request.Request, output *CreateTopicRuleOutput) {
  4118  	op := &request.Operation{
  4119  		Name:       opCreateTopicRule,
  4120  		HTTPMethod: "POST",
  4121  		HTTPPath:   "/rules/{ruleName}",
  4122  	}
  4123  
  4124  	if input == nil {
  4125  		input = &CreateTopicRuleInput{}
  4126  	}
  4127  
  4128  	output = &CreateTopicRuleOutput{}
  4129  	req = c.newRequest(op, input, output)
  4130  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4131  	return
  4132  }
  4133  
  4134  // CreateTopicRule API operation for AWS IoT.
  4135  //
  4136  // Creates a rule. Creating rules is an administrator-level action. Any user
  4137  // who has permission to create rules will be able to access data processed
  4138  // by the rule.
  4139  //
  4140  // Requires permission to access the CreateTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4141  // action.
  4142  //
  4143  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4144  // with awserr.Error's Code and Message methods to get detailed information about
  4145  // the error.
  4146  //
  4147  // See the AWS API reference guide for AWS IoT's
  4148  // API operation CreateTopicRule for usage and error information.
  4149  //
  4150  // Returned Error Types:
  4151  //   * SqlParseException
  4152  //   The Rule-SQL expression can't be parsed correctly.
  4153  //
  4154  //   * InternalException
  4155  //   An unexpected error has occurred.
  4156  //
  4157  //   * InvalidRequestException
  4158  //   The request is not valid.
  4159  //
  4160  //   * ResourceAlreadyExistsException
  4161  //   The resource already exists.
  4162  //
  4163  //   * ServiceUnavailableException
  4164  //   The service is temporarily unavailable.
  4165  //
  4166  //   * ConflictingResourceUpdateException
  4167  //   A conflicting resource update exception. This exception is thrown when two
  4168  //   pending updates cause a conflict.
  4169  //
  4170  func (c *IoT) CreateTopicRule(input *CreateTopicRuleInput) (*CreateTopicRuleOutput, error) {
  4171  	req, out := c.CreateTopicRuleRequest(input)
  4172  	return out, req.Send()
  4173  }
  4174  
  4175  // CreateTopicRuleWithContext is the same as CreateTopicRule with the addition of
  4176  // the ability to pass a context and additional request options.
  4177  //
  4178  // See CreateTopicRule for details on how to use this API operation.
  4179  //
  4180  // The context must be non-nil and will be used for request cancellation. If
  4181  // the context is nil a panic will occur. In the future the SDK may create
  4182  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4183  // for more information on using Contexts.
  4184  func (c *IoT) CreateTopicRuleWithContext(ctx aws.Context, input *CreateTopicRuleInput, opts ...request.Option) (*CreateTopicRuleOutput, error) {
  4185  	req, out := c.CreateTopicRuleRequest(input)
  4186  	req.SetContext(ctx)
  4187  	req.ApplyOptions(opts...)
  4188  	return out, req.Send()
  4189  }
  4190  
  4191  const opCreateTopicRuleDestination = "CreateTopicRuleDestination"
  4192  
  4193  // CreateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
  4194  // client's request for the CreateTopicRuleDestination operation. The "output" return
  4195  // value will be populated with the request's response once the request completes
  4196  // successfully.
  4197  //
  4198  // Use "Send" method on the returned Request to send the API call to the service.
  4199  // the "output" return value is not valid until after Send returns without error.
  4200  //
  4201  // See CreateTopicRuleDestination for more information on using the CreateTopicRuleDestination
  4202  // API call, and error handling.
  4203  //
  4204  // This method is useful when you want to inject custom logic or configuration
  4205  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4206  //
  4207  //
  4208  //    // Example sending a request using the CreateTopicRuleDestinationRequest method.
  4209  //    req, resp := client.CreateTopicRuleDestinationRequest(params)
  4210  //
  4211  //    err := req.Send()
  4212  //    if err == nil { // resp is now filled
  4213  //        fmt.Println(resp)
  4214  //    }
  4215  func (c *IoT) CreateTopicRuleDestinationRequest(input *CreateTopicRuleDestinationInput) (req *request.Request, output *CreateTopicRuleDestinationOutput) {
  4216  	op := &request.Operation{
  4217  		Name:       opCreateTopicRuleDestination,
  4218  		HTTPMethod: "POST",
  4219  		HTTPPath:   "/destinations",
  4220  	}
  4221  
  4222  	if input == nil {
  4223  		input = &CreateTopicRuleDestinationInput{}
  4224  	}
  4225  
  4226  	output = &CreateTopicRuleDestinationOutput{}
  4227  	req = c.newRequest(op, input, output)
  4228  	return
  4229  }
  4230  
  4231  // CreateTopicRuleDestination API operation for AWS IoT.
  4232  //
  4233  // Creates a topic rule destination. The destination must be confirmed prior
  4234  // to use.
  4235  //
  4236  // Requires permission to access the CreateTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4237  // action.
  4238  //
  4239  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4240  // with awserr.Error's Code and Message methods to get detailed information about
  4241  // the error.
  4242  //
  4243  // See the AWS API reference guide for AWS IoT's
  4244  // API operation CreateTopicRuleDestination for usage and error information.
  4245  //
  4246  // Returned Error Types:
  4247  //   * InternalException
  4248  //   An unexpected error has occurred.
  4249  //
  4250  //   * InvalidRequestException
  4251  //   The request is not valid.
  4252  //
  4253  //   * ResourceAlreadyExistsException
  4254  //   The resource already exists.
  4255  //
  4256  //   * ServiceUnavailableException
  4257  //   The service is temporarily unavailable.
  4258  //
  4259  //   * ConflictingResourceUpdateException
  4260  //   A conflicting resource update exception. This exception is thrown when two
  4261  //   pending updates cause a conflict.
  4262  //
  4263  func (c *IoT) CreateTopicRuleDestination(input *CreateTopicRuleDestinationInput) (*CreateTopicRuleDestinationOutput, error) {
  4264  	req, out := c.CreateTopicRuleDestinationRequest(input)
  4265  	return out, req.Send()
  4266  }
  4267  
  4268  // CreateTopicRuleDestinationWithContext is the same as CreateTopicRuleDestination with the addition of
  4269  // the ability to pass a context and additional request options.
  4270  //
  4271  // See CreateTopicRuleDestination for details on how to use this API operation.
  4272  //
  4273  // The context must be non-nil and will be used for request cancellation. If
  4274  // the context is nil a panic will occur. In the future the SDK may create
  4275  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4276  // for more information on using Contexts.
  4277  func (c *IoT) CreateTopicRuleDestinationWithContext(ctx aws.Context, input *CreateTopicRuleDestinationInput, opts ...request.Option) (*CreateTopicRuleDestinationOutput, error) {
  4278  	req, out := c.CreateTopicRuleDestinationRequest(input)
  4279  	req.SetContext(ctx)
  4280  	req.ApplyOptions(opts...)
  4281  	return out, req.Send()
  4282  }
  4283  
  4284  const opDeleteAccountAuditConfiguration = "DeleteAccountAuditConfiguration"
  4285  
  4286  // DeleteAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
  4287  // client's request for the DeleteAccountAuditConfiguration operation. The "output" return
  4288  // value will be populated with the request's response once the request completes
  4289  // successfully.
  4290  //
  4291  // Use "Send" method on the returned Request to send the API call to the service.
  4292  // the "output" return value is not valid until after Send returns without error.
  4293  //
  4294  // See DeleteAccountAuditConfiguration for more information on using the DeleteAccountAuditConfiguration
  4295  // API call, and error handling.
  4296  //
  4297  // This method is useful when you want to inject custom logic or configuration
  4298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4299  //
  4300  //
  4301  //    // Example sending a request using the DeleteAccountAuditConfigurationRequest method.
  4302  //    req, resp := client.DeleteAccountAuditConfigurationRequest(params)
  4303  //
  4304  //    err := req.Send()
  4305  //    if err == nil { // resp is now filled
  4306  //        fmt.Println(resp)
  4307  //    }
  4308  func (c *IoT) DeleteAccountAuditConfigurationRequest(input *DeleteAccountAuditConfigurationInput) (req *request.Request, output *DeleteAccountAuditConfigurationOutput) {
  4309  	op := &request.Operation{
  4310  		Name:       opDeleteAccountAuditConfiguration,
  4311  		HTTPMethod: "DELETE",
  4312  		HTTPPath:   "/audit/configuration",
  4313  	}
  4314  
  4315  	if input == nil {
  4316  		input = &DeleteAccountAuditConfigurationInput{}
  4317  	}
  4318  
  4319  	output = &DeleteAccountAuditConfigurationOutput{}
  4320  	req = c.newRequest(op, input, output)
  4321  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4322  	return
  4323  }
  4324  
  4325  // DeleteAccountAuditConfiguration API operation for AWS IoT.
  4326  //
  4327  // Restores the default settings for Device Defender audits for this account.
  4328  // Any configuration data you entered is deleted and all audit checks are reset
  4329  // to disabled.
  4330  //
  4331  // Requires permission to access the DeleteAccountAuditConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4332  // action.
  4333  //
  4334  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4335  // with awserr.Error's Code and Message methods to get detailed information about
  4336  // the error.
  4337  //
  4338  // See the AWS API reference guide for AWS IoT's
  4339  // API operation DeleteAccountAuditConfiguration for usage and error information.
  4340  //
  4341  // Returned Error Types:
  4342  //   * InvalidRequestException
  4343  //   The request is not valid.
  4344  //
  4345  //   * ResourceNotFoundException
  4346  //   The specified resource does not exist.
  4347  //
  4348  //   * ThrottlingException
  4349  //   The rate exceeds the limit.
  4350  //
  4351  //   * InternalFailureException
  4352  //   An unexpected error has occurred.
  4353  //
  4354  func (c *IoT) DeleteAccountAuditConfiguration(input *DeleteAccountAuditConfigurationInput) (*DeleteAccountAuditConfigurationOutput, error) {
  4355  	req, out := c.DeleteAccountAuditConfigurationRequest(input)
  4356  	return out, req.Send()
  4357  }
  4358  
  4359  // DeleteAccountAuditConfigurationWithContext is the same as DeleteAccountAuditConfiguration with the addition of
  4360  // the ability to pass a context and additional request options.
  4361  //
  4362  // See DeleteAccountAuditConfiguration for details on how to use this API operation.
  4363  //
  4364  // The context must be non-nil and will be used for request cancellation. If
  4365  // the context is nil a panic will occur. In the future the SDK may create
  4366  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4367  // for more information on using Contexts.
  4368  func (c *IoT) DeleteAccountAuditConfigurationWithContext(ctx aws.Context, input *DeleteAccountAuditConfigurationInput, opts ...request.Option) (*DeleteAccountAuditConfigurationOutput, error) {
  4369  	req, out := c.DeleteAccountAuditConfigurationRequest(input)
  4370  	req.SetContext(ctx)
  4371  	req.ApplyOptions(opts...)
  4372  	return out, req.Send()
  4373  }
  4374  
  4375  const opDeleteAuditSuppression = "DeleteAuditSuppression"
  4376  
  4377  // DeleteAuditSuppressionRequest generates a "aws/request.Request" representing the
  4378  // client's request for the DeleteAuditSuppression operation. The "output" return
  4379  // value will be populated with the request's response once the request completes
  4380  // successfully.
  4381  //
  4382  // Use "Send" method on the returned Request to send the API call to the service.
  4383  // the "output" return value is not valid until after Send returns without error.
  4384  //
  4385  // See DeleteAuditSuppression for more information on using the DeleteAuditSuppression
  4386  // API call, and error handling.
  4387  //
  4388  // This method is useful when you want to inject custom logic or configuration
  4389  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4390  //
  4391  //
  4392  //    // Example sending a request using the DeleteAuditSuppressionRequest method.
  4393  //    req, resp := client.DeleteAuditSuppressionRequest(params)
  4394  //
  4395  //    err := req.Send()
  4396  //    if err == nil { // resp is now filled
  4397  //        fmt.Println(resp)
  4398  //    }
  4399  func (c *IoT) DeleteAuditSuppressionRequest(input *DeleteAuditSuppressionInput) (req *request.Request, output *DeleteAuditSuppressionOutput) {
  4400  	op := &request.Operation{
  4401  		Name:       opDeleteAuditSuppression,
  4402  		HTTPMethod: "POST",
  4403  		HTTPPath:   "/audit/suppressions/delete",
  4404  	}
  4405  
  4406  	if input == nil {
  4407  		input = &DeleteAuditSuppressionInput{}
  4408  	}
  4409  
  4410  	output = &DeleteAuditSuppressionOutput{}
  4411  	req = c.newRequest(op, input, output)
  4412  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4413  	return
  4414  }
  4415  
  4416  // DeleteAuditSuppression API operation for AWS IoT.
  4417  //
  4418  // Deletes a Device Defender audit suppression.
  4419  //
  4420  // Requires permission to access the DeleteAuditSuppression (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4421  // action.
  4422  //
  4423  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4424  // with awserr.Error's Code and Message methods to get detailed information about
  4425  // the error.
  4426  //
  4427  // See the AWS API reference guide for AWS IoT's
  4428  // API operation DeleteAuditSuppression for usage and error information.
  4429  //
  4430  // Returned Error Types:
  4431  //   * InvalidRequestException
  4432  //   The request is not valid.
  4433  //
  4434  //   * ThrottlingException
  4435  //   The rate exceeds the limit.
  4436  //
  4437  //   * InternalFailureException
  4438  //   An unexpected error has occurred.
  4439  //
  4440  func (c *IoT) DeleteAuditSuppression(input *DeleteAuditSuppressionInput) (*DeleteAuditSuppressionOutput, error) {
  4441  	req, out := c.DeleteAuditSuppressionRequest(input)
  4442  	return out, req.Send()
  4443  }
  4444  
  4445  // DeleteAuditSuppressionWithContext is the same as DeleteAuditSuppression with the addition of
  4446  // the ability to pass a context and additional request options.
  4447  //
  4448  // See DeleteAuditSuppression for details on how to use this API operation.
  4449  //
  4450  // The context must be non-nil and will be used for request cancellation. If
  4451  // the context is nil a panic will occur. In the future the SDK may create
  4452  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4453  // for more information on using Contexts.
  4454  func (c *IoT) DeleteAuditSuppressionWithContext(ctx aws.Context, input *DeleteAuditSuppressionInput, opts ...request.Option) (*DeleteAuditSuppressionOutput, error) {
  4455  	req, out := c.DeleteAuditSuppressionRequest(input)
  4456  	req.SetContext(ctx)
  4457  	req.ApplyOptions(opts...)
  4458  	return out, req.Send()
  4459  }
  4460  
  4461  const opDeleteAuthorizer = "DeleteAuthorizer"
  4462  
  4463  // DeleteAuthorizerRequest generates a "aws/request.Request" representing the
  4464  // client's request for the DeleteAuthorizer operation. The "output" return
  4465  // value will be populated with the request's response once the request completes
  4466  // successfully.
  4467  //
  4468  // Use "Send" method on the returned Request to send the API call to the service.
  4469  // the "output" return value is not valid until after Send returns without error.
  4470  //
  4471  // See DeleteAuthorizer for more information on using the DeleteAuthorizer
  4472  // API call, and error handling.
  4473  //
  4474  // This method is useful when you want to inject custom logic or configuration
  4475  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4476  //
  4477  //
  4478  //    // Example sending a request using the DeleteAuthorizerRequest method.
  4479  //    req, resp := client.DeleteAuthorizerRequest(params)
  4480  //
  4481  //    err := req.Send()
  4482  //    if err == nil { // resp is now filled
  4483  //        fmt.Println(resp)
  4484  //    }
  4485  func (c *IoT) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
  4486  	op := &request.Operation{
  4487  		Name:       opDeleteAuthorizer,
  4488  		HTTPMethod: "DELETE",
  4489  		HTTPPath:   "/authorizer/{authorizerName}",
  4490  	}
  4491  
  4492  	if input == nil {
  4493  		input = &DeleteAuthorizerInput{}
  4494  	}
  4495  
  4496  	output = &DeleteAuthorizerOutput{}
  4497  	req = c.newRequest(op, input, output)
  4498  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4499  	return
  4500  }
  4501  
  4502  // DeleteAuthorizer API operation for AWS IoT.
  4503  //
  4504  // Deletes an authorizer.
  4505  //
  4506  // Requires permission to access the DeleteAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4507  // action.
  4508  //
  4509  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4510  // with awserr.Error's Code and Message methods to get detailed information about
  4511  // the error.
  4512  //
  4513  // See the AWS API reference guide for AWS IoT's
  4514  // API operation DeleteAuthorizer for usage and error information.
  4515  //
  4516  // Returned Error Types:
  4517  //   * DeleteConflictException
  4518  //   You can't delete the resource because it is attached to one or more resources.
  4519  //
  4520  //   * ResourceNotFoundException
  4521  //   The specified resource does not exist.
  4522  //
  4523  //   * InvalidRequestException
  4524  //   The request is not valid.
  4525  //
  4526  //   * ThrottlingException
  4527  //   The rate exceeds the limit.
  4528  //
  4529  //   * UnauthorizedException
  4530  //   You are not authorized to perform this operation.
  4531  //
  4532  //   * ServiceUnavailableException
  4533  //   The service is temporarily unavailable.
  4534  //
  4535  //   * InternalFailureException
  4536  //   An unexpected error has occurred.
  4537  //
  4538  func (c *IoT) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
  4539  	req, out := c.DeleteAuthorizerRequest(input)
  4540  	return out, req.Send()
  4541  }
  4542  
  4543  // DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
  4544  // the ability to pass a context and additional request options.
  4545  //
  4546  // See DeleteAuthorizer for details on how to use this API operation.
  4547  //
  4548  // The context must be non-nil and will be used for request cancellation. If
  4549  // the context is nil a panic will occur. In the future the SDK may create
  4550  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4551  // for more information on using Contexts.
  4552  func (c *IoT) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
  4553  	req, out := c.DeleteAuthorizerRequest(input)
  4554  	req.SetContext(ctx)
  4555  	req.ApplyOptions(opts...)
  4556  	return out, req.Send()
  4557  }
  4558  
  4559  const opDeleteBillingGroup = "DeleteBillingGroup"
  4560  
  4561  // DeleteBillingGroupRequest generates a "aws/request.Request" representing the
  4562  // client's request for the DeleteBillingGroup operation. The "output" return
  4563  // value will be populated with the request's response once the request completes
  4564  // successfully.
  4565  //
  4566  // Use "Send" method on the returned Request to send the API call to the service.
  4567  // the "output" return value is not valid until after Send returns without error.
  4568  //
  4569  // See DeleteBillingGroup for more information on using the DeleteBillingGroup
  4570  // API call, and error handling.
  4571  //
  4572  // This method is useful when you want to inject custom logic or configuration
  4573  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4574  //
  4575  //
  4576  //    // Example sending a request using the DeleteBillingGroupRequest method.
  4577  //    req, resp := client.DeleteBillingGroupRequest(params)
  4578  //
  4579  //    err := req.Send()
  4580  //    if err == nil { // resp is now filled
  4581  //        fmt.Println(resp)
  4582  //    }
  4583  func (c *IoT) DeleteBillingGroupRequest(input *DeleteBillingGroupInput) (req *request.Request, output *DeleteBillingGroupOutput) {
  4584  	op := &request.Operation{
  4585  		Name:       opDeleteBillingGroup,
  4586  		HTTPMethod: "DELETE",
  4587  		HTTPPath:   "/billing-groups/{billingGroupName}",
  4588  	}
  4589  
  4590  	if input == nil {
  4591  		input = &DeleteBillingGroupInput{}
  4592  	}
  4593  
  4594  	output = &DeleteBillingGroupOutput{}
  4595  	req = c.newRequest(op, input, output)
  4596  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4597  	return
  4598  }
  4599  
  4600  // DeleteBillingGroup API operation for AWS IoT.
  4601  //
  4602  // Deletes the billing group.
  4603  //
  4604  // Requires permission to access the DeleteBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4605  // action.
  4606  //
  4607  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4608  // with awserr.Error's Code and Message methods to get detailed information about
  4609  // the error.
  4610  //
  4611  // See the AWS API reference guide for AWS IoT's
  4612  // API operation DeleteBillingGroup for usage and error information.
  4613  //
  4614  // Returned Error Types:
  4615  //   * InvalidRequestException
  4616  //   The request is not valid.
  4617  //
  4618  //   * VersionConflictException
  4619  //   An exception thrown when the version of an entity specified with the expectedVersion
  4620  //   parameter does not match the latest version in the system.
  4621  //
  4622  //   * ThrottlingException
  4623  //   The rate exceeds the limit.
  4624  //
  4625  //   * InternalFailureException
  4626  //   An unexpected error has occurred.
  4627  //
  4628  func (c *IoT) DeleteBillingGroup(input *DeleteBillingGroupInput) (*DeleteBillingGroupOutput, error) {
  4629  	req, out := c.DeleteBillingGroupRequest(input)
  4630  	return out, req.Send()
  4631  }
  4632  
  4633  // DeleteBillingGroupWithContext is the same as DeleteBillingGroup with the addition of
  4634  // the ability to pass a context and additional request options.
  4635  //
  4636  // See DeleteBillingGroup for details on how to use this API operation.
  4637  //
  4638  // The context must be non-nil and will be used for request cancellation. If
  4639  // the context is nil a panic will occur. In the future the SDK may create
  4640  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4641  // for more information on using Contexts.
  4642  func (c *IoT) DeleteBillingGroupWithContext(ctx aws.Context, input *DeleteBillingGroupInput, opts ...request.Option) (*DeleteBillingGroupOutput, error) {
  4643  	req, out := c.DeleteBillingGroupRequest(input)
  4644  	req.SetContext(ctx)
  4645  	req.ApplyOptions(opts...)
  4646  	return out, req.Send()
  4647  }
  4648  
  4649  const opDeleteCACertificate = "DeleteCACertificate"
  4650  
  4651  // DeleteCACertificateRequest generates a "aws/request.Request" representing the
  4652  // client's request for the DeleteCACertificate operation. The "output" return
  4653  // value will be populated with the request's response once the request completes
  4654  // successfully.
  4655  //
  4656  // Use "Send" method on the returned Request to send the API call to the service.
  4657  // the "output" return value is not valid until after Send returns without error.
  4658  //
  4659  // See DeleteCACertificate for more information on using the DeleteCACertificate
  4660  // API call, and error handling.
  4661  //
  4662  // This method is useful when you want to inject custom logic or configuration
  4663  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4664  //
  4665  //
  4666  //    // Example sending a request using the DeleteCACertificateRequest method.
  4667  //    req, resp := client.DeleteCACertificateRequest(params)
  4668  //
  4669  //    err := req.Send()
  4670  //    if err == nil { // resp is now filled
  4671  //        fmt.Println(resp)
  4672  //    }
  4673  func (c *IoT) DeleteCACertificateRequest(input *DeleteCACertificateInput) (req *request.Request, output *DeleteCACertificateOutput) {
  4674  	op := &request.Operation{
  4675  		Name:       opDeleteCACertificate,
  4676  		HTTPMethod: "DELETE",
  4677  		HTTPPath:   "/cacertificate/{caCertificateId}",
  4678  	}
  4679  
  4680  	if input == nil {
  4681  		input = &DeleteCACertificateInput{}
  4682  	}
  4683  
  4684  	output = &DeleteCACertificateOutput{}
  4685  	req = c.newRequest(op, input, output)
  4686  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4687  	return
  4688  }
  4689  
  4690  // DeleteCACertificate API operation for AWS IoT.
  4691  //
  4692  // Deletes a registered CA certificate.
  4693  //
  4694  // Requires permission to access the DeleteCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4695  // action.
  4696  //
  4697  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4698  // with awserr.Error's Code and Message methods to get detailed information about
  4699  // the error.
  4700  //
  4701  // See the AWS API reference guide for AWS IoT's
  4702  // API operation DeleteCACertificate for usage and error information.
  4703  //
  4704  // Returned Error Types:
  4705  //   * InvalidRequestException
  4706  //   The request is not valid.
  4707  //
  4708  //   * CertificateStateException
  4709  //   The certificate operation is not allowed.
  4710  //
  4711  //   * ThrottlingException
  4712  //   The rate exceeds the limit.
  4713  //
  4714  //   * UnauthorizedException
  4715  //   You are not authorized to perform this operation.
  4716  //
  4717  //   * ServiceUnavailableException
  4718  //   The service is temporarily unavailable.
  4719  //
  4720  //   * InternalFailureException
  4721  //   An unexpected error has occurred.
  4722  //
  4723  //   * ResourceNotFoundException
  4724  //   The specified resource does not exist.
  4725  //
  4726  func (c *IoT) DeleteCACertificate(input *DeleteCACertificateInput) (*DeleteCACertificateOutput, error) {
  4727  	req, out := c.DeleteCACertificateRequest(input)
  4728  	return out, req.Send()
  4729  }
  4730  
  4731  // DeleteCACertificateWithContext is the same as DeleteCACertificate with the addition of
  4732  // the ability to pass a context and additional request options.
  4733  //
  4734  // See DeleteCACertificate for details on how to use this API operation.
  4735  //
  4736  // The context must be non-nil and will be used for request cancellation. If
  4737  // the context is nil a panic will occur. In the future the SDK may create
  4738  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4739  // for more information on using Contexts.
  4740  func (c *IoT) DeleteCACertificateWithContext(ctx aws.Context, input *DeleteCACertificateInput, opts ...request.Option) (*DeleteCACertificateOutput, error) {
  4741  	req, out := c.DeleteCACertificateRequest(input)
  4742  	req.SetContext(ctx)
  4743  	req.ApplyOptions(opts...)
  4744  	return out, req.Send()
  4745  }
  4746  
  4747  const opDeleteCertificate = "DeleteCertificate"
  4748  
  4749  // DeleteCertificateRequest generates a "aws/request.Request" representing the
  4750  // client's request for the DeleteCertificate operation. The "output" return
  4751  // value will be populated with the request's response once the request completes
  4752  // successfully.
  4753  //
  4754  // Use "Send" method on the returned Request to send the API call to the service.
  4755  // the "output" return value is not valid until after Send returns without error.
  4756  //
  4757  // See DeleteCertificate for more information on using the DeleteCertificate
  4758  // API call, and error handling.
  4759  //
  4760  // This method is useful when you want to inject custom logic or configuration
  4761  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4762  //
  4763  //
  4764  //    // Example sending a request using the DeleteCertificateRequest method.
  4765  //    req, resp := client.DeleteCertificateRequest(params)
  4766  //
  4767  //    err := req.Send()
  4768  //    if err == nil { // resp is now filled
  4769  //        fmt.Println(resp)
  4770  //    }
  4771  func (c *IoT) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
  4772  	op := &request.Operation{
  4773  		Name:       opDeleteCertificate,
  4774  		HTTPMethod: "DELETE",
  4775  		HTTPPath:   "/certificates/{certificateId}",
  4776  	}
  4777  
  4778  	if input == nil {
  4779  		input = &DeleteCertificateInput{}
  4780  	}
  4781  
  4782  	output = &DeleteCertificateOutput{}
  4783  	req = c.newRequest(op, input, output)
  4784  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4785  	return
  4786  }
  4787  
  4788  // DeleteCertificate API operation for AWS IoT.
  4789  //
  4790  // Deletes the specified certificate.
  4791  //
  4792  // A certificate cannot be deleted if it has a policy or IoT thing attached
  4793  // to it or if its status is set to ACTIVE. To delete a certificate, first use
  4794  // the DetachPolicy action to detach all policies. Next, use the UpdateCertificate
  4795  // action to set the certificate to the INACTIVE status.
  4796  //
  4797  // Requires permission to access the DeleteCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4798  // action.
  4799  //
  4800  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4801  // with awserr.Error's Code and Message methods to get detailed information about
  4802  // the error.
  4803  //
  4804  // See the AWS API reference guide for AWS IoT's
  4805  // API operation DeleteCertificate for usage and error information.
  4806  //
  4807  // Returned Error Types:
  4808  //   * CertificateStateException
  4809  //   The certificate operation is not allowed.
  4810  //
  4811  //   * DeleteConflictException
  4812  //   You can't delete the resource because it is attached to one or more resources.
  4813  //
  4814  //   * InvalidRequestException
  4815  //   The request is not valid.
  4816  //
  4817  //   * ThrottlingException
  4818  //   The rate exceeds the limit.
  4819  //
  4820  //   * UnauthorizedException
  4821  //   You are not authorized to perform this operation.
  4822  //
  4823  //   * ServiceUnavailableException
  4824  //   The service is temporarily unavailable.
  4825  //
  4826  //   * InternalFailureException
  4827  //   An unexpected error has occurred.
  4828  //
  4829  //   * ResourceNotFoundException
  4830  //   The specified resource does not exist.
  4831  //
  4832  func (c *IoT) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
  4833  	req, out := c.DeleteCertificateRequest(input)
  4834  	return out, req.Send()
  4835  }
  4836  
  4837  // DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
  4838  // the ability to pass a context and additional request options.
  4839  //
  4840  // See DeleteCertificate for details on how to use this API operation.
  4841  //
  4842  // The context must be non-nil and will be used for request cancellation. If
  4843  // the context is nil a panic will occur. In the future the SDK may create
  4844  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4845  // for more information on using Contexts.
  4846  func (c *IoT) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
  4847  	req, out := c.DeleteCertificateRequest(input)
  4848  	req.SetContext(ctx)
  4849  	req.ApplyOptions(opts...)
  4850  	return out, req.Send()
  4851  }
  4852  
  4853  const opDeleteCustomMetric = "DeleteCustomMetric"
  4854  
  4855  // DeleteCustomMetricRequest generates a "aws/request.Request" representing the
  4856  // client's request for the DeleteCustomMetric operation. The "output" return
  4857  // value will be populated with the request's response once the request completes
  4858  // successfully.
  4859  //
  4860  // Use "Send" method on the returned Request to send the API call to the service.
  4861  // the "output" return value is not valid until after Send returns without error.
  4862  //
  4863  // See DeleteCustomMetric for more information on using the DeleteCustomMetric
  4864  // API call, and error handling.
  4865  //
  4866  // This method is useful when you want to inject custom logic or configuration
  4867  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4868  //
  4869  //
  4870  //    // Example sending a request using the DeleteCustomMetricRequest method.
  4871  //    req, resp := client.DeleteCustomMetricRequest(params)
  4872  //
  4873  //    err := req.Send()
  4874  //    if err == nil { // resp is now filled
  4875  //        fmt.Println(resp)
  4876  //    }
  4877  func (c *IoT) DeleteCustomMetricRequest(input *DeleteCustomMetricInput) (req *request.Request, output *DeleteCustomMetricOutput) {
  4878  	op := &request.Operation{
  4879  		Name:       opDeleteCustomMetric,
  4880  		HTTPMethod: "DELETE",
  4881  		HTTPPath:   "/custom-metric/{metricName}",
  4882  	}
  4883  
  4884  	if input == nil {
  4885  		input = &DeleteCustomMetricInput{}
  4886  	}
  4887  
  4888  	output = &DeleteCustomMetricOutput{}
  4889  	req = c.newRequest(op, input, output)
  4890  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4891  	return
  4892  }
  4893  
  4894  // DeleteCustomMetric API operation for AWS IoT.
  4895  //
  4896  // Deletes a Device Defender detect custom metric.
  4897  //
  4898  // Requires permission to access the DeleteCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4899  // action.
  4900  //
  4901  // Before you can delete a custom metric, you must first remove the custom metric
  4902  // from all security profiles it's a part of. The security profile associated
  4903  // with the custom metric can be found using the ListSecurityProfiles (https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html)
  4904  // API with metricName set to your custom metric name.
  4905  //
  4906  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4907  // with awserr.Error's Code and Message methods to get detailed information about
  4908  // the error.
  4909  //
  4910  // See the AWS API reference guide for AWS IoT's
  4911  // API operation DeleteCustomMetric for usage and error information.
  4912  //
  4913  // Returned Error Types:
  4914  //   * InvalidRequestException
  4915  //   The request is not valid.
  4916  //
  4917  //   * ThrottlingException
  4918  //   The rate exceeds the limit.
  4919  //
  4920  //   * InternalFailureException
  4921  //   An unexpected error has occurred.
  4922  //
  4923  func (c *IoT) DeleteCustomMetric(input *DeleteCustomMetricInput) (*DeleteCustomMetricOutput, error) {
  4924  	req, out := c.DeleteCustomMetricRequest(input)
  4925  	return out, req.Send()
  4926  }
  4927  
  4928  // DeleteCustomMetricWithContext is the same as DeleteCustomMetric with the addition of
  4929  // the ability to pass a context and additional request options.
  4930  //
  4931  // See DeleteCustomMetric for details on how to use this API operation.
  4932  //
  4933  // The context must be non-nil and will be used for request cancellation. If
  4934  // the context is nil a panic will occur. In the future the SDK may create
  4935  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4936  // for more information on using Contexts.
  4937  func (c *IoT) DeleteCustomMetricWithContext(ctx aws.Context, input *DeleteCustomMetricInput, opts ...request.Option) (*DeleteCustomMetricOutput, error) {
  4938  	req, out := c.DeleteCustomMetricRequest(input)
  4939  	req.SetContext(ctx)
  4940  	req.ApplyOptions(opts...)
  4941  	return out, req.Send()
  4942  }
  4943  
  4944  const opDeleteDimension = "DeleteDimension"
  4945  
  4946  // DeleteDimensionRequest generates a "aws/request.Request" representing the
  4947  // client's request for the DeleteDimension operation. The "output" return
  4948  // value will be populated with the request's response once the request completes
  4949  // successfully.
  4950  //
  4951  // Use "Send" method on the returned Request to send the API call to the service.
  4952  // the "output" return value is not valid until after Send returns without error.
  4953  //
  4954  // See DeleteDimension for more information on using the DeleteDimension
  4955  // API call, and error handling.
  4956  //
  4957  // This method is useful when you want to inject custom logic or configuration
  4958  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4959  //
  4960  //
  4961  //    // Example sending a request using the DeleteDimensionRequest method.
  4962  //    req, resp := client.DeleteDimensionRequest(params)
  4963  //
  4964  //    err := req.Send()
  4965  //    if err == nil { // resp is now filled
  4966  //        fmt.Println(resp)
  4967  //    }
  4968  func (c *IoT) DeleteDimensionRequest(input *DeleteDimensionInput) (req *request.Request, output *DeleteDimensionOutput) {
  4969  	op := &request.Operation{
  4970  		Name:       opDeleteDimension,
  4971  		HTTPMethod: "DELETE",
  4972  		HTTPPath:   "/dimensions/{name}",
  4973  	}
  4974  
  4975  	if input == nil {
  4976  		input = &DeleteDimensionInput{}
  4977  	}
  4978  
  4979  	output = &DeleteDimensionOutput{}
  4980  	req = c.newRequest(op, input, output)
  4981  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4982  	return
  4983  }
  4984  
  4985  // DeleteDimension API operation for AWS IoT.
  4986  //
  4987  // Removes the specified dimension from your Amazon Web Services accounts.
  4988  //
  4989  // Requires permission to access the DeleteDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  4990  // action.
  4991  //
  4992  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4993  // with awserr.Error's Code and Message methods to get detailed information about
  4994  // the error.
  4995  //
  4996  // See the AWS API reference guide for AWS IoT's
  4997  // API operation DeleteDimension for usage and error information.
  4998  //
  4999  // Returned Error Types:
  5000  //   * InternalFailureException
  5001  //   An unexpected error has occurred.
  5002  //
  5003  //   * InvalidRequestException
  5004  //   The request is not valid.
  5005  //
  5006  //   * ThrottlingException
  5007  //   The rate exceeds the limit.
  5008  //
  5009  func (c *IoT) DeleteDimension(input *DeleteDimensionInput) (*DeleteDimensionOutput, error) {
  5010  	req, out := c.DeleteDimensionRequest(input)
  5011  	return out, req.Send()
  5012  }
  5013  
  5014  // DeleteDimensionWithContext is the same as DeleteDimension with the addition of
  5015  // the ability to pass a context and additional request options.
  5016  //
  5017  // See DeleteDimension for details on how to use this API operation.
  5018  //
  5019  // The context must be non-nil and will be used for request cancellation. If
  5020  // the context is nil a panic will occur. In the future the SDK may create
  5021  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5022  // for more information on using Contexts.
  5023  func (c *IoT) DeleteDimensionWithContext(ctx aws.Context, input *DeleteDimensionInput, opts ...request.Option) (*DeleteDimensionOutput, error) {
  5024  	req, out := c.DeleteDimensionRequest(input)
  5025  	req.SetContext(ctx)
  5026  	req.ApplyOptions(opts...)
  5027  	return out, req.Send()
  5028  }
  5029  
  5030  const opDeleteDomainConfiguration = "DeleteDomainConfiguration"
  5031  
  5032  // DeleteDomainConfigurationRequest generates a "aws/request.Request" representing the
  5033  // client's request for the DeleteDomainConfiguration operation. The "output" return
  5034  // value will be populated with the request's response once the request completes
  5035  // successfully.
  5036  //
  5037  // Use "Send" method on the returned Request to send the API call to the service.
  5038  // the "output" return value is not valid until after Send returns without error.
  5039  //
  5040  // See DeleteDomainConfiguration for more information on using the DeleteDomainConfiguration
  5041  // API call, and error handling.
  5042  //
  5043  // This method is useful when you want to inject custom logic or configuration
  5044  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5045  //
  5046  //
  5047  //    // Example sending a request using the DeleteDomainConfigurationRequest method.
  5048  //    req, resp := client.DeleteDomainConfigurationRequest(params)
  5049  //
  5050  //    err := req.Send()
  5051  //    if err == nil { // resp is now filled
  5052  //        fmt.Println(resp)
  5053  //    }
  5054  func (c *IoT) DeleteDomainConfigurationRequest(input *DeleteDomainConfigurationInput) (req *request.Request, output *DeleteDomainConfigurationOutput) {
  5055  	op := &request.Operation{
  5056  		Name:       opDeleteDomainConfiguration,
  5057  		HTTPMethod: "DELETE",
  5058  		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
  5059  	}
  5060  
  5061  	if input == nil {
  5062  		input = &DeleteDomainConfigurationInput{}
  5063  	}
  5064  
  5065  	output = &DeleteDomainConfigurationOutput{}
  5066  	req = c.newRequest(op, input, output)
  5067  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5068  	return
  5069  }
  5070  
  5071  // DeleteDomainConfiguration API operation for AWS IoT.
  5072  //
  5073  // Deletes the specified domain configuration.
  5074  //
  5075  // Requires permission to access the DeleteDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5076  // action.
  5077  //
  5078  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5079  // with awserr.Error's Code and Message methods to get detailed information about
  5080  // the error.
  5081  //
  5082  // See the AWS API reference guide for AWS IoT's
  5083  // API operation DeleteDomainConfiguration for usage and error information.
  5084  //
  5085  // Returned Error Types:
  5086  //   * ResourceNotFoundException
  5087  //   The specified resource does not exist.
  5088  //
  5089  //   * ThrottlingException
  5090  //   The rate exceeds the limit.
  5091  //
  5092  //   * UnauthorizedException
  5093  //   You are not authorized to perform this operation.
  5094  //
  5095  //   * ServiceUnavailableException
  5096  //   The service is temporarily unavailable.
  5097  //
  5098  //   * InternalFailureException
  5099  //   An unexpected error has occurred.
  5100  //
  5101  //   * InvalidRequestException
  5102  //   The request is not valid.
  5103  //
  5104  func (c *IoT) DeleteDomainConfiguration(input *DeleteDomainConfigurationInput) (*DeleteDomainConfigurationOutput, error) {
  5105  	req, out := c.DeleteDomainConfigurationRequest(input)
  5106  	return out, req.Send()
  5107  }
  5108  
  5109  // DeleteDomainConfigurationWithContext is the same as DeleteDomainConfiguration with the addition of
  5110  // the ability to pass a context and additional request options.
  5111  //
  5112  // See DeleteDomainConfiguration for details on how to use this API operation.
  5113  //
  5114  // The context must be non-nil and will be used for request cancellation. If
  5115  // the context is nil a panic will occur. In the future the SDK may create
  5116  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5117  // for more information on using Contexts.
  5118  func (c *IoT) DeleteDomainConfigurationWithContext(ctx aws.Context, input *DeleteDomainConfigurationInput, opts ...request.Option) (*DeleteDomainConfigurationOutput, error) {
  5119  	req, out := c.DeleteDomainConfigurationRequest(input)
  5120  	req.SetContext(ctx)
  5121  	req.ApplyOptions(opts...)
  5122  	return out, req.Send()
  5123  }
  5124  
  5125  const opDeleteDynamicThingGroup = "DeleteDynamicThingGroup"
  5126  
  5127  // DeleteDynamicThingGroupRequest generates a "aws/request.Request" representing the
  5128  // client's request for the DeleteDynamicThingGroup operation. The "output" return
  5129  // value will be populated with the request's response once the request completes
  5130  // successfully.
  5131  //
  5132  // Use "Send" method on the returned Request to send the API call to the service.
  5133  // the "output" return value is not valid until after Send returns without error.
  5134  //
  5135  // See DeleteDynamicThingGroup for more information on using the DeleteDynamicThingGroup
  5136  // API call, and error handling.
  5137  //
  5138  // This method is useful when you want to inject custom logic or configuration
  5139  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5140  //
  5141  //
  5142  //    // Example sending a request using the DeleteDynamicThingGroupRequest method.
  5143  //    req, resp := client.DeleteDynamicThingGroupRequest(params)
  5144  //
  5145  //    err := req.Send()
  5146  //    if err == nil { // resp is now filled
  5147  //        fmt.Println(resp)
  5148  //    }
  5149  func (c *IoT) DeleteDynamicThingGroupRequest(input *DeleteDynamicThingGroupInput) (req *request.Request, output *DeleteDynamicThingGroupOutput) {
  5150  	op := &request.Operation{
  5151  		Name:       opDeleteDynamicThingGroup,
  5152  		HTTPMethod: "DELETE",
  5153  		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
  5154  	}
  5155  
  5156  	if input == nil {
  5157  		input = &DeleteDynamicThingGroupInput{}
  5158  	}
  5159  
  5160  	output = &DeleteDynamicThingGroupOutput{}
  5161  	req = c.newRequest(op, input, output)
  5162  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5163  	return
  5164  }
  5165  
  5166  // DeleteDynamicThingGroup API operation for AWS IoT.
  5167  //
  5168  // Deletes a dynamic thing group.
  5169  //
  5170  // Requires permission to access the DeleteDynamicThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5171  // action.
  5172  //
  5173  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5174  // with awserr.Error's Code and Message methods to get detailed information about
  5175  // the error.
  5176  //
  5177  // See the AWS API reference guide for AWS IoT's
  5178  // API operation DeleteDynamicThingGroup for usage and error information.
  5179  //
  5180  // Returned Error Types:
  5181  //   * InvalidRequestException
  5182  //   The request is not valid.
  5183  //
  5184  //   * VersionConflictException
  5185  //   An exception thrown when the version of an entity specified with the expectedVersion
  5186  //   parameter does not match the latest version in the system.
  5187  //
  5188  //   * ThrottlingException
  5189  //   The rate exceeds the limit.
  5190  //
  5191  //   * InternalFailureException
  5192  //   An unexpected error has occurred.
  5193  //
  5194  func (c *IoT) DeleteDynamicThingGroup(input *DeleteDynamicThingGroupInput) (*DeleteDynamicThingGroupOutput, error) {
  5195  	req, out := c.DeleteDynamicThingGroupRequest(input)
  5196  	return out, req.Send()
  5197  }
  5198  
  5199  // DeleteDynamicThingGroupWithContext is the same as DeleteDynamicThingGroup with the addition of
  5200  // the ability to pass a context and additional request options.
  5201  //
  5202  // See DeleteDynamicThingGroup for details on how to use this API operation.
  5203  //
  5204  // The context must be non-nil and will be used for request cancellation. If
  5205  // the context is nil a panic will occur. In the future the SDK may create
  5206  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5207  // for more information on using Contexts.
  5208  func (c *IoT) DeleteDynamicThingGroupWithContext(ctx aws.Context, input *DeleteDynamicThingGroupInput, opts ...request.Option) (*DeleteDynamicThingGroupOutput, error) {
  5209  	req, out := c.DeleteDynamicThingGroupRequest(input)
  5210  	req.SetContext(ctx)
  5211  	req.ApplyOptions(opts...)
  5212  	return out, req.Send()
  5213  }
  5214  
  5215  const opDeleteFleetMetric = "DeleteFleetMetric"
  5216  
  5217  // DeleteFleetMetricRequest generates a "aws/request.Request" representing the
  5218  // client's request for the DeleteFleetMetric operation. The "output" return
  5219  // value will be populated with the request's response once the request completes
  5220  // successfully.
  5221  //
  5222  // Use "Send" method on the returned Request to send the API call to the service.
  5223  // the "output" return value is not valid until after Send returns without error.
  5224  //
  5225  // See DeleteFleetMetric for more information on using the DeleteFleetMetric
  5226  // API call, and error handling.
  5227  //
  5228  // This method is useful when you want to inject custom logic or configuration
  5229  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5230  //
  5231  //
  5232  //    // Example sending a request using the DeleteFleetMetricRequest method.
  5233  //    req, resp := client.DeleteFleetMetricRequest(params)
  5234  //
  5235  //    err := req.Send()
  5236  //    if err == nil { // resp is now filled
  5237  //        fmt.Println(resp)
  5238  //    }
  5239  func (c *IoT) DeleteFleetMetricRequest(input *DeleteFleetMetricInput) (req *request.Request, output *DeleteFleetMetricOutput) {
  5240  	op := &request.Operation{
  5241  		Name:       opDeleteFleetMetric,
  5242  		HTTPMethod: "DELETE",
  5243  		HTTPPath:   "/fleet-metric/{metricName}",
  5244  	}
  5245  
  5246  	if input == nil {
  5247  		input = &DeleteFleetMetricInput{}
  5248  	}
  5249  
  5250  	output = &DeleteFleetMetricOutput{}
  5251  	req = c.newRequest(op, input, output)
  5252  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5253  	return
  5254  }
  5255  
  5256  // DeleteFleetMetric API operation for AWS IoT.
  5257  //
  5258  // Deletes the specified fleet metric. Returns successfully with no error if
  5259  // the deletion is successful or you specify a fleet metric that doesn't exist.
  5260  //
  5261  // Requires permission to access the DeleteFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5262  // action.
  5263  //
  5264  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5265  // with awserr.Error's Code and Message methods to get detailed information about
  5266  // the error.
  5267  //
  5268  // See the AWS API reference guide for AWS IoT's
  5269  // API operation DeleteFleetMetric for usage and error information.
  5270  //
  5271  // Returned Error Types:
  5272  //   * InvalidRequestException
  5273  //   The request is not valid.
  5274  //
  5275  //   * ThrottlingException
  5276  //   The rate exceeds the limit.
  5277  //
  5278  //   * UnauthorizedException
  5279  //   You are not authorized to perform this operation.
  5280  //
  5281  //   * ServiceUnavailableException
  5282  //   The service is temporarily unavailable.
  5283  //
  5284  //   * InternalFailureException
  5285  //   An unexpected error has occurred.
  5286  //
  5287  //   * VersionConflictException
  5288  //   An exception thrown when the version of an entity specified with the expectedVersion
  5289  //   parameter does not match the latest version in the system.
  5290  //
  5291  func (c *IoT) DeleteFleetMetric(input *DeleteFleetMetricInput) (*DeleteFleetMetricOutput, error) {
  5292  	req, out := c.DeleteFleetMetricRequest(input)
  5293  	return out, req.Send()
  5294  }
  5295  
  5296  // DeleteFleetMetricWithContext is the same as DeleteFleetMetric with the addition of
  5297  // the ability to pass a context and additional request options.
  5298  //
  5299  // See DeleteFleetMetric for details on how to use this API operation.
  5300  //
  5301  // The context must be non-nil and will be used for request cancellation. If
  5302  // the context is nil a panic will occur. In the future the SDK may create
  5303  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5304  // for more information on using Contexts.
  5305  func (c *IoT) DeleteFleetMetricWithContext(ctx aws.Context, input *DeleteFleetMetricInput, opts ...request.Option) (*DeleteFleetMetricOutput, error) {
  5306  	req, out := c.DeleteFleetMetricRequest(input)
  5307  	req.SetContext(ctx)
  5308  	req.ApplyOptions(opts...)
  5309  	return out, req.Send()
  5310  }
  5311  
  5312  const opDeleteJob = "DeleteJob"
  5313  
  5314  // DeleteJobRequest generates a "aws/request.Request" representing the
  5315  // client's request for the DeleteJob operation. The "output" return
  5316  // value will be populated with the request's response once the request completes
  5317  // successfully.
  5318  //
  5319  // Use "Send" method on the returned Request to send the API call to the service.
  5320  // the "output" return value is not valid until after Send returns without error.
  5321  //
  5322  // See DeleteJob for more information on using the DeleteJob
  5323  // API call, and error handling.
  5324  //
  5325  // This method is useful when you want to inject custom logic or configuration
  5326  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5327  //
  5328  //
  5329  //    // Example sending a request using the DeleteJobRequest method.
  5330  //    req, resp := client.DeleteJobRequest(params)
  5331  //
  5332  //    err := req.Send()
  5333  //    if err == nil { // resp is now filled
  5334  //        fmt.Println(resp)
  5335  //    }
  5336  func (c *IoT) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
  5337  	op := &request.Operation{
  5338  		Name:       opDeleteJob,
  5339  		HTTPMethod: "DELETE",
  5340  		HTTPPath:   "/jobs/{jobId}",
  5341  	}
  5342  
  5343  	if input == nil {
  5344  		input = &DeleteJobInput{}
  5345  	}
  5346  
  5347  	output = &DeleteJobOutput{}
  5348  	req = c.newRequest(op, input, output)
  5349  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5350  	return
  5351  }
  5352  
  5353  // DeleteJob API operation for AWS IoT.
  5354  //
  5355  // Deletes a job and its related job executions.
  5356  //
  5357  // Deleting a job may take time, depending on the number of job executions created
  5358  // for the job and various other factors. While the job is being deleted, the
  5359  // status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to
  5360  // delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will
  5361  // result in an error.
  5362  //
  5363  // Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or
  5364  // a LimitExceededException will occur.
  5365  //
  5366  // Requires permission to access the DeleteJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5367  // action.
  5368  //
  5369  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5370  // with awserr.Error's Code and Message methods to get detailed information about
  5371  // the error.
  5372  //
  5373  // See the AWS API reference guide for AWS IoT's
  5374  // API operation DeleteJob for usage and error information.
  5375  //
  5376  // Returned Error Types:
  5377  //   * InvalidRequestException
  5378  //   The request is not valid.
  5379  //
  5380  //   * InvalidStateTransitionException
  5381  //   An attempt was made to change to an invalid state, for example by deleting
  5382  //   a job or a job execution which is "IN_PROGRESS" without setting the force
  5383  //   parameter.
  5384  //
  5385  //   * ResourceNotFoundException
  5386  //   The specified resource does not exist.
  5387  //
  5388  //   * LimitExceededException
  5389  //   A limit has been exceeded.
  5390  //
  5391  //   * ThrottlingException
  5392  //   The rate exceeds the limit.
  5393  //
  5394  //   * ServiceUnavailableException
  5395  //   The service is temporarily unavailable.
  5396  //
  5397  func (c *IoT) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
  5398  	req, out := c.DeleteJobRequest(input)
  5399  	return out, req.Send()
  5400  }
  5401  
  5402  // DeleteJobWithContext is the same as DeleteJob with the addition of
  5403  // the ability to pass a context and additional request options.
  5404  //
  5405  // See DeleteJob for details on how to use this API operation.
  5406  //
  5407  // The context must be non-nil and will be used for request cancellation. If
  5408  // the context is nil a panic will occur. In the future the SDK may create
  5409  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5410  // for more information on using Contexts.
  5411  func (c *IoT) DeleteJobWithContext(ctx aws.Context, input *DeleteJobInput, opts ...request.Option) (*DeleteJobOutput, error) {
  5412  	req, out := c.DeleteJobRequest(input)
  5413  	req.SetContext(ctx)
  5414  	req.ApplyOptions(opts...)
  5415  	return out, req.Send()
  5416  }
  5417  
  5418  const opDeleteJobExecution = "DeleteJobExecution"
  5419  
  5420  // DeleteJobExecutionRequest generates a "aws/request.Request" representing the
  5421  // client's request for the DeleteJobExecution operation. The "output" return
  5422  // value will be populated with the request's response once the request completes
  5423  // successfully.
  5424  //
  5425  // Use "Send" method on the returned Request to send the API call to the service.
  5426  // the "output" return value is not valid until after Send returns without error.
  5427  //
  5428  // See DeleteJobExecution for more information on using the DeleteJobExecution
  5429  // API call, and error handling.
  5430  //
  5431  // This method is useful when you want to inject custom logic or configuration
  5432  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5433  //
  5434  //
  5435  //    // Example sending a request using the DeleteJobExecutionRequest method.
  5436  //    req, resp := client.DeleteJobExecutionRequest(params)
  5437  //
  5438  //    err := req.Send()
  5439  //    if err == nil { // resp is now filled
  5440  //        fmt.Println(resp)
  5441  //    }
  5442  func (c *IoT) DeleteJobExecutionRequest(input *DeleteJobExecutionInput) (req *request.Request, output *DeleteJobExecutionOutput) {
  5443  	op := &request.Operation{
  5444  		Name:       opDeleteJobExecution,
  5445  		HTTPMethod: "DELETE",
  5446  		HTTPPath:   "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}",
  5447  	}
  5448  
  5449  	if input == nil {
  5450  		input = &DeleteJobExecutionInput{}
  5451  	}
  5452  
  5453  	output = &DeleteJobExecutionOutput{}
  5454  	req = c.newRequest(op, input, output)
  5455  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5456  	return
  5457  }
  5458  
  5459  // DeleteJobExecution API operation for AWS IoT.
  5460  //
  5461  // Deletes a job execution.
  5462  //
  5463  // Requires permission to access the DeleteJobExecution (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5464  // action.
  5465  //
  5466  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5467  // with awserr.Error's Code and Message methods to get detailed information about
  5468  // the error.
  5469  //
  5470  // See the AWS API reference guide for AWS IoT's
  5471  // API operation DeleteJobExecution for usage and error information.
  5472  //
  5473  // Returned Error Types:
  5474  //   * InvalidRequestException
  5475  //   The request is not valid.
  5476  //
  5477  //   * InvalidStateTransitionException
  5478  //   An attempt was made to change to an invalid state, for example by deleting
  5479  //   a job or a job execution which is "IN_PROGRESS" without setting the force
  5480  //   parameter.
  5481  //
  5482  //   * ResourceNotFoundException
  5483  //   The specified resource does not exist.
  5484  //
  5485  //   * ThrottlingException
  5486  //   The rate exceeds the limit.
  5487  //
  5488  //   * ServiceUnavailableException
  5489  //   The service is temporarily unavailable.
  5490  //
  5491  func (c *IoT) DeleteJobExecution(input *DeleteJobExecutionInput) (*DeleteJobExecutionOutput, error) {
  5492  	req, out := c.DeleteJobExecutionRequest(input)
  5493  	return out, req.Send()
  5494  }
  5495  
  5496  // DeleteJobExecutionWithContext is the same as DeleteJobExecution with the addition of
  5497  // the ability to pass a context and additional request options.
  5498  //
  5499  // See DeleteJobExecution for details on how to use this API operation.
  5500  //
  5501  // The context must be non-nil and will be used for request cancellation. If
  5502  // the context is nil a panic will occur. In the future the SDK may create
  5503  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5504  // for more information on using Contexts.
  5505  func (c *IoT) DeleteJobExecutionWithContext(ctx aws.Context, input *DeleteJobExecutionInput, opts ...request.Option) (*DeleteJobExecutionOutput, error) {
  5506  	req, out := c.DeleteJobExecutionRequest(input)
  5507  	req.SetContext(ctx)
  5508  	req.ApplyOptions(opts...)
  5509  	return out, req.Send()
  5510  }
  5511  
  5512  const opDeleteJobTemplate = "DeleteJobTemplate"
  5513  
  5514  // DeleteJobTemplateRequest generates a "aws/request.Request" representing the
  5515  // client's request for the DeleteJobTemplate operation. The "output" return
  5516  // value will be populated with the request's response once the request completes
  5517  // successfully.
  5518  //
  5519  // Use "Send" method on the returned Request to send the API call to the service.
  5520  // the "output" return value is not valid until after Send returns without error.
  5521  //
  5522  // See DeleteJobTemplate for more information on using the DeleteJobTemplate
  5523  // API call, and error handling.
  5524  //
  5525  // This method is useful when you want to inject custom logic or configuration
  5526  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5527  //
  5528  //
  5529  //    // Example sending a request using the DeleteJobTemplateRequest method.
  5530  //    req, resp := client.DeleteJobTemplateRequest(params)
  5531  //
  5532  //    err := req.Send()
  5533  //    if err == nil { // resp is now filled
  5534  //        fmt.Println(resp)
  5535  //    }
  5536  func (c *IoT) DeleteJobTemplateRequest(input *DeleteJobTemplateInput) (req *request.Request, output *DeleteJobTemplateOutput) {
  5537  	op := &request.Operation{
  5538  		Name:       opDeleteJobTemplate,
  5539  		HTTPMethod: "DELETE",
  5540  		HTTPPath:   "/job-templates/{jobTemplateId}",
  5541  	}
  5542  
  5543  	if input == nil {
  5544  		input = &DeleteJobTemplateInput{}
  5545  	}
  5546  
  5547  	output = &DeleteJobTemplateOutput{}
  5548  	req = c.newRequest(op, input, output)
  5549  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5550  	return
  5551  }
  5552  
  5553  // DeleteJobTemplate API operation for AWS IoT.
  5554  //
  5555  // Deletes the specified job template.
  5556  //
  5557  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5558  // with awserr.Error's Code and Message methods to get detailed information about
  5559  // the error.
  5560  //
  5561  // See the AWS API reference guide for AWS IoT's
  5562  // API operation DeleteJobTemplate for usage and error information.
  5563  //
  5564  // Returned Error Types:
  5565  //   * InvalidRequestException
  5566  //   The request is not valid.
  5567  //
  5568  //   * ResourceNotFoundException
  5569  //   The specified resource does not exist.
  5570  //
  5571  //   * ThrottlingException
  5572  //   The rate exceeds the limit.
  5573  //
  5574  //   * InternalFailureException
  5575  //   An unexpected error has occurred.
  5576  //
  5577  func (c *IoT) DeleteJobTemplate(input *DeleteJobTemplateInput) (*DeleteJobTemplateOutput, error) {
  5578  	req, out := c.DeleteJobTemplateRequest(input)
  5579  	return out, req.Send()
  5580  }
  5581  
  5582  // DeleteJobTemplateWithContext is the same as DeleteJobTemplate with the addition of
  5583  // the ability to pass a context and additional request options.
  5584  //
  5585  // See DeleteJobTemplate for details on how to use this API operation.
  5586  //
  5587  // The context must be non-nil and will be used for request cancellation. If
  5588  // the context is nil a panic will occur. In the future the SDK may create
  5589  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5590  // for more information on using Contexts.
  5591  func (c *IoT) DeleteJobTemplateWithContext(ctx aws.Context, input *DeleteJobTemplateInput, opts ...request.Option) (*DeleteJobTemplateOutput, error) {
  5592  	req, out := c.DeleteJobTemplateRequest(input)
  5593  	req.SetContext(ctx)
  5594  	req.ApplyOptions(opts...)
  5595  	return out, req.Send()
  5596  }
  5597  
  5598  const opDeleteMitigationAction = "DeleteMitigationAction"
  5599  
  5600  // DeleteMitigationActionRequest generates a "aws/request.Request" representing the
  5601  // client's request for the DeleteMitigationAction operation. The "output" return
  5602  // value will be populated with the request's response once the request completes
  5603  // successfully.
  5604  //
  5605  // Use "Send" method on the returned Request to send the API call to the service.
  5606  // the "output" return value is not valid until after Send returns without error.
  5607  //
  5608  // See DeleteMitigationAction for more information on using the DeleteMitigationAction
  5609  // API call, and error handling.
  5610  //
  5611  // This method is useful when you want to inject custom logic or configuration
  5612  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5613  //
  5614  //
  5615  //    // Example sending a request using the DeleteMitigationActionRequest method.
  5616  //    req, resp := client.DeleteMitigationActionRequest(params)
  5617  //
  5618  //    err := req.Send()
  5619  //    if err == nil { // resp is now filled
  5620  //        fmt.Println(resp)
  5621  //    }
  5622  func (c *IoT) DeleteMitigationActionRequest(input *DeleteMitigationActionInput) (req *request.Request, output *DeleteMitigationActionOutput) {
  5623  	op := &request.Operation{
  5624  		Name:       opDeleteMitigationAction,
  5625  		HTTPMethod: "DELETE",
  5626  		HTTPPath:   "/mitigationactions/actions/{actionName}",
  5627  	}
  5628  
  5629  	if input == nil {
  5630  		input = &DeleteMitigationActionInput{}
  5631  	}
  5632  
  5633  	output = &DeleteMitigationActionOutput{}
  5634  	req = c.newRequest(op, input, output)
  5635  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5636  	return
  5637  }
  5638  
  5639  // DeleteMitigationAction API operation for AWS IoT.
  5640  //
  5641  // Deletes a defined mitigation action from your Amazon Web Services accounts.
  5642  //
  5643  // Requires permission to access the DeleteMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5644  // action.
  5645  //
  5646  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5647  // with awserr.Error's Code and Message methods to get detailed information about
  5648  // the error.
  5649  //
  5650  // See the AWS API reference guide for AWS IoT's
  5651  // API operation DeleteMitigationAction for usage and error information.
  5652  //
  5653  // Returned Error Types:
  5654  //   * InvalidRequestException
  5655  //   The request is not valid.
  5656  //
  5657  //   * ThrottlingException
  5658  //   The rate exceeds the limit.
  5659  //
  5660  //   * InternalFailureException
  5661  //   An unexpected error has occurred.
  5662  //
  5663  func (c *IoT) DeleteMitigationAction(input *DeleteMitigationActionInput) (*DeleteMitigationActionOutput, error) {
  5664  	req, out := c.DeleteMitigationActionRequest(input)
  5665  	return out, req.Send()
  5666  }
  5667  
  5668  // DeleteMitigationActionWithContext is the same as DeleteMitigationAction with the addition of
  5669  // the ability to pass a context and additional request options.
  5670  //
  5671  // See DeleteMitigationAction for details on how to use this API operation.
  5672  //
  5673  // The context must be non-nil and will be used for request cancellation. If
  5674  // the context is nil a panic will occur. In the future the SDK may create
  5675  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5676  // for more information on using Contexts.
  5677  func (c *IoT) DeleteMitigationActionWithContext(ctx aws.Context, input *DeleteMitigationActionInput, opts ...request.Option) (*DeleteMitigationActionOutput, error) {
  5678  	req, out := c.DeleteMitigationActionRequest(input)
  5679  	req.SetContext(ctx)
  5680  	req.ApplyOptions(opts...)
  5681  	return out, req.Send()
  5682  }
  5683  
  5684  const opDeleteOTAUpdate = "DeleteOTAUpdate"
  5685  
  5686  // DeleteOTAUpdateRequest generates a "aws/request.Request" representing the
  5687  // client's request for the DeleteOTAUpdate operation. The "output" return
  5688  // value will be populated with the request's response once the request completes
  5689  // successfully.
  5690  //
  5691  // Use "Send" method on the returned Request to send the API call to the service.
  5692  // the "output" return value is not valid until after Send returns without error.
  5693  //
  5694  // See DeleteOTAUpdate for more information on using the DeleteOTAUpdate
  5695  // API call, and error handling.
  5696  //
  5697  // This method is useful when you want to inject custom logic or configuration
  5698  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5699  //
  5700  //
  5701  //    // Example sending a request using the DeleteOTAUpdateRequest method.
  5702  //    req, resp := client.DeleteOTAUpdateRequest(params)
  5703  //
  5704  //    err := req.Send()
  5705  //    if err == nil { // resp is now filled
  5706  //        fmt.Println(resp)
  5707  //    }
  5708  func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request.Request, output *DeleteOTAUpdateOutput) {
  5709  	op := &request.Operation{
  5710  		Name:       opDeleteOTAUpdate,
  5711  		HTTPMethod: "DELETE",
  5712  		HTTPPath:   "/otaUpdates/{otaUpdateId}",
  5713  	}
  5714  
  5715  	if input == nil {
  5716  		input = &DeleteOTAUpdateInput{}
  5717  	}
  5718  
  5719  	output = &DeleteOTAUpdateOutput{}
  5720  	req = c.newRequest(op, input, output)
  5721  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5722  	return
  5723  }
  5724  
  5725  // DeleteOTAUpdate API operation for AWS IoT.
  5726  //
  5727  // Delete an OTA update.
  5728  //
  5729  // Requires permission to access the DeleteOTAUpdate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5730  // action.
  5731  //
  5732  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5733  // with awserr.Error's Code and Message methods to get detailed information about
  5734  // the error.
  5735  //
  5736  // See the AWS API reference guide for AWS IoT's
  5737  // API operation DeleteOTAUpdate for usage and error information.
  5738  //
  5739  // Returned Error Types:
  5740  //   * InvalidRequestException
  5741  //   The request is not valid.
  5742  //
  5743  //   * ResourceNotFoundException
  5744  //   The specified resource does not exist.
  5745  //
  5746  //   * ThrottlingException
  5747  //   The rate exceeds the limit.
  5748  //
  5749  //   * UnauthorizedException
  5750  //   You are not authorized to perform this operation.
  5751  //
  5752  //   * InternalFailureException
  5753  //   An unexpected error has occurred.
  5754  //
  5755  //   * ServiceUnavailableException
  5756  //   The service is temporarily unavailable.
  5757  //
  5758  //   * VersionConflictException
  5759  //   An exception thrown when the version of an entity specified with the expectedVersion
  5760  //   parameter does not match the latest version in the system.
  5761  //
  5762  func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) {
  5763  	req, out := c.DeleteOTAUpdateRequest(input)
  5764  	return out, req.Send()
  5765  }
  5766  
  5767  // DeleteOTAUpdateWithContext is the same as DeleteOTAUpdate with the addition of
  5768  // the ability to pass a context and additional request options.
  5769  //
  5770  // See DeleteOTAUpdate for details on how to use this API operation.
  5771  //
  5772  // The context must be non-nil and will be used for request cancellation. If
  5773  // the context is nil a panic will occur. In the future the SDK may create
  5774  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5775  // for more information on using Contexts.
  5776  func (c *IoT) DeleteOTAUpdateWithContext(ctx aws.Context, input *DeleteOTAUpdateInput, opts ...request.Option) (*DeleteOTAUpdateOutput, error) {
  5777  	req, out := c.DeleteOTAUpdateRequest(input)
  5778  	req.SetContext(ctx)
  5779  	req.ApplyOptions(opts...)
  5780  	return out, req.Send()
  5781  }
  5782  
  5783  const opDeletePolicy = "DeletePolicy"
  5784  
  5785  // DeletePolicyRequest generates a "aws/request.Request" representing the
  5786  // client's request for the DeletePolicy operation. The "output" return
  5787  // value will be populated with the request's response once the request completes
  5788  // successfully.
  5789  //
  5790  // Use "Send" method on the returned Request to send the API call to the service.
  5791  // the "output" return value is not valid until after Send returns without error.
  5792  //
  5793  // See DeletePolicy for more information on using the DeletePolicy
  5794  // API call, and error handling.
  5795  //
  5796  // This method is useful when you want to inject custom logic or configuration
  5797  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5798  //
  5799  //
  5800  //    // Example sending a request using the DeletePolicyRequest method.
  5801  //    req, resp := client.DeletePolicyRequest(params)
  5802  //
  5803  //    err := req.Send()
  5804  //    if err == nil { // resp is now filled
  5805  //        fmt.Println(resp)
  5806  //    }
  5807  func (c *IoT) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
  5808  	op := &request.Operation{
  5809  		Name:       opDeletePolicy,
  5810  		HTTPMethod: "DELETE",
  5811  		HTTPPath:   "/policies/{policyName}",
  5812  	}
  5813  
  5814  	if input == nil {
  5815  		input = &DeletePolicyInput{}
  5816  	}
  5817  
  5818  	output = &DeletePolicyOutput{}
  5819  	req = c.newRequest(op, input, output)
  5820  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5821  	return
  5822  }
  5823  
  5824  // DeletePolicy API operation for AWS IoT.
  5825  //
  5826  // Deletes the specified policy.
  5827  //
  5828  // A policy cannot be deleted if it has non-default versions or it is attached
  5829  // to any certificate.
  5830  //
  5831  // To delete a policy, use the DeletePolicyVersion action to delete all non-default
  5832  // versions of the policy; use the DetachPolicy action to detach the policy
  5833  // from any certificate; and then use the DeletePolicy action to delete the
  5834  // policy.
  5835  //
  5836  // When a policy is deleted using DeletePolicy, its default version is deleted
  5837  // with it.
  5838  //
  5839  // Because of the distributed nature of Amazon Web Services, it can take up
  5840  // to five minutes after a policy is detached before it's ready to be deleted.
  5841  //
  5842  // Requires permission to access the DeletePolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5843  // action.
  5844  //
  5845  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5846  // with awserr.Error's Code and Message methods to get detailed information about
  5847  // the error.
  5848  //
  5849  // See the AWS API reference guide for AWS IoT's
  5850  // API operation DeletePolicy for usage and error information.
  5851  //
  5852  // Returned Error Types:
  5853  //   * DeleteConflictException
  5854  //   You can't delete the resource because it is attached to one or more resources.
  5855  //
  5856  //   * ResourceNotFoundException
  5857  //   The specified resource does not exist.
  5858  //
  5859  //   * InvalidRequestException
  5860  //   The request is not valid.
  5861  //
  5862  //   * ThrottlingException
  5863  //   The rate exceeds the limit.
  5864  //
  5865  //   * UnauthorizedException
  5866  //   You are not authorized to perform this operation.
  5867  //
  5868  //   * ServiceUnavailableException
  5869  //   The service is temporarily unavailable.
  5870  //
  5871  //   * InternalFailureException
  5872  //   An unexpected error has occurred.
  5873  //
  5874  func (c *IoT) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
  5875  	req, out := c.DeletePolicyRequest(input)
  5876  	return out, req.Send()
  5877  }
  5878  
  5879  // DeletePolicyWithContext is the same as DeletePolicy with the addition of
  5880  // the ability to pass a context and additional request options.
  5881  //
  5882  // See DeletePolicy for details on how to use this API operation.
  5883  //
  5884  // The context must be non-nil and will be used for request cancellation. If
  5885  // the context is nil a panic will occur. In the future the SDK may create
  5886  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5887  // for more information on using Contexts.
  5888  func (c *IoT) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
  5889  	req, out := c.DeletePolicyRequest(input)
  5890  	req.SetContext(ctx)
  5891  	req.ApplyOptions(opts...)
  5892  	return out, req.Send()
  5893  }
  5894  
  5895  const opDeletePolicyVersion = "DeletePolicyVersion"
  5896  
  5897  // DeletePolicyVersionRequest generates a "aws/request.Request" representing the
  5898  // client's request for the DeletePolicyVersion operation. The "output" return
  5899  // value will be populated with the request's response once the request completes
  5900  // successfully.
  5901  //
  5902  // Use "Send" method on the returned Request to send the API call to the service.
  5903  // the "output" return value is not valid until after Send returns without error.
  5904  //
  5905  // See DeletePolicyVersion for more information on using the DeletePolicyVersion
  5906  // API call, and error handling.
  5907  //
  5908  // This method is useful when you want to inject custom logic or configuration
  5909  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5910  //
  5911  //
  5912  //    // Example sending a request using the DeletePolicyVersionRequest method.
  5913  //    req, resp := client.DeletePolicyVersionRequest(params)
  5914  //
  5915  //    err := req.Send()
  5916  //    if err == nil { // resp is now filled
  5917  //        fmt.Println(resp)
  5918  //    }
  5919  func (c *IoT) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
  5920  	op := &request.Operation{
  5921  		Name:       opDeletePolicyVersion,
  5922  		HTTPMethod: "DELETE",
  5923  		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
  5924  	}
  5925  
  5926  	if input == nil {
  5927  		input = &DeletePolicyVersionInput{}
  5928  	}
  5929  
  5930  	output = &DeletePolicyVersionOutput{}
  5931  	req = c.newRequest(op, input, output)
  5932  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5933  	return
  5934  }
  5935  
  5936  // DeletePolicyVersion API operation for AWS IoT.
  5937  //
  5938  // Deletes the specified version of the specified policy. You cannot delete
  5939  // the default version of a policy using this action. To delete the default
  5940  // version of a policy, use DeletePolicy. To find out which version of a policy
  5941  // is marked as the default version, use ListPolicyVersions.
  5942  //
  5943  // Requires permission to access the DeletePolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  5944  // action.
  5945  //
  5946  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5947  // with awserr.Error's Code and Message methods to get detailed information about
  5948  // the error.
  5949  //
  5950  // See the AWS API reference guide for AWS IoT's
  5951  // API operation DeletePolicyVersion for usage and error information.
  5952  //
  5953  // Returned Error Types:
  5954  //   * DeleteConflictException
  5955  //   You can't delete the resource because it is attached to one or more resources.
  5956  //
  5957  //   * ResourceNotFoundException
  5958  //   The specified resource does not exist.
  5959  //
  5960  //   * InvalidRequestException
  5961  //   The request is not valid.
  5962  //
  5963  //   * ThrottlingException
  5964  //   The rate exceeds the limit.
  5965  //
  5966  //   * UnauthorizedException
  5967  //   You are not authorized to perform this operation.
  5968  //
  5969  //   * ServiceUnavailableException
  5970  //   The service is temporarily unavailable.
  5971  //
  5972  //   * InternalFailureException
  5973  //   An unexpected error has occurred.
  5974  //
  5975  func (c *IoT) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
  5976  	req, out := c.DeletePolicyVersionRequest(input)
  5977  	return out, req.Send()
  5978  }
  5979  
  5980  // DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
  5981  // the ability to pass a context and additional request options.
  5982  //
  5983  // See DeletePolicyVersion for details on how to use this API operation.
  5984  //
  5985  // The context must be non-nil and will be used for request cancellation. If
  5986  // the context is nil a panic will occur. In the future the SDK may create
  5987  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5988  // for more information on using Contexts.
  5989  func (c *IoT) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
  5990  	req, out := c.DeletePolicyVersionRequest(input)
  5991  	req.SetContext(ctx)
  5992  	req.ApplyOptions(opts...)
  5993  	return out, req.Send()
  5994  }
  5995  
  5996  const opDeleteProvisioningTemplate = "DeleteProvisioningTemplate"
  5997  
  5998  // DeleteProvisioningTemplateRequest generates a "aws/request.Request" representing the
  5999  // client's request for the DeleteProvisioningTemplate operation. The "output" return
  6000  // value will be populated with the request's response once the request completes
  6001  // successfully.
  6002  //
  6003  // Use "Send" method on the returned Request to send the API call to the service.
  6004  // the "output" return value is not valid until after Send returns without error.
  6005  //
  6006  // See DeleteProvisioningTemplate for more information on using the DeleteProvisioningTemplate
  6007  // API call, and error handling.
  6008  //
  6009  // This method is useful when you want to inject custom logic or configuration
  6010  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6011  //
  6012  //
  6013  //    // Example sending a request using the DeleteProvisioningTemplateRequest method.
  6014  //    req, resp := client.DeleteProvisioningTemplateRequest(params)
  6015  //
  6016  //    err := req.Send()
  6017  //    if err == nil { // resp is now filled
  6018  //        fmt.Println(resp)
  6019  //    }
  6020  func (c *IoT) DeleteProvisioningTemplateRequest(input *DeleteProvisioningTemplateInput) (req *request.Request, output *DeleteProvisioningTemplateOutput) {
  6021  	op := &request.Operation{
  6022  		Name:       opDeleteProvisioningTemplate,
  6023  		HTTPMethod: "DELETE",
  6024  		HTTPPath:   "/provisioning-templates/{templateName}",
  6025  	}
  6026  
  6027  	if input == nil {
  6028  		input = &DeleteProvisioningTemplateInput{}
  6029  	}
  6030  
  6031  	output = &DeleteProvisioningTemplateOutput{}
  6032  	req = c.newRequest(op, input, output)
  6033  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6034  	return
  6035  }
  6036  
  6037  // DeleteProvisioningTemplate API operation for AWS IoT.
  6038  //
  6039  // Deletes a fleet provisioning template.
  6040  //
  6041  // Requires permission to access the DeleteProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6042  // action.
  6043  //
  6044  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6045  // with awserr.Error's Code and Message methods to get detailed information about
  6046  // the error.
  6047  //
  6048  // See the AWS API reference guide for AWS IoT's
  6049  // API operation DeleteProvisioningTemplate for usage and error information.
  6050  //
  6051  // Returned Error Types:
  6052  //   * InternalFailureException
  6053  //   An unexpected error has occurred.
  6054  //
  6055  //   * InvalidRequestException
  6056  //   The request is not valid.
  6057  //
  6058  //   * ResourceNotFoundException
  6059  //   The specified resource does not exist.
  6060  //
  6061  //   * DeleteConflictException
  6062  //   You can't delete the resource because it is attached to one or more resources.
  6063  //
  6064  //   * ThrottlingException
  6065  //   The rate exceeds the limit.
  6066  //
  6067  //   * ConflictingResourceUpdateException
  6068  //   A conflicting resource update exception. This exception is thrown when two
  6069  //   pending updates cause a conflict.
  6070  //
  6071  //   * UnauthorizedException
  6072  //   You are not authorized to perform this operation.
  6073  //
  6074  func (c *IoT) DeleteProvisioningTemplate(input *DeleteProvisioningTemplateInput) (*DeleteProvisioningTemplateOutput, error) {
  6075  	req, out := c.DeleteProvisioningTemplateRequest(input)
  6076  	return out, req.Send()
  6077  }
  6078  
  6079  // DeleteProvisioningTemplateWithContext is the same as DeleteProvisioningTemplate with the addition of
  6080  // the ability to pass a context and additional request options.
  6081  //
  6082  // See DeleteProvisioningTemplate for details on how to use this API operation.
  6083  //
  6084  // The context must be non-nil and will be used for request cancellation. If
  6085  // the context is nil a panic will occur. In the future the SDK may create
  6086  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6087  // for more information on using Contexts.
  6088  func (c *IoT) DeleteProvisioningTemplateWithContext(ctx aws.Context, input *DeleteProvisioningTemplateInput, opts ...request.Option) (*DeleteProvisioningTemplateOutput, error) {
  6089  	req, out := c.DeleteProvisioningTemplateRequest(input)
  6090  	req.SetContext(ctx)
  6091  	req.ApplyOptions(opts...)
  6092  	return out, req.Send()
  6093  }
  6094  
  6095  const opDeleteProvisioningTemplateVersion = "DeleteProvisioningTemplateVersion"
  6096  
  6097  // DeleteProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
  6098  // client's request for the DeleteProvisioningTemplateVersion operation. The "output" return
  6099  // value will be populated with the request's response once the request completes
  6100  // successfully.
  6101  //
  6102  // Use "Send" method on the returned Request to send the API call to the service.
  6103  // the "output" return value is not valid until after Send returns without error.
  6104  //
  6105  // See DeleteProvisioningTemplateVersion for more information on using the DeleteProvisioningTemplateVersion
  6106  // API call, and error handling.
  6107  //
  6108  // This method is useful when you want to inject custom logic or configuration
  6109  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6110  //
  6111  //
  6112  //    // Example sending a request using the DeleteProvisioningTemplateVersionRequest method.
  6113  //    req, resp := client.DeleteProvisioningTemplateVersionRequest(params)
  6114  //
  6115  //    err := req.Send()
  6116  //    if err == nil { // resp is now filled
  6117  //        fmt.Println(resp)
  6118  //    }
  6119  func (c *IoT) DeleteProvisioningTemplateVersionRequest(input *DeleteProvisioningTemplateVersionInput) (req *request.Request, output *DeleteProvisioningTemplateVersionOutput) {
  6120  	op := &request.Operation{
  6121  		Name:       opDeleteProvisioningTemplateVersion,
  6122  		HTTPMethod: "DELETE",
  6123  		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
  6124  	}
  6125  
  6126  	if input == nil {
  6127  		input = &DeleteProvisioningTemplateVersionInput{}
  6128  	}
  6129  
  6130  	output = &DeleteProvisioningTemplateVersionOutput{}
  6131  	req = c.newRequest(op, input, output)
  6132  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6133  	return
  6134  }
  6135  
  6136  // DeleteProvisioningTemplateVersion API operation for AWS IoT.
  6137  //
  6138  // Deletes a fleet provisioning template version.
  6139  //
  6140  // Requires permission to access the DeleteProvisioningTemplateVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6141  // action.
  6142  //
  6143  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6144  // with awserr.Error's Code and Message methods to get detailed information about
  6145  // the error.
  6146  //
  6147  // See the AWS API reference guide for AWS IoT's
  6148  // API operation DeleteProvisioningTemplateVersion for usage and error information.
  6149  //
  6150  // Returned Error Types:
  6151  //   * InternalFailureException
  6152  //   An unexpected error has occurred.
  6153  //
  6154  //   * InvalidRequestException
  6155  //   The request is not valid.
  6156  //
  6157  //   * ThrottlingException
  6158  //   The rate exceeds the limit.
  6159  //
  6160  //   * ResourceNotFoundException
  6161  //   The specified resource does not exist.
  6162  //
  6163  //   * UnauthorizedException
  6164  //   You are not authorized to perform this operation.
  6165  //
  6166  //   * ConflictingResourceUpdateException
  6167  //   A conflicting resource update exception. This exception is thrown when two
  6168  //   pending updates cause a conflict.
  6169  //
  6170  //   * DeleteConflictException
  6171  //   You can't delete the resource because it is attached to one or more resources.
  6172  //
  6173  func (c *IoT) DeleteProvisioningTemplateVersion(input *DeleteProvisioningTemplateVersionInput) (*DeleteProvisioningTemplateVersionOutput, error) {
  6174  	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
  6175  	return out, req.Send()
  6176  }
  6177  
  6178  // DeleteProvisioningTemplateVersionWithContext is the same as DeleteProvisioningTemplateVersion with the addition of
  6179  // the ability to pass a context and additional request options.
  6180  //
  6181  // See DeleteProvisioningTemplateVersion for details on how to use this API operation.
  6182  //
  6183  // The context must be non-nil and will be used for request cancellation. If
  6184  // the context is nil a panic will occur. In the future the SDK may create
  6185  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6186  // for more information on using Contexts.
  6187  func (c *IoT) DeleteProvisioningTemplateVersionWithContext(ctx aws.Context, input *DeleteProvisioningTemplateVersionInput, opts ...request.Option) (*DeleteProvisioningTemplateVersionOutput, error) {
  6188  	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
  6189  	req.SetContext(ctx)
  6190  	req.ApplyOptions(opts...)
  6191  	return out, req.Send()
  6192  }
  6193  
  6194  const opDeleteRegistrationCode = "DeleteRegistrationCode"
  6195  
  6196  // DeleteRegistrationCodeRequest generates a "aws/request.Request" representing the
  6197  // client's request for the DeleteRegistrationCode operation. The "output" return
  6198  // value will be populated with the request's response once the request completes
  6199  // successfully.
  6200  //
  6201  // Use "Send" method on the returned Request to send the API call to the service.
  6202  // the "output" return value is not valid until after Send returns without error.
  6203  //
  6204  // See DeleteRegistrationCode for more information on using the DeleteRegistrationCode
  6205  // API call, and error handling.
  6206  //
  6207  // This method is useful when you want to inject custom logic or configuration
  6208  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6209  //
  6210  //
  6211  //    // Example sending a request using the DeleteRegistrationCodeRequest method.
  6212  //    req, resp := client.DeleteRegistrationCodeRequest(params)
  6213  //
  6214  //    err := req.Send()
  6215  //    if err == nil { // resp is now filled
  6216  //        fmt.Println(resp)
  6217  //    }
  6218  func (c *IoT) DeleteRegistrationCodeRequest(input *DeleteRegistrationCodeInput) (req *request.Request, output *DeleteRegistrationCodeOutput) {
  6219  	op := &request.Operation{
  6220  		Name:       opDeleteRegistrationCode,
  6221  		HTTPMethod: "DELETE",
  6222  		HTTPPath:   "/registrationcode",
  6223  	}
  6224  
  6225  	if input == nil {
  6226  		input = &DeleteRegistrationCodeInput{}
  6227  	}
  6228  
  6229  	output = &DeleteRegistrationCodeOutput{}
  6230  	req = c.newRequest(op, input, output)
  6231  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6232  	return
  6233  }
  6234  
  6235  // DeleteRegistrationCode API operation for AWS IoT.
  6236  //
  6237  // Deletes a CA certificate registration code.
  6238  //
  6239  // Requires permission to access the DeleteRegistrationCode (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6240  // action.
  6241  //
  6242  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6243  // with awserr.Error's Code and Message methods to get detailed information about
  6244  // the error.
  6245  //
  6246  // See the AWS API reference guide for AWS IoT's
  6247  // API operation DeleteRegistrationCode for usage and error information.
  6248  //
  6249  // Returned Error Types:
  6250  //   * ThrottlingException
  6251  //   The rate exceeds the limit.
  6252  //
  6253  //   * ResourceNotFoundException
  6254  //   The specified resource does not exist.
  6255  //
  6256  //   * UnauthorizedException
  6257  //   You are not authorized to perform this operation.
  6258  //
  6259  //   * ServiceUnavailableException
  6260  //   The service is temporarily unavailable.
  6261  //
  6262  //   * InternalFailureException
  6263  //   An unexpected error has occurred.
  6264  //
  6265  func (c *IoT) DeleteRegistrationCode(input *DeleteRegistrationCodeInput) (*DeleteRegistrationCodeOutput, error) {
  6266  	req, out := c.DeleteRegistrationCodeRequest(input)
  6267  	return out, req.Send()
  6268  }
  6269  
  6270  // DeleteRegistrationCodeWithContext is the same as DeleteRegistrationCode with the addition of
  6271  // the ability to pass a context and additional request options.
  6272  //
  6273  // See DeleteRegistrationCode for details on how to use this API operation.
  6274  //
  6275  // The context must be non-nil and will be used for request cancellation. If
  6276  // the context is nil a panic will occur. In the future the SDK may create
  6277  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6278  // for more information on using Contexts.
  6279  func (c *IoT) DeleteRegistrationCodeWithContext(ctx aws.Context, input *DeleteRegistrationCodeInput, opts ...request.Option) (*DeleteRegistrationCodeOutput, error) {
  6280  	req, out := c.DeleteRegistrationCodeRequest(input)
  6281  	req.SetContext(ctx)
  6282  	req.ApplyOptions(opts...)
  6283  	return out, req.Send()
  6284  }
  6285  
  6286  const opDeleteRoleAlias = "DeleteRoleAlias"
  6287  
  6288  // DeleteRoleAliasRequest generates a "aws/request.Request" representing the
  6289  // client's request for the DeleteRoleAlias operation. The "output" return
  6290  // value will be populated with the request's response once the request completes
  6291  // successfully.
  6292  //
  6293  // Use "Send" method on the returned Request to send the API call to the service.
  6294  // the "output" return value is not valid until after Send returns without error.
  6295  //
  6296  // See DeleteRoleAlias for more information on using the DeleteRoleAlias
  6297  // API call, and error handling.
  6298  //
  6299  // This method is useful when you want to inject custom logic or configuration
  6300  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6301  //
  6302  //
  6303  //    // Example sending a request using the DeleteRoleAliasRequest method.
  6304  //    req, resp := client.DeleteRoleAliasRequest(params)
  6305  //
  6306  //    err := req.Send()
  6307  //    if err == nil { // resp is now filled
  6308  //        fmt.Println(resp)
  6309  //    }
  6310  func (c *IoT) DeleteRoleAliasRequest(input *DeleteRoleAliasInput) (req *request.Request, output *DeleteRoleAliasOutput) {
  6311  	op := &request.Operation{
  6312  		Name:       opDeleteRoleAlias,
  6313  		HTTPMethod: "DELETE",
  6314  		HTTPPath:   "/role-aliases/{roleAlias}",
  6315  	}
  6316  
  6317  	if input == nil {
  6318  		input = &DeleteRoleAliasInput{}
  6319  	}
  6320  
  6321  	output = &DeleteRoleAliasOutput{}
  6322  	req = c.newRequest(op, input, output)
  6323  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6324  	return
  6325  }
  6326  
  6327  // DeleteRoleAlias API operation for AWS IoT.
  6328  //
  6329  // Deletes a role alias
  6330  //
  6331  // Requires permission to access the DeleteRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6332  // action.
  6333  //
  6334  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6335  // with awserr.Error's Code and Message methods to get detailed information about
  6336  // the error.
  6337  //
  6338  // See the AWS API reference guide for AWS IoT's
  6339  // API operation DeleteRoleAlias for usage and error information.
  6340  //
  6341  // Returned Error Types:
  6342  //   * DeleteConflictException
  6343  //   You can't delete the resource because it is attached to one or more resources.
  6344  //
  6345  //   * InvalidRequestException
  6346  //   The request is not valid.
  6347  //
  6348  //   * ThrottlingException
  6349  //   The rate exceeds the limit.
  6350  //
  6351  //   * UnauthorizedException
  6352  //   You are not authorized to perform this operation.
  6353  //
  6354  //   * ServiceUnavailableException
  6355  //   The service is temporarily unavailable.
  6356  //
  6357  //   * InternalFailureException
  6358  //   An unexpected error has occurred.
  6359  //
  6360  //   * ResourceNotFoundException
  6361  //   The specified resource does not exist.
  6362  //
  6363  func (c *IoT) DeleteRoleAlias(input *DeleteRoleAliasInput) (*DeleteRoleAliasOutput, error) {
  6364  	req, out := c.DeleteRoleAliasRequest(input)
  6365  	return out, req.Send()
  6366  }
  6367  
  6368  // DeleteRoleAliasWithContext is the same as DeleteRoleAlias with the addition of
  6369  // the ability to pass a context and additional request options.
  6370  //
  6371  // See DeleteRoleAlias for details on how to use this API operation.
  6372  //
  6373  // The context must be non-nil and will be used for request cancellation. If
  6374  // the context is nil a panic will occur. In the future the SDK may create
  6375  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6376  // for more information on using Contexts.
  6377  func (c *IoT) DeleteRoleAliasWithContext(ctx aws.Context, input *DeleteRoleAliasInput, opts ...request.Option) (*DeleteRoleAliasOutput, error) {
  6378  	req, out := c.DeleteRoleAliasRequest(input)
  6379  	req.SetContext(ctx)
  6380  	req.ApplyOptions(opts...)
  6381  	return out, req.Send()
  6382  }
  6383  
  6384  const opDeleteScheduledAudit = "DeleteScheduledAudit"
  6385  
  6386  // DeleteScheduledAuditRequest generates a "aws/request.Request" representing the
  6387  // client's request for the DeleteScheduledAudit operation. The "output" return
  6388  // value will be populated with the request's response once the request completes
  6389  // successfully.
  6390  //
  6391  // Use "Send" method on the returned Request to send the API call to the service.
  6392  // the "output" return value is not valid until after Send returns without error.
  6393  //
  6394  // See DeleteScheduledAudit for more information on using the DeleteScheduledAudit
  6395  // API call, and error handling.
  6396  //
  6397  // This method is useful when you want to inject custom logic or configuration
  6398  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6399  //
  6400  //
  6401  //    // Example sending a request using the DeleteScheduledAuditRequest method.
  6402  //    req, resp := client.DeleteScheduledAuditRequest(params)
  6403  //
  6404  //    err := req.Send()
  6405  //    if err == nil { // resp is now filled
  6406  //        fmt.Println(resp)
  6407  //    }
  6408  func (c *IoT) DeleteScheduledAuditRequest(input *DeleteScheduledAuditInput) (req *request.Request, output *DeleteScheduledAuditOutput) {
  6409  	op := &request.Operation{
  6410  		Name:       opDeleteScheduledAudit,
  6411  		HTTPMethod: "DELETE",
  6412  		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
  6413  	}
  6414  
  6415  	if input == nil {
  6416  		input = &DeleteScheduledAuditInput{}
  6417  	}
  6418  
  6419  	output = &DeleteScheduledAuditOutput{}
  6420  	req = c.newRequest(op, input, output)
  6421  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6422  	return
  6423  }
  6424  
  6425  // DeleteScheduledAudit API operation for AWS IoT.
  6426  //
  6427  // Deletes a scheduled audit.
  6428  //
  6429  // Requires permission to access the DeleteScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6430  // action.
  6431  //
  6432  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6433  // with awserr.Error's Code and Message methods to get detailed information about
  6434  // the error.
  6435  //
  6436  // See the AWS API reference guide for AWS IoT's
  6437  // API operation DeleteScheduledAudit for usage and error information.
  6438  //
  6439  // Returned Error Types:
  6440  //   * InvalidRequestException
  6441  //   The request is not valid.
  6442  //
  6443  //   * ResourceNotFoundException
  6444  //   The specified resource does not exist.
  6445  //
  6446  //   * ThrottlingException
  6447  //   The rate exceeds the limit.
  6448  //
  6449  //   * InternalFailureException
  6450  //   An unexpected error has occurred.
  6451  //
  6452  func (c *IoT) DeleteScheduledAudit(input *DeleteScheduledAuditInput) (*DeleteScheduledAuditOutput, error) {
  6453  	req, out := c.DeleteScheduledAuditRequest(input)
  6454  	return out, req.Send()
  6455  }
  6456  
  6457  // DeleteScheduledAuditWithContext is the same as DeleteScheduledAudit with the addition of
  6458  // the ability to pass a context and additional request options.
  6459  //
  6460  // See DeleteScheduledAudit for details on how to use this API operation.
  6461  //
  6462  // The context must be non-nil and will be used for request cancellation. If
  6463  // the context is nil a panic will occur. In the future the SDK may create
  6464  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6465  // for more information on using Contexts.
  6466  func (c *IoT) DeleteScheduledAuditWithContext(ctx aws.Context, input *DeleteScheduledAuditInput, opts ...request.Option) (*DeleteScheduledAuditOutput, error) {
  6467  	req, out := c.DeleteScheduledAuditRequest(input)
  6468  	req.SetContext(ctx)
  6469  	req.ApplyOptions(opts...)
  6470  	return out, req.Send()
  6471  }
  6472  
  6473  const opDeleteSecurityProfile = "DeleteSecurityProfile"
  6474  
  6475  // DeleteSecurityProfileRequest generates a "aws/request.Request" representing the
  6476  // client's request for the DeleteSecurityProfile operation. The "output" return
  6477  // value will be populated with the request's response once the request completes
  6478  // successfully.
  6479  //
  6480  // Use "Send" method on the returned Request to send the API call to the service.
  6481  // the "output" return value is not valid until after Send returns without error.
  6482  //
  6483  // See DeleteSecurityProfile for more information on using the DeleteSecurityProfile
  6484  // API call, and error handling.
  6485  //
  6486  // This method is useful when you want to inject custom logic or configuration
  6487  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6488  //
  6489  //
  6490  //    // Example sending a request using the DeleteSecurityProfileRequest method.
  6491  //    req, resp := client.DeleteSecurityProfileRequest(params)
  6492  //
  6493  //    err := req.Send()
  6494  //    if err == nil { // resp is now filled
  6495  //        fmt.Println(resp)
  6496  //    }
  6497  func (c *IoT) DeleteSecurityProfileRequest(input *DeleteSecurityProfileInput) (req *request.Request, output *DeleteSecurityProfileOutput) {
  6498  	op := &request.Operation{
  6499  		Name:       opDeleteSecurityProfile,
  6500  		HTTPMethod: "DELETE",
  6501  		HTTPPath:   "/security-profiles/{securityProfileName}",
  6502  	}
  6503  
  6504  	if input == nil {
  6505  		input = &DeleteSecurityProfileInput{}
  6506  	}
  6507  
  6508  	output = &DeleteSecurityProfileOutput{}
  6509  	req = c.newRequest(op, input, output)
  6510  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6511  	return
  6512  }
  6513  
  6514  // DeleteSecurityProfile API operation for AWS IoT.
  6515  //
  6516  // Deletes a Device Defender security profile.
  6517  //
  6518  // Requires permission to access the DeleteSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6519  // action.
  6520  //
  6521  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6522  // with awserr.Error's Code and Message methods to get detailed information about
  6523  // the error.
  6524  //
  6525  // See the AWS API reference guide for AWS IoT's
  6526  // API operation DeleteSecurityProfile for usage and error information.
  6527  //
  6528  // Returned Error Types:
  6529  //   * InvalidRequestException
  6530  //   The request is not valid.
  6531  //
  6532  //   * ThrottlingException
  6533  //   The rate exceeds the limit.
  6534  //
  6535  //   * InternalFailureException
  6536  //   An unexpected error has occurred.
  6537  //
  6538  //   * VersionConflictException
  6539  //   An exception thrown when the version of an entity specified with the expectedVersion
  6540  //   parameter does not match the latest version in the system.
  6541  //
  6542  func (c *IoT) DeleteSecurityProfile(input *DeleteSecurityProfileInput) (*DeleteSecurityProfileOutput, error) {
  6543  	req, out := c.DeleteSecurityProfileRequest(input)
  6544  	return out, req.Send()
  6545  }
  6546  
  6547  // DeleteSecurityProfileWithContext is the same as DeleteSecurityProfile with the addition of
  6548  // the ability to pass a context and additional request options.
  6549  //
  6550  // See DeleteSecurityProfile for details on how to use this API operation.
  6551  //
  6552  // The context must be non-nil and will be used for request cancellation. If
  6553  // the context is nil a panic will occur. In the future the SDK may create
  6554  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6555  // for more information on using Contexts.
  6556  func (c *IoT) DeleteSecurityProfileWithContext(ctx aws.Context, input *DeleteSecurityProfileInput, opts ...request.Option) (*DeleteSecurityProfileOutput, error) {
  6557  	req, out := c.DeleteSecurityProfileRequest(input)
  6558  	req.SetContext(ctx)
  6559  	req.ApplyOptions(opts...)
  6560  	return out, req.Send()
  6561  }
  6562  
  6563  const opDeleteStream = "DeleteStream"
  6564  
  6565  // DeleteStreamRequest generates a "aws/request.Request" representing the
  6566  // client's request for the DeleteStream operation. The "output" return
  6567  // value will be populated with the request's response once the request completes
  6568  // successfully.
  6569  //
  6570  // Use "Send" method on the returned Request to send the API call to the service.
  6571  // the "output" return value is not valid until after Send returns without error.
  6572  //
  6573  // See DeleteStream for more information on using the DeleteStream
  6574  // API call, and error handling.
  6575  //
  6576  // This method is useful when you want to inject custom logic or configuration
  6577  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6578  //
  6579  //
  6580  //    // Example sending a request using the DeleteStreamRequest method.
  6581  //    req, resp := client.DeleteStreamRequest(params)
  6582  //
  6583  //    err := req.Send()
  6584  //    if err == nil { // resp is now filled
  6585  //        fmt.Println(resp)
  6586  //    }
  6587  func (c *IoT) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
  6588  	op := &request.Operation{
  6589  		Name:       opDeleteStream,
  6590  		HTTPMethod: "DELETE",
  6591  		HTTPPath:   "/streams/{streamId}",
  6592  	}
  6593  
  6594  	if input == nil {
  6595  		input = &DeleteStreamInput{}
  6596  	}
  6597  
  6598  	output = &DeleteStreamOutput{}
  6599  	req = c.newRequest(op, input, output)
  6600  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6601  	return
  6602  }
  6603  
  6604  // DeleteStream API operation for AWS IoT.
  6605  //
  6606  // Deletes a stream.
  6607  //
  6608  // Requires permission to access the DeleteStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6609  // action.
  6610  //
  6611  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6612  // with awserr.Error's Code and Message methods to get detailed information about
  6613  // the error.
  6614  //
  6615  // See the AWS API reference guide for AWS IoT's
  6616  // API operation DeleteStream for usage and error information.
  6617  //
  6618  // Returned Error Types:
  6619  //   * ResourceNotFoundException
  6620  //   The specified resource does not exist.
  6621  //
  6622  //   * DeleteConflictException
  6623  //   You can't delete the resource because it is attached to one or more resources.
  6624  //
  6625  //   * InvalidRequestException
  6626  //   The request is not valid.
  6627  //
  6628  //   * ThrottlingException
  6629  //   The rate exceeds the limit.
  6630  //
  6631  //   * UnauthorizedException
  6632  //   You are not authorized to perform this operation.
  6633  //
  6634  //   * ServiceUnavailableException
  6635  //   The service is temporarily unavailable.
  6636  //
  6637  //   * InternalFailureException
  6638  //   An unexpected error has occurred.
  6639  //
  6640  func (c *IoT) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
  6641  	req, out := c.DeleteStreamRequest(input)
  6642  	return out, req.Send()
  6643  }
  6644  
  6645  // DeleteStreamWithContext is the same as DeleteStream with the addition of
  6646  // the ability to pass a context and additional request options.
  6647  //
  6648  // See DeleteStream for details on how to use this API operation.
  6649  //
  6650  // The context must be non-nil and will be used for request cancellation. If
  6651  // the context is nil a panic will occur. In the future the SDK may create
  6652  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6653  // for more information on using Contexts.
  6654  func (c *IoT) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
  6655  	req, out := c.DeleteStreamRequest(input)
  6656  	req.SetContext(ctx)
  6657  	req.ApplyOptions(opts...)
  6658  	return out, req.Send()
  6659  }
  6660  
  6661  const opDeleteThing = "DeleteThing"
  6662  
  6663  // DeleteThingRequest generates a "aws/request.Request" representing the
  6664  // client's request for the DeleteThing operation. The "output" return
  6665  // value will be populated with the request's response once the request completes
  6666  // successfully.
  6667  //
  6668  // Use "Send" method on the returned Request to send the API call to the service.
  6669  // the "output" return value is not valid until after Send returns without error.
  6670  //
  6671  // See DeleteThing for more information on using the DeleteThing
  6672  // API call, and error handling.
  6673  //
  6674  // This method is useful when you want to inject custom logic or configuration
  6675  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6676  //
  6677  //
  6678  //    // Example sending a request using the DeleteThingRequest method.
  6679  //    req, resp := client.DeleteThingRequest(params)
  6680  //
  6681  //    err := req.Send()
  6682  //    if err == nil { // resp is now filled
  6683  //        fmt.Println(resp)
  6684  //    }
  6685  func (c *IoT) DeleteThingRequest(input *DeleteThingInput) (req *request.Request, output *DeleteThingOutput) {
  6686  	op := &request.Operation{
  6687  		Name:       opDeleteThing,
  6688  		HTTPMethod: "DELETE",
  6689  		HTTPPath:   "/things/{thingName}",
  6690  	}
  6691  
  6692  	if input == nil {
  6693  		input = &DeleteThingInput{}
  6694  	}
  6695  
  6696  	output = &DeleteThingOutput{}
  6697  	req = c.newRequest(op, input, output)
  6698  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6699  	return
  6700  }
  6701  
  6702  // DeleteThing API operation for AWS IoT.
  6703  //
  6704  // Deletes the specified thing. Returns successfully with no error if the deletion
  6705  // is successful or you specify a thing that doesn't exist.
  6706  //
  6707  // Requires permission to access the DeleteThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6708  // action.
  6709  //
  6710  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6711  // with awserr.Error's Code and Message methods to get detailed information about
  6712  // the error.
  6713  //
  6714  // See the AWS API reference guide for AWS IoT's
  6715  // API operation DeleteThing for usage and error information.
  6716  //
  6717  // Returned Error Types:
  6718  //   * ResourceNotFoundException
  6719  //   The specified resource does not exist.
  6720  //
  6721  //   * VersionConflictException
  6722  //   An exception thrown when the version of an entity specified with the expectedVersion
  6723  //   parameter does not match the latest version in the system.
  6724  //
  6725  //   * InvalidRequestException
  6726  //   The request is not valid.
  6727  //
  6728  //   * ThrottlingException
  6729  //   The rate exceeds the limit.
  6730  //
  6731  //   * UnauthorizedException
  6732  //   You are not authorized to perform this operation.
  6733  //
  6734  //   * ServiceUnavailableException
  6735  //   The service is temporarily unavailable.
  6736  //
  6737  //   * InternalFailureException
  6738  //   An unexpected error has occurred.
  6739  //
  6740  func (c *IoT) DeleteThing(input *DeleteThingInput) (*DeleteThingOutput, error) {
  6741  	req, out := c.DeleteThingRequest(input)
  6742  	return out, req.Send()
  6743  }
  6744  
  6745  // DeleteThingWithContext is the same as DeleteThing with the addition of
  6746  // the ability to pass a context and additional request options.
  6747  //
  6748  // See DeleteThing for details on how to use this API operation.
  6749  //
  6750  // The context must be non-nil and will be used for request cancellation. If
  6751  // the context is nil a panic will occur. In the future the SDK may create
  6752  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6753  // for more information on using Contexts.
  6754  func (c *IoT) DeleteThingWithContext(ctx aws.Context, input *DeleteThingInput, opts ...request.Option) (*DeleteThingOutput, error) {
  6755  	req, out := c.DeleteThingRequest(input)
  6756  	req.SetContext(ctx)
  6757  	req.ApplyOptions(opts...)
  6758  	return out, req.Send()
  6759  }
  6760  
  6761  const opDeleteThingGroup = "DeleteThingGroup"
  6762  
  6763  // DeleteThingGroupRequest generates a "aws/request.Request" representing the
  6764  // client's request for the DeleteThingGroup operation. The "output" return
  6765  // value will be populated with the request's response once the request completes
  6766  // successfully.
  6767  //
  6768  // Use "Send" method on the returned Request to send the API call to the service.
  6769  // the "output" return value is not valid until after Send returns without error.
  6770  //
  6771  // See DeleteThingGroup for more information on using the DeleteThingGroup
  6772  // API call, and error handling.
  6773  //
  6774  // This method is useful when you want to inject custom logic or configuration
  6775  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6776  //
  6777  //
  6778  //    // Example sending a request using the DeleteThingGroupRequest method.
  6779  //    req, resp := client.DeleteThingGroupRequest(params)
  6780  //
  6781  //    err := req.Send()
  6782  //    if err == nil { // resp is now filled
  6783  //        fmt.Println(resp)
  6784  //    }
  6785  func (c *IoT) DeleteThingGroupRequest(input *DeleteThingGroupInput) (req *request.Request, output *DeleteThingGroupOutput) {
  6786  	op := &request.Operation{
  6787  		Name:       opDeleteThingGroup,
  6788  		HTTPMethod: "DELETE",
  6789  		HTTPPath:   "/thing-groups/{thingGroupName}",
  6790  	}
  6791  
  6792  	if input == nil {
  6793  		input = &DeleteThingGroupInput{}
  6794  	}
  6795  
  6796  	output = &DeleteThingGroupOutput{}
  6797  	req = c.newRequest(op, input, output)
  6798  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6799  	return
  6800  }
  6801  
  6802  // DeleteThingGroup API operation for AWS IoT.
  6803  //
  6804  // Deletes a thing group.
  6805  //
  6806  // Requires permission to access the DeleteThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6807  // action.
  6808  //
  6809  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6810  // with awserr.Error's Code and Message methods to get detailed information about
  6811  // the error.
  6812  //
  6813  // See the AWS API reference guide for AWS IoT's
  6814  // API operation DeleteThingGroup for usage and error information.
  6815  //
  6816  // Returned Error Types:
  6817  //   * InvalidRequestException
  6818  //   The request is not valid.
  6819  //
  6820  //   * VersionConflictException
  6821  //   An exception thrown when the version of an entity specified with the expectedVersion
  6822  //   parameter does not match the latest version in the system.
  6823  //
  6824  //   * ThrottlingException
  6825  //   The rate exceeds the limit.
  6826  //
  6827  //   * InternalFailureException
  6828  //   An unexpected error has occurred.
  6829  //
  6830  func (c *IoT) DeleteThingGroup(input *DeleteThingGroupInput) (*DeleteThingGroupOutput, error) {
  6831  	req, out := c.DeleteThingGroupRequest(input)
  6832  	return out, req.Send()
  6833  }
  6834  
  6835  // DeleteThingGroupWithContext is the same as DeleteThingGroup with the addition of
  6836  // the ability to pass a context and additional request options.
  6837  //
  6838  // See DeleteThingGroup for details on how to use this API operation.
  6839  //
  6840  // The context must be non-nil and will be used for request cancellation. If
  6841  // the context is nil a panic will occur. In the future the SDK may create
  6842  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6843  // for more information on using Contexts.
  6844  func (c *IoT) DeleteThingGroupWithContext(ctx aws.Context, input *DeleteThingGroupInput, opts ...request.Option) (*DeleteThingGroupOutput, error) {
  6845  	req, out := c.DeleteThingGroupRequest(input)
  6846  	req.SetContext(ctx)
  6847  	req.ApplyOptions(opts...)
  6848  	return out, req.Send()
  6849  }
  6850  
  6851  const opDeleteThingType = "DeleteThingType"
  6852  
  6853  // DeleteThingTypeRequest generates a "aws/request.Request" representing the
  6854  // client's request for the DeleteThingType operation. The "output" return
  6855  // value will be populated with the request's response once the request completes
  6856  // successfully.
  6857  //
  6858  // Use "Send" method on the returned Request to send the API call to the service.
  6859  // the "output" return value is not valid until after Send returns without error.
  6860  //
  6861  // See DeleteThingType for more information on using the DeleteThingType
  6862  // API call, and error handling.
  6863  //
  6864  // This method is useful when you want to inject custom logic or configuration
  6865  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6866  //
  6867  //
  6868  //    // Example sending a request using the DeleteThingTypeRequest method.
  6869  //    req, resp := client.DeleteThingTypeRequest(params)
  6870  //
  6871  //    err := req.Send()
  6872  //    if err == nil { // resp is now filled
  6873  //        fmt.Println(resp)
  6874  //    }
  6875  func (c *IoT) DeleteThingTypeRequest(input *DeleteThingTypeInput) (req *request.Request, output *DeleteThingTypeOutput) {
  6876  	op := &request.Operation{
  6877  		Name:       opDeleteThingType,
  6878  		HTTPMethod: "DELETE",
  6879  		HTTPPath:   "/thing-types/{thingTypeName}",
  6880  	}
  6881  
  6882  	if input == nil {
  6883  		input = &DeleteThingTypeInput{}
  6884  	}
  6885  
  6886  	output = &DeleteThingTypeOutput{}
  6887  	req = c.newRequest(op, input, output)
  6888  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6889  	return
  6890  }
  6891  
  6892  // DeleteThingType API operation for AWS IoT.
  6893  //
  6894  // Deletes the specified thing type. You cannot delete a thing type if it has
  6895  // things associated with it. To delete a thing type, first mark it as deprecated
  6896  // by calling DeprecateThingType, then remove any associated things by calling
  6897  // UpdateThing to change the thing type on any associated thing, and finally
  6898  // use DeleteThingType to delete the thing type.
  6899  //
  6900  // Requires permission to access the DeleteThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6901  // action.
  6902  //
  6903  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6904  // with awserr.Error's Code and Message methods to get detailed information about
  6905  // the error.
  6906  //
  6907  // See the AWS API reference guide for AWS IoT's
  6908  // API operation DeleteThingType for usage and error information.
  6909  //
  6910  // Returned Error Types:
  6911  //   * ResourceNotFoundException
  6912  //   The specified resource does not exist.
  6913  //
  6914  //   * InvalidRequestException
  6915  //   The request is not valid.
  6916  //
  6917  //   * ThrottlingException
  6918  //   The rate exceeds the limit.
  6919  //
  6920  //   * UnauthorizedException
  6921  //   You are not authorized to perform this operation.
  6922  //
  6923  //   * ServiceUnavailableException
  6924  //   The service is temporarily unavailable.
  6925  //
  6926  //   * InternalFailureException
  6927  //   An unexpected error has occurred.
  6928  //
  6929  func (c *IoT) DeleteThingType(input *DeleteThingTypeInput) (*DeleteThingTypeOutput, error) {
  6930  	req, out := c.DeleteThingTypeRequest(input)
  6931  	return out, req.Send()
  6932  }
  6933  
  6934  // DeleteThingTypeWithContext is the same as DeleteThingType with the addition of
  6935  // the ability to pass a context and additional request options.
  6936  //
  6937  // See DeleteThingType for details on how to use this API operation.
  6938  //
  6939  // The context must be non-nil and will be used for request cancellation. If
  6940  // the context is nil a panic will occur. In the future the SDK may create
  6941  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6942  // for more information on using Contexts.
  6943  func (c *IoT) DeleteThingTypeWithContext(ctx aws.Context, input *DeleteThingTypeInput, opts ...request.Option) (*DeleteThingTypeOutput, error) {
  6944  	req, out := c.DeleteThingTypeRequest(input)
  6945  	req.SetContext(ctx)
  6946  	req.ApplyOptions(opts...)
  6947  	return out, req.Send()
  6948  }
  6949  
  6950  const opDeleteTopicRule = "DeleteTopicRule"
  6951  
  6952  // DeleteTopicRuleRequest generates a "aws/request.Request" representing the
  6953  // client's request for the DeleteTopicRule operation. The "output" return
  6954  // value will be populated with the request's response once the request completes
  6955  // successfully.
  6956  //
  6957  // Use "Send" method on the returned Request to send the API call to the service.
  6958  // the "output" return value is not valid until after Send returns without error.
  6959  //
  6960  // See DeleteTopicRule for more information on using the DeleteTopicRule
  6961  // API call, and error handling.
  6962  //
  6963  // This method is useful when you want to inject custom logic or configuration
  6964  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6965  //
  6966  //
  6967  //    // Example sending a request using the DeleteTopicRuleRequest method.
  6968  //    req, resp := client.DeleteTopicRuleRequest(params)
  6969  //
  6970  //    err := req.Send()
  6971  //    if err == nil { // resp is now filled
  6972  //        fmt.Println(resp)
  6973  //    }
  6974  func (c *IoT) DeleteTopicRuleRequest(input *DeleteTopicRuleInput) (req *request.Request, output *DeleteTopicRuleOutput) {
  6975  	op := &request.Operation{
  6976  		Name:       opDeleteTopicRule,
  6977  		HTTPMethod: "DELETE",
  6978  		HTTPPath:   "/rules/{ruleName}",
  6979  	}
  6980  
  6981  	if input == nil {
  6982  		input = &DeleteTopicRuleInput{}
  6983  	}
  6984  
  6985  	output = &DeleteTopicRuleOutput{}
  6986  	req = c.newRequest(op, input, output)
  6987  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6988  	return
  6989  }
  6990  
  6991  // DeleteTopicRule API operation for AWS IoT.
  6992  //
  6993  // Deletes the rule.
  6994  //
  6995  // Requires permission to access the DeleteTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  6996  // action.
  6997  //
  6998  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6999  // with awserr.Error's Code and Message methods to get detailed information about
  7000  // the error.
  7001  //
  7002  // See the AWS API reference guide for AWS IoT's
  7003  // API operation DeleteTopicRule for usage and error information.
  7004  //
  7005  // Returned Error Types:
  7006  //   * InternalException
  7007  //   An unexpected error has occurred.
  7008  //
  7009  //   * InvalidRequestException
  7010  //   The request is not valid.
  7011  //
  7012  //   * ServiceUnavailableException
  7013  //   The service is temporarily unavailable.
  7014  //
  7015  //   * UnauthorizedException
  7016  //   You are not authorized to perform this operation.
  7017  //
  7018  //   * ConflictingResourceUpdateException
  7019  //   A conflicting resource update exception. This exception is thrown when two
  7020  //   pending updates cause a conflict.
  7021  //
  7022  func (c *IoT) DeleteTopicRule(input *DeleteTopicRuleInput) (*DeleteTopicRuleOutput, error) {
  7023  	req, out := c.DeleteTopicRuleRequest(input)
  7024  	return out, req.Send()
  7025  }
  7026  
  7027  // DeleteTopicRuleWithContext is the same as DeleteTopicRule with the addition of
  7028  // the ability to pass a context and additional request options.
  7029  //
  7030  // See DeleteTopicRule for details on how to use this API operation.
  7031  //
  7032  // The context must be non-nil and will be used for request cancellation. If
  7033  // the context is nil a panic will occur. In the future the SDK may create
  7034  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7035  // for more information on using Contexts.
  7036  func (c *IoT) DeleteTopicRuleWithContext(ctx aws.Context, input *DeleteTopicRuleInput, opts ...request.Option) (*DeleteTopicRuleOutput, error) {
  7037  	req, out := c.DeleteTopicRuleRequest(input)
  7038  	req.SetContext(ctx)
  7039  	req.ApplyOptions(opts...)
  7040  	return out, req.Send()
  7041  }
  7042  
  7043  const opDeleteTopicRuleDestination = "DeleteTopicRuleDestination"
  7044  
  7045  // DeleteTopicRuleDestinationRequest generates a "aws/request.Request" representing the
  7046  // client's request for the DeleteTopicRuleDestination operation. The "output" return
  7047  // value will be populated with the request's response once the request completes
  7048  // successfully.
  7049  //
  7050  // Use "Send" method on the returned Request to send the API call to the service.
  7051  // the "output" return value is not valid until after Send returns without error.
  7052  //
  7053  // See DeleteTopicRuleDestination for more information on using the DeleteTopicRuleDestination
  7054  // API call, and error handling.
  7055  //
  7056  // This method is useful when you want to inject custom logic or configuration
  7057  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7058  //
  7059  //
  7060  //    // Example sending a request using the DeleteTopicRuleDestinationRequest method.
  7061  //    req, resp := client.DeleteTopicRuleDestinationRequest(params)
  7062  //
  7063  //    err := req.Send()
  7064  //    if err == nil { // resp is now filled
  7065  //        fmt.Println(resp)
  7066  //    }
  7067  func (c *IoT) DeleteTopicRuleDestinationRequest(input *DeleteTopicRuleDestinationInput) (req *request.Request, output *DeleteTopicRuleDestinationOutput) {
  7068  	op := &request.Operation{
  7069  		Name:       opDeleteTopicRuleDestination,
  7070  		HTTPMethod: "DELETE",
  7071  		HTTPPath:   "/destinations/{arn+}",
  7072  	}
  7073  
  7074  	if input == nil {
  7075  		input = &DeleteTopicRuleDestinationInput{}
  7076  	}
  7077  
  7078  	output = &DeleteTopicRuleDestinationOutput{}
  7079  	req = c.newRequest(op, input, output)
  7080  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7081  	return
  7082  }
  7083  
  7084  // DeleteTopicRuleDestination API operation for AWS IoT.
  7085  //
  7086  // Deletes a topic rule destination.
  7087  //
  7088  // Requires permission to access the DeleteTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7089  // action.
  7090  //
  7091  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7092  // with awserr.Error's Code and Message methods to get detailed information about
  7093  // the error.
  7094  //
  7095  // See the AWS API reference guide for AWS IoT's
  7096  // API operation DeleteTopicRuleDestination for usage and error information.
  7097  //
  7098  // Returned Error Types:
  7099  //   * InternalException
  7100  //   An unexpected error has occurred.
  7101  //
  7102  //   * InvalidRequestException
  7103  //   The request is not valid.
  7104  //
  7105  //   * ServiceUnavailableException
  7106  //   The service is temporarily unavailable.
  7107  //
  7108  //   * UnauthorizedException
  7109  //   You are not authorized to perform this operation.
  7110  //
  7111  //   * ConflictingResourceUpdateException
  7112  //   A conflicting resource update exception. This exception is thrown when two
  7113  //   pending updates cause a conflict.
  7114  //
  7115  func (c *IoT) DeleteTopicRuleDestination(input *DeleteTopicRuleDestinationInput) (*DeleteTopicRuleDestinationOutput, error) {
  7116  	req, out := c.DeleteTopicRuleDestinationRequest(input)
  7117  	return out, req.Send()
  7118  }
  7119  
  7120  // DeleteTopicRuleDestinationWithContext is the same as DeleteTopicRuleDestination with the addition of
  7121  // the ability to pass a context and additional request options.
  7122  //
  7123  // See DeleteTopicRuleDestination for details on how to use this API operation.
  7124  //
  7125  // The context must be non-nil and will be used for request cancellation. If
  7126  // the context is nil a panic will occur. In the future the SDK may create
  7127  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7128  // for more information on using Contexts.
  7129  func (c *IoT) DeleteTopicRuleDestinationWithContext(ctx aws.Context, input *DeleteTopicRuleDestinationInput, opts ...request.Option) (*DeleteTopicRuleDestinationOutput, error) {
  7130  	req, out := c.DeleteTopicRuleDestinationRequest(input)
  7131  	req.SetContext(ctx)
  7132  	req.ApplyOptions(opts...)
  7133  	return out, req.Send()
  7134  }
  7135  
  7136  const opDeleteV2LoggingLevel = "DeleteV2LoggingLevel"
  7137  
  7138  // DeleteV2LoggingLevelRequest generates a "aws/request.Request" representing the
  7139  // client's request for the DeleteV2LoggingLevel operation. The "output" return
  7140  // value will be populated with the request's response once the request completes
  7141  // successfully.
  7142  //
  7143  // Use "Send" method on the returned Request to send the API call to the service.
  7144  // the "output" return value is not valid until after Send returns without error.
  7145  //
  7146  // See DeleteV2LoggingLevel for more information on using the DeleteV2LoggingLevel
  7147  // API call, and error handling.
  7148  //
  7149  // This method is useful when you want to inject custom logic or configuration
  7150  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7151  //
  7152  //
  7153  //    // Example sending a request using the DeleteV2LoggingLevelRequest method.
  7154  //    req, resp := client.DeleteV2LoggingLevelRequest(params)
  7155  //
  7156  //    err := req.Send()
  7157  //    if err == nil { // resp is now filled
  7158  //        fmt.Println(resp)
  7159  //    }
  7160  func (c *IoT) DeleteV2LoggingLevelRequest(input *DeleteV2LoggingLevelInput) (req *request.Request, output *DeleteV2LoggingLevelOutput) {
  7161  	op := &request.Operation{
  7162  		Name:       opDeleteV2LoggingLevel,
  7163  		HTTPMethod: "DELETE",
  7164  		HTTPPath:   "/v2LoggingLevel",
  7165  	}
  7166  
  7167  	if input == nil {
  7168  		input = &DeleteV2LoggingLevelInput{}
  7169  	}
  7170  
  7171  	output = &DeleteV2LoggingLevelOutput{}
  7172  	req = c.newRequest(op, input, output)
  7173  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7174  	return
  7175  }
  7176  
  7177  // DeleteV2LoggingLevel API operation for AWS IoT.
  7178  //
  7179  // Deletes a logging level.
  7180  //
  7181  // Requires permission to access the DeleteV2LoggingLevel (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7182  // action.
  7183  //
  7184  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7185  // with awserr.Error's Code and Message methods to get detailed information about
  7186  // the error.
  7187  //
  7188  // See the AWS API reference guide for AWS IoT's
  7189  // API operation DeleteV2LoggingLevel for usage and error information.
  7190  //
  7191  // Returned Error Types:
  7192  //   * InternalException
  7193  //   An unexpected error has occurred.
  7194  //
  7195  //   * InvalidRequestException
  7196  //   The request is not valid.
  7197  //
  7198  //   * ServiceUnavailableException
  7199  //   The service is temporarily unavailable.
  7200  //
  7201  func (c *IoT) DeleteV2LoggingLevel(input *DeleteV2LoggingLevelInput) (*DeleteV2LoggingLevelOutput, error) {
  7202  	req, out := c.DeleteV2LoggingLevelRequest(input)
  7203  	return out, req.Send()
  7204  }
  7205  
  7206  // DeleteV2LoggingLevelWithContext is the same as DeleteV2LoggingLevel with the addition of
  7207  // the ability to pass a context and additional request options.
  7208  //
  7209  // See DeleteV2LoggingLevel for details on how to use this API operation.
  7210  //
  7211  // The context must be non-nil and will be used for request cancellation. If
  7212  // the context is nil a panic will occur. In the future the SDK may create
  7213  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7214  // for more information on using Contexts.
  7215  func (c *IoT) DeleteV2LoggingLevelWithContext(ctx aws.Context, input *DeleteV2LoggingLevelInput, opts ...request.Option) (*DeleteV2LoggingLevelOutput, error) {
  7216  	req, out := c.DeleteV2LoggingLevelRequest(input)
  7217  	req.SetContext(ctx)
  7218  	req.ApplyOptions(opts...)
  7219  	return out, req.Send()
  7220  }
  7221  
  7222  const opDeprecateThingType = "DeprecateThingType"
  7223  
  7224  // DeprecateThingTypeRequest generates a "aws/request.Request" representing the
  7225  // client's request for the DeprecateThingType operation. The "output" return
  7226  // value will be populated with the request's response once the request completes
  7227  // successfully.
  7228  //
  7229  // Use "Send" method on the returned Request to send the API call to the service.
  7230  // the "output" return value is not valid until after Send returns without error.
  7231  //
  7232  // See DeprecateThingType for more information on using the DeprecateThingType
  7233  // API call, and error handling.
  7234  //
  7235  // This method is useful when you want to inject custom logic or configuration
  7236  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7237  //
  7238  //
  7239  //    // Example sending a request using the DeprecateThingTypeRequest method.
  7240  //    req, resp := client.DeprecateThingTypeRequest(params)
  7241  //
  7242  //    err := req.Send()
  7243  //    if err == nil { // resp is now filled
  7244  //        fmt.Println(resp)
  7245  //    }
  7246  func (c *IoT) DeprecateThingTypeRequest(input *DeprecateThingTypeInput) (req *request.Request, output *DeprecateThingTypeOutput) {
  7247  	op := &request.Operation{
  7248  		Name:       opDeprecateThingType,
  7249  		HTTPMethod: "POST",
  7250  		HTTPPath:   "/thing-types/{thingTypeName}/deprecate",
  7251  	}
  7252  
  7253  	if input == nil {
  7254  		input = &DeprecateThingTypeInput{}
  7255  	}
  7256  
  7257  	output = &DeprecateThingTypeOutput{}
  7258  	req = c.newRequest(op, input, output)
  7259  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7260  	return
  7261  }
  7262  
  7263  // DeprecateThingType API operation for AWS IoT.
  7264  //
  7265  // Deprecates a thing type. You can not associate new things with deprecated
  7266  // thing type.
  7267  //
  7268  // Requires permission to access the DeprecateThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7269  // action.
  7270  //
  7271  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7272  // with awserr.Error's Code and Message methods to get detailed information about
  7273  // the error.
  7274  //
  7275  // See the AWS API reference guide for AWS IoT's
  7276  // API operation DeprecateThingType for usage and error information.
  7277  //
  7278  // Returned Error Types:
  7279  //   * ResourceNotFoundException
  7280  //   The specified resource does not exist.
  7281  //
  7282  //   * InvalidRequestException
  7283  //   The request is not valid.
  7284  //
  7285  //   * ThrottlingException
  7286  //   The rate exceeds the limit.
  7287  //
  7288  //   * UnauthorizedException
  7289  //   You are not authorized to perform this operation.
  7290  //
  7291  //   * ServiceUnavailableException
  7292  //   The service is temporarily unavailable.
  7293  //
  7294  //   * InternalFailureException
  7295  //   An unexpected error has occurred.
  7296  //
  7297  func (c *IoT) DeprecateThingType(input *DeprecateThingTypeInput) (*DeprecateThingTypeOutput, error) {
  7298  	req, out := c.DeprecateThingTypeRequest(input)
  7299  	return out, req.Send()
  7300  }
  7301  
  7302  // DeprecateThingTypeWithContext is the same as DeprecateThingType with the addition of
  7303  // the ability to pass a context and additional request options.
  7304  //
  7305  // See DeprecateThingType for details on how to use this API operation.
  7306  //
  7307  // The context must be non-nil and will be used for request cancellation. If
  7308  // the context is nil a panic will occur. In the future the SDK may create
  7309  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7310  // for more information on using Contexts.
  7311  func (c *IoT) DeprecateThingTypeWithContext(ctx aws.Context, input *DeprecateThingTypeInput, opts ...request.Option) (*DeprecateThingTypeOutput, error) {
  7312  	req, out := c.DeprecateThingTypeRequest(input)
  7313  	req.SetContext(ctx)
  7314  	req.ApplyOptions(opts...)
  7315  	return out, req.Send()
  7316  }
  7317  
  7318  const opDescribeAccountAuditConfiguration = "DescribeAccountAuditConfiguration"
  7319  
  7320  // DescribeAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
  7321  // client's request for the DescribeAccountAuditConfiguration operation. The "output" return
  7322  // value will be populated with the request's response once the request completes
  7323  // successfully.
  7324  //
  7325  // Use "Send" method on the returned Request to send the API call to the service.
  7326  // the "output" return value is not valid until after Send returns without error.
  7327  //
  7328  // See DescribeAccountAuditConfiguration for more information on using the DescribeAccountAuditConfiguration
  7329  // API call, and error handling.
  7330  //
  7331  // This method is useful when you want to inject custom logic or configuration
  7332  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7333  //
  7334  //
  7335  //    // Example sending a request using the DescribeAccountAuditConfigurationRequest method.
  7336  //    req, resp := client.DescribeAccountAuditConfigurationRequest(params)
  7337  //
  7338  //    err := req.Send()
  7339  //    if err == nil { // resp is now filled
  7340  //        fmt.Println(resp)
  7341  //    }
  7342  func (c *IoT) DescribeAccountAuditConfigurationRequest(input *DescribeAccountAuditConfigurationInput) (req *request.Request, output *DescribeAccountAuditConfigurationOutput) {
  7343  	op := &request.Operation{
  7344  		Name:       opDescribeAccountAuditConfiguration,
  7345  		HTTPMethod: "GET",
  7346  		HTTPPath:   "/audit/configuration",
  7347  	}
  7348  
  7349  	if input == nil {
  7350  		input = &DescribeAccountAuditConfigurationInput{}
  7351  	}
  7352  
  7353  	output = &DescribeAccountAuditConfigurationOutput{}
  7354  	req = c.newRequest(op, input, output)
  7355  	return
  7356  }
  7357  
  7358  // DescribeAccountAuditConfiguration API operation for AWS IoT.
  7359  //
  7360  // Gets information about the Device Defender audit settings for this account.
  7361  // Settings include how audit notifications are sent and which audit checks
  7362  // are enabled or disabled.
  7363  //
  7364  // Requires permission to access the DescribeAccountAuditConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7365  // action.
  7366  //
  7367  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7368  // with awserr.Error's Code and Message methods to get detailed information about
  7369  // the error.
  7370  //
  7371  // See the AWS API reference guide for AWS IoT's
  7372  // API operation DescribeAccountAuditConfiguration for usage and error information.
  7373  //
  7374  // Returned Error Types:
  7375  //   * ThrottlingException
  7376  //   The rate exceeds the limit.
  7377  //
  7378  //   * InternalFailureException
  7379  //   An unexpected error has occurred.
  7380  //
  7381  func (c *IoT) DescribeAccountAuditConfiguration(input *DescribeAccountAuditConfigurationInput) (*DescribeAccountAuditConfigurationOutput, error) {
  7382  	req, out := c.DescribeAccountAuditConfigurationRequest(input)
  7383  	return out, req.Send()
  7384  }
  7385  
  7386  // DescribeAccountAuditConfigurationWithContext is the same as DescribeAccountAuditConfiguration with the addition of
  7387  // the ability to pass a context and additional request options.
  7388  //
  7389  // See DescribeAccountAuditConfiguration for details on how to use this API operation.
  7390  //
  7391  // The context must be non-nil and will be used for request cancellation. If
  7392  // the context is nil a panic will occur. In the future the SDK may create
  7393  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7394  // for more information on using Contexts.
  7395  func (c *IoT) DescribeAccountAuditConfigurationWithContext(ctx aws.Context, input *DescribeAccountAuditConfigurationInput, opts ...request.Option) (*DescribeAccountAuditConfigurationOutput, error) {
  7396  	req, out := c.DescribeAccountAuditConfigurationRequest(input)
  7397  	req.SetContext(ctx)
  7398  	req.ApplyOptions(opts...)
  7399  	return out, req.Send()
  7400  }
  7401  
  7402  const opDescribeAuditFinding = "DescribeAuditFinding"
  7403  
  7404  // DescribeAuditFindingRequest generates a "aws/request.Request" representing the
  7405  // client's request for the DescribeAuditFinding operation. The "output" return
  7406  // value will be populated with the request's response once the request completes
  7407  // successfully.
  7408  //
  7409  // Use "Send" method on the returned Request to send the API call to the service.
  7410  // the "output" return value is not valid until after Send returns without error.
  7411  //
  7412  // See DescribeAuditFinding for more information on using the DescribeAuditFinding
  7413  // API call, and error handling.
  7414  //
  7415  // This method is useful when you want to inject custom logic or configuration
  7416  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7417  //
  7418  //
  7419  //    // Example sending a request using the DescribeAuditFindingRequest method.
  7420  //    req, resp := client.DescribeAuditFindingRequest(params)
  7421  //
  7422  //    err := req.Send()
  7423  //    if err == nil { // resp is now filled
  7424  //        fmt.Println(resp)
  7425  //    }
  7426  func (c *IoT) DescribeAuditFindingRequest(input *DescribeAuditFindingInput) (req *request.Request, output *DescribeAuditFindingOutput) {
  7427  	op := &request.Operation{
  7428  		Name:       opDescribeAuditFinding,
  7429  		HTTPMethod: "GET",
  7430  		HTTPPath:   "/audit/findings/{findingId}",
  7431  	}
  7432  
  7433  	if input == nil {
  7434  		input = &DescribeAuditFindingInput{}
  7435  	}
  7436  
  7437  	output = &DescribeAuditFindingOutput{}
  7438  	req = c.newRequest(op, input, output)
  7439  	return
  7440  }
  7441  
  7442  // DescribeAuditFinding API operation for AWS IoT.
  7443  //
  7444  // Gets information about a single audit finding. Properties include the reason
  7445  // for noncompliance, the severity of the issue, and the start time when the
  7446  // audit that returned the finding.
  7447  //
  7448  // Requires permission to access the DescribeAuditFinding (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7449  // action.
  7450  //
  7451  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7452  // with awserr.Error's Code and Message methods to get detailed information about
  7453  // the error.
  7454  //
  7455  // See the AWS API reference guide for AWS IoT's
  7456  // API operation DescribeAuditFinding for usage and error information.
  7457  //
  7458  // Returned Error Types:
  7459  //   * ResourceNotFoundException
  7460  //   The specified resource does not exist.
  7461  //
  7462  //   * InvalidRequestException
  7463  //   The request is not valid.
  7464  //
  7465  //   * ThrottlingException
  7466  //   The rate exceeds the limit.
  7467  //
  7468  //   * InternalFailureException
  7469  //   An unexpected error has occurred.
  7470  //
  7471  func (c *IoT) DescribeAuditFinding(input *DescribeAuditFindingInput) (*DescribeAuditFindingOutput, error) {
  7472  	req, out := c.DescribeAuditFindingRequest(input)
  7473  	return out, req.Send()
  7474  }
  7475  
  7476  // DescribeAuditFindingWithContext is the same as DescribeAuditFinding with the addition of
  7477  // the ability to pass a context and additional request options.
  7478  //
  7479  // See DescribeAuditFinding for details on how to use this API operation.
  7480  //
  7481  // The context must be non-nil and will be used for request cancellation. If
  7482  // the context is nil a panic will occur. In the future the SDK may create
  7483  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7484  // for more information on using Contexts.
  7485  func (c *IoT) DescribeAuditFindingWithContext(ctx aws.Context, input *DescribeAuditFindingInput, opts ...request.Option) (*DescribeAuditFindingOutput, error) {
  7486  	req, out := c.DescribeAuditFindingRequest(input)
  7487  	req.SetContext(ctx)
  7488  	req.ApplyOptions(opts...)
  7489  	return out, req.Send()
  7490  }
  7491  
  7492  const opDescribeAuditMitigationActionsTask = "DescribeAuditMitigationActionsTask"
  7493  
  7494  // DescribeAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
  7495  // client's request for the DescribeAuditMitigationActionsTask operation. The "output" return
  7496  // value will be populated with the request's response once the request completes
  7497  // successfully.
  7498  //
  7499  // Use "Send" method on the returned Request to send the API call to the service.
  7500  // the "output" return value is not valid until after Send returns without error.
  7501  //
  7502  // See DescribeAuditMitigationActionsTask for more information on using the DescribeAuditMitigationActionsTask
  7503  // API call, and error handling.
  7504  //
  7505  // This method is useful when you want to inject custom logic or configuration
  7506  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7507  //
  7508  //
  7509  //    // Example sending a request using the DescribeAuditMitigationActionsTaskRequest method.
  7510  //    req, resp := client.DescribeAuditMitigationActionsTaskRequest(params)
  7511  //
  7512  //    err := req.Send()
  7513  //    if err == nil { // resp is now filled
  7514  //        fmt.Println(resp)
  7515  //    }
  7516  func (c *IoT) DescribeAuditMitigationActionsTaskRequest(input *DescribeAuditMitigationActionsTaskInput) (req *request.Request, output *DescribeAuditMitigationActionsTaskOutput) {
  7517  	op := &request.Operation{
  7518  		Name:       opDescribeAuditMitigationActionsTask,
  7519  		HTTPMethod: "GET",
  7520  		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
  7521  	}
  7522  
  7523  	if input == nil {
  7524  		input = &DescribeAuditMitigationActionsTaskInput{}
  7525  	}
  7526  
  7527  	output = &DescribeAuditMitigationActionsTaskOutput{}
  7528  	req = c.newRequest(op, input, output)
  7529  	return
  7530  }
  7531  
  7532  // DescribeAuditMitigationActionsTask API operation for AWS IoT.
  7533  //
  7534  // Gets information about an audit mitigation task that is used to apply mitigation
  7535  // actions to a set of audit findings. Properties include the actions being
  7536  // applied, the audit checks to which they're being applied, the task status,
  7537  // and aggregated task statistics.
  7538  //
  7539  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7540  // with awserr.Error's Code and Message methods to get detailed information about
  7541  // the error.
  7542  //
  7543  // See the AWS API reference guide for AWS IoT's
  7544  // API operation DescribeAuditMitigationActionsTask for usage and error information.
  7545  //
  7546  // Returned Error Types:
  7547  //   * InvalidRequestException
  7548  //   The request is not valid.
  7549  //
  7550  //   * ResourceNotFoundException
  7551  //   The specified resource does not exist.
  7552  //
  7553  //   * ThrottlingException
  7554  //   The rate exceeds the limit.
  7555  //
  7556  //   * InternalFailureException
  7557  //   An unexpected error has occurred.
  7558  //
  7559  func (c *IoT) DescribeAuditMitigationActionsTask(input *DescribeAuditMitigationActionsTaskInput) (*DescribeAuditMitigationActionsTaskOutput, error) {
  7560  	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
  7561  	return out, req.Send()
  7562  }
  7563  
  7564  // DescribeAuditMitigationActionsTaskWithContext is the same as DescribeAuditMitigationActionsTask with the addition of
  7565  // the ability to pass a context and additional request options.
  7566  //
  7567  // See DescribeAuditMitigationActionsTask for details on how to use this API operation.
  7568  //
  7569  // The context must be non-nil and will be used for request cancellation. If
  7570  // the context is nil a panic will occur. In the future the SDK may create
  7571  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7572  // for more information on using Contexts.
  7573  func (c *IoT) DescribeAuditMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeAuditMitigationActionsTaskInput, opts ...request.Option) (*DescribeAuditMitigationActionsTaskOutput, error) {
  7574  	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
  7575  	req.SetContext(ctx)
  7576  	req.ApplyOptions(opts...)
  7577  	return out, req.Send()
  7578  }
  7579  
  7580  const opDescribeAuditSuppression = "DescribeAuditSuppression"
  7581  
  7582  // DescribeAuditSuppressionRequest generates a "aws/request.Request" representing the
  7583  // client's request for the DescribeAuditSuppression operation. The "output" return
  7584  // value will be populated with the request's response once the request completes
  7585  // successfully.
  7586  //
  7587  // Use "Send" method on the returned Request to send the API call to the service.
  7588  // the "output" return value is not valid until after Send returns without error.
  7589  //
  7590  // See DescribeAuditSuppression for more information on using the DescribeAuditSuppression
  7591  // API call, and error handling.
  7592  //
  7593  // This method is useful when you want to inject custom logic or configuration
  7594  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7595  //
  7596  //
  7597  //    // Example sending a request using the DescribeAuditSuppressionRequest method.
  7598  //    req, resp := client.DescribeAuditSuppressionRequest(params)
  7599  //
  7600  //    err := req.Send()
  7601  //    if err == nil { // resp is now filled
  7602  //        fmt.Println(resp)
  7603  //    }
  7604  func (c *IoT) DescribeAuditSuppressionRequest(input *DescribeAuditSuppressionInput) (req *request.Request, output *DescribeAuditSuppressionOutput) {
  7605  	op := &request.Operation{
  7606  		Name:       opDescribeAuditSuppression,
  7607  		HTTPMethod: "POST",
  7608  		HTTPPath:   "/audit/suppressions/describe",
  7609  	}
  7610  
  7611  	if input == nil {
  7612  		input = &DescribeAuditSuppressionInput{}
  7613  	}
  7614  
  7615  	output = &DescribeAuditSuppressionOutput{}
  7616  	req = c.newRequest(op, input, output)
  7617  	return
  7618  }
  7619  
  7620  // DescribeAuditSuppression API operation for AWS IoT.
  7621  //
  7622  // Gets information about a Device Defender audit suppression.
  7623  //
  7624  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7625  // with awserr.Error's Code and Message methods to get detailed information about
  7626  // the error.
  7627  //
  7628  // See the AWS API reference guide for AWS IoT's
  7629  // API operation DescribeAuditSuppression for usage and error information.
  7630  //
  7631  // Returned Error Types:
  7632  //   * InvalidRequestException
  7633  //   The request is not valid.
  7634  //
  7635  //   * ResourceNotFoundException
  7636  //   The specified resource does not exist.
  7637  //
  7638  //   * ThrottlingException
  7639  //   The rate exceeds the limit.
  7640  //
  7641  //   * InternalFailureException
  7642  //   An unexpected error has occurred.
  7643  //
  7644  func (c *IoT) DescribeAuditSuppression(input *DescribeAuditSuppressionInput) (*DescribeAuditSuppressionOutput, error) {
  7645  	req, out := c.DescribeAuditSuppressionRequest(input)
  7646  	return out, req.Send()
  7647  }
  7648  
  7649  // DescribeAuditSuppressionWithContext is the same as DescribeAuditSuppression with the addition of
  7650  // the ability to pass a context and additional request options.
  7651  //
  7652  // See DescribeAuditSuppression for details on how to use this API operation.
  7653  //
  7654  // The context must be non-nil and will be used for request cancellation. If
  7655  // the context is nil a panic will occur. In the future the SDK may create
  7656  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7657  // for more information on using Contexts.
  7658  func (c *IoT) DescribeAuditSuppressionWithContext(ctx aws.Context, input *DescribeAuditSuppressionInput, opts ...request.Option) (*DescribeAuditSuppressionOutput, error) {
  7659  	req, out := c.DescribeAuditSuppressionRequest(input)
  7660  	req.SetContext(ctx)
  7661  	req.ApplyOptions(opts...)
  7662  	return out, req.Send()
  7663  }
  7664  
  7665  const opDescribeAuditTask = "DescribeAuditTask"
  7666  
  7667  // DescribeAuditTaskRequest generates a "aws/request.Request" representing the
  7668  // client's request for the DescribeAuditTask operation. The "output" return
  7669  // value will be populated with the request's response once the request completes
  7670  // successfully.
  7671  //
  7672  // Use "Send" method on the returned Request to send the API call to the service.
  7673  // the "output" return value is not valid until after Send returns without error.
  7674  //
  7675  // See DescribeAuditTask for more information on using the DescribeAuditTask
  7676  // API call, and error handling.
  7677  //
  7678  // This method is useful when you want to inject custom logic or configuration
  7679  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7680  //
  7681  //
  7682  //    // Example sending a request using the DescribeAuditTaskRequest method.
  7683  //    req, resp := client.DescribeAuditTaskRequest(params)
  7684  //
  7685  //    err := req.Send()
  7686  //    if err == nil { // resp is now filled
  7687  //        fmt.Println(resp)
  7688  //    }
  7689  func (c *IoT) DescribeAuditTaskRequest(input *DescribeAuditTaskInput) (req *request.Request, output *DescribeAuditTaskOutput) {
  7690  	op := &request.Operation{
  7691  		Name:       opDescribeAuditTask,
  7692  		HTTPMethod: "GET",
  7693  		HTTPPath:   "/audit/tasks/{taskId}",
  7694  	}
  7695  
  7696  	if input == nil {
  7697  		input = &DescribeAuditTaskInput{}
  7698  	}
  7699  
  7700  	output = &DescribeAuditTaskOutput{}
  7701  	req = c.newRequest(op, input, output)
  7702  	return
  7703  }
  7704  
  7705  // DescribeAuditTask API operation for AWS IoT.
  7706  //
  7707  // Gets information about a Device Defender audit.
  7708  //
  7709  // Requires permission to access the DescribeAuditTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7710  // action.
  7711  //
  7712  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7713  // with awserr.Error's Code and Message methods to get detailed information about
  7714  // the error.
  7715  //
  7716  // See the AWS API reference guide for AWS IoT's
  7717  // API operation DescribeAuditTask for usage and error information.
  7718  //
  7719  // Returned Error Types:
  7720  //   * InvalidRequestException
  7721  //   The request is not valid.
  7722  //
  7723  //   * ResourceNotFoundException
  7724  //   The specified resource does not exist.
  7725  //
  7726  //   * ThrottlingException
  7727  //   The rate exceeds the limit.
  7728  //
  7729  //   * InternalFailureException
  7730  //   An unexpected error has occurred.
  7731  //
  7732  func (c *IoT) DescribeAuditTask(input *DescribeAuditTaskInput) (*DescribeAuditTaskOutput, error) {
  7733  	req, out := c.DescribeAuditTaskRequest(input)
  7734  	return out, req.Send()
  7735  }
  7736  
  7737  // DescribeAuditTaskWithContext is the same as DescribeAuditTask with the addition of
  7738  // the ability to pass a context and additional request options.
  7739  //
  7740  // See DescribeAuditTask for details on how to use this API operation.
  7741  //
  7742  // The context must be non-nil and will be used for request cancellation. If
  7743  // the context is nil a panic will occur. In the future the SDK may create
  7744  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7745  // for more information on using Contexts.
  7746  func (c *IoT) DescribeAuditTaskWithContext(ctx aws.Context, input *DescribeAuditTaskInput, opts ...request.Option) (*DescribeAuditTaskOutput, error) {
  7747  	req, out := c.DescribeAuditTaskRequest(input)
  7748  	req.SetContext(ctx)
  7749  	req.ApplyOptions(opts...)
  7750  	return out, req.Send()
  7751  }
  7752  
  7753  const opDescribeAuthorizer = "DescribeAuthorizer"
  7754  
  7755  // DescribeAuthorizerRequest generates a "aws/request.Request" representing the
  7756  // client's request for the DescribeAuthorizer operation. The "output" return
  7757  // value will be populated with the request's response once the request completes
  7758  // successfully.
  7759  //
  7760  // Use "Send" method on the returned Request to send the API call to the service.
  7761  // the "output" return value is not valid until after Send returns without error.
  7762  //
  7763  // See DescribeAuthorizer for more information on using the DescribeAuthorizer
  7764  // API call, and error handling.
  7765  //
  7766  // This method is useful when you want to inject custom logic or configuration
  7767  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7768  //
  7769  //
  7770  //    // Example sending a request using the DescribeAuthorizerRequest method.
  7771  //    req, resp := client.DescribeAuthorizerRequest(params)
  7772  //
  7773  //    err := req.Send()
  7774  //    if err == nil { // resp is now filled
  7775  //        fmt.Println(resp)
  7776  //    }
  7777  func (c *IoT) DescribeAuthorizerRequest(input *DescribeAuthorizerInput) (req *request.Request, output *DescribeAuthorizerOutput) {
  7778  	op := &request.Operation{
  7779  		Name:       opDescribeAuthorizer,
  7780  		HTTPMethod: "GET",
  7781  		HTTPPath:   "/authorizer/{authorizerName}",
  7782  	}
  7783  
  7784  	if input == nil {
  7785  		input = &DescribeAuthorizerInput{}
  7786  	}
  7787  
  7788  	output = &DescribeAuthorizerOutput{}
  7789  	req = c.newRequest(op, input, output)
  7790  	return
  7791  }
  7792  
  7793  // DescribeAuthorizer API operation for AWS IoT.
  7794  //
  7795  // Describes an authorizer.
  7796  //
  7797  // Requires permission to access the DescribeAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7798  // action.
  7799  //
  7800  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7801  // with awserr.Error's Code and Message methods to get detailed information about
  7802  // the error.
  7803  //
  7804  // See the AWS API reference guide for AWS IoT's
  7805  // API operation DescribeAuthorizer for usage and error information.
  7806  //
  7807  // Returned Error Types:
  7808  //   * ResourceNotFoundException
  7809  //   The specified resource does not exist.
  7810  //
  7811  //   * InvalidRequestException
  7812  //   The request is not valid.
  7813  //
  7814  //   * ThrottlingException
  7815  //   The rate exceeds the limit.
  7816  //
  7817  //   * UnauthorizedException
  7818  //   You are not authorized to perform this operation.
  7819  //
  7820  //   * ServiceUnavailableException
  7821  //   The service is temporarily unavailable.
  7822  //
  7823  //   * InternalFailureException
  7824  //   An unexpected error has occurred.
  7825  //
  7826  func (c *IoT) DescribeAuthorizer(input *DescribeAuthorizerInput) (*DescribeAuthorizerOutput, error) {
  7827  	req, out := c.DescribeAuthorizerRequest(input)
  7828  	return out, req.Send()
  7829  }
  7830  
  7831  // DescribeAuthorizerWithContext is the same as DescribeAuthorizer with the addition of
  7832  // the ability to pass a context and additional request options.
  7833  //
  7834  // See DescribeAuthorizer for details on how to use this API operation.
  7835  //
  7836  // The context must be non-nil and will be used for request cancellation. If
  7837  // the context is nil a panic will occur. In the future the SDK may create
  7838  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7839  // for more information on using Contexts.
  7840  func (c *IoT) DescribeAuthorizerWithContext(ctx aws.Context, input *DescribeAuthorizerInput, opts ...request.Option) (*DescribeAuthorizerOutput, error) {
  7841  	req, out := c.DescribeAuthorizerRequest(input)
  7842  	req.SetContext(ctx)
  7843  	req.ApplyOptions(opts...)
  7844  	return out, req.Send()
  7845  }
  7846  
  7847  const opDescribeBillingGroup = "DescribeBillingGroup"
  7848  
  7849  // DescribeBillingGroupRequest generates a "aws/request.Request" representing the
  7850  // client's request for the DescribeBillingGroup operation. The "output" return
  7851  // value will be populated with the request's response once the request completes
  7852  // successfully.
  7853  //
  7854  // Use "Send" method on the returned Request to send the API call to the service.
  7855  // the "output" return value is not valid until after Send returns without error.
  7856  //
  7857  // See DescribeBillingGroup for more information on using the DescribeBillingGroup
  7858  // API call, and error handling.
  7859  //
  7860  // This method is useful when you want to inject custom logic or configuration
  7861  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7862  //
  7863  //
  7864  //    // Example sending a request using the DescribeBillingGroupRequest method.
  7865  //    req, resp := client.DescribeBillingGroupRequest(params)
  7866  //
  7867  //    err := req.Send()
  7868  //    if err == nil { // resp is now filled
  7869  //        fmt.Println(resp)
  7870  //    }
  7871  func (c *IoT) DescribeBillingGroupRequest(input *DescribeBillingGroupInput) (req *request.Request, output *DescribeBillingGroupOutput) {
  7872  	op := &request.Operation{
  7873  		Name:       opDescribeBillingGroup,
  7874  		HTTPMethod: "GET",
  7875  		HTTPPath:   "/billing-groups/{billingGroupName}",
  7876  	}
  7877  
  7878  	if input == nil {
  7879  		input = &DescribeBillingGroupInput{}
  7880  	}
  7881  
  7882  	output = &DescribeBillingGroupOutput{}
  7883  	req = c.newRequest(op, input, output)
  7884  	return
  7885  }
  7886  
  7887  // DescribeBillingGroup API operation for AWS IoT.
  7888  //
  7889  // Returns information about a billing group.
  7890  //
  7891  // Requires permission to access the DescribeBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7892  // action.
  7893  //
  7894  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7895  // with awserr.Error's Code and Message methods to get detailed information about
  7896  // the error.
  7897  //
  7898  // See the AWS API reference guide for AWS IoT's
  7899  // API operation DescribeBillingGroup for usage and error information.
  7900  //
  7901  // Returned Error Types:
  7902  //   * InvalidRequestException
  7903  //   The request is not valid.
  7904  //
  7905  //   * ThrottlingException
  7906  //   The rate exceeds the limit.
  7907  //
  7908  //   * InternalFailureException
  7909  //   An unexpected error has occurred.
  7910  //
  7911  //   * ResourceNotFoundException
  7912  //   The specified resource does not exist.
  7913  //
  7914  func (c *IoT) DescribeBillingGroup(input *DescribeBillingGroupInput) (*DescribeBillingGroupOutput, error) {
  7915  	req, out := c.DescribeBillingGroupRequest(input)
  7916  	return out, req.Send()
  7917  }
  7918  
  7919  // DescribeBillingGroupWithContext is the same as DescribeBillingGroup with the addition of
  7920  // the ability to pass a context and additional request options.
  7921  //
  7922  // See DescribeBillingGroup for details on how to use this API operation.
  7923  //
  7924  // The context must be non-nil and will be used for request cancellation. If
  7925  // the context is nil a panic will occur. In the future the SDK may create
  7926  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7927  // for more information on using Contexts.
  7928  func (c *IoT) DescribeBillingGroupWithContext(ctx aws.Context, input *DescribeBillingGroupInput, opts ...request.Option) (*DescribeBillingGroupOutput, error) {
  7929  	req, out := c.DescribeBillingGroupRequest(input)
  7930  	req.SetContext(ctx)
  7931  	req.ApplyOptions(opts...)
  7932  	return out, req.Send()
  7933  }
  7934  
  7935  const opDescribeCACertificate = "DescribeCACertificate"
  7936  
  7937  // DescribeCACertificateRequest generates a "aws/request.Request" representing the
  7938  // client's request for the DescribeCACertificate operation. The "output" return
  7939  // value will be populated with the request's response once the request completes
  7940  // successfully.
  7941  //
  7942  // Use "Send" method on the returned Request to send the API call to the service.
  7943  // the "output" return value is not valid until after Send returns without error.
  7944  //
  7945  // See DescribeCACertificate for more information on using the DescribeCACertificate
  7946  // API call, and error handling.
  7947  //
  7948  // This method is useful when you want to inject custom logic or configuration
  7949  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7950  //
  7951  //
  7952  //    // Example sending a request using the DescribeCACertificateRequest method.
  7953  //    req, resp := client.DescribeCACertificateRequest(params)
  7954  //
  7955  //    err := req.Send()
  7956  //    if err == nil { // resp is now filled
  7957  //        fmt.Println(resp)
  7958  //    }
  7959  func (c *IoT) DescribeCACertificateRequest(input *DescribeCACertificateInput) (req *request.Request, output *DescribeCACertificateOutput) {
  7960  	op := &request.Operation{
  7961  		Name:       opDescribeCACertificate,
  7962  		HTTPMethod: "GET",
  7963  		HTTPPath:   "/cacertificate/{caCertificateId}",
  7964  	}
  7965  
  7966  	if input == nil {
  7967  		input = &DescribeCACertificateInput{}
  7968  	}
  7969  
  7970  	output = &DescribeCACertificateOutput{}
  7971  	req = c.newRequest(op, input, output)
  7972  	return
  7973  }
  7974  
  7975  // DescribeCACertificate API operation for AWS IoT.
  7976  //
  7977  // Describes a registered CA certificate.
  7978  //
  7979  // Requires permission to access the DescribeCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  7980  // action.
  7981  //
  7982  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7983  // with awserr.Error's Code and Message methods to get detailed information about
  7984  // the error.
  7985  //
  7986  // See the AWS API reference guide for AWS IoT's
  7987  // API operation DescribeCACertificate for usage and error information.
  7988  //
  7989  // Returned Error Types:
  7990  //   * InvalidRequestException
  7991  //   The request is not valid.
  7992  //
  7993  //   * ThrottlingException
  7994  //   The rate exceeds the limit.
  7995  //
  7996  //   * UnauthorizedException
  7997  //   You are not authorized to perform this operation.
  7998  //
  7999  //   * ServiceUnavailableException
  8000  //   The service is temporarily unavailable.
  8001  //
  8002  //   * InternalFailureException
  8003  //   An unexpected error has occurred.
  8004  //
  8005  //   * ResourceNotFoundException
  8006  //   The specified resource does not exist.
  8007  //
  8008  func (c *IoT) DescribeCACertificate(input *DescribeCACertificateInput) (*DescribeCACertificateOutput, error) {
  8009  	req, out := c.DescribeCACertificateRequest(input)
  8010  	return out, req.Send()
  8011  }
  8012  
  8013  // DescribeCACertificateWithContext is the same as DescribeCACertificate with the addition of
  8014  // the ability to pass a context and additional request options.
  8015  //
  8016  // See DescribeCACertificate for details on how to use this API operation.
  8017  //
  8018  // The context must be non-nil and will be used for request cancellation. If
  8019  // the context is nil a panic will occur. In the future the SDK may create
  8020  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8021  // for more information on using Contexts.
  8022  func (c *IoT) DescribeCACertificateWithContext(ctx aws.Context, input *DescribeCACertificateInput, opts ...request.Option) (*DescribeCACertificateOutput, error) {
  8023  	req, out := c.DescribeCACertificateRequest(input)
  8024  	req.SetContext(ctx)
  8025  	req.ApplyOptions(opts...)
  8026  	return out, req.Send()
  8027  }
  8028  
  8029  const opDescribeCertificate = "DescribeCertificate"
  8030  
  8031  // DescribeCertificateRequest generates a "aws/request.Request" representing the
  8032  // client's request for the DescribeCertificate operation. The "output" return
  8033  // value will be populated with the request's response once the request completes
  8034  // successfully.
  8035  //
  8036  // Use "Send" method on the returned Request to send the API call to the service.
  8037  // the "output" return value is not valid until after Send returns without error.
  8038  //
  8039  // See DescribeCertificate for more information on using the DescribeCertificate
  8040  // API call, and error handling.
  8041  //
  8042  // This method is useful when you want to inject custom logic or configuration
  8043  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8044  //
  8045  //
  8046  //    // Example sending a request using the DescribeCertificateRequest method.
  8047  //    req, resp := client.DescribeCertificateRequest(params)
  8048  //
  8049  //    err := req.Send()
  8050  //    if err == nil { // resp is now filled
  8051  //        fmt.Println(resp)
  8052  //    }
  8053  func (c *IoT) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
  8054  	op := &request.Operation{
  8055  		Name:       opDescribeCertificate,
  8056  		HTTPMethod: "GET",
  8057  		HTTPPath:   "/certificates/{certificateId}",
  8058  	}
  8059  
  8060  	if input == nil {
  8061  		input = &DescribeCertificateInput{}
  8062  	}
  8063  
  8064  	output = &DescribeCertificateOutput{}
  8065  	req = c.newRequest(op, input, output)
  8066  	return
  8067  }
  8068  
  8069  // DescribeCertificate API operation for AWS IoT.
  8070  //
  8071  // Gets information about the specified certificate.
  8072  //
  8073  // Requires permission to access the DescribeCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8074  // action.
  8075  //
  8076  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8077  // with awserr.Error's Code and Message methods to get detailed information about
  8078  // the error.
  8079  //
  8080  // See the AWS API reference guide for AWS IoT's
  8081  // API operation DescribeCertificate for usage and error information.
  8082  //
  8083  // Returned Error Types:
  8084  //   * InvalidRequestException
  8085  //   The request is not valid.
  8086  //
  8087  //   * ThrottlingException
  8088  //   The rate exceeds the limit.
  8089  //
  8090  //   * UnauthorizedException
  8091  //   You are not authorized to perform this operation.
  8092  //
  8093  //   * ServiceUnavailableException
  8094  //   The service is temporarily unavailable.
  8095  //
  8096  //   * InternalFailureException
  8097  //   An unexpected error has occurred.
  8098  //
  8099  //   * ResourceNotFoundException
  8100  //   The specified resource does not exist.
  8101  //
  8102  func (c *IoT) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
  8103  	req, out := c.DescribeCertificateRequest(input)
  8104  	return out, req.Send()
  8105  }
  8106  
  8107  // DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
  8108  // the ability to pass a context and additional request options.
  8109  //
  8110  // See DescribeCertificate for details on how to use this API operation.
  8111  //
  8112  // The context must be non-nil and will be used for request cancellation. If
  8113  // the context is nil a panic will occur. In the future the SDK may create
  8114  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8115  // for more information on using Contexts.
  8116  func (c *IoT) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
  8117  	req, out := c.DescribeCertificateRequest(input)
  8118  	req.SetContext(ctx)
  8119  	req.ApplyOptions(opts...)
  8120  	return out, req.Send()
  8121  }
  8122  
  8123  const opDescribeCustomMetric = "DescribeCustomMetric"
  8124  
  8125  // DescribeCustomMetricRequest generates a "aws/request.Request" representing the
  8126  // client's request for the DescribeCustomMetric operation. The "output" return
  8127  // value will be populated with the request's response once the request completes
  8128  // successfully.
  8129  //
  8130  // Use "Send" method on the returned Request to send the API call to the service.
  8131  // the "output" return value is not valid until after Send returns without error.
  8132  //
  8133  // See DescribeCustomMetric for more information on using the DescribeCustomMetric
  8134  // API call, and error handling.
  8135  //
  8136  // This method is useful when you want to inject custom logic or configuration
  8137  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8138  //
  8139  //
  8140  //    // Example sending a request using the DescribeCustomMetricRequest method.
  8141  //    req, resp := client.DescribeCustomMetricRequest(params)
  8142  //
  8143  //    err := req.Send()
  8144  //    if err == nil { // resp is now filled
  8145  //        fmt.Println(resp)
  8146  //    }
  8147  func (c *IoT) DescribeCustomMetricRequest(input *DescribeCustomMetricInput) (req *request.Request, output *DescribeCustomMetricOutput) {
  8148  	op := &request.Operation{
  8149  		Name:       opDescribeCustomMetric,
  8150  		HTTPMethod: "GET",
  8151  		HTTPPath:   "/custom-metric/{metricName}",
  8152  	}
  8153  
  8154  	if input == nil {
  8155  		input = &DescribeCustomMetricInput{}
  8156  	}
  8157  
  8158  	output = &DescribeCustomMetricOutput{}
  8159  	req = c.newRequest(op, input, output)
  8160  	return
  8161  }
  8162  
  8163  // DescribeCustomMetric API operation for AWS IoT.
  8164  //
  8165  // Gets information about a Device Defender detect custom metric.
  8166  //
  8167  // Requires permission to access the DescribeCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8168  // action.
  8169  //
  8170  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8171  // with awserr.Error's Code and Message methods to get detailed information about
  8172  // the error.
  8173  //
  8174  // See the AWS API reference guide for AWS IoT's
  8175  // API operation DescribeCustomMetric for usage and error information.
  8176  //
  8177  // Returned Error Types:
  8178  //   * InvalidRequestException
  8179  //   The request is not valid.
  8180  //
  8181  //   * ResourceNotFoundException
  8182  //   The specified resource does not exist.
  8183  //
  8184  //   * ThrottlingException
  8185  //   The rate exceeds the limit.
  8186  //
  8187  //   * InternalFailureException
  8188  //   An unexpected error has occurred.
  8189  //
  8190  func (c *IoT) DescribeCustomMetric(input *DescribeCustomMetricInput) (*DescribeCustomMetricOutput, error) {
  8191  	req, out := c.DescribeCustomMetricRequest(input)
  8192  	return out, req.Send()
  8193  }
  8194  
  8195  // DescribeCustomMetricWithContext is the same as DescribeCustomMetric with the addition of
  8196  // the ability to pass a context and additional request options.
  8197  //
  8198  // See DescribeCustomMetric for details on how to use this API operation.
  8199  //
  8200  // The context must be non-nil and will be used for request cancellation. If
  8201  // the context is nil a panic will occur. In the future the SDK may create
  8202  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8203  // for more information on using Contexts.
  8204  func (c *IoT) DescribeCustomMetricWithContext(ctx aws.Context, input *DescribeCustomMetricInput, opts ...request.Option) (*DescribeCustomMetricOutput, error) {
  8205  	req, out := c.DescribeCustomMetricRequest(input)
  8206  	req.SetContext(ctx)
  8207  	req.ApplyOptions(opts...)
  8208  	return out, req.Send()
  8209  }
  8210  
  8211  const opDescribeDefaultAuthorizer = "DescribeDefaultAuthorizer"
  8212  
  8213  // DescribeDefaultAuthorizerRequest generates a "aws/request.Request" representing the
  8214  // client's request for the DescribeDefaultAuthorizer operation. The "output" return
  8215  // value will be populated with the request's response once the request completes
  8216  // successfully.
  8217  //
  8218  // Use "Send" method on the returned Request to send the API call to the service.
  8219  // the "output" return value is not valid until after Send returns without error.
  8220  //
  8221  // See DescribeDefaultAuthorizer for more information on using the DescribeDefaultAuthorizer
  8222  // API call, and error handling.
  8223  //
  8224  // This method is useful when you want to inject custom logic or configuration
  8225  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8226  //
  8227  //
  8228  //    // Example sending a request using the DescribeDefaultAuthorizerRequest method.
  8229  //    req, resp := client.DescribeDefaultAuthorizerRequest(params)
  8230  //
  8231  //    err := req.Send()
  8232  //    if err == nil { // resp is now filled
  8233  //        fmt.Println(resp)
  8234  //    }
  8235  func (c *IoT) DescribeDefaultAuthorizerRequest(input *DescribeDefaultAuthorizerInput) (req *request.Request, output *DescribeDefaultAuthorizerOutput) {
  8236  	op := &request.Operation{
  8237  		Name:       opDescribeDefaultAuthorizer,
  8238  		HTTPMethod: "GET",
  8239  		HTTPPath:   "/default-authorizer",
  8240  	}
  8241  
  8242  	if input == nil {
  8243  		input = &DescribeDefaultAuthorizerInput{}
  8244  	}
  8245  
  8246  	output = &DescribeDefaultAuthorizerOutput{}
  8247  	req = c.newRequest(op, input, output)
  8248  	return
  8249  }
  8250  
  8251  // DescribeDefaultAuthorizer API operation for AWS IoT.
  8252  //
  8253  // Describes the default authorizer.
  8254  //
  8255  // Requires permission to access the DescribeDefaultAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8256  // action.
  8257  //
  8258  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8259  // with awserr.Error's Code and Message methods to get detailed information about
  8260  // the error.
  8261  //
  8262  // See the AWS API reference guide for AWS IoT's
  8263  // API operation DescribeDefaultAuthorizer for usage and error information.
  8264  //
  8265  // Returned Error Types:
  8266  //   * ResourceNotFoundException
  8267  //   The specified resource does not exist.
  8268  //
  8269  //   * InvalidRequestException
  8270  //   The request is not valid.
  8271  //
  8272  //   * ThrottlingException
  8273  //   The rate exceeds the limit.
  8274  //
  8275  //   * UnauthorizedException
  8276  //   You are not authorized to perform this operation.
  8277  //
  8278  //   * ServiceUnavailableException
  8279  //   The service is temporarily unavailable.
  8280  //
  8281  //   * InternalFailureException
  8282  //   An unexpected error has occurred.
  8283  //
  8284  func (c *IoT) DescribeDefaultAuthorizer(input *DescribeDefaultAuthorizerInput) (*DescribeDefaultAuthorizerOutput, error) {
  8285  	req, out := c.DescribeDefaultAuthorizerRequest(input)
  8286  	return out, req.Send()
  8287  }
  8288  
  8289  // DescribeDefaultAuthorizerWithContext is the same as DescribeDefaultAuthorizer with the addition of
  8290  // the ability to pass a context and additional request options.
  8291  //
  8292  // See DescribeDefaultAuthorizer for details on how to use this API operation.
  8293  //
  8294  // The context must be non-nil and will be used for request cancellation. If
  8295  // the context is nil a panic will occur. In the future the SDK may create
  8296  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8297  // for more information on using Contexts.
  8298  func (c *IoT) DescribeDefaultAuthorizerWithContext(ctx aws.Context, input *DescribeDefaultAuthorizerInput, opts ...request.Option) (*DescribeDefaultAuthorizerOutput, error) {
  8299  	req, out := c.DescribeDefaultAuthorizerRequest(input)
  8300  	req.SetContext(ctx)
  8301  	req.ApplyOptions(opts...)
  8302  	return out, req.Send()
  8303  }
  8304  
  8305  const opDescribeDetectMitigationActionsTask = "DescribeDetectMitigationActionsTask"
  8306  
  8307  // DescribeDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
  8308  // client's request for the DescribeDetectMitigationActionsTask operation. The "output" return
  8309  // value will be populated with the request's response once the request completes
  8310  // successfully.
  8311  //
  8312  // Use "Send" method on the returned Request to send the API call to the service.
  8313  // the "output" return value is not valid until after Send returns without error.
  8314  //
  8315  // See DescribeDetectMitigationActionsTask for more information on using the DescribeDetectMitigationActionsTask
  8316  // API call, and error handling.
  8317  //
  8318  // This method is useful when you want to inject custom logic or configuration
  8319  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8320  //
  8321  //
  8322  //    // Example sending a request using the DescribeDetectMitigationActionsTaskRequest method.
  8323  //    req, resp := client.DescribeDetectMitigationActionsTaskRequest(params)
  8324  //
  8325  //    err := req.Send()
  8326  //    if err == nil { // resp is now filled
  8327  //        fmt.Println(resp)
  8328  //    }
  8329  func (c *IoT) DescribeDetectMitigationActionsTaskRequest(input *DescribeDetectMitigationActionsTaskInput) (req *request.Request, output *DescribeDetectMitigationActionsTaskOutput) {
  8330  	op := &request.Operation{
  8331  		Name:       opDescribeDetectMitigationActionsTask,
  8332  		HTTPMethod: "GET",
  8333  		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
  8334  	}
  8335  
  8336  	if input == nil {
  8337  		input = &DescribeDetectMitigationActionsTaskInput{}
  8338  	}
  8339  
  8340  	output = &DescribeDetectMitigationActionsTaskOutput{}
  8341  	req = c.newRequest(op, input, output)
  8342  	return
  8343  }
  8344  
  8345  // DescribeDetectMitigationActionsTask API operation for AWS IoT.
  8346  //
  8347  // Gets information about a Device Defender ML Detect mitigation action.
  8348  //
  8349  // Requires permission to access the DescribeDetectMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8350  // action.
  8351  //
  8352  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8353  // with awserr.Error's Code and Message methods to get detailed information about
  8354  // the error.
  8355  //
  8356  // See the AWS API reference guide for AWS IoT's
  8357  // API operation DescribeDetectMitigationActionsTask for usage and error information.
  8358  //
  8359  // Returned Error Types:
  8360  //   * ResourceNotFoundException
  8361  //   The specified resource does not exist.
  8362  //
  8363  //   * InvalidRequestException
  8364  //   The request is not valid.
  8365  //
  8366  //   * ThrottlingException
  8367  //   The rate exceeds the limit.
  8368  //
  8369  //   * InternalFailureException
  8370  //   An unexpected error has occurred.
  8371  //
  8372  func (c *IoT) DescribeDetectMitigationActionsTask(input *DescribeDetectMitigationActionsTaskInput) (*DescribeDetectMitigationActionsTaskOutput, error) {
  8373  	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
  8374  	return out, req.Send()
  8375  }
  8376  
  8377  // DescribeDetectMitigationActionsTaskWithContext is the same as DescribeDetectMitigationActionsTask with the addition of
  8378  // the ability to pass a context and additional request options.
  8379  //
  8380  // See DescribeDetectMitigationActionsTask for details on how to use this API operation.
  8381  //
  8382  // The context must be non-nil and will be used for request cancellation. If
  8383  // the context is nil a panic will occur. In the future the SDK may create
  8384  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8385  // for more information on using Contexts.
  8386  func (c *IoT) DescribeDetectMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeDetectMitigationActionsTaskInput, opts ...request.Option) (*DescribeDetectMitigationActionsTaskOutput, error) {
  8387  	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
  8388  	req.SetContext(ctx)
  8389  	req.ApplyOptions(opts...)
  8390  	return out, req.Send()
  8391  }
  8392  
  8393  const opDescribeDimension = "DescribeDimension"
  8394  
  8395  // DescribeDimensionRequest generates a "aws/request.Request" representing the
  8396  // client's request for the DescribeDimension operation. The "output" return
  8397  // value will be populated with the request's response once the request completes
  8398  // successfully.
  8399  //
  8400  // Use "Send" method on the returned Request to send the API call to the service.
  8401  // the "output" return value is not valid until after Send returns without error.
  8402  //
  8403  // See DescribeDimension for more information on using the DescribeDimension
  8404  // API call, and error handling.
  8405  //
  8406  // This method is useful when you want to inject custom logic or configuration
  8407  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8408  //
  8409  //
  8410  //    // Example sending a request using the DescribeDimensionRequest method.
  8411  //    req, resp := client.DescribeDimensionRequest(params)
  8412  //
  8413  //    err := req.Send()
  8414  //    if err == nil { // resp is now filled
  8415  //        fmt.Println(resp)
  8416  //    }
  8417  func (c *IoT) DescribeDimensionRequest(input *DescribeDimensionInput) (req *request.Request, output *DescribeDimensionOutput) {
  8418  	op := &request.Operation{
  8419  		Name:       opDescribeDimension,
  8420  		HTTPMethod: "GET",
  8421  		HTTPPath:   "/dimensions/{name}",
  8422  	}
  8423  
  8424  	if input == nil {
  8425  		input = &DescribeDimensionInput{}
  8426  	}
  8427  
  8428  	output = &DescribeDimensionOutput{}
  8429  	req = c.newRequest(op, input, output)
  8430  	return
  8431  }
  8432  
  8433  // DescribeDimension API operation for AWS IoT.
  8434  //
  8435  // Provides details about a dimension that is defined in your Amazon Web Services
  8436  // accounts.
  8437  //
  8438  // Requires permission to access the DescribeDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8439  // action.
  8440  //
  8441  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8442  // with awserr.Error's Code and Message methods to get detailed information about
  8443  // the error.
  8444  //
  8445  // See the AWS API reference guide for AWS IoT's
  8446  // API operation DescribeDimension for usage and error information.
  8447  //
  8448  // Returned Error Types:
  8449  //   * InternalFailureException
  8450  //   An unexpected error has occurred.
  8451  //
  8452  //   * InvalidRequestException
  8453  //   The request is not valid.
  8454  //
  8455  //   * ResourceNotFoundException
  8456  //   The specified resource does not exist.
  8457  //
  8458  //   * ThrottlingException
  8459  //   The rate exceeds the limit.
  8460  //
  8461  func (c *IoT) DescribeDimension(input *DescribeDimensionInput) (*DescribeDimensionOutput, error) {
  8462  	req, out := c.DescribeDimensionRequest(input)
  8463  	return out, req.Send()
  8464  }
  8465  
  8466  // DescribeDimensionWithContext is the same as DescribeDimension with the addition of
  8467  // the ability to pass a context and additional request options.
  8468  //
  8469  // See DescribeDimension for details on how to use this API operation.
  8470  //
  8471  // The context must be non-nil and will be used for request cancellation. If
  8472  // the context is nil a panic will occur. In the future the SDK may create
  8473  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8474  // for more information on using Contexts.
  8475  func (c *IoT) DescribeDimensionWithContext(ctx aws.Context, input *DescribeDimensionInput, opts ...request.Option) (*DescribeDimensionOutput, error) {
  8476  	req, out := c.DescribeDimensionRequest(input)
  8477  	req.SetContext(ctx)
  8478  	req.ApplyOptions(opts...)
  8479  	return out, req.Send()
  8480  }
  8481  
  8482  const opDescribeDomainConfiguration = "DescribeDomainConfiguration"
  8483  
  8484  // DescribeDomainConfigurationRequest generates a "aws/request.Request" representing the
  8485  // client's request for the DescribeDomainConfiguration operation. The "output" return
  8486  // value will be populated with the request's response once the request completes
  8487  // successfully.
  8488  //
  8489  // Use "Send" method on the returned Request to send the API call to the service.
  8490  // the "output" return value is not valid until after Send returns without error.
  8491  //
  8492  // See DescribeDomainConfiguration for more information on using the DescribeDomainConfiguration
  8493  // API call, and error handling.
  8494  //
  8495  // This method is useful when you want to inject custom logic or configuration
  8496  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8497  //
  8498  //
  8499  //    // Example sending a request using the DescribeDomainConfigurationRequest method.
  8500  //    req, resp := client.DescribeDomainConfigurationRequest(params)
  8501  //
  8502  //    err := req.Send()
  8503  //    if err == nil { // resp is now filled
  8504  //        fmt.Println(resp)
  8505  //    }
  8506  func (c *IoT) DescribeDomainConfigurationRequest(input *DescribeDomainConfigurationInput) (req *request.Request, output *DescribeDomainConfigurationOutput) {
  8507  	op := &request.Operation{
  8508  		Name:       opDescribeDomainConfiguration,
  8509  		HTTPMethod: "GET",
  8510  		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
  8511  	}
  8512  
  8513  	if input == nil {
  8514  		input = &DescribeDomainConfigurationInput{}
  8515  	}
  8516  
  8517  	output = &DescribeDomainConfigurationOutput{}
  8518  	req = c.newRequest(op, input, output)
  8519  	return
  8520  }
  8521  
  8522  // DescribeDomainConfiguration API operation for AWS IoT.
  8523  //
  8524  // Gets summary information about a domain configuration.
  8525  //
  8526  // Requires permission to access the DescribeDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8527  // action.
  8528  //
  8529  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8530  // with awserr.Error's Code and Message methods to get detailed information about
  8531  // the error.
  8532  //
  8533  // See the AWS API reference guide for AWS IoT's
  8534  // API operation DescribeDomainConfiguration for usage and error information.
  8535  //
  8536  // Returned Error Types:
  8537  //   * ResourceNotFoundException
  8538  //   The specified resource does not exist.
  8539  //
  8540  //   * ThrottlingException
  8541  //   The rate exceeds the limit.
  8542  //
  8543  //   * InvalidRequestException
  8544  //   The request is not valid.
  8545  //
  8546  //   * UnauthorizedException
  8547  //   You are not authorized to perform this operation.
  8548  //
  8549  //   * ServiceUnavailableException
  8550  //   The service is temporarily unavailable.
  8551  //
  8552  //   * InternalFailureException
  8553  //   An unexpected error has occurred.
  8554  //
  8555  func (c *IoT) DescribeDomainConfiguration(input *DescribeDomainConfigurationInput) (*DescribeDomainConfigurationOutput, error) {
  8556  	req, out := c.DescribeDomainConfigurationRequest(input)
  8557  	return out, req.Send()
  8558  }
  8559  
  8560  // DescribeDomainConfigurationWithContext is the same as DescribeDomainConfiguration with the addition of
  8561  // the ability to pass a context and additional request options.
  8562  //
  8563  // See DescribeDomainConfiguration for details on how to use this API operation.
  8564  //
  8565  // The context must be non-nil and will be used for request cancellation. If
  8566  // the context is nil a panic will occur. In the future the SDK may create
  8567  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8568  // for more information on using Contexts.
  8569  func (c *IoT) DescribeDomainConfigurationWithContext(ctx aws.Context, input *DescribeDomainConfigurationInput, opts ...request.Option) (*DescribeDomainConfigurationOutput, error) {
  8570  	req, out := c.DescribeDomainConfigurationRequest(input)
  8571  	req.SetContext(ctx)
  8572  	req.ApplyOptions(opts...)
  8573  	return out, req.Send()
  8574  }
  8575  
  8576  const opDescribeEndpoint = "DescribeEndpoint"
  8577  
  8578  // DescribeEndpointRequest generates a "aws/request.Request" representing the
  8579  // client's request for the DescribeEndpoint operation. The "output" return
  8580  // value will be populated with the request's response once the request completes
  8581  // successfully.
  8582  //
  8583  // Use "Send" method on the returned Request to send the API call to the service.
  8584  // the "output" return value is not valid until after Send returns without error.
  8585  //
  8586  // See DescribeEndpoint for more information on using the DescribeEndpoint
  8587  // API call, and error handling.
  8588  //
  8589  // This method is useful when you want to inject custom logic or configuration
  8590  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8591  //
  8592  //
  8593  //    // Example sending a request using the DescribeEndpointRequest method.
  8594  //    req, resp := client.DescribeEndpointRequest(params)
  8595  //
  8596  //    err := req.Send()
  8597  //    if err == nil { // resp is now filled
  8598  //        fmt.Println(resp)
  8599  //    }
  8600  func (c *IoT) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
  8601  	op := &request.Operation{
  8602  		Name:       opDescribeEndpoint,
  8603  		HTTPMethod: "GET",
  8604  		HTTPPath:   "/endpoint",
  8605  	}
  8606  
  8607  	if input == nil {
  8608  		input = &DescribeEndpointInput{}
  8609  	}
  8610  
  8611  	output = &DescribeEndpointOutput{}
  8612  	req = c.newRequest(op, input, output)
  8613  	return
  8614  }
  8615  
  8616  // DescribeEndpoint API operation for AWS IoT.
  8617  //
  8618  // Returns a unique endpoint specific to the Amazon Web Services account making
  8619  // the call.
  8620  //
  8621  // Requires permission to access the DescribeEndpoint (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8622  // action.
  8623  //
  8624  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8625  // with awserr.Error's Code and Message methods to get detailed information about
  8626  // the error.
  8627  //
  8628  // See the AWS API reference guide for AWS IoT's
  8629  // API operation DescribeEndpoint for usage and error information.
  8630  //
  8631  // Returned Error Types:
  8632  //   * InternalFailureException
  8633  //   An unexpected error has occurred.
  8634  //
  8635  //   * InvalidRequestException
  8636  //   The request is not valid.
  8637  //
  8638  //   * UnauthorizedException
  8639  //   You are not authorized to perform this operation.
  8640  //
  8641  //   * ThrottlingException
  8642  //   The rate exceeds the limit.
  8643  //
  8644  func (c *IoT) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
  8645  	req, out := c.DescribeEndpointRequest(input)
  8646  	return out, req.Send()
  8647  }
  8648  
  8649  // DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
  8650  // the ability to pass a context and additional request options.
  8651  //
  8652  // See DescribeEndpoint for details on how to use this API operation.
  8653  //
  8654  // The context must be non-nil and will be used for request cancellation. If
  8655  // the context is nil a panic will occur. In the future the SDK may create
  8656  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8657  // for more information on using Contexts.
  8658  func (c *IoT) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
  8659  	req, out := c.DescribeEndpointRequest(input)
  8660  	req.SetContext(ctx)
  8661  	req.ApplyOptions(opts...)
  8662  	return out, req.Send()
  8663  }
  8664  
  8665  const opDescribeEventConfigurations = "DescribeEventConfigurations"
  8666  
  8667  // DescribeEventConfigurationsRequest generates a "aws/request.Request" representing the
  8668  // client's request for the DescribeEventConfigurations operation. The "output" return
  8669  // value will be populated with the request's response once the request completes
  8670  // successfully.
  8671  //
  8672  // Use "Send" method on the returned Request to send the API call to the service.
  8673  // the "output" return value is not valid until after Send returns without error.
  8674  //
  8675  // See DescribeEventConfigurations for more information on using the DescribeEventConfigurations
  8676  // API call, and error handling.
  8677  //
  8678  // This method is useful when you want to inject custom logic or configuration
  8679  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8680  //
  8681  //
  8682  //    // Example sending a request using the DescribeEventConfigurationsRequest method.
  8683  //    req, resp := client.DescribeEventConfigurationsRequest(params)
  8684  //
  8685  //    err := req.Send()
  8686  //    if err == nil { // resp is now filled
  8687  //        fmt.Println(resp)
  8688  //    }
  8689  func (c *IoT) DescribeEventConfigurationsRequest(input *DescribeEventConfigurationsInput) (req *request.Request, output *DescribeEventConfigurationsOutput) {
  8690  	op := &request.Operation{
  8691  		Name:       opDescribeEventConfigurations,
  8692  		HTTPMethod: "GET",
  8693  		HTTPPath:   "/event-configurations",
  8694  	}
  8695  
  8696  	if input == nil {
  8697  		input = &DescribeEventConfigurationsInput{}
  8698  	}
  8699  
  8700  	output = &DescribeEventConfigurationsOutput{}
  8701  	req = c.newRequest(op, input, output)
  8702  	return
  8703  }
  8704  
  8705  // DescribeEventConfigurations API operation for AWS IoT.
  8706  //
  8707  // Describes event configurations.
  8708  //
  8709  // Requires permission to access the DescribeEventConfigurations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8710  // action.
  8711  //
  8712  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8713  // with awserr.Error's Code and Message methods to get detailed information about
  8714  // the error.
  8715  //
  8716  // See the AWS API reference guide for AWS IoT's
  8717  // API operation DescribeEventConfigurations for usage and error information.
  8718  //
  8719  // Returned Error Types:
  8720  //   * InternalFailureException
  8721  //   An unexpected error has occurred.
  8722  //
  8723  //   * ThrottlingException
  8724  //   The rate exceeds the limit.
  8725  //
  8726  func (c *IoT) DescribeEventConfigurations(input *DescribeEventConfigurationsInput) (*DescribeEventConfigurationsOutput, error) {
  8727  	req, out := c.DescribeEventConfigurationsRequest(input)
  8728  	return out, req.Send()
  8729  }
  8730  
  8731  // DescribeEventConfigurationsWithContext is the same as DescribeEventConfigurations with the addition of
  8732  // the ability to pass a context and additional request options.
  8733  //
  8734  // See DescribeEventConfigurations for details on how to use this API operation.
  8735  //
  8736  // The context must be non-nil and will be used for request cancellation. If
  8737  // the context is nil a panic will occur. In the future the SDK may create
  8738  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8739  // for more information on using Contexts.
  8740  func (c *IoT) DescribeEventConfigurationsWithContext(ctx aws.Context, input *DescribeEventConfigurationsInput, opts ...request.Option) (*DescribeEventConfigurationsOutput, error) {
  8741  	req, out := c.DescribeEventConfigurationsRequest(input)
  8742  	req.SetContext(ctx)
  8743  	req.ApplyOptions(opts...)
  8744  	return out, req.Send()
  8745  }
  8746  
  8747  const opDescribeFleetMetric = "DescribeFleetMetric"
  8748  
  8749  // DescribeFleetMetricRequest generates a "aws/request.Request" representing the
  8750  // client's request for the DescribeFleetMetric operation. The "output" return
  8751  // value will be populated with the request's response once the request completes
  8752  // successfully.
  8753  //
  8754  // Use "Send" method on the returned Request to send the API call to the service.
  8755  // the "output" return value is not valid until after Send returns without error.
  8756  //
  8757  // See DescribeFleetMetric for more information on using the DescribeFleetMetric
  8758  // API call, and error handling.
  8759  //
  8760  // This method is useful when you want to inject custom logic or configuration
  8761  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8762  //
  8763  //
  8764  //    // Example sending a request using the DescribeFleetMetricRequest method.
  8765  //    req, resp := client.DescribeFleetMetricRequest(params)
  8766  //
  8767  //    err := req.Send()
  8768  //    if err == nil { // resp is now filled
  8769  //        fmt.Println(resp)
  8770  //    }
  8771  func (c *IoT) DescribeFleetMetricRequest(input *DescribeFleetMetricInput) (req *request.Request, output *DescribeFleetMetricOutput) {
  8772  	op := &request.Operation{
  8773  		Name:       opDescribeFleetMetric,
  8774  		HTTPMethod: "GET",
  8775  		HTTPPath:   "/fleet-metric/{metricName}",
  8776  	}
  8777  
  8778  	if input == nil {
  8779  		input = &DescribeFleetMetricInput{}
  8780  	}
  8781  
  8782  	output = &DescribeFleetMetricOutput{}
  8783  	req = c.newRequest(op, input, output)
  8784  	return
  8785  }
  8786  
  8787  // DescribeFleetMetric API operation for AWS IoT.
  8788  //
  8789  // Gets information about the specified fleet metric.
  8790  //
  8791  // Requires permission to access the DescribeFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8792  // action.
  8793  //
  8794  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8795  // with awserr.Error's Code and Message methods to get detailed information about
  8796  // the error.
  8797  //
  8798  // See the AWS API reference guide for AWS IoT's
  8799  // API operation DescribeFleetMetric for usage and error information.
  8800  //
  8801  // Returned Error Types:
  8802  //   * InvalidRequestException
  8803  //   The request is not valid.
  8804  //
  8805  //   * ThrottlingException
  8806  //   The rate exceeds the limit.
  8807  //
  8808  //   * UnauthorizedException
  8809  //   You are not authorized to perform this operation.
  8810  //
  8811  //   * ServiceUnavailableException
  8812  //   The service is temporarily unavailable.
  8813  //
  8814  //   * InternalFailureException
  8815  //   An unexpected error has occurred.
  8816  //
  8817  //   * ResourceNotFoundException
  8818  //   The specified resource does not exist.
  8819  //
  8820  func (c *IoT) DescribeFleetMetric(input *DescribeFleetMetricInput) (*DescribeFleetMetricOutput, error) {
  8821  	req, out := c.DescribeFleetMetricRequest(input)
  8822  	return out, req.Send()
  8823  }
  8824  
  8825  // DescribeFleetMetricWithContext is the same as DescribeFleetMetric with the addition of
  8826  // the ability to pass a context and additional request options.
  8827  //
  8828  // See DescribeFleetMetric for details on how to use this API operation.
  8829  //
  8830  // The context must be non-nil and will be used for request cancellation. If
  8831  // the context is nil a panic will occur. In the future the SDK may create
  8832  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8833  // for more information on using Contexts.
  8834  func (c *IoT) DescribeFleetMetricWithContext(ctx aws.Context, input *DescribeFleetMetricInput, opts ...request.Option) (*DescribeFleetMetricOutput, error) {
  8835  	req, out := c.DescribeFleetMetricRequest(input)
  8836  	req.SetContext(ctx)
  8837  	req.ApplyOptions(opts...)
  8838  	return out, req.Send()
  8839  }
  8840  
  8841  const opDescribeIndex = "DescribeIndex"
  8842  
  8843  // DescribeIndexRequest generates a "aws/request.Request" representing the
  8844  // client's request for the DescribeIndex operation. The "output" return
  8845  // value will be populated with the request's response once the request completes
  8846  // successfully.
  8847  //
  8848  // Use "Send" method on the returned Request to send the API call to the service.
  8849  // the "output" return value is not valid until after Send returns without error.
  8850  //
  8851  // See DescribeIndex for more information on using the DescribeIndex
  8852  // API call, and error handling.
  8853  //
  8854  // This method is useful when you want to inject custom logic or configuration
  8855  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8856  //
  8857  //
  8858  //    // Example sending a request using the DescribeIndexRequest method.
  8859  //    req, resp := client.DescribeIndexRequest(params)
  8860  //
  8861  //    err := req.Send()
  8862  //    if err == nil { // resp is now filled
  8863  //        fmt.Println(resp)
  8864  //    }
  8865  func (c *IoT) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
  8866  	op := &request.Operation{
  8867  		Name:       opDescribeIndex,
  8868  		HTTPMethod: "GET",
  8869  		HTTPPath:   "/indices/{indexName}",
  8870  	}
  8871  
  8872  	if input == nil {
  8873  		input = &DescribeIndexInput{}
  8874  	}
  8875  
  8876  	output = &DescribeIndexOutput{}
  8877  	req = c.newRequest(op, input, output)
  8878  	return
  8879  }
  8880  
  8881  // DescribeIndex API operation for AWS IoT.
  8882  //
  8883  // Describes a search index.
  8884  //
  8885  // Requires permission to access the DescribeIndex (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8886  // action.
  8887  //
  8888  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8889  // with awserr.Error's Code and Message methods to get detailed information about
  8890  // the error.
  8891  //
  8892  // See the AWS API reference guide for AWS IoT's
  8893  // API operation DescribeIndex for usage and error information.
  8894  //
  8895  // Returned Error Types:
  8896  //   * InvalidRequestException
  8897  //   The request is not valid.
  8898  //
  8899  //   * ThrottlingException
  8900  //   The rate exceeds the limit.
  8901  //
  8902  //   * UnauthorizedException
  8903  //   You are not authorized to perform this operation.
  8904  //
  8905  //   * ServiceUnavailableException
  8906  //   The service is temporarily unavailable.
  8907  //
  8908  //   * InternalFailureException
  8909  //   An unexpected error has occurred.
  8910  //
  8911  //   * ResourceNotFoundException
  8912  //   The specified resource does not exist.
  8913  //
  8914  func (c *IoT) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
  8915  	req, out := c.DescribeIndexRequest(input)
  8916  	return out, req.Send()
  8917  }
  8918  
  8919  // DescribeIndexWithContext is the same as DescribeIndex with the addition of
  8920  // the ability to pass a context and additional request options.
  8921  //
  8922  // See DescribeIndex for details on how to use this API operation.
  8923  //
  8924  // The context must be non-nil and will be used for request cancellation. If
  8925  // the context is nil a panic will occur. In the future the SDK may create
  8926  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8927  // for more information on using Contexts.
  8928  func (c *IoT) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
  8929  	req, out := c.DescribeIndexRequest(input)
  8930  	req.SetContext(ctx)
  8931  	req.ApplyOptions(opts...)
  8932  	return out, req.Send()
  8933  }
  8934  
  8935  const opDescribeJob = "DescribeJob"
  8936  
  8937  // DescribeJobRequest generates a "aws/request.Request" representing the
  8938  // client's request for the DescribeJob operation. The "output" return
  8939  // value will be populated with the request's response once the request completes
  8940  // successfully.
  8941  //
  8942  // Use "Send" method on the returned Request to send the API call to the service.
  8943  // the "output" return value is not valid until after Send returns without error.
  8944  //
  8945  // See DescribeJob for more information on using the DescribeJob
  8946  // API call, and error handling.
  8947  //
  8948  // This method is useful when you want to inject custom logic or configuration
  8949  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8950  //
  8951  //
  8952  //    // Example sending a request using the DescribeJobRequest method.
  8953  //    req, resp := client.DescribeJobRequest(params)
  8954  //
  8955  //    err := req.Send()
  8956  //    if err == nil { // resp is now filled
  8957  //        fmt.Println(resp)
  8958  //    }
  8959  func (c *IoT) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
  8960  	op := &request.Operation{
  8961  		Name:       opDescribeJob,
  8962  		HTTPMethod: "GET",
  8963  		HTTPPath:   "/jobs/{jobId}",
  8964  	}
  8965  
  8966  	if input == nil {
  8967  		input = &DescribeJobInput{}
  8968  	}
  8969  
  8970  	output = &DescribeJobOutput{}
  8971  	req = c.newRequest(op, input, output)
  8972  	return
  8973  }
  8974  
  8975  // DescribeJob API operation for AWS IoT.
  8976  //
  8977  // Describes a job.
  8978  //
  8979  // Requires permission to access the DescribeJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  8980  // action.
  8981  //
  8982  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8983  // with awserr.Error's Code and Message methods to get detailed information about
  8984  // the error.
  8985  //
  8986  // See the AWS API reference guide for AWS IoT's
  8987  // API operation DescribeJob for usage and error information.
  8988  //
  8989  // Returned Error Types:
  8990  //   * InvalidRequestException
  8991  //   The request is not valid.
  8992  //
  8993  //   * ResourceNotFoundException
  8994  //   The specified resource does not exist.
  8995  //
  8996  //   * ThrottlingException
  8997  //   The rate exceeds the limit.
  8998  //
  8999  //   * ServiceUnavailableException
  9000  //   The service is temporarily unavailable.
  9001  //
  9002  func (c *IoT) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
  9003  	req, out := c.DescribeJobRequest(input)
  9004  	return out, req.Send()
  9005  }
  9006  
  9007  // DescribeJobWithContext is the same as DescribeJob with the addition of
  9008  // the ability to pass a context and additional request options.
  9009  //
  9010  // See DescribeJob for details on how to use this API operation.
  9011  //
  9012  // The context must be non-nil and will be used for request cancellation. If
  9013  // the context is nil a panic will occur. In the future the SDK may create
  9014  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9015  // for more information on using Contexts.
  9016  func (c *IoT) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
  9017  	req, out := c.DescribeJobRequest(input)
  9018  	req.SetContext(ctx)
  9019  	req.ApplyOptions(opts...)
  9020  	return out, req.Send()
  9021  }
  9022  
  9023  const opDescribeJobExecution = "DescribeJobExecution"
  9024  
  9025  // DescribeJobExecutionRequest generates a "aws/request.Request" representing the
  9026  // client's request for the DescribeJobExecution operation. The "output" return
  9027  // value will be populated with the request's response once the request completes
  9028  // successfully.
  9029  //
  9030  // Use "Send" method on the returned Request to send the API call to the service.
  9031  // the "output" return value is not valid until after Send returns without error.
  9032  //
  9033  // See DescribeJobExecution for more information on using the DescribeJobExecution
  9034  // API call, and error handling.
  9035  //
  9036  // This method is useful when you want to inject custom logic or configuration
  9037  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9038  //
  9039  //
  9040  //    // Example sending a request using the DescribeJobExecutionRequest method.
  9041  //    req, resp := client.DescribeJobExecutionRequest(params)
  9042  //
  9043  //    err := req.Send()
  9044  //    if err == nil { // resp is now filled
  9045  //        fmt.Println(resp)
  9046  //    }
  9047  func (c *IoT) DescribeJobExecutionRequest(input *DescribeJobExecutionInput) (req *request.Request, output *DescribeJobExecutionOutput) {
  9048  	op := &request.Operation{
  9049  		Name:       opDescribeJobExecution,
  9050  		HTTPMethod: "GET",
  9051  		HTTPPath:   "/things/{thingName}/jobs/{jobId}",
  9052  	}
  9053  
  9054  	if input == nil {
  9055  		input = &DescribeJobExecutionInput{}
  9056  	}
  9057  
  9058  	output = &DescribeJobExecutionOutput{}
  9059  	req = c.newRequest(op, input, output)
  9060  	return
  9061  }
  9062  
  9063  // DescribeJobExecution API operation for AWS IoT.
  9064  //
  9065  // Describes a job execution.
  9066  //
  9067  // Requires permission to access the DescribeJobExecution (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9068  // action.
  9069  //
  9070  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9071  // with awserr.Error's Code and Message methods to get detailed information about
  9072  // the error.
  9073  //
  9074  // See the AWS API reference guide for AWS IoT's
  9075  // API operation DescribeJobExecution for usage and error information.
  9076  //
  9077  // Returned Error Types:
  9078  //   * InvalidRequestException
  9079  //   The request is not valid.
  9080  //
  9081  //   * ResourceNotFoundException
  9082  //   The specified resource does not exist.
  9083  //
  9084  //   * ThrottlingException
  9085  //   The rate exceeds the limit.
  9086  //
  9087  //   * ServiceUnavailableException
  9088  //   The service is temporarily unavailable.
  9089  //
  9090  func (c *IoT) DescribeJobExecution(input *DescribeJobExecutionInput) (*DescribeJobExecutionOutput, error) {
  9091  	req, out := c.DescribeJobExecutionRequest(input)
  9092  	return out, req.Send()
  9093  }
  9094  
  9095  // DescribeJobExecutionWithContext is the same as DescribeJobExecution with the addition of
  9096  // the ability to pass a context and additional request options.
  9097  //
  9098  // See DescribeJobExecution for details on how to use this API operation.
  9099  //
  9100  // The context must be non-nil and will be used for request cancellation. If
  9101  // the context is nil a panic will occur. In the future the SDK may create
  9102  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9103  // for more information on using Contexts.
  9104  func (c *IoT) DescribeJobExecutionWithContext(ctx aws.Context, input *DescribeJobExecutionInput, opts ...request.Option) (*DescribeJobExecutionOutput, error) {
  9105  	req, out := c.DescribeJobExecutionRequest(input)
  9106  	req.SetContext(ctx)
  9107  	req.ApplyOptions(opts...)
  9108  	return out, req.Send()
  9109  }
  9110  
  9111  const opDescribeJobTemplate = "DescribeJobTemplate"
  9112  
  9113  // DescribeJobTemplateRequest generates a "aws/request.Request" representing the
  9114  // client's request for the DescribeJobTemplate operation. The "output" return
  9115  // value will be populated with the request's response once the request completes
  9116  // successfully.
  9117  //
  9118  // Use "Send" method on the returned Request to send the API call to the service.
  9119  // the "output" return value is not valid until after Send returns without error.
  9120  //
  9121  // See DescribeJobTemplate for more information on using the DescribeJobTemplate
  9122  // API call, and error handling.
  9123  //
  9124  // This method is useful when you want to inject custom logic or configuration
  9125  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9126  //
  9127  //
  9128  //    // Example sending a request using the DescribeJobTemplateRequest method.
  9129  //    req, resp := client.DescribeJobTemplateRequest(params)
  9130  //
  9131  //    err := req.Send()
  9132  //    if err == nil { // resp is now filled
  9133  //        fmt.Println(resp)
  9134  //    }
  9135  func (c *IoT) DescribeJobTemplateRequest(input *DescribeJobTemplateInput) (req *request.Request, output *DescribeJobTemplateOutput) {
  9136  	op := &request.Operation{
  9137  		Name:       opDescribeJobTemplate,
  9138  		HTTPMethod: "GET",
  9139  		HTTPPath:   "/job-templates/{jobTemplateId}",
  9140  	}
  9141  
  9142  	if input == nil {
  9143  		input = &DescribeJobTemplateInput{}
  9144  	}
  9145  
  9146  	output = &DescribeJobTemplateOutput{}
  9147  	req = c.newRequest(op, input, output)
  9148  	return
  9149  }
  9150  
  9151  // DescribeJobTemplate API operation for AWS IoT.
  9152  //
  9153  // Returns information about a job template.
  9154  //
  9155  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9156  // with awserr.Error's Code and Message methods to get detailed information about
  9157  // the error.
  9158  //
  9159  // See the AWS API reference guide for AWS IoT's
  9160  // API operation DescribeJobTemplate for usage and error information.
  9161  //
  9162  // Returned Error Types:
  9163  //   * InvalidRequestException
  9164  //   The request is not valid.
  9165  //
  9166  //   * ResourceNotFoundException
  9167  //   The specified resource does not exist.
  9168  //
  9169  //   * ThrottlingException
  9170  //   The rate exceeds the limit.
  9171  //
  9172  //   * InternalFailureException
  9173  //   An unexpected error has occurred.
  9174  //
  9175  func (c *IoT) DescribeJobTemplate(input *DescribeJobTemplateInput) (*DescribeJobTemplateOutput, error) {
  9176  	req, out := c.DescribeJobTemplateRequest(input)
  9177  	return out, req.Send()
  9178  }
  9179  
  9180  // DescribeJobTemplateWithContext is the same as DescribeJobTemplate with the addition of
  9181  // the ability to pass a context and additional request options.
  9182  //
  9183  // See DescribeJobTemplate for details on how to use this API operation.
  9184  //
  9185  // The context must be non-nil and will be used for request cancellation. If
  9186  // the context is nil a panic will occur. In the future the SDK may create
  9187  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9188  // for more information on using Contexts.
  9189  func (c *IoT) DescribeJobTemplateWithContext(ctx aws.Context, input *DescribeJobTemplateInput, opts ...request.Option) (*DescribeJobTemplateOutput, error) {
  9190  	req, out := c.DescribeJobTemplateRequest(input)
  9191  	req.SetContext(ctx)
  9192  	req.ApplyOptions(opts...)
  9193  	return out, req.Send()
  9194  }
  9195  
  9196  const opDescribeMitigationAction = "DescribeMitigationAction"
  9197  
  9198  // DescribeMitigationActionRequest generates a "aws/request.Request" representing the
  9199  // client's request for the DescribeMitigationAction operation. The "output" return
  9200  // value will be populated with the request's response once the request completes
  9201  // successfully.
  9202  //
  9203  // Use "Send" method on the returned Request to send the API call to the service.
  9204  // the "output" return value is not valid until after Send returns without error.
  9205  //
  9206  // See DescribeMitigationAction for more information on using the DescribeMitigationAction
  9207  // API call, and error handling.
  9208  //
  9209  // This method is useful when you want to inject custom logic or configuration
  9210  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9211  //
  9212  //
  9213  //    // Example sending a request using the DescribeMitigationActionRequest method.
  9214  //    req, resp := client.DescribeMitigationActionRequest(params)
  9215  //
  9216  //    err := req.Send()
  9217  //    if err == nil { // resp is now filled
  9218  //        fmt.Println(resp)
  9219  //    }
  9220  func (c *IoT) DescribeMitigationActionRequest(input *DescribeMitigationActionInput) (req *request.Request, output *DescribeMitigationActionOutput) {
  9221  	op := &request.Operation{
  9222  		Name:       opDescribeMitigationAction,
  9223  		HTTPMethod: "GET",
  9224  		HTTPPath:   "/mitigationactions/actions/{actionName}",
  9225  	}
  9226  
  9227  	if input == nil {
  9228  		input = &DescribeMitigationActionInput{}
  9229  	}
  9230  
  9231  	output = &DescribeMitigationActionOutput{}
  9232  	req = c.newRequest(op, input, output)
  9233  	return
  9234  }
  9235  
  9236  // DescribeMitigationAction API operation for AWS IoT.
  9237  //
  9238  // Gets information about a mitigation action.
  9239  //
  9240  // Requires permission to access the DescribeMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9241  // action.
  9242  //
  9243  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9244  // with awserr.Error's Code and Message methods to get detailed information about
  9245  // the error.
  9246  //
  9247  // See the AWS API reference guide for AWS IoT's
  9248  // API operation DescribeMitigationAction for usage and error information.
  9249  //
  9250  // Returned Error Types:
  9251  //   * InvalidRequestException
  9252  //   The request is not valid.
  9253  //
  9254  //   * ResourceNotFoundException
  9255  //   The specified resource does not exist.
  9256  //
  9257  //   * ThrottlingException
  9258  //   The rate exceeds the limit.
  9259  //
  9260  //   * InternalFailureException
  9261  //   An unexpected error has occurred.
  9262  //
  9263  func (c *IoT) DescribeMitigationAction(input *DescribeMitigationActionInput) (*DescribeMitigationActionOutput, error) {
  9264  	req, out := c.DescribeMitigationActionRequest(input)
  9265  	return out, req.Send()
  9266  }
  9267  
  9268  // DescribeMitigationActionWithContext is the same as DescribeMitigationAction with the addition of
  9269  // the ability to pass a context and additional request options.
  9270  //
  9271  // See DescribeMitigationAction for details on how to use this API operation.
  9272  //
  9273  // The context must be non-nil and will be used for request cancellation. If
  9274  // the context is nil a panic will occur. In the future the SDK may create
  9275  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9276  // for more information on using Contexts.
  9277  func (c *IoT) DescribeMitigationActionWithContext(ctx aws.Context, input *DescribeMitigationActionInput, opts ...request.Option) (*DescribeMitigationActionOutput, error) {
  9278  	req, out := c.DescribeMitigationActionRequest(input)
  9279  	req.SetContext(ctx)
  9280  	req.ApplyOptions(opts...)
  9281  	return out, req.Send()
  9282  }
  9283  
  9284  const opDescribeProvisioningTemplate = "DescribeProvisioningTemplate"
  9285  
  9286  // DescribeProvisioningTemplateRequest generates a "aws/request.Request" representing the
  9287  // client's request for the DescribeProvisioningTemplate operation. The "output" return
  9288  // value will be populated with the request's response once the request completes
  9289  // successfully.
  9290  //
  9291  // Use "Send" method on the returned Request to send the API call to the service.
  9292  // the "output" return value is not valid until after Send returns without error.
  9293  //
  9294  // See DescribeProvisioningTemplate for more information on using the DescribeProvisioningTemplate
  9295  // API call, and error handling.
  9296  //
  9297  // This method is useful when you want to inject custom logic or configuration
  9298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9299  //
  9300  //
  9301  //    // Example sending a request using the DescribeProvisioningTemplateRequest method.
  9302  //    req, resp := client.DescribeProvisioningTemplateRequest(params)
  9303  //
  9304  //    err := req.Send()
  9305  //    if err == nil { // resp is now filled
  9306  //        fmt.Println(resp)
  9307  //    }
  9308  func (c *IoT) DescribeProvisioningTemplateRequest(input *DescribeProvisioningTemplateInput) (req *request.Request, output *DescribeProvisioningTemplateOutput) {
  9309  	op := &request.Operation{
  9310  		Name:       opDescribeProvisioningTemplate,
  9311  		HTTPMethod: "GET",
  9312  		HTTPPath:   "/provisioning-templates/{templateName}",
  9313  	}
  9314  
  9315  	if input == nil {
  9316  		input = &DescribeProvisioningTemplateInput{}
  9317  	}
  9318  
  9319  	output = &DescribeProvisioningTemplateOutput{}
  9320  	req = c.newRequest(op, input, output)
  9321  	return
  9322  }
  9323  
  9324  // DescribeProvisioningTemplate API operation for AWS IoT.
  9325  //
  9326  // Returns information about a fleet provisioning template.
  9327  //
  9328  // Requires permission to access the DescribeProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9329  // action.
  9330  //
  9331  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9332  // with awserr.Error's Code and Message methods to get detailed information about
  9333  // the error.
  9334  //
  9335  // See the AWS API reference guide for AWS IoT's
  9336  // API operation DescribeProvisioningTemplate for usage and error information.
  9337  //
  9338  // Returned Error Types:
  9339  //   * InternalFailureException
  9340  //   An unexpected error has occurred.
  9341  //
  9342  //   * InvalidRequestException
  9343  //   The request is not valid.
  9344  //
  9345  //   * ResourceNotFoundException
  9346  //   The specified resource does not exist.
  9347  //
  9348  //   * ThrottlingException
  9349  //   The rate exceeds the limit.
  9350  //
  9351  //   * UnauthorizedException
  9352  //   You are not authorized to perform this operation.
  9353  //
  9354  func (c *IoT) DescribeProvisioningTemplate(input *DescribeProvisioningTemplateInput) (*DescribeProvisioningTemplateOutput, error) {
  9355  	req, out := c.DescribeProvisioningTemplateRequest(input)
  9356  	return out, req.Send()
  9357  }
  9358  
  9359  // DescribeProvisioningTemplateWithContext is the same as DescribeProvisioningTemplate with the addition of
  9360  // the ability to pass a context and additional request options.
  9361  //
  9362  // See DescribeProvisioningTemplate for details on how to use this API operation.
  9363  //
  9364  // The context must be non-nil and will be used for request cancellation. If
  9365  // the context is nil a panic will occur. In the future the SDK may create
  9366  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9367  // for more information on using Contexts.
  9368  func (c *IoT) DescribeProvisioningTemplateWithContext(ctx aws.Context, input *DescribeProvisioningTemplateInput, opts ...request.Option) (*DescribeProvisioningTemplateOutput, error) {
  9369  	req, out := c.DescribeProvisioningTemplateRequest(input)
  9370  	req.SetContext(ctx)
  9371  	req.ApplyOptions(opts...)
  9372  	return out, req.Send()
  9373  }
  9374  
  9375  const opDescribeProvisioningTemplateVersion = "DescribeProvisioningTemplateVersion"
  9376  
  9377  // DescribeProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
  9378  // client's request for the DescribeProvisioningTemplateVersion operation. The "output" return
  9379  // value will be populated with the request's response once the request completes
  9380  // successfully.
  9381  //
  9382  // Use "Send" method on the returned Request to send the API call to the service.
  9383  // the "output" return value is not valid until after Send returns without error.
  9384  //
  9385  // See DescribeProvisioningTemplateVersion for more information on using the DescribeProvisioningTemplateVersion
  9386  // API call, and error handling.
  9387  //
  9388  // This method is useful when you want to inject custom logic or configuration
  9389  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9390  //
  9391  //
  9392  //    // Example sending a request using the DescribeProvisioningTemplateVersionRequest method.
  9393  //    req, resp := client.DescribeProvisioningTemplateVersionRequest(params)
  9394  //
  9395  //    err := req.Send()
  9396  //    if err == nil { // resp is now filled
  9397  //        fmt.Println(resp)
  9398  //    }
  9399  func (c *IoT) DescribeProvisioningTemplateVersionRequest(input *DescribeProvisioningTemplateVersionInput) (req *request.Request, output *DescribeProvisioningTemplateVersionOutput) {
  9400  	op := &request.Operation{
  9401  		Name:       opDescribeProvisioningTemplateVersion,
  9402  		HTTPMethod: "GET",
  9403  		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
  9404  	}
  9405  
  9406  	if input == nil {
  9407  		input = &DescribeProvisioningTemplateVersionInput{}
  9408  	}
  9409  
  9410  	output = &DescribeProvisioningTemplateVersionOutput{}
  9411  	req = c.newRequest(op, input, output)
  9412  	return
  9413  }
  9414  
  9415  // DescribeProvisioningTemplateVersion API operation for AWS IoT.
  9416  //
  9417  // Returns information about a fleet provisioning template version.
  9418  //
  9419  // Requires permission to access the DescribeProvisioningTemplateVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9420  // action.
  9421  //
  9422  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9423  // with awserr.Error's Code and Message methods to get detailed information about
  9424  // the error.
  9425  //
  9426  // See the AWS API reference guide for AWS IoT's
  9427  // API operation DescribeProvisioningTemplateVersion for usage and error information.
  9428  //
  9429  // Returned Error Types:
  9430  //   * InternalFailureException
  9431  //   An unexpected error has occurred.
  9432  //
  9433  //   * InvalidRequestException
  9434  //   The request is not valid.
  9435  //
  9436  //   * ThrottlingException
  9437  //   The rate exceeds the limit.
  9438  //
  9439  //   * ResourceNotFoundException
  9440  //   The specified resource does not exist.
  9441  //
  9442  //   * UnauthorizedException
  9443  //   You are not authorized to perform this operation.
  9444  //
  9445  func (c *IoT) DescribeProvisioningTemplateVersion(input *DescribeProvisioningTemplateVersionInput) (*DescribeProvisioningTemplateVersionOutput, error) {
  9446  	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
  9447  	return out, req.Send()
  9448  }
  9449  
  9450  // DescribeProvisioningTemplateVersionWithContext is the same as DescribeProvisioningTemplateVersion with the addition of
  9451  // the ability to pass a context and additional request options.
  9452  //
  9453  // See DescribeProvisioningTemplateVersion for details on how to use this API operation.
  9454  //
  9455  // The context must be non-nil and will be used for request cancellation. If
  9456  // the context is nil a panic will occur. In the future the SDK may create
  9457  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9458  // for more information on using Contexts.
  9459  func (c *IoT) DescribeProvisioningTemplateVersionWithContext(ctx aws.Context, input *DescribeProvisioningTemplateVersionInput, opts ...request.Option) (*DescribeProvisioningTemplateVersionOutput, error) {
  9460  	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
  9461  	req.SetContext(ctx)
  9462  	req.ApplyOptions(opts...)
  9463  	return out, req.Send()
  9464  }
  9465  
  9466  const opDescribeRoleAlias = "DescribeRoleAlias"
  9467  
  9468  // DescribeRoleAliasRequest generates a "aws/request.Request" representing the
  9469  // client's request for the DescribeRoleAlias operation. The "output" return
  9470  // value will be populated with the request's response once the request completes
  9471  // successfully.
  9472  //
  9473  // Use "Send" method on the returned Request to send the API call to the service.
  9474  // the "output" return value is not valid until after Send returns without error.
  9475  //
  9476  // See DescribeRoleAlias for more information on using the DescribeRoleAlias
  9477  // API call, and error handling.
  9478  //
  9479  // This method is useful when you want to inject custom logic or configuration
  9480  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9481  //
  9482  //
  9483  //    // Example sending a request using the DescribeRoleAliasRequest method.
  9484  //    req, resp := client.DescribeRoleAliasRequest(params)
  9485  //
  9486  //    err := req.Send()
  9487  //    if err == nil { // resp is now filled
  9488  //        fmt.Println(resp)
  9489  //    }
  9490  func (c *IoT) DescribeRoleAliasRequest(input *DescribeRoleAliasInput) (req *request.Request, output *DescribeRoleAliasOutput) {
  9491  	op := &request.Operation{
  9492  		Name:       opDescribeRoleAlias,
  9493  		HTTPMethod: "GET",
  9494  		HTTPPath:   "/role-aliases/{roleAlias}",
  9495  	}
  9496  
  9497  	if input == nil {
  9498  		input = &DescribeRoleAliasInput{}
  9499  	}
  9500  
  9501  	output = &DescribeRoleAliasOutput{}
  9502  	req = c.newRequest(op, input, output)
  9503  	return
  9504  }
  9505  
  9506  // DescribeRoleAlias API operation for AWS IoT.
  9507  //
  9508  // Describes a role alias.
  9509  //
  9510  // Requires permission to access the DescribeRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9511  // action.
  9512  //
  9513  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9514  // with awserr.Error's Code and Message methods to get detailed information about
  9515  // the error.
  9516  //
  9517  // See the AWS API reference guide for AWS IoT's
  9518  // API operation DescribeRoleAlias for usage and error information.
  9519  //
  9520  // Returned Error Types:
  9521  //   * InvalidRequestException
  9522  //   The request is not valid.
  9523  //
  9524  //   * ThrottlingException
  9525  //   The rate exceeds the limit.
  9526  //
  9527  //   * UnauthorizedException
  9528  //   You are not authorized to perform this operation.
  9529  //
  9530  //   * ServiceUnavailableException
  9531  //   The service is temporarily unavailable.
  9532  //
  9533  //   * InternalFailureException
  9534  //   An unexpected error has occurred.
  9535  //
  9536  //   * ResourceNotFoundException
  9537  //   The specified resource does not exist.
  9538  //
  9539  func (c *IoT) DescribeRoleAlias(input *DescribeRoleAliasInput) (*DescribeRoleAliasOutput, error) {
  9540  	req, out := c.DescribeRoleAliasRequest(input)
  9541  	return out, req.Send()
  9542  }
  9543  
  9544  // DescribeRoleAliasWithContext is the same as DescribeRoleAlias with the addition of
  9545  // the ability to pass a context and additional request options.
  9546  //
  9547  // See DescribeRoleAlias for details on how to use this API operation.
  9548  //
  9549  // The context must be non-nil and will be used for request cancellation. If
  9550  // the context is nil a panic will occur. In the future the SDK may create
  9551  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9552  // for more information on using Contexts.
  9553  func (c *IoT) DescribeRoleAliasWithContext(ctx aws.Context, input *DescribeRoleAliasInput, opts ...request.Option) (*DescribeRoleAliasOutput, error) {
  9554  	req, out := c.DescribeRoleAliasRequest(input)
  9555  	req.SetContext(ctx)
  9556  	req.ApplyOptions(opts...)
  9557  	return out, req.Send()
  9558  }
  9559  
  9560  const opDescribeScheduledAudit = "DescribeScheduledAudit"
  9561  
  9562  // DescribeScheduledAuditRequest generates a "aws/request.Request" representing the
  9563  // client's request for the DescribeScheduledAudit operation. The "output" return
  9564  // value will be populated with the request's response once the request completes
  9565  // successfully.
  9566  //
  9567  // Use "Send" method on the returned Request to send the API call to the service.
  9568  // the "output" return value is not valid until after Send returns without error.
  9569  //
  9570  // See DescribeScheduledAudit for more information on using the DescribeScheduledAudit
  9571  // API call, and error handling.
  9572  //
  9573  // This method is useful when you want to inject custom logic or configuration
  9574  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9575  //
  9576  //
  9577  //    // Example sending a request using the DescribeScheduledAuditRequest method.
  9578  //    req, resp := client.DescribeScheduledAuditRequest(params)
  9579  //
  9580  //    err := req.Send()
  9581  //    if err == nil { // resp is now filled
  9582  //        fmt.Println(resp)
  9583  //    }
  9584  func (c *IoT) DescribeScheduledAuditRequest(input *DescribeScheduledAuditInput) (req *request.Request, output *DescribeScheduledAuditOutput) {
  9585  	op := &request.Operation{
  9586  		Name:       opDescribeScheduledAudit,
  9587  		HTTPMethod: "GET",
  9588  		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
  9589  	}
  9590  
  9591  	if input == nil {
  9592  		input = &DescribeScheduledAuditInput{}
  9593  	}
  9594  
  9595  	output = &DescribeScheduledAuditOutput{}
  9596  	req = c.newRequest(op, input, output)
  9597  	return
  9598  }
  9599  
  9600  // DescribeScheduledAudit API operation for AWS IoT.
  9601  //
  9602  // Gets information about a scheduled audit.
  9603  //
  9604  // Requires permission to access the DescribeScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9605  // action.
  9606  //
  9607  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9608  // with awserr.Error's Code and Message methods to get detailed information about
  9609  // the error.
  9610  //
  9611  // See the AWS API reference guide for AWS IoT's
  9612  // API operation DescribeScheduledAudit for usage and error information.
  9613  //
  9614  // Returned Error Types:
  9615  //   * InvalidRequestException
  9616  //   The request is not valid.
  9617  //
  9618  //   * ResourceNotFoundException
  9619  //   The specified resource does not exist.
  9620  //
  9621  //   * ThrottlingException
  9622  //   The rate exceeds the limit.
  9623  //
  9624  //   * InternalFailureException
  9625  //   An unexpected error has occurred.
  9626  //
  9627  func (c *IoT) DescribeScheduledAudit(input *DescribeScheduledAuditInput) (*DescribeScheduledAuditOutput, error) {
  9628  	req, out := c.DescribeScheduledAuditRequest(input)
  9629  	return out, req.Send()
  9630  }
  9631  
  9632  // DescribeScheduledAuditWithContext is the same as DescribeScheduledAudit with the addition of
  9633  // the ability to pass a context and additional request options.
  9634  //
  9635  // See DescribeScheduledAudit for details on how to use this API operation.
  9636  //
  9637  // The context must be non-nil and will be used for request cancellation. If
  9638  // the context is nil a panic will occur. In the future the SDK may create
  9639  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9640  // for more information on using Contexts.
  9641  func (c *IoT) DescribeScheduledAuditWithContext(ctx aws.Context, input *DescribeScheduledAuditInput, opts ...request.Option) (*DescribeScheduledAuditOutput, error) {
  9642  	req, out := c.DescribeScheduledAuditRequest(input)
  9643  	req.SetContext(ctx)
  9644  	req.ApplyOptions(opts...)
  9645  	return out, req.Send()
  9646  }
  9647  
  9648  const opDescribeSecurityProfile = "DescribeSecurityProfile"
  9649  
  9650  // DescribeSecurityProfileRequest generates a "aws/request.Request" representing the
  9651  // client's request for the DescribeSecurityProfile operation. The "output" return
  9652  // value will be populated with the request's response once the request completes
  9653  // successfully.
  9654  //
  9655  // Use "Send" method on the returned Request to send the API call to the service.
  9656  // the "output" return value is not valid until after Send returns without error.
  9657  //
  9658  // See DescribeSecurityProfile for more information on using the DescribeSecurityProfile
  9659  // API call, and error handling.
  9660  //
  9661  // This method is useful when you want to inject custom logic or configuration
  9662  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9663  //
  9664  //
  9665  //    // Example sending a request using the DescribeSecurityProfileRequest method.
  9666  //    req, resp := client.DescribeSecurityProfileRequest(params)
  9667  //
  9668  //    err := req.Send()
  9669  //    if err == nil { // resp is now filled
  9670  //        fmt.Println(resp)
  9671  //    }
  9672  func (c *IoT) DescribeSecurityProfileRequest(input *DescribeSecurityProfileInput) (req *request.Request, output *DescribeSecurityProfileOutput) {
  9673  	op := &request.Operation{
  9674  		Name:       opDescribeSecurityProfile,
  9675  		HTTPMethod: "GET",
  9676  		HTTPPath:   "/security-profiles/{securityProfileName}",
  9677  	}
  9678  
  9679  	if input == nil {
  9680  		input = &DescribeSecurityProfileInput{}
  9681  	}
  9682  
  9683  	output = &DescribeSecurityProfileOutput{}
  9684  	req = c.newRequest(op, input, output)
  9685  	return
  9686  }
  9687  
  9688  // DescribeSecurityProfile API operation for AWS IoT.
  9689  //
  9690  // Gets information about a Device Defender security profile.
  9691  //
  9692  // Requires permission to access the DescribeSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9693  // action.
  9694  //
  9695  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9696  // with awserr.Error's Code and Message methods to get detailed information about
  9697  // the error.
  9698  //
  9699  // See the AWS API reference guide for AWS IoT's
  9700  // API operation DescribeSecurityProfile for usage and error information.
  9701  //
  9702  // Returned Error Types:
  9703  //   * InvalidRequestException
  9704  //   The request is not valid.
  9705  //
  9706  //   * ResourceNotFoundException
  9707  //   The specified resource does not exist.
  9708  //
  9709  //   * ThrottlingException
  9710  //   The rate exceeds the limit.
  9711  //
  9712  //   * InternalFailureException
  9713  //   An unexpected error has occurred.
  9714  //
  9715  func (c *IoT) DescribeSecurityProfile(input *DescribeSecurityProfileInput) (*DescribeSecurityProfileOutput, error) {
  9716  	req, out := c.DescribeSecurityProfileRequest(input)
  9717  	return out, req.Send()
  9718  }
  9719  
  9720  // DescribeSecurityProfileWithContext is the same as DescribeSecurityProfile with the addition of
  9721  // the ability to pass a context and additional request options.
  9722  //
  9723  // See DescribeSecurityProfile for details on how to use this API operation.
  9724  //
  9725  // The context must be non-nil and will be used for request cancellation. If
  9726  // the context is nil a panic will occur. In the future the SDK may create
  9727  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9728  // for more information on using Contexts.
  9729  func (c *IoT) DescribeSecurityProfileWithContext(ctx aws.Context, input *DescribeSecurityProfileInput, opts ...request.Option) (*DescribeSecurityProfileOutput, error) {
  9730  	req, out := c.DescribeSecurityProfileRequest(input)
  9731  	req.SetContext(ctx)
  9732  	req.ApplyOptions(opts...)
  9733  	return out, req.Send()
  9734  }
  9735  
  9736  const opDescribeStream = "DescribeStream"
  9737  
  9738  // DescribeStreamRequest generates a "aws/request.Request" representing the
  9739  // client's request for the DescribeStream operation. The "output" return
  9740  // value will be populated with the request's response once the request completes
  9741  // successfully.
  9742  //
  9743  // Use "Send" method on the returned Request to send the API call to the service.
  9744  // the "output" return value is not valid until after Send returns without error.
  9745  //
  9746  // See DescribeStream for more information on using the DescribeStream
  9747  // API call, and error handling.
  9748  //
  9749  // This method is useful when you want to inject custom logic or configuration
  9750  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9751  //
  9752  //
  9753  //    // Example sending a request using the DescribeStreamRequest method.
  9754  //    req, resp := client.DescribeStreamRequest(params)
  9755  //
  9756  //    err := req.Send()
  9757  //    if err == nil { // resp is now filled
  9758  //        fmt.Println(resp)
  9759  //    }
  9760  func (c *IoT) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
  9761  	op := &request.Operation{
  9762  		Name:       opDescribeStream,
  9763  		HTTPMethod: "GET",
  9764  		HTTPPath:   "/streams/{streamId}",
  9765  	}
  9766  
  9767  	if input == nil {
  9768  		input = &DescribeStreamInput{}
  9769  	}
  9770  
  9771  	output = &DescribeStreamOutput{}
  9772  	req = c.newRequest(op, input, output)
  9773  	return
  9774  }
  9775  
  9776  // DescribeStream API operation for AWS IoT.
  9777  //
  9778  // Gets information about a stream.
  9779  //
  9780  // Requires permission to access the DescribeStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9781  // action.
  9782  //
  9783  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9784  // with awserr.Error's Code and Message methods to get detailed information about
  9785  // the error.
  9786  //
  9787  // See the AWS API reference guide for AWS IoT's
  9788  // API operation DescribeStream for usage and error information.
  9789  //
  9790  // Returned Error Types:
  9791  //   * InvalidRequestException
  9792  //   The request is not valid.
  9793  //
  9794  //   * ResourceNotFoundException
  9795  //   The specified resource does not exist.
  9796  //
  9797  //   * ThrottlingException
  9798  //   The rate exceeds the limit.
  9799  //
  9800  //   * UnauthorizedException
  9801  //   You are not authorized to perform this operation.
  9802  //
  9803  //   * ServiceUnavailableException
  9804  //   The service is temporarily unavailable.
  9805  //
  9806  //   * InternalFailureException
  9807  //   An unexpected error has occurred.
  9808  //
  9809  func (c *IoT) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
  9810  	req, out := c.DescribeStreamRequest(input)
  9811  	return out, req.Send()
  9812  }
  9813  
  9814  // DescribeStreamWithContext is the same as DescribeStream with the addition of
  9815  // the ability to pass a context and additional request options.
  9816  //
  9817  // See DescribeStream for details on how to use this API operation.
  9818  //
  9819  // The context must be non-nil and will be used for request cancellation. If
  9820  // the context is nil a panic will occur. In the future the SDK may create
  9821  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9822  // for more information on using Contexts.
  9823  func (c *IoT) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
  9824  	req, out := c.DescribeStreamRequest(input)
  9825  	req.SetContext(ctx)
  9826  	req.ApplyOptions(opts...)
  9827  	return out, req.Send()
  9828  }
  9829  
  9830  const opDescribeThing = "DescribeThing"
  9831  
  9832  // DescribeThingRequest generates a "aws/request.Request" representing the
  9833  // client's request for the DescribeThing operation. The "output" return
  9834  // value will be populated with the request's response once the request completes
  9835  // successfully.
  9836  //
  9837  // Use "Send" method on the returned Request to send the API call to the service.
  9838  // the "output" return value is not valid until after Send returns without error.
  9839  //
  9840  // See DescribeThing for more information on using the DescribeThing
  9841  // API call, and error handling.
  9842  //
  9843  // This method is useful when you want to inject custom logic or configuration
  9844  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9845  //
  9846  //
  9847  //    // Example sending a request using the DescribeThingRequest method.
  9848  //    req, resp := client.DescribeThingRequest(params)
  9849  //
  9850  //    err := req.Send()
  9851  //    if err == nil { // resp is now filled
  9852  //        fmt.Println(resp)
  9853  //    }
  9854  func (c *IoT) DescribeThingRequest(input *DescribeThingInput) (req *request.Request, output *DescribeThingOutput) {
  9855  	op := &request.Operation{
  9856  		Name:       opDescribeThing,
  9857  		HTTPMethod: "GET",
  9858  		HTTPPath:   "/things/{thingName}",
  9859  	}
  9860  
  9861  	if input == nil {
  9862  		input = &DescribeThingInput{}
  9863  	}
  9864  
  9865  	output = &DescribeThingOutput{}
  9866  	req = c.newRequest(op, input, output)
  9867  	return
  9868  }
  9869  
  9870  // DescribeThing API operation for AWS IoT.
  9871  //
  9872  // Gets information about the specified thing.
  9873  //
  9874  // Requires permission to access the DescribeThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9875  // action.
  9876  //
  9877  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9878  // with awserr.Error's Code and Message methods to get detailed information about
  9879  // the error.
  9880  //
  9881  // See the AWS API reference guide for AWS IoT's
  9882  // API operation DescribeThing for usage and error information.
  9883  //
  9884  // Returned Error Types:
  9885  //   * ResourceNotFoundException
  9886  //   The specified resource does not exist.
  9887  //
  9888  //   * InvalidRequestException
  9889  //   The request is not valid.
  9890  //
  9891  //   * ThrottlingException
  9892  //   The rate exceeds the limit.
  9893  //
  9894  //   * UnauthorizedException
  9895  //   You are not authorized to perform this operation.
  9896  //
  9897  //   * ServiceUnavailableException
  9898  //   The service is temporarily unavailable.
  9899  //
  9900  //   * InternalFailureException
  9901  //   An unexpected error has occurred.
  9902  //
  9903  func (c *IoT) DescribeThing(input *DescribeThingInput) (*DescribeThingOutput, error) {
  9904  	req, out := c.DescribeThingRequest(input)
  9905  	return out, req.Send()
  9906  }
  9907  
  9908  // DescribeThingWithContext is the same as DescribeThing with the addition of
  9909  // the ability to pass a context and additional request options.
  9910  //
  9911  // See DescribeThing for details on how to use this API operation.
  9912  //
  9913  // The context must be non-nil and will be used for request cancellation. If
  9914  // the context is nil a panic will occur. In the future the SDK may create
  9915  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9916  // for more information on using Contexts.
  9917  func (c *IoT) DescribeThingWithContext(ctx aws.Context, input *DescribeThingInput, opts ...request.Option) (*DescribeThingOutput, error) {
  9918  	req, out := c.DescribeThingRequest(input)
  9919  	req.SetContext(ctx)
  9920  	req.ApplyOptions(opts...)
  9921  	return out, req.Send()
  9922  }
  9923  
  9924  const opDescribeThingGroup = "DescribeThingGroup"
  9925  
  9926  // DescribeThingGroupRequest generates a "aws/request.Request" representing the
  9927  // client's request for the DescribeThingGroup operation. The "output" return
  9928  // value will be populated with the request's response once the request completes
  9929  // successfully.
  9930  //
  9931  // Use "Send" method on the returned Request to send the API call to the service.
  9932  // the "output" return value is not valid until after Send returns without error.
  9933  //
  9934  // See DescribeThingGroup for more information on using the DescribeThingGroup
  9935  // API call, and error handling.
  9936  //
  9937  // This method is useful when you want to inject custom logic or configuration
  9938  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9939  //
  9940  //
  9941  //    // Example sending a request using the DescribeThingGroupRequest method.
  9942  //    req, resp := client.DescribeThingGroupRequest(params)
  9943  //
  9944  //    err := req.Send()
  9945  //    if err == nil { // resp is now filled
  9946  //        fmt.Println(resp)
  9947  //    }
  9948  func (c *IoT) DescribeThingGroupRequest(input *DescribeThingGroupInput) (req *request.Request, output *DescribeThingGroupOutput) {
  9949  	op := &request.Operation{
  9950  		Name:       opDescribeThingGroup,
  9951  		HTTPMethod: "GET",
  9952  		HTTPPath:   "/thing-groups/{thingGroupName}",
  9953  	}
  9954  
  9955  	if input == nil {
  9956  		input = &DescribeThingGroupInput{}
  9957  	}
  9958  
  9959  	output = &DescribeThingGroupOutput{}
  9960  	req = c.newRequest(op, input, output)
  9961  	return
  9962  }
  9963  
  9964  // DescribeThingGroup API operation for AWS IoT.
  9965  //
  9966  // Describe a thing group.
  9967  //
  9968  // Requires permission to access the DescribeThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
  9969  // action.
  9970  //
  9971  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9972  // with awserr.Error's Code and Message methods to get detailed information about
  9973  // the error.
  9974  //
  9975  // See the AWS API reference guide for AWS IoT's
  9976  // API operation DescribeThingGroup for usage and error information.
  9977  //
  9978  // Returned Error Types:
  9979  //   * InvalidRequestException
  9980  //   The request is not valid.
  9981  //
  9982  //   * ThrottlingException
  9983  //   The rate exceeds the limit.
  9984  //
  9985  //   * InternalFailureException
  9986  //   An unexpected error has occurred.
  9987  //
  9988  //   * ResourceNotFoundException
  9989  //   The specified resource does not exist.
  9990  //
  9991  func (c *IoT) DescribeThingGroup(input *DescribeThingGroupInput) (*DescribeThingGroupOutput, error) {
  9992  	req, out := c.DescribeThingGroupRequest(input)
  9993  	return out, req.Send()
  9994  }
  9995  
  9996  // DescribeThingGroupWithContext is the same as DescribeThingGroup with the addition of
  9997  // the ability to pass a context and additional request options.
  9998  //
  9999  // See DescribeThingGroup for details on how to use this API operation.
 10000  //
 10001  // The context must be non-nil and will be used for request cancellation. If
 10002  // the context is nil a panic will occur. In the future the SDK may create
 10003  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10004  // for more information on using Contexts.
 10005  func (c *IoT) DescribeThingGroupWithContext(ctx aws.Context, input *DescribeThingGroupInput, opts ...request.Option) (*DescribeThingGroupOutput, error) {
 10006  	req, out := c.DescribeThingGroupRequest(input)
 10007  	req.SetContext(ctx)
 10008  	req.ApplyOptions(opts...)
 10009  	return out, req.Send()
 10010  }
 10011  
 10012  const opDescribeThingRegistrationTask = "DescribeThingRegistrationTask"
 10013  
 10014  // DescribeThingRegistrationTaskRequest generates a "aws/request.Request" representing the
 10015  // client's request for the DescribeThingRegistrationTask operation. The "output" return
 10016  // value will be populated with the request's response once the request completes
 10017  // successfully.
 10018  //
 10019  // Use "Send" method on the returned Request to send the API call to the service.
 10020  // the "output" return value is not valid until after Send returns without error.
 10021  //
 10022  // See DescribeThingRegistrationTask for more information on using the DescribeThingRegistrationTask
 10023  // API call, and error handling.
 10024  //
 10025  // This method is useful when you want to inject custom logic or configuration
 10026  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10027  //
 10028  //
 10029  //    // Example sending a request using the DescribeThingRegistrationTaskRequest method.
 10030  //    req, resp := client.DescribeThingRegistrationTaskRequest(params)
 10031  //
 10032  //    err := req.Send()
 10033  //    if err == nil { // resp is now filled
 10034  //        fmt.Println(resp)
 10035  //    }
 10036  func (c *IoT) DescribeThingRegistrationTaskRequest(input *DescribeThingRegistrationTaskInput) (req *request.Request, output *DescribeThingRegistrationTaskOutput) {
 10037  	op := &request.Operation{
 10038  		Name:       opDescribeThingRegistrationTask,
 10039  		HTTPMethod: "GET",
 10040  		HTTPPath:   "/thing-registration-tasks/{taskId}",
 10041  	}
 10042  
 10043  	if input == nil {
 10044  		input = &DescribeThingRegistrationTaskInput{}
 10045  	}
 10046  
 10047  	output = &DescribeThingRegistrationTaskOutput{}
 10048  	req = c.newRequest(op, input, output)
 10049  	return
 10050  }
 10051  
 10052  // DescribeThingRegistrationTask API operation for AWS IoT.
 10053  //
 10054  // Describes a bulk thing provisioning task.
 10055  //
 10056  // Requires permission to access the DescribeThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10057  // action.
 10058  //
 10059  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10060  // with awserr.Error's Code and Message methods to get detailed information about
 10061  // the error.
 10062  //
 10063  // See the AWS API reference guide for AWS IoT's
 10064  // API operation DescribeThingRegistrationTask for usage and error information.
 10065  //
 10066  // Returned Error Types:
 10067  //   * InvalidRequestException
 10068  //   The request is not valid.
 10069  //
 10070  //   * ThrottlingException
 10071  //   The rate exceeds the limit.
 10072  //
 10073  //   * UnauthorizedException
 10074  //   You are not authorized to perform this operation.
 10075  //
 10076  //   * InternalFailureException
 10077  //   An unexpected error has occurred.
 10078  //
 10079  //   * ResourceNotFoundException
 10080  //   The specified resource does not exist.
 10081  //
 10082  func (c *IoT) DescribeThingRegistrationTask(input *DescribeThingRegistrationTaskInput) (*DescribeThingRegistrationTaskOutput, error) {
 10083  	req, out := c.DescribeThingRegistrationTaskRequest(input)
 10084  	return out, req.Send()
 10085  }
 10086  
 10087  // DescribeThingRegistrationTaskWithContext is the same as DescribeThingRegistrationTask with the addition of
 10088  // the ability to pass a context and additional request options.
 10089  //
 10090  // See DescribeThingRegistrationTask for details on how to use this API operation.
 10091  //
 10092  // The context must be non-nil and will be used for request cancellation. If
 10093  // the context is nil a panic will occur. In the future the SDK may create
 10094  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10095  // for more information on using Contexts.
 10096  func (c *IoT) DescribeThingRegistrationTaskWithContext(ctx aws.Context, input *DescribeThingRegistrationTaskInput, opts ...request.Option) (*DescribeThingRegistrationTaskOutput, error) {
 10097  	req, out := c.DescribeThingRegistrationTaskRequest(input)
 10098  	req.SetContext(ctx)
 10099  	req.ApplyOptions(opts...)
 10100  	return out, req.Send()
 10101  }
 10102  
 10103  const opDescribeThingType = "DescribeThingType"
 10104  
 10105  // DescribeThingTypeRequest generates a "aws/request.Request" representing the
 10106  // client's request for the DescribeThingType operation. The "output" return
 10107  // value will be populated with the request's response once the request completes
 10108  // successfully.
 10109  //
 10110  // Use "Send" method on the returned Request to send the API call to the service.
 10111  // the "output" return value is not valid until after Send returns without error.
 10112  //
 10113  // See DescribeThingType for more information on using the DescribeThingType
 10114  // API call, and error handling.
 10115  //
 10116  // This method is useful when you want to inject custom logic or configuration
 10117  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10118  //
 10119  //
 10120  //    // Example sending a request using the DescribeThingTypeRequest method.
 10121  //    req, resp := client.DescribeThingTypeRequest(params)
 10122  //
 10123  //    err := req.Send()
 10124  //    if err == nil { // resp is now filled
 10125  //        fmt.Println(resp)
 10126  //    }
 10127  func (c *IoT) DescribeThingTypeRequest(input *DescribeThingTypeInput) (req *request.Request, output *DescribeThingTypeOutput) {
 10128  	op := &request.Operation{
 10129  		Name:       opDescribeThingType,
 10130  		HTTPMethod: "GET",
 10131  		HTTPPath:   "/thing-types/{thingTypeName}",
 10132  	}
 10133  
 10134  	if input == nil {
 10135  		input = &DescribeThingTypeInput{}
 10136  	}
 10137  
 10138  	output = &DescribeThingTypeOutput{}
 10139  	req = c.newRequest(op, input, output)
 10140  	return
 10141  }
 10142  
 10143  // DescribeThingType API operation for AWS IoT.
 10144  //
 10145  // Gets information about the specified thing type.
 10146  //
 10147  // Requires permission to access the DescribeThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10148  // action.
 10149  //
 10150  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10151  // with awserr.Error's Code and Message methods to get detailed information about
 10152  // the error.
 10153  //
 10154  // See the AWS API reference guide for AWS IoT's
 10155  // API operation DescribeThingType for usage and error information.
 10156  //
 10157  // Returned Error Types:
 10158  //   * ResourceNotFoundException
 10159  //   The specified resource does not exist.
 10160  //
 10161  //   * InvalidRequestException
 10162  //   The request is not valid.
 10163  //
 10164  //   * ThrottlingException
 10165  //   The rate exceeds the limit.
 10166  //
 10167  //   * UnauthorizedException
 10168  //   You are not authorized to perform this operation.
 10169  //
 10170  //   * ServiceUnavailableException
 10171  //   The service is temporarily unavailable.
 10172  //
 10173  //   * InternalFailureException
 10174  //   An unexpected error has occurred.
 10175  //
 10176  func (c *IoT) DescribeThingType(input *DescribeThingTypeInput) (*DescribeThingTypeOutput, error) {
 10177  	req, out := c.DescribeThingTypeRequest(input)
 10178  	return out, req.Send()
 10179  }
 10180  
 10181  // DescribeThingTypeWithContext is the same as DescribeThingType with the addition of
 10182  // the ability to pass a context and additional request options.
 10183  //
 10184  // See DescribeThingType for details on how to use this API operation.
 10185  //
 10186  // The context must be non-nil and will be used for request cancellation. If
 10187  // the context is nil a panic will occur. In the future the SDK may create
 10188  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10189  // for more information on using Contexts.
 10190  func (c *IoT) DescribeThingTypeWithContext(ctx aws.Context, input *DescribeThingTypeInput, opts ...request.Option) (*DescribeThingTypeOutput, error) {
 10191  	req, out := c.DescribeThingTypeRequest(input)
 10192  	req.SetContext(ctx)
 10193  	req.ApplyOptions(opts...)
 10194  	return out, req.Send()
 10195  }
 10196  
 10197  const opDetachPolicy = "DetachPolicy"
 10198  
 10199  // DetachPolicyRequest generates a "aws/request.Request" representing the
 10200  // client's request for the DetachPolicy operation. The "output" return
 10201  // value will be populated with the request's response once the request completes
 10202  // successfully.
 10203  //
 10204  // Use "Send" method on the returned Request to send the API call to the service.
 10205  // the "output" return value is not valid until after Send returns without error.
 10206  //
 10207  // See DetachPolicy for more information on using the DetachPolicy
 10208  // API call, and error handling.
 10209  //
 10210  // This method is useful when you want to inject custom logic or configuration
 10211  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10212  //
 10213  //
 10214  //    // Example sending a request using the DetachPolicyRequest method.
 10215  //    req, resp := client.DetachPolicyRequest(params)
 10216  //
 10217  //    err := req.Send()
 10218  //    if err == nil { // resp is now filled
 10219  //        fmt.Println(resp)
 10220  //    }
 10221  func (c *IoT) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
 10222  	op := &request.Operation{
 10223  		Name:       opDetachPolicy,
 10224  		HTTPMethod: "POST",
 10225  		HTTPPath:   "/target-policies/{policyName}",
 10226  	}
 10227  
 10228  	if input == nil {
 10229  		input = &DetachPolicyInput{}
 10230  	}
 10231  
 10232  	output = &DetachPolicyOutput{}
 10233  	req = c.newRequest(op, input, output)
 10234  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 10235  	return
 10236  }
 10237  
 10238  // DetachPolicy API operation for AWS IoT.
 10239  //
 10240  // Detaches a policy from the specified target.
 10241  //
 10242  // Because of the distributed nature of Amazon Web Services, it can take up
 10243  // to five minutes after a policy is detached before it's ready to be deleted.
 10244  //
 10245  // Requires permission to access the DetachPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10246  // action.
 10247  //
 10248  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10249  // with awserr.Error's Code and Message methods to get detailed information about
 10250  // the error.
 10251  //
 10252  // See the AWS API reference guide for AWS IoT's
 10253  // API operation DetachPolicy for usage and error information.
 10254  //
 10255  // Returned Error Types:
 10256  //   * InvalidRequestException
 10257  //   The request is not valid.
 10258  //
 10259  //   * ThrottlingException
 10260  //   The rate exceeds the limit.
 10261  //
 10262  //   * UnauthorizedException
 10263  //   You are not authorized to perform this operation.
 10264  //
 10265  //   * ServiceUnavailableException
 10266  //   The service is temporarily unavailable.
 10267  //
 10268  //   * InternalFailureException
 10269  //   An unexpected error has occurred.
 10270  //
 10271  //   * LimitExceededException
 10272  //   A limit has been exceeded.
 10273  //
 10274  func (c *IoT) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
 10275  	req, out := c.DetachPolicyRequest(input)
 10276  	return out, req.Send()
 10277  }
 10278  
 10279  // DetachPolicyWithContext is the same as DetachPolicy with the addition of
 10280  // the ability to pass a context and additional request options.
 10281  //
 10282  // See DetachPolicy for details on how to use this API operation.
 10283  //
 10284  // The context must be non-nil and will be used for request cancellation. If
 10285  // the context is nil a panic will occur. In the future the SDK may create
 10286  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10287  // for more information on using Contexts.
 10288  func (c *IoT) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
 10289  	req, out := c.DetachPolicyRequest(input)
 10290  	req.SetContext(ctx)
 10291  	req.ApplyOptions(opts...)
 10292  	return out, req.Send()
 10293  }
 10294  
 10295  const opDetachPrincipalPolicy = "DetachPrincipalPolicy"
 10296  
 10297  // DetachPrincipalPolicyRequest generates a "aws/request.Request" representing the
 10298  // client's request for the DetachPrincipalPolicy operation. The "output" return
 10299  // value will be populated with the request's response once the request completes
 10300  // successfully.
 10301  //
 10302  // Use "Send" method on the returned Request to send the API call to the service.
 10303  // the "output" return value is not valid until after Send returns without error.
 10304  //
 10305  // See DetachPrincipalPolicy for more information on using the DetachPrincipalPolicy
 10306  // API call, and error handling.
 10307  //
 10308  // This method is useful when you want to inject custom logic or configuration
 10309  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10310  //
 10311  //
 10312  //    // Example sending a request using the DetachPrincipalPolicyRequest method.
 10313  //    req, resp := client.DetachPrincipalPolicyRequest(params)
 10314  //
 10315  //    err := req.Send()
 10316  //    if err == nil { // resp is now filled
 10317  //        fmt.Println(resp)
 10318  //    }
 10319  //
 10320  // Deprecated: DetachPrincipalPolicy has been deprecated
 10321  func (c *IoT) DetachPrincipalPolicyRequest(input *DetachPrincipalPolicyInput) (req *request.Request, output *DetachPrincipalPolicyOutput) {
 10322  	if c.Client.Config.Logger != nil {
 10323  		c.Client.Config.Logger.Log("This operation, DetachPrincipalPolicy, has been deprecated")
 10324  	}
 10325  	op := &request.Operation{
 10326  		Name:       opDetachPrincipalPolicy,
 10327  		HTTPMethod: "DELETE",
 10328  		HTTPPath:   "/principal-policies/{policyName}",
 10329  	}
 10330  
 10331  	if input == nil {
 10332  		input = &DetachPrincipalPolicyInput{}
 10333  	}
 10334  
 10335  	output = &DetachPrincipalPolicyOutput{}
 10336  	req = c.newRequest(op, input, output)
 10337  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 10338  	return
 10339  }
 10340  
 10341  // DetachPrincipalPolicy API operation for AWS IoT.
 10342  //
 10343  // Removes the specified policy from the specified certificate.
 10344  //
 10345  // This action is deprecated. Please use DetachPolicy instead.
 10346  //
 10347  // Requires permission to access the DetachPrincipalPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10348  // action.
 10349  //
 10350  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10351  // with awserr.Error's Code and Message methods to get detailed information about
 10352  // the error.
 10353  //
 10354  // See the AWS API reference guide for AWS IoT's
 10355  // API operation DetachPrincipalPolicy for usage and error information.
 10356  //
 10357  // Returned Error Types:
 10358  //   * ResourceNotFoundException
 10359  //   The specified resource does not exist.
 10360  //
 10361  //   * InvalidRequestException
 10362  //   The request is not valid.
 10363  //
 10364  //   * ThrottlingException
 10365  //   The rate exceeds the limit.
 10366  //
 10367  //   * UnauthorizedException
 10368  //   You are not authorized to perform this operation.
 10369  //
 10370  //   * ServiceUnavailableException
 10371  //   The service is temporarily unavailable.
 10372  //
 10373  //   * InternalFailureException
 10374  //   An unexpected error has occurred.
 10375  //
 10376  //
 10377  // Deprecated: DetachPrincipalPolicy has been deprecated
 10378  func (c *IoT) DetachPrincipalPolicy(input *DetachPrincipalPolicyInput) (*DetachPrincipalPolicyOutput, error) {
 10379  	req, out := c.DetachPrincipalPolicyRequest(input)
 10380  	return out, req.Send()
 10381  }
 10382  
 10383  // DetachPrincipalPolicyWithContext is the same as DetachPrincipalPolicy with the addition of
 10384  // the ability to pass a context and additional request options.
 10385  //
 10386  // See DetachPrincipalPolicy for details on how to use this API operation.
 10387  //
 10388  // The context must be non-nil and will be used for request cancellation. If
 10389  // the context is nil a panic will occur. In the future the SDK may create
 10390  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10391  // for more information on using Contexts.
 10392  //
 10393  // Deprecated: DetachPrincipalPolicyWithContext has been deprecated
 10394  func (c *IoT) DetachPrincipalPolicyWithContext(ctx aws.Context, input *DetachPrincipalPolicyInput, opts ...request.Option) (*DetachPrincipalPolicyOutput, error) {
 10395  	req, out := c.DetachPrincipalPolicyRequest(input)
 10396  	req.SetContext(ctx)
 10397  	req.ApplyOptions(opts...)
 10398  	return out, req.Send()
 10399  }
 10400  
 10401  const opDetachSecurityProfile = "DetachSecurityProfile"
 10402  
 10403  // DetachSecurityProfileRequest generates a "aws/request.Request" representing the
 10404  // client's request for the DetachSecurityProfile operation. The "output" return
 10405  // value will be populated with the request's response once the request completes
 10406  // successfully.
 10407  //
 10408  // Use "Send" method on the returned Request to send the API call to the service.
 10409  // the "output" return value is not valid until after Send returns without error.
 10410  //
 10411  // See DetachSecurityProfile for more information on using the DetachSecurityProfile
 10412  // API call, and error handling.
 10413  //
 10414  // This method is useful when you want to inject custom logic or configuration
 10415  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10416  //
 10417  //
 10418  //    // Example sending a request using the DetachSecurityProfileRequest method.
 10419  //    req, resp := client.DetachSecurityProfileRequest(params)
 10420  //
 10421  //    err := req.Send()
 10422  //    if err == nil { // resp is now filled
 10423  //        fmt.Println(resp)
 10424  //    }
 10425  func (c *IoT) DetachSecurityProfileRequest(input *DetachSecurityProfileInput) (req *request.Request, output *DetachSecurityProfileOutput) {
 10426  	op := &request.Operation{
 10427  		Name:       opDetachSecurityProfile,
 10428  		HTTPMethod: "DELETE",
 10429  		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
 10430  	}
 10431  
 10432  	if input == nil {
 10433  		input = &DetachSecurityProfileInput{}
 10434  	}
 10435  
 10436  	output = &DetachSecurityProfileOutput{}
 10437  	req = c.newRequest(op, input, output)
 10438  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 10439  	return
 10440  }
 10441  
 10442  // DetachSecurityProfile API operation for AWS IoT.
 10443  //
 10444  // Disassociates a Device Defender security profile from a thing group or from
 10445  // this account.
 10446  //
 10447  // Requires permission to access the DetachSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10448  // action.
 10449  //
 10450  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10451  // with awserr.Error's Code and Message methods to get detailed information about
 10452  // the error.
 10453  //
 10454  // See the AWS API reference guide for AWS IoT's
 10455  // API operation DetachSecurityProfile for usage and error information.
 10456  //
 10457  // Returned Error Types:
 10458  //   * InvalidRequestException
 10459  //   The request is not valid.
 10460  //
 10461  //   * ResourceNotFoundException
 10462  //   The specified resource does not exist.
 10463  //
 10464  //   * ThrottlingException
 10465  //   The rate exceeds the limit.
 10466  //
 10467  //   * InternalFailureException
 10468  //   An unexpected error has occurred.
 10469  //
 10470  func (c *IoT) DetachSecurityProfile(input *DetachSecurityProfileInput) (*DetachSecurityProfileOutput, error) {
 10471  	req, out := c.DetachSecurityProfileRequest(input)
 10472  	return out, req.Send()
 10473  }
 10474  
 10475  // DetachSecurityProfileWithContext is the same as DetachSecurityProfile with the addition of
 10476  // the ability to pass a context and additional request options.
 10477  //
 10478  // See DetachSecurityProfile for details on how to use this API operation.
 10479  //
 10480  // The context must be non-nil and will be used for request cancellation. If
 10481  // the context is nil a panic will occur. In the future the SDK may create
 10482  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10483  // for more information on using Contexts.
 10484  func (c *IoT) DetachSecurityProfileWithContext(ctx aws.Context, input *DetachSecurityProfileInput, opts ...request.Option) (*DetachSecurityProfileOutput, error) {
 10485  	req, out := c.DetachSecurityProfileRequest(input)
 10486  	req.SetContext(ctx)
 10487  	req.ApplyOptions(opts...)
 10488  	return out, req.Send()
 10489  }
 10490  
 10491  const opDetachThingPrincipal = "DetachThingPrincipal"
 10492  
 10493  // DetachThingPrincipalRequest generates a "aws/request.Request" representing the
 10494  // client's request for the DetachThingPrincipal operation. The "output" return
 10495  // value will be populated with the request's response once the request completes
 10496  // successfully.
 10497  //
 10498  // Use "Send" method on the returned Request to send the API call to the service.
 10499  // the "output" return value is not valid until after Send returns without error.
 10500  //
 10501  // See DetachThingPrincipal for more information on using the DetachThingPrincipal
 10502  // API call, and error handling.
 10503  //
 10504  // This method is useful when you want to inject custom logic or configuration
 10505  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10506  //
 10507  //
 10508  //    // Example sending a request using the DetachThingPrincipalRequest method.
 10509  //    req, resp := client.DetachThingPrincipalRequest(params)
 10510  //
 10511  //    err := req.Send()
 10512  //    if err == nil { // resp is now filled
 10513  //        fmt.Println(resp)
 10514  //    }
 10515  func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req *request.Request, output *DetachThingPrincipalOutput) {
 10516  	op := &request.Operation{
 10517  		Name:       opDetachThingPrincipal,
 10518  		HTTPMethod: "DELETE",
 10519  		HTTPPath:   "/things/{thingName}/principals",
 10520  	}
 10521  
 10522  	if input == nil {
 10523  		input = &DetachThingPrincipalInput{}
 10524  	}
 10525  
 10526  	output = &DetachThingPrincipalOutput{}
 10527  	req = c.newRequest(op, input, output)
 10528  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 10529  	return
 10530  }
 10531  
 10532  // DetachThingPrincipal API operation for AWS IoT.
 10533  //
 10534  // Detaches the specified principal from the specified thing. A principal can
 10535  // be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
 10536  // or federated identities.
 10537  //
 10538  // This call is asynchronous. It might take several seconds for the detachment
 10539  // to propagate.
 10540  //
 10541  // Requires permission to access the DetachThingPrincipal (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10542  // action.
 10543  //
 10544  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10545  // with awserr.Error's Code and Message methods to get detailed information about
 10546  // the error.
 10547  //
 10548  // See the AWS API reference guide for AWS IoT's
 10549  // API operation DetachThingPrincipal for usage and error information.
 10550  //
 10551  // Returned Error Types:
 10552  //   * ResourceNotFoundException
 10553  //   The specified resource does not exist.
 10554  //
 10555  //   * InvalidRequestException
 10556  //   The request is not valid.
 10557  //
 10558  //   * ThrottlingException
 10559  //   The rate exceeds the limit.
 10560  //
 10561  //   * UnauthorizedException
 10562  //   You are not authorized to perform this operation.
 10563  //
 10564  //   * ServiceUnavailableException
 10565  //   The service is temporarily unavailable.
 10566  //
 10567  //   * InternalFailureException
 10568  //   An unexpected error has occurred.
 10569  //
 10570  func (c *IoT) DetachThingPrincipal(input *DetachThingPrincipalInput) (*DetachThingPrincipalOutput, error) {
 10571  	req, out := c.DetachThingPrincipalRequest(input)
 10572  	return out, req.Send()
 10573  }
 10574  
 10575  // DetachThingPrincipalWithContext is the same as DetachThingPrincipal with the addition of
 10576  // the ability to pass a context and additional request options.
 10577  //
 10578  // See DetachThingPrincipal for details on how to use this API operation.
 10579  //
 10580  // The context must be non-nil and will be used for request cancellation. If
 10581  // the context is nil a panic will occur. In the future the SDK may create
 10582  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10583  // for more information on using Contexts.
 10584  func (c *IoT) DetachThingPrincipalWithContext(ctx aws.Context, input *DetachThingPrincipalInput, opts ...request.Option) (*DetachThingPrincipalOutput, error) {
 10585  	req, out := c.DetachThingPrincipalRequest(input)
 10586  	req.SetContext(ctx)
 10587  	req.ApplyOptions(opts...)
 10588  	return out, req.Send()
 10589  }
 10590  
 10591  const opDisableTopicRule = "DisableTopicRule"
 10592  
 10593  // DisableTopicRuleRequest generates a "aws/request.Request" representing the
 10594  // client's request for the DisableTopicRule operation. The "output" return
 10595  // value will be populated with the request's response once the request completes
 10596  // successfully.
 10597  //
 10598  // Use "Send" method on the returned Request to send the API call to the service.
 10599  // the "output" return value is not valid until after Send returns without error.
 10600  //
 10601  // See DisableTopicRule for more information on using the DisableTopicRule
 10602  // API call, and error handling.
 10603  //
 10604  // This method is useful when you want to inject custom logic or configuration
 10605  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10606  //
 10607  //
 10608  //    // Example sending a request using the DisableTopicRuleRequest method.
 10609  //    req, resp := client.DisableTopicRuleRequest(params)
 10610  //
 10611  //    err := req.Send()
 10612  //    if err == nil { // resp is now filled
 10613  //        fmt.Println(resp)
 10614  //    }
 10615  func (c *IoT) DisableTopicRuleRequest(input *DisableTopicRuleInput) (req *request.Request, output *DisableTopicRuleOutput) {
 10616  	op := &request.Operation{
 10617  		Name:       opDisableTopicRule,
 10618  		HTTPMethod: "POST",
 10619  		HTTPPath:   "/rules/{ruleName}/disable",
 10620  	}
 10621  
 10622  	if input == nil {
 10623  		input = &DisableTopicRuleInput{}
 10624  	}
 10625  
 10626  	output = &DisableTopicRuleOutput{}
 10627  	req = c.newRequest(op, input, output)
 10628  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 10629  	return
 10630  }
 10631  
 10632  // DisableTopicRule API operation for AWS IoT.
 10633  //
 10634  // Disables the rule.
 10635  //
 10636  // Requires permission to access the DisableTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10637  // action.
 10638  //
 10639  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10640  // with awserr.Error's Code and Message methods to get detailed information about
 10641  // the error.
 10642  //
 10643  // See the AWS API reference guide for AWS IoT's
 10644  // API operation DisableTopicRule for usage and error information.
 10645  //
 10646  // Returned Error Types:
 10647  //   * InternalException
 10648  //   An unexpected error has occurred.
 10649  //
 10650  //   * InvalidRequestException
 10651  //   The request is not valid.
 10652  //
 10653  //   * ServiceUnavailableException
 10654  //   The service is temporarily unavailable.
 10655  //
 10656  //   * UnauthorizedException
 10657  //   You are not authorized to perform this operation.
 10658  //
 10659  //   * ConflictingResourceUpdateException
 10660  //   A conflicting resource update exception. This exception is thrown when two
 10661  //   pending updates cause a conflict.
 10662  //
 10663  func (c *IoT) DisableTopicRule(input *DisableTopicRuleInput) (*DisableTopicRuleOutput, error) {
 10664  	req, out := c.DisableTopicRuleRequest(input)
 10665  	return out, req.Send()
 10666  }
 10667  
 10668  // DisableTopicRuleWithContext is the same as DisableTopicRule with the addition of
 10669  // the ability to pass a context and additional request options.
 10670  //
 10671  // See DisableTopicRule for details on how to use this API operation.
 10672  //
 10673  // The context must be non-nil and will be used for request cancellation. If
 10674  // the context is nil a panic will occur. In the future the SDK may create
 10675  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10676  // for more information on using Contexts.
 10677  func (c *IoT) DisableTopicRuleWithContext(ctx aws.Context, input *DisableTopicRuleInput, opts ...request.Option) (*DisableTopicRuleOutput, error) {
 10678  	req, out := c.DisableTopicRuleRequest(input)
 10679  	req.SetContext(ctx)
 10680  	req.ApplyOptions(opts...)
 10681  	return out, req.Send()
 10682  }
 10683  
 10684  const opEnableTopicRule = "EnableTopicRule"
 10685  
 10686  // EnableTopicRuleRequest generates a "aws/request.Request" representing the
 10687  // client's request for the EnableTopicRule operation. The "output" return
 10688  // value will be populated with the request's response once the request completes
 10689  // successfully.
 10690  //
 10691  // Use "Send" method on the returned Request to send the API call to the service.
 10692  // the "output" return value is not valid until after Send returns without error.
 10693  //
 10694  // See EnableTopicRule for more information on using the EnableTopicRule
 10695  // API call, and error handling.
 10696  //
 10697  // This method is useful when you want to inject custom logic or configuration
 10698  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10699  //
 10700  //
 10701  //    // Example sending a request using the EnableTopicRuleRequest method.
 10702  //    req, resp := client.EnableTopicRuleRequest(params)
 10703  //
 10704  //    err := req.Send()
 10705  //    if err == nil { // resp is now filled
 10706  //        fmt.Println(resp)
 10707  //    }
 10708  func (c *IoT) EnableTopicRuleRequest(input *EnableTopicRuleInput) (req *request.Request, output *EnableTopicRuleOutput) {
 10709  	op := &request.Operation{
 10710  		Name:       opEnableTopicRule,
 10711  		HTTPMethod: "POST",
 10712  		HTTPPath:   "/rules/{ruleName}/enable",
 10713  	}
 10714  
 10715  	if input == nil {
 10716  		input = &EnableTopicRuleInput{}
 10717  	}
 10718  
 10719  	output = &EnableTopicRuleOutput{}
 10720  	req = c.newRequest(op, input, output)
 10721  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 10722  	return
 10723  }
 10724  
 10725  // EnableTopicRule API operation for AWS IoT.
 10726  //
 10727  // Enables the rule.
 10728  //
 10729  // Requires permission to access the EnableTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10730  // action.
 10731  //
 10732  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10733  // with awserr.Error's Code and Message methods to get detailed information about
 10734  // the error.
 10735  //
 10736  // See the AWS API reference guide for AWS IoT's
 10737  // API operation EnableTopicRule for usage and error information.
 10738  //
 10739  // Returned Error Types:
 10740  //   * InternalException
 10741  //   An unexpected error has occurred.
 10742  //
 10743  //   * InvalidRequestException
 10744  //   The request is not valid.
 10745  //
 10746  //   * ServiceUnavailableException
 10747  //   The service is temporarily unavailable.
 10748  //
 10749  //   * UnauthorizedException
 10750  //   You are not authorized to perform this operation.
 10751  //
 10752  //   * ConflictingResourceUpdateException
 10753  //   A conflicting resource update exception. This exception is thrown when two
 10754  //   pending updates cause a conflict.
 10755  //
 10756  func (c *IoT) EnableTopicRule(input *EnableTopicRuleInput) (*EnableTopicRuleOutput, error) {
 10757  	req, out := c.EnableTopicRuleRequest(input)
 10758  	return out, req.Send()
 10759  }
 10760  
 10761  // EnableTopicRuleWithContext is the same as EnableTopicRule with the addition of
 10762  // the ability to pass a context and additional request options.
 10763  //
 10764  // See EnableTopicRule for details on how to use this API operation.
 10765  //
 10766  // The context must be non-nil and will be used for request cancellation. If
 10767  // the context is nil a panic will occur. In the future the SDK may create
 10768  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10769  // for more information on using Contexts.
 10770  func (c *IoT) EnableTopicRuleWithContext(ctx aws.Context, input *EnableTopicRuleInput, opts ...request.Option) (*EnableTopicRuleOutput, error) {
 10771  	req, out := c.EnableTopicRuleRequest(input)
 10772  	req.SetContext(ctx)
 10773  	req.ApplyOptions(opts...)
 10774  	return out, req.Send()
 10775  }
 10776  
 10777  const opGetBehaviorModelTrainingSummaries = "GetBehaviorModelTrainingSummaries"
 10778  
 10779  // GetBehaviorModelTrainingSummariesRequest generates a "aws/request.Request" representing the
 10780  // client's request for the GetBehaviorModelTrainingSummaries operation. The "output" return
 10781  // value will be populated with the request's response once the request completes
 10782  // successfully.
 10783  //
 10784  // Use "Send" method on the returned Request to send the API call to the service.
 10785  // the "output" return value is not valid until after Send returns without error.
 10786  //
 10787  // See GetBehaviorModelTrainingSummaries for more information on using the GetBehaviorModelTrainingSummaries
 10788  // API call, and error handling.
 10789  //
 10790  // This method is useful when you want to inject custom logic or configuration
 10791  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10792  //
 10793  //
 10794  //    // Example sending a request using the GetBehaviorModelTrainingSummariesRequest method.
 10795  //    req, resp := client.GetBehaviorModelTrainingSummariesRequest(params)
 10796  //
 10797  //    err := req.Send()
 10798  //    if err == nil { // resp is now filled
 10799  //        fmt.Println(resp)
 10800  //    }
 10801  func (c *IoT) GetBehaviorModelTrainingSummariesRequest(input *GetBehaviorModelTrainingSummariesInput) (req *request.Request, output *GetBehaviorModelTrainingSummariesOutput) {
 10802  	op := &request.Operation{
 10803  		Name:       opGetBehaviorModelTrainingSummaries,
 10804  		HTTPMethod: "GET",
 10805  		HTTPPath:   "/behavior-model-training/summaries",
 10806  		Paginator: &request.Paginator{
 10807  			InputTokens:     []string{"nextToken"},
 10808  			OutputTokens:    []string{"nextToken"},
 10809  			LimitToken:      "maxResults",
 10810  			TruncationToken: "",
 10811  		},
 10812  	}
 10813  
 10814  	if input == nil {
 10815  		input = &GetBehaviorModelTrainingSummariesInput{}
 10816  	}
 10817  
 10818  	output = &GetBehaviorModelTrainingSummariesOutput{}
 10819  	req = c.newRequest(op, input, output)
 10820  	return
 10821  }
 10822  
 10823  // GetBehaviorModelTrainingSummaries API operation for AWS IoT.
 10824  //
 10825  // Returns a Device Defender's ML Detect Security Profile training model's status.
 10826  //
 10827  // Requires permission to access the GetBehaviorModelTrainingSummaries (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10828  // action.
 10829  //
 10830  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10831  // with awserr.Error's Code and Message methods to get detailed information about
 10832  // the error.
 10833  //
 10834  // See the AWS API reference guide for AWS IoT's
 10835  // API operation GetBehaviorModelTrainingSummaries for usage and error information.
 10836  //
 10837  // Returned Error Types:
 10838  //   * InvalidRequestException
 10839  //   The request is not valid.
 10840  //
 10841  //   * ThrottlingException
 10842  //   The rate exceeds the limit.
 10843  //
 10844  //   * InternalFailureException
 10845  //   An unexpected error has occurred.
 10846  //
 10847  //   * ResourceNotFoundException
 10848  //   The specified resource does not exist.
 10849  //
 10850  func (c *IoT) GetBehaviorModelTrainingSummaries(input *GetBehaviorModelTrainingSummariesInput) (*GetBehaviorModelTrainingSummariesOutput, error) {
 10851  	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
 10852  	return out, req.Send()
 10853  }
 10854  
 10855  // GetBehaviorModelTrainingSummariesWithContext is the same as GetBehaviorModelTrainingSummaries with the addition of
 10856  // the ability to pass a context and additional request options.
 10857  //
 10858  // See GetBehaviorModelTrainingSummaries for details on how to use this API operation.
 10859  //
 10860  // The context must be non-nil and will be used for request cancellation. If
 10861  // the context is nil a panic will occur. In the future the SDK may create
 10862  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10863  // for more information on using Contexts.
 10864  func (c *IoT) GetBehaviorModelTrainingSummariesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, opts ...request.Option) (*GetBehaviorModelTrainingSummariesOutput, error) {
 10865  	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
 10866  	req.SetContext(ctx)
 10867  	req.ApplyOptions(opts...)
 10868  	return out, req.Send()
 10869  }
 10870  
 10871  // GetBehaviorModelTrainingSummariesPages iterates over the pages of a GetBehaviorModelTrainingSummaries operation,
 10872  // calling the "fn" function with the response data for each page. To stop
 10873  // iterating, return false from the fn function.
 10874  //
 10875  // See GetBehaviorModelTrainingSummaries method for more information on how to use this operation.
 10876  //
 10877  // Note: This operation can generate multiple requests to a service.
 10878  //
 10879  //    // Example iterating over at most 3 pages of a GetBehaviorModelTrainingSummaries operation.
 10880  //    pageNum := 0
 10881  //    err := client.GetBehaviorModelTrainingSummariesPages(params,
 10882  //        func(page *iot.GetBehaviorModelTrainingSummariesOutput, lastPage bool) bool {
 10883  //            pageNum++
 10884  //            fmt.Println(page)
 10885  //            return pageNum <= 3
 10886  //        })
 10887  //
 10888  func (c *IoT) GetBehaviorModelTrainingSummariesPages(input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool) error {
 10889  	return c.GetBehaviorModelTrainingSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
 10890  }
 10891  
 10892  // GetBehaviorModelTrainingSummariesPagesWithContext same as GetBehaviorModelTrainingSummariesPages except
 10893  // it takes a Context and allows setting request options on the pages.
 10894  //
 10895  // The context must be non-nil and will be used for request cancellation. If
 10896  // the context is nil a panic will occur. In the future the SDK may create
 10897  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10898  // for more information on using Contexts.
 10899  func (c *IoT) GetBehaviorModelTrainingSummariesPagesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool, opts ...request.Option) error {
 10900  	p := request.Pagination{
 10901  		NewRequest: func() (*request.Request, error) {
 10902  			var inCpy *GetBehaviorModelTrainingSummariesInput
 10903  			if input != nil {
 10904  				tmp := *input
 10905  				inCpy = &tmp
 10906  			}
 10907  			req, _ := c.GetBehaviorModelTrainingSummariesRequest(inCpy)
 10908  			req.SetContext(ctx)
 10909  			req.ApplyOptions(opts...)
 10910  			return req, nil
 10911  		},
 10912  	}
 10913  
 10914  	for p.Next() {
 10915  		if !fn(p.Page().(*GetBehaviorModelTrainingSummariesOutput), !p.HasNextPage()) {
 10916  			break
 10917  		}
 10918  	}
 10919  
 10920  	return p.Err()
 10921  }
 10922  
 10923  const opGetBucketsAggregation = "GetBucketsAggregation"
 10924  
 10925  // GetBucketsAggregationRequest generates a "aws/request.Request" representing the
 10926  // client's request for the GetBucketsAggregation operation. The "output" return
 10927  // value will be populated with the request's response once the request completes
 10928  // successfully.
 10929  //
 10930  // Use "Send" method on the returned Request to send the API call to the service.
 10931  // the "output" return value is not valid until after Send returns without error.
 10932  //
 10933  // See GetBucketsAggregation for more information on using the GetBucketsAggregation
 10934  // API call, and error handling.
 10935  //
 10936  // This method is useful when you want to inject custom logic or configuration
 10937  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10938  //
 10939  //
 10940  //    // Example sending a request using the GetBucketsAggregationRequest method.
 10941  //    req, resp := client.GetBucketsAggregationRequest(params)
 10942  //
 10943  //    err := req.Send()
 10944  //    if err == nil { // resp is now filled
 10945  //        fmt.Println(resp)
 10946  //    }
 10947  func (c *IoT) GetBucketsAggregationRequest(input *GetBucketsAggregationInput) (req *request.Request, output *GetBucketsAggregationOutput) {
 10948  	op := &request.Operation{
 10949  		Name:       opGetBucketsAggregation,
 10950  		HTTPMethod: "POST",
 10951  		HTTPPath:   "/indices/buckets",
 10952  	}
 10953  
 10954  	if input == nil {
 10955  		input = &GetBucketsAggregationInput{}
 10956  	}
 10957  
 10958  	output = &GetBucketsAggregationOutput{}
 10959  	req = c.newRequest(op, input, output)
 10960  	return
 10961  }
 10962  
 10963  // GetBucketsAggregation API operation for AWS IoT.
 10964  //
 10965  // Aggregates on indexed data with search queries pertaining to particular fields.
 10966  //
 10967  // Requires permission to access the GetBucketsAggregation (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 10968  // action.
 10969  //
 10970  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10971  // with awserr.Error's Code and Message methods to get detailed information about
 10972  // the error.
 10973  //
 10974  // See the AWS API reference guide for AWS IoT's
 10975  // API operation GetBucketsAggregation for usage and error information.
 10976  //
 10977  // Returned Error Types:
 10978  //   * InvalidRequestException
 10979  //   The request is not valid.
 10980  //
 10981  //   * ThrottlingException
 10982  //   The rate exceeds the limit.
 10983  //
 10984  //   * UnauthorizedException
 10985  //   You are not authorized to perform this operation.
 10986  //
 10987  //   * ServiceUnavailableException
 10988  //   The service is temporarily unavailable.
 10989  //
 10990  //   * InternalFailureException
 10991  //   An unexpected error has occurred.
 10992  //
 10993  //   * ResourceNotFoundException
 10994  //   The specified resource does not exist.
 10995  //
 10996  //   * InvalidQueryException
 10997  //   The query is invalid.
 10998  //
 10999  //   * InvalidAggregationException
 11000  //   The aggregation is invalid.
 11001  //
 11002  //   * IndexNotReadyException
 11003  //   The index is not ready.
 11004  //
 11005  func (c *IoT) GetBucketsAggregation(input *GetBucketsAggregationInput) (*GetBucketsAggregationOutput, error) {
 11006  	req, out := c.GetBucketsAggregationRequest(input)
 11007  	return out, req.Send()
 11008  }
 11009  
 11010  // GetBucketsAggregationWithContext is the same as GetBucketsAggregation with the addition of
 11011  // the ability to pass a context and additional request options.
 11012  //
 11013  // See GetBucketsAggregation for details on how to use this API operation.
 11014  //
 11015  // The context must be non-nil and will be used for request cancellation. If
 11016  // the context is nil a panic will occur. In the future the SDK may create
 11017  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11018  // for more information on using Contexts.
 11019  func (c *IoT) GetBucketsAggregationWithContext(ctx aws.Context, input *GetBucketsAggregationInput, opts ...request.Option) (*GetBucketsAggregationOutput, error) {
 11020  	req, out := c.GetBucketsAggregationRequest(input)
 11021  	req.SetContext(ctx)
 11022  	req.ApplyOptions(opts...)
 11023  	return out, req.Send()
 11024  }
 11025  
 11026  const opGetCardinality = "GetCardinality"
 11027  
 11028  // GetCardinalityRequest generates a "aws/request.Request" representing the
 11029  // client's request for the GetCardinality operation. The "output" return
 11030  // value will be populated with the request's response once the request completes
 11031  // successfully.
 11032  //
 11033  // Use "Send" method on the returned Request to send the API call to the service.
 11034  // the "output" return value is not valid until after Send returns without error.
 11035  //
 11036  // See GetCardinality for more information on using the GetCardinality
 11037  // API call, and error handling.
 11038  //
 11039  // This method is useful when you want to inject custom logic or configuration
 11040  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11041  //
 11042  //
 11043  //    // Example sending a request using the GetCardinalityRequest method.
 11044  //    req, resp := client.GetCardinalityRequest(params)
 11045  //
 11046  //    err := req.Send()
 11047  //    if err == nil { // resp is now filled
 11048  //        fmt.Println(resp)
 11049  //    }
 11050  func (c *IoT) GetCardinalityRequest(input *GetCardinalityInput) (req *request.Request, output *GetCardinalityOutput) {
 11051  	op := &request.Operation{
 11052  		Name:       opGetCardinality,
 11053  		HTTPMethod: "POST",
 11054  		HTTPPath:   "/indices/cardinality",
 11055  	}
 11056  
 11057  	if input == nil {
 11058  		input = &GetCardinalityInput{}
 11059  	}
 11060  
 11061  	output = &GetCardinalityOutput{}
 11062  	req = c.newRequest(op, input, output)
 11063  	return
 11064  }
 11065  
 11066  // GetCardinality API operation for AWS IoT.
 11067  //
 11068  // Returns the approximate count of unique values that match the query.
 11069  //
 11070  // Requires permission to access the GetCardinality (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11071  // action.
 11072  //
 11073  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11074  // with awserr.Error's Code and Message methods to get detailed information about
 11075  // the error.
 11076  //
 11077  // See the AWS API reference guide for AWS IoT's
 11078  // API operation GetCardinality for usage and error information.
 11079  //
 11080  // Returned Error Types:
 11081  //   * InvalidRequestException
 11082  //   The request is not valid.
 11083  //
 11084  //   * ThrottlingException
 11085  //   The rate exceeds the limit.
 11086  //
 11087  //   * UnauthorizedException
 11088  //   You are not authorized to perform this operation.
 11089  //
 11090  //   * ServiceUnavailableException
 11091  //   The service is temporarily unavailable.
 11092  //
 11093  //   * InternalFailureException
 11094  //   An unexpected error has occurred.
 11095  //
 11096  //   * ResourceNotFoundException
 11097  //   The specified resource does not exist.
 11098  //
 11099  //   * InvalidQueryException
 11100  //   The query is invalid.
 11101  //
 11102  //   * InvalidAggregationException
 11103  //   The aggregation is invalid.
 11104  //
 11105  //   * IndexNotReadyException
 11106  //   The index is not ready.
 11107  //
 11108  func (c *IoT) GetCardinality(input *GetCardinalityInput) (*GetCardinalityOutput, error) {
 11109  	req, out := c.GetCardinalityRequest(input)
 11110  	return out, req.Send()
 11111  }
 11112  
 11113  // GetCardinalityWithContext is the same as GetCardinality with the addition of
 11114  // the ability to pass a context and additional request options.
 11115  //
 11116  // See GetCardinality for details on how to use this API operation.
 11117  //
 11118  // The context must be non-nil and will be used for request cancellation. If
 11119  // the context is nil a panic will occur. In the future the SDK may create
 11120  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11121  // for more information on using Contexts.
 11122  func (c *IoT) GetCardinalityWithContext(ctx aws.Context, input *GetCardinalityInput, opts ...request.Option) (*GetCardinalityOutput, error) {
 11123  	req, out := c.GetCardinalityRequest(input)
 11124  	req.SetContext(ctx)
 11125  	req.ApplyOptions(opts...)
 11126  	return out, req.Send()
 11127  }
 11128  
 11129  const opGetEffectivePolicies = "GetEffectivePolicies"
 11130  
 11131  // GetEffectivePoliciesRequest generates a "aws/request.Request" representing the
 11132  // client's request for the GetEffectivePolicies operation. The "output" return
 11133  // value will be populated with the request's response once the request completes
 11134  // successfully.
 11135  //
 11136  // Use "Send" method on the returned Request to send the API call to the service.
 11137  // the "output" return value is not valid until after Send returns without error.
 11138  //
 11139  // See GetEffectivePolicies for more information on using the GetEffectivePolicies
 11140  // API call, and error handling.
 11141  //
 11142  // This method is useful when you want to inject custom logic or configuration
 11143  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11144  //
 11145  //
 11146  //    // Example sending a request using the GetEffectivePoliciesRequest method.
 11147  //    req, resp := client.GetEffectivePoliciesRequest(params)
 11148  //
 11149  //    err := req.Send()
 11150  //    if err == nil { // resp is now filled
 11151  //        fmt.Println(resp)
 11152  //    }
 11153  func (c *IoT) GetEffectivePoliciesRequest(input *GetEffectivePoliciesInput) (req *request.Request, output *GetEffectivePoliciesOutput) {
 11154  	op := &request.Operation{
 11155  		Name:       opGetEffectivePolicies,
 11156  		HTTPMethod: "POST",
 11157  		HTTPPath:   "/effective-policies",
 11158  	}
 11159  
 11160  	if input == nil {
 11161  		input = &GetEffectivePoliciesInput{}
 11162  	}
 11163  
 11164  	output = &GetEffectivePoliciesOutput{}
 11165  	req = c.newRequest(op, input, output)
 11166  	return
 11167  }
 11168  
 11169  // GetEffectivePolicies API operation for AWS IoT.
 11170  //
 11171  // Gets a list of the policies that have an effect on the authorization behavior
 11172  // of the specified device when it connects to the IoT device gateway.
 11173  //
 11174  // Requires permission to access the GetEffectivePolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11175  // action.
 11176  //
 11177  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11178  // with awserr.Error's Code and Message methods to get detailed information about
 11179  // the error.
 11180  //
 11181  // See the AWS API reference guide for AWS IoT's
 11182  // API operation GetEffectivePolicies for usage and error information.
 11183  //
 11184  // Returned Error Types:
 11185  //   * ResourceNotFoundException
 11186  //   The specified resource does not exist.
 11187  //
 11188  //   * InvalidRequestException
 11189  //   The request is not valid.
 11190  //
 11191  //   * ThrottlingException
 11192  //   The rate exceeds the limit.
 11193  //
 11194  //   * UnauthorizedException
 11195  //   You are not authorized to perform this operation.
 11196  //
 11197  //   * ServiceUnavailableException
 11198  //   The service is temporarily unavailable.
 11199  //
 11200  //   * InternalFailureException
 11201  //   An unexpected error has occurred.
 11202  //
 11203  //   * LimitExceededException
 11204  //   A limit has been exceeded.
 11205  //
 11206  func (c *IoT) GetEffectivePolicies(input *GetEffectivePoliciesInput) (*GetEffectivePoliciesOutput, error) {
 11207  	req, out := c.GetEffectivePoliciesRequest(input)
 11208  	return out, req.Send()
 11209  }
 11210  
 11211  // GetEffectivePoliciesWithContext is the same as GetEffectivePolicies with the addition of
 11212  // the ability to pass a context and additional request options.
 11213  //
 11214  // See GetEffectivePolicies for details on how to use this API operation.
 11215  //
 11216  // The context must be non-nil and will be used for request cancellation. If
 11217  // the context is nil a panic will occur. In the future the SDK may create
 11218  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11219  // for more information on using Contexts.
 11220  func (c *IoT) GetEffectivePoliciesWithContext(ctx aws.Context, input *GetEffectivePoliciesInput, opts ...request.Option) (*GetEffectivePoliciesOutput, error) {
 11221  	req, out := c.GetEffectivePoliciesRequest(input)
 11222  	req.SetContext(ctx)
 11223  	req.ApplyOptions(opts...)
 11224  	return out, req.Send()
 11225  }
 11226  
 11227  const opGetIndexingConfiguration = "GetIndexingConfiguration"
 11228  
 11229  // GetIndexingConfigurationRequest generates a "aws/request.Request" representing the
 11230  // client's request for the GetIndexingConfiguration operation. The "output" return
 11231  // value will be populated with the request's response once the request completes
 11232  // successfully.
 11233  //
 11234  // Use "Send" method on the returned Request to send the API call to the service.
 11235  // the "output" return value is not valid until after Send returns without error.
 11236  //
 11237  // See GetIndexingConfiguration for more information on using the GetIndexingConfiguration
 11238  // API call, and error handling.
 11239  //
 11240  // This method is useful when you want to inject custom logic or configuration
 11241  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11242  //
 11243  //
 11244  //    // Example sending a request using the GetIndexingConfigurationRequest method.
 11245  //    req, resp := client.GetIndexingConfigurationRequest(params)
 11246  //
 11247  //    err := req.Send()
 11248  //    if err == nil { // resp is now filled
 11249  //        fmt.Println(resp)
 11250  //    }
 11251  func (c *IoT) GetIndexingConfigurationRequest(input *GetIndexingConfigurationInput) (req *request.Request, output *GetIndexingConfigurationOutput) {
 11252  	op := &request.Operation{
 11253  		Name:       opGetIndexingConfiguration,
 11254  		HTTPMethod: "GET",
 11255  		HTTPPath:   "/indexing/config",
 11256  	}
 11257  
 11258  	if input == nil {
 11259  		input = &GetIndexingConfigurationInput{}
 11260  	}
 11261  
 11262  	output = &GetIndexingConfigurationOutput{}
 11263  	req = c.newRequest(op, input, output)
 11264  	return
 11265  }
 11266  
 11267  // GetIndexingConfiguration API operation for AWS IoT.
 11268  //
 11269  // Gets the indexing configuration.
 11270  //
 11271  // Requires permission to access the GetIndexingConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11272  // action.
 11273  //
 11274  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11275  // with awserr.Error's Code and Message methods to get detailed information about
 11276  // the error.
 11277  //
 11278  // See the AWS API reference guide for AWS IoT's
 11279  // API operation GetIndexingConfiguration for usage and error information.
 11280  //
 11281  // Returned Error Types:
 11282  //   * InvalidRequestException
 11283  //   The request is not valid.
 11284  //
 11285  //   * ThrottlingException
 11286  //   The rate exceeds the limit.
 11287  //
 11288  //   * UnauthorizedException
 11289  //   You are not authorized to perform this operation.
 11290  //
 11291  //   * ServiceUnavailableException
 11292  //   The service is temporarily unavailable.
 11293  //
 11294  //   * InternalFailureException
 11295  //   An unexpected error has occurred.
 11296  //
 11297  func (c *IoT) GetIndexingConfiguration(input *GetIndexingConfigurationInput) (*GetIndexingConfigurationOutput, error) {
 11298  	req, out := c.GetIndexingConfigurationRequest(input)
 11299  	return out, req.Send()
 11300  }
 11301  
 11302  // GetIndexingConfigurationWithContext is the same as GetIndexingConfiguration with the addition of
 11303  // the ability to pass a context and additional request options.
 11304  //
 11305  // See GetIndexingConfiguration for details on how to use this API operation.
 11306  //
 11307  // The context must be non-nil and will be used for request cancellation. If
 11308  // the context is nil a panic will occur. In the future the SDK may create
 11309  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11310  // for more information on using Contexts.
 11311  func (c *IoT) GetIndexingConfigurationWithContext(ctx aws.Context, input *GetIndexingConfigurationInput, opts ...request.Option) (*GetIndexingConfigurationOutput, error) {
 11312  	req, out := c.GetIndexingConfigurationRequest(input)
 11313  	req.SetContext(ctx)
 11314  	req.ApplyOptions(opts...)
 11315  	return out, req.Send()
 11316  }
 11317  
 11318  const opGetJobDocument = "GetJobDocument"
 11319  
 11320  // GetJobDocumentRequest generates a "aws/request.Request" representing the
 11321  // client's request for the GetJobDocument operation. The "output" return
 11322  // value will be populated with the request's response once the request completes
 11323  // successfully.
 11324  //
 11325  // Use "Send" method on the returned Request to send the API call to the service.
 11326  // the "output" return value is not valid until after Send returns without error.
 11327  //
 11328  // See GetJobDocument for more information on using the GetJobDocument
 11329  // API call, and error handling.
 11330  //
 11331  // This method is useful when you want to inject custom logic or configuration
 11332  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11333  //
 11334  //
 11335  //    // Example sending a request using the GetJobDocumentRequest method.
 11336  //    req, resp := client.GetJobDocumentRequest(params)
 11337  //
 11338  //    err := req.Send()
 11339  //    if err == nil { // resp is now filled
 11340  //        fmt.Println(resp)
 11341  //    }
 11342  func (c *IoT) GetJobDocumentRequest(input *GetJobDocumentInput) (req *request.Request, output *GetJobDocumentOutput) {
 11343  	op := &request.Operation{
 11344  		Name:       opGetJobDocument,
 11345  		HTTPMethod: "GET",
 11346  		HTTPPath:   "/jobs/{jobId}/job-document",
 11347  	}
 11348  
 11349  	if input == nil {
 11350  		input = &GetJobDocumentInput{}
 11351  	}
 11352  
 11353  	output = &GetJobDocumentOutput{}
 11354  	req = c.newRequest(op, input, output)
 11355  	return
 11356  }
 11357  
 11358  // GetJobDocument API operation for AWS IoT.
 11359  //
 11360  // Gets a job document.
 11361  //
 11362  // Requires permission to access the GetJobDocument (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11363  // action.
 11364  //
 11365  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11366  // with awserr.Error's Code and Message methods to get detailed information about
 11367  // the error.
 11368  //
 11369  // See the AWS API reference guide for AWS IoT's
 11370  // API operation GetJobDocument for usage and error information.
 11371  //
 11372  // Returned Error Types:
 11373  //   * InvalidRequestException
 11374  //   The request is not valid.
 11375  //
 11376  //   * ResourceNotFoundException
 11377  //   The specified resource does not exist.
 11378  //
 11379  //   * ThrottlingException
 11380  //   The rate exceeds the limit.
 11381  //
 11382  //   * ServiceUnavailableException
 11383  //   The service is temporarily unavailable.
 11384  //
 11385  func (c *IoT) GetJobDocument(input *GetJobDocumentInput) (*GetJobDocumentOutput, error) {
 11386  	req, out := c.GetJobDocumentRequest(input)
 11387  	return out, req.Send()
 11388  }
 11389  
 11390  // GetJobDocumentWithContext is the same as GetJobDocument with the addition of
 11391  // the ability to pass a context and additional request options.
 11392  //
 11393  // See GetJobDocument for details on how to use this API operation.
 11394  //
 11395  // The context must be non-nil and will be used for request cancellation. If
 11396  // the context is nil a panic will occur. In the future the SDK may create
 11397  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11398  // for more information on using Contexts.
 11399  func (c *IoT) GetJobDocumentWithContext(ctx aws.Context, input *GetJobDocumentInput, opts ...request.Option) (*GetJobDocumentOutput, error) {
 11400  	req, out := c.GetJobDocumentRequest(input)
 11401  	req.SetContext(ctx)
 11402  	req.ApplyOptions(opts...)
 11403  	return out, req.Send()
 11404  }
 11405  
 11406  const opGetLoggingOptions = "GetLoggingOptions"
 11407  
 11408  // GetLoggingOptionsRequest generates a "aws/request.Request" representing the
 11409  // client's request for the GetLoggingOptions operation. The "output" return
 11410  // value will be populated with the request's response once the request completes
 11411  // successfully.
 11412  //
 11413  // Use "Send" method on the returned Request to send the API call to the service.
 11414  // the "output" return value is not valid until after Send returns without error.
 11415  //
 11416  // See GetLoggingOptions for more information on using the GetLoggingOptions
 11417  // API call, and error handling.
 11418  //
 11419  // This method is useful when you want to inject custom logic or configuration
 11420  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11421  //
 11422  //
 11423  //    // Example sending a request using the GetLoggingOptionsRequest method.
 11424  //    req, resp := client.GetLoggingOptionsRequest(params)
 11425  //
 11426  //    err := req.Send()
 11427  //    if err == nil { // resp is now filled
 11428  //        fmt.Println(resp)
 11429  //    }
 11430  func (c *IoT) GetLoggingOptionsRequest(input *GetLoggingOptionsInput) (req *request.Request, output *GetLoggingOptionsOutput) {
 11431  	op := &request.Operation{
 11432  		Name:       opGetLoggingOptions,
 11433  		HTTPMethod: "GET",
 11434  		HTTPPath:   "/loggingOptions",
 11435  	}
 11436  
 11437  	if input == nil {
 11438  		input = &GetLoggingOptionsInput{}
 11439  	}
 11440  
 11441  	output = &GetLoggingOptionsOutput{}
 11442  	req = c.newRequest(op, input, output)
 11443  	return
 11444  }
 11445  
 11446  // GetLoggingOptions API operation for AWS IoT.
 11447  //
 11448  // Gets the logging options.
 11449  //
 11450  // NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.
 11451  //
 11452  // Requires permission to access the GetLoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11453  // action.
 11454  //
 11455  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11456  // with awserr.Error's Code and Message methods to get detailed information about
 11457  // the error.
 11458  //
 11459  // See the AWS API reference guide for AWS IoT's
 11460  // API operation GetLoggingOptions for usage and error information.
 11461  //
 11462  // Returned Error Types:
 11463  //   * InternalException
 11464  //   An unexpected error has occurred.
 11465  //
 11466  //   * InvalidRequestException
 11467  //   The request is not valid.
 11468  //
 11469  //   * ServiceUnavailableException
 11470  //   The service is temporarily unavailable.
 11471  //
 11472  func (c *IoT) GetLoggingOptions(input *GetLoggingOptionsInput) (*GetLoggingOptionsOutput, error) {
 11473  	req, out := c.GetLoggingOptionsRequest(input)
 11474  	return out, req.Send()
 11475  }
 11476  
 11477  // GetLoggingOptionsWithContext is the same as GetLoggingOptions with the addition of
 11478  // the ability to pass a context and additional request options.
 11479  //
 11480  // See GetLoggingOptions for details on how to use this API operation.
 11481  //
 11482  // The context must be non-nil and will be used for request cancellation. If
 11483  // the context is nil a panic will occur. In the future the SDK may create
 11484  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11485  // for more information on using Contexts.
 11486  func (c *IoT) GetLoggingOptionsWithContext(ctx aws.Context, input *GetLoggingOptionsInput, opts ...request.Option) (*GetLoggingOptionsOutput, error) {
 11487  	req, out := c.GetLoggingOptionsRequest(input)
 11488  	req.SetContext(ctx)
 11489  	req.ApplyOptions(opts...)
 11490  	return out, req.Send()
 11491  }
 11492  
 11493  const opGetOTAUpdate = "GetOTAUpdate"
 11494  
 11495  // GetOTAUpdateRequest generates a "aws/request.Request" representing the
 11496  // client's request for the GetOTAUpdate operation. The "output" return
 11497  // value will be populated with the request's response once the request completes
 11498  // successfully.
 11499  //
 11500  // Use "Send" method on the returned Request to send the API call to the service.
 11501  // the "output" return value is not valid until after Send returns without error.
 11502  //
 11503  // See GetOTAUpdate for more information on using the GetOTAUpdate
 11504  // API call, and error handling.
 11505  //
 11506  // This method is useful when you want to inject custom logic or configuration
 11507  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11508  //
 11509  //
 11510  //    // Example sending a request using the GetOTAUpdateRequest method.
 11511  //    req, resp := client.GetOTAUpdateRequest(params)
 11512  //
 11513  //    err := req.Send()
 11514  //    if err == nil { // resp is now filled
 11515  //        fmt.Println(resp)
 11516  //    }
 11517  func (c *IoT) GetOTAUpdateRequest(input *GetOTAUpdateInput) (req *request.Request, output *GetOTAUpdateOutput) {
 11518  	op := &request.Operation{
 11519  		Name:       opGetOTAUpdate,
 11520  		HTTPMethod: "GET",
 11521  		HTTPPath:   "/otaUpdates/{otaUpdateId}",
 11522  	}
 11523  
 11524  	if input == nil {
 11525  		input = &GetOTAUpdateInput{}
 11526  	}
 11527  
 11528  	output = &GetOTAUpdateOutput{}
 11529  	req = c.newRequest(op, input, output)
 11530  	return
 11531  }
 11532  
 11533  // GetOTAUpdate API operation for AWS IoT.
 11534  //
 11535  // Gets an OTA update.
 11536  //
 11537  // Requires permission to access the GetOTAUpdate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11538  // action.
 11539  //
 11540  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11541  // with awserr.Error's Code and Message methods to get detailed information about
 11542  // the error.
 11543  //
 11544  // See the AWS API reference guide for AWS IoT's
 11545  // API operation GetOTAUpdate for usage and error information.
 11546  //
 11547  // Returned Error Types:
 11548  //   * InvalidRequestException
 11549  //   The request is not valid.
 11550  //
 11551  //   * ThrottlingException
 11552  //   The rate exceeds the limit.
 11553  //
 11554  //   * UnauthorizedException
 11555  //   You are not authorized to perform this operation.
 11556  //
 11557  //   * InternalFailureException
 11558  //   An unexpected error has occurred.
 11559  //
 11560  //   * ServiceUnavailableException
 11561  //   The service is temporarily unavailable.
 11562  //
 11563  //   * ResourceNotFoundException
 11564  //   The specified resource does not exist.
 11565  //
 11566  func (c *IoT) GetOTAUpdate(input *GetOTAUpdateInput) (*GetOTAUpdateOutput, error) {
 11567  	req, out := c.GetOTAUpdateRequest(input)
 11568  	return out, req.Send()
 11569  }
 11570  
 11571  // GetOTAUpdateWithContext is the same as GetOTAUpdate with the addition of
 11572  // the ability to pass a context and additional request options.
 11573  //
 11574  // See GetOTAUpdate for details on how to use this API operation.
 11575  //
 11576  // The context must be non-nil and will be used for request cancellation. If
 11577  // the context is nil a panic will occur. In the future the SDK may create
 11578  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11579  // for more information on using Contexts.
 11580  func (c *IoT) GetOTAUpdateWithContext(ctx aws.Context, input *GetOTAUpdateInput, opts ...request.Option) (*GetOTAUpdateOutput, error) {
 11581  	req, out := c.GetOTAUpdateRequest(input)
 11582  	req.SetContext(ctx)
 11583  	req.ApplyOptions(opts...)
 11584  	return out, req.Send()
 11585  }
 11586  
 11587  const opGetPercentiles = "GetPercentiles"
 11588  
 11589  // GetPercentilesRequest generates a "aws/request.Request" representing the
 11590  // client's request for the GetPercentiles operation. The "output" return
 11591  // value will be populated with the request's response once the request completes
 11592  // successfully.
 11593  //
 11594  // Use "Send" method on the returned Request to send the API call to the service.
 11595  // the "output" return value is not valid until after Send returns without error.
 11596  //
 11597  // See GetPercentiles for more information on using the GetPercentiles
 11598  // API call, and error handling.
 11599  //
 11600  // This method is useful when you want to inject custom logic or configuration
 11601  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11602  //
 11603  //
 11604  //    // Example sending a request using the GetPercentilesRequest method.
 11605  //    req, resp := client.GetPercentilesRequest(params)
 11606  //
 11607  //    err := req.Send()
 11608  //    if err == nil { // resp is now filled
 11609  //        fmt.Println(resp)
 11610  //    }
 11611  func (c *IoT) GetPercentilesRequest(input *GetPercentilesInput) (req *request.Request, output *GetPercentilesOutput) {
 11612  	op := &request.Operation{
 11613  		Name:       opGetPercentiles,
 11614  		HTTPMethod: "POST",
 11615  		HTTPPath:   "/indices/percentiles",
 11616  	}
 11617  
 11618  	if input == nil {
 11619  		input = &GetPercentilesInput{}
 11620  	}
 11621  
 11622  	output = &GetPercentilesOutput{}
 11623  	req = c.newRequest(op, input, output)
 11624  	return
 11625  }
 11626  
 11627  // GetPercentiles API operation for AWS IoT.
 11628  //
 11629  // Groups the aggregated values that match the query into percentile groupings.
 11630  // The default percentile groupings are: 1,5,25,50,75,95,99, although you can
 11631  // specify your own when you call GetPercentiles. This function returns a value
 11632  // for each percentile group specified (or the default percentile groupings).
 11633  // The percentile group "1" contains the aggregated field value that occurs
 11634  // in approximately one percent of the values that match the query. The percentile
 11635  // group "5" contains the aggregated field value that occurs in approximately
 11636  // five percent of the values that match the query, and so on. The result is
 11637  // an approximation, the more values that match the query, the more accurate
 11638  // the percentile values.
 11639  //
 11640  // Requires permission to access the GetPercentiles (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11641  // action.
 11642  //
 11643  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11644  // with awserr.Error's Code and Message methods to get detailed information about
 11645  // the error.
 11646  //
 11647  // See the AWS API reference guide for AWS IoT's
 11648  // API operation GetPercentiles for usage and error information.
 11649  //
 11650  // Returned Error Types:
 11651  //   * InvalidRequestException
 11652  //   The request is not valid.
 11653  //
 11654  //   * ThrottlingException
 11655  //   The rate exceeds the limit.
 11656  //
 11657  //   * UnauthorizedException
 11658  //   You are not authorized to perform this operation.
 11659  //
 11660  //   * ServiceUnavailableException
 11661  //   The service is temporarily unavailable.
 11662  //
 11663  //   * InternalFailureException
 11664  //   An unexpected error has occurred.
 11665  //
 11666  //   * ResourceNotFoundException
 11667  //   The specified resource does not exist.
 11668  //
 11669  //   * InvalidQueryException
 11670  //   The query is invalid.
 11671  //
 11672  //   * InvalidAggregationException
 11673  //   The aggregation is invalid.
 11674  //
 11675  //   * IndexNotReadyException
 11676  //   The index is not ready.
 11677  //
 11678  func (c *IoT) GetPercentiles(input *GetPercentilesInput) (*GetPercentilesOutput, error) {
 11679  	req, out := c.GetPercentilesRequest(input)
 11680  	return out, req.Send()
 11681  }
 11682  
 11683  // GetPercentilesWithContext is the same as GetPercentiles with the addition of
 11684  // the ability to pass a context and additional request options.
 11685  //
 11686  // See GetPercentiles for details on how to use this API operation.
 11687  //
 11688  // The context must be non-nil and will be used for request cancellation. If
 11689  // the context is nil a panic will occur. In the future the SDK may create
 11690  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11691  // for more information on using Contexts.
 11692  func (c *IoT) GetPercentilesWithContext(ctx aws.Context, input *GetPercentilesInput, opts ...request.Option) (*GetPercentilesOutput, error) {
 11693  	req, out := c.GetPercentilesRequest(input)
 11694  	req.SetContext(ctx)
 11695  	req.ApplyOptions(opts...)
 11696  	return out, req.Send()
 11697  }
 11698  
 11699  const opGetPolicy = "GetPolicy"
 11700  
 11701  // GetPolicyRequest generates a "aws/request.Request" representing the
 11702  // client's request for the GetPolicy operation. The "output" return
 11703  // value will be populated with the request's response once the request completes
 11704  // successfully.
 11705  //
 11706  // Use "Send" method on the returned Request to send the API call to the service.
 11707  // the "output" return value is not valid until after Send returns without error.
 11708  //
 11709  // See GetPolicy for more information on using the GetPolicy
 11710  // API call, and error handling.
 11711  //
 11712  // This method is useful when you want to inject custom logic or configuration
 11713  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11714  //
 11715  //
 11716  //    // Example sending a request using the GetPolicyRequest method.
 11717  //    req, resp := client.GetPolicyRequest(params)
 11718  //
 11719  //    err := req.Send()
 11720  //    if err == nil { // resp is now filled
 11721  //        fmt.Println(resp)
 11722  //    }
 11723  func (c *IoT) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
 11724  	op := &request.Operation{
 11725  		Name:       opGetPolicy,
 11726  		HTTPMethod: "GET",
 11727  		HTTPPath:   "/policies/{policyName}",
 11728  	}
 11729  
 11730  	if input == nil {
 11731  		input = &GetPolicyInput{}
 11732  	}
 11733  
 11734  	output = &GetPolicyOutput{}
 11735  	req = c.newRequest(op, input, output)
 11736  	return
 11737  }
 11738  
 11739  // GetPolicy API operation for AWS IoT.
 11740  //
 11741  // Gets information about the specified policy with the policy document of the
 11742  // default version.
 11743  //
 11744  // Requires permission to access the GetPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11745  // action.
 11746  //
 11747  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11748  // with awserr.Error's Code and Message methods to get detailed information about
 11749  // the error.
 11750  //
 11751  // See the AWS API reference guide for AWS IoT's
 11752  // API operation GetPolicy for usage and error information.
 11753  //
 11754  // Returned Error Types:
 11755  //   * ResourceNotFoundException
 11756  //   The specified resource does not exist.
 11757  //
 11758  //   * InvalidRequestException
 11759  //   The request is not valid.
 11760  //
 11761  //   * ThrottlingException
 11762  //   The rate exceeds the limit.
 11763  //
 11764  //   * UnauthorizedException
 11765  //   You are not authorized to perform this operation.
 11766  //
 11767  //   * ServiceUnavailableException
 11768  //   The service is temporarily unavailable.
 11769  //
 11770  //   * InternalFailureException
 11771  //   An unexpected error has occurred.
 11772  //
 11773  func (c *IoT) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
 11774  	req, out := c.GetPolicyRequest(input)
 11775  	return out, req.Send()
 11776  }
 11777  
 11778  // GetPolicyWithContext is the same as GetPolicy with the addition of
 11779  // the ability to pass a context and additional request options.
 11780  //
 11781  // See GetPolicy for details on how to use this API operation.
 11782  //
 11783  // The context must be non-nil and will be used for request cancellation. If
 11784  // the context is nil a panic will occur. In the future the SDK may create
 11785  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11786  // for more information on using Contexts.
 11787  func (c *IoT) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
 11788  	req, out := c.GetPolicyRequest(input)
 11789  	req.SetContext(ctx)
 11790  	req.ApplyOptions(opts...)
 11791  	return out, req.Send()
 11792  }
 11793  
 11794  const opGetPolicyVersion = "GetPolicyVersion"
 11795  
 11796  // GetPolicyVersionRequest generates a "aws/request.Request" representing the
 11797  // client's request for the GetPolicyVersion operation. The "output" return
 11798  // value will be populated with the request's response once the request completes
 11799  // successfully.
 11800  //
 11801  // Use "Send" method on the returned Request to send the API call to the service.
 11802  // the "output" return value is not valid until after Send returns without error.
 11803  //
 11804  // See GetPolicyVersion for more information on using the GetPolicyVersion
 11805  // API call, and error handling.
 11806  //
 11807  // This method is useful when you want to inject custom logic or configuration
 11808  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11809  //
 11810  //
 11811  //    // Example sending a request using the GetPolicyVersionRequest method.
 11812  //    req, resp := client.GetPolicyVersionRequest(params)
 11813  //
 11814  //    err := req.Send()
 11815  //    if err == nil { // resp is now filled
 11816  //        fmt.Println(resp)
 11817  //    }
 11818  func (c *IoT) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
 11819  	op := &request.Operation{
 11820  		Name:       opGetPolicyVersion,
 11821  		HTTPMethod: "GET",
 11822  		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
 11823  	}
 11824  
 11825  	if input == nil {
 11826  		input = &GetPolicyVersionInput{}
 11827  	}
 11828  
 11829  	output = &GetPolicyVersionOutput{}
 11830  	req = c.newRequest(op, input, output)
 11831  	return
 11832  }
 11833  
 11834  // GetPolicyVersion API operation for AWS IoT.
 11835  //
 11836  // Gets information about the specified policy version.
 11837  //
 11838  // Requires permission to access the GetPolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11839  // action.
 11840  //
 11841  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11842  // with awserr.Error's Code and Message methods to get detailed information about
 11843  // the error.
 11844  //
 11845  // See the AWS API reference guide for AWS IoT's
 11846  // API operation GetPolicyVersion for usage and error information.
 11847  //
 11848  // Returned Error Types:
 11849  //   * ResourceNotFoundException
 11850  //   The specified resource does not exist.
 11851  //
 11852  //   * InvalidRequestException
 11853  //   The request is not valid.
 11854  //
 11855  //   * ThrottlingException
 11856  //   The rate exceeds the limit.
 11857  //
 11858  //   * UnauthorizedException
 11859  //   You are not authorized to perform this operation.
 11860  //
 11861  //   * ServiceUnavailableException
 11862  //   The service is temporarily unavailable.
 11863  //
 11864  //   * InternalFailureException
 11865  //   An unexpected error has occurred.
 11866  //
 11867  func (c *IoT) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
 11868  	req, out := c.GetPolicyVersionRequest(input)
 11869  	return out, req.Send()
 11870  }
 11871  
 11872  // GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
 11873  // the ability to pass a context and additional request options.
 11874  //
 11875  // See GetPolicyVersion for details on how to use this API operation.
 11876  //
 11877  // The context must be non-nil and will be used for request cancellation. If
 11878  // the context is nil a panic will occur. In the future the SDK may create
 11879  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11880  // for more information on using Contexts.
 11881  func (c *IoT) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
 11882  	req, out := c.GetPolicyVersionRequest(input)
 11883  	req.SetContext(ctx)
 11884  	req.ApplyOptions(opts...)
 11885  	return out, req.Send()
 11886  }
 11887  
 11888  const opGetRegistrationCode = "GetRegistrationCode"
 11889  
 11890  // GetRegistrationCodeRequest generates a "aws/request.Request" representing the
 11891  // client's request for the GetRegistrationCode operation. The "output" return
 11892  // value will be populated with the request's response once the request completes
 11893  // successfully.
 11894  //
 11895  // Use "Send" method on the returned Request to send the API call to the service.
 11896  // the "output" return value is not valid until after Send returns without error.
 11897  //
 11898  // See GetRegistrationCode for more information on using the GetRegistrationCode
 11899  // API call, and error handling.
 11900  //
 11901  // This method is useful when you want to inject custom logic or configuration
 11902  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11903  //
 11904  //
 11905  //    // Example sending a request using the GetRegistrationCodeRequest method.
 11906  //    req, resp := client.GetRegistrationCodeRequest(params)
 11907  //
 11908  //    err := req.Send()
 11909  //    if err == nil { // resp is now filled
 11910  //        fmt.Println(resp)
 11911  //    }
 11912  func (c *IoT) GetRegistrationCodeRequest(input *GetRegistrationCodeInput) (req *request.Request, output *GetRegistrationCodeOutput) {
 11913  	op := &request.Operation{
 11914  		Name:       opGetRegistrationCode,
 11915  		HTTPMethod: "GET",
 11916  		HTTPPath:   "/registrationcode",
 11917  	}
 11918  
 11919  	if input == nil {
 11920  		input = &GetRegistrationCodeInput{}
 11921  	}
 11922  
 11923  	output = &GetRegistrationCodeOutput{}
 11924  	req = c.newRequest(op, input, output)
 11925  	return
 11926  }
 11927  
 11928  // GetRegistrationCode API operation for AWS IoT.
 11929  //
 11930  // Gets a registration code used to register a CA certificate with IoT.
 11931  //
 11932  // Requires permission to access the GetRegistrationCode (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 11933  // action.
 11934  //
 11935  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 11936  // with awserr.Error's Code and Message methods to get detailed information about
 11937  // the error.
 11938  //
 11939  // See the AWS API reference guide for AWS IoT's
 11940  // API operation GetRegistrationCode for usage and error information.
 11941  //
 11942  // Returned Error Types:
 11943  //   * ThrottlingException
 11944  //   The rate exceeds the limit.
 11945  //
 11946  //   * UnauthorizedException
 11947  //   You are not authorized to perform this operation.
 11948  //
 11949  //   * ServiceUnavailableException
 11950  //   The service is temporarily unavailable.
 11951  //
 11952  //   * InternalFailureException
 11953  //   An unexpected error has occurred.
 11954  //
 11955  //   * InvalidRequestException
 11956  //   The request is not valid.
 11957  //
 11958  func (c *IoT) GetRegistrationCode(input *GetRegistrationCodeInput) (*GetRegistrationCodeOutput, error) {
 11959  	req, out := c.GetRegistrationCodeRequest(input)
 11960  	return out, req.Send()
 11961  }
 11962  
 11963  // GetRegistrationCodeWithContext is the same as GetRegistrationCode with the addition of
 11964  // the ability to pass a context and additional request options.
 11965  //
 11966  // See GetRegistrationCode for details on how to use this API operation.
 11967  //
 11968  // The context must be non-nil and will be used for request cancellation. If
 11969  // the context is nil a panic will occur. In the future the SDK may create
 11970  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 11971  // for more information on using Contexts.
 11972  func (c *IoT) GetRegistrationCodeWithContext(ctx aws.Context, input *GetRegistrationCodeInput, opts ...request.Option) (*GetRegistrationCodeOutput, error) {
 11973  	req, out := c.GetRegistrationCodeRequest(input)
 11974  	req.SetContext(ctx)
 11975  	req.ApplyOptions(opts...)
 11976  	return out, req.Send()
 11977  }
 11978  
 11979  const opGetStatistics = "GetStatistics"
 11980  
 11981  // GetStatisticsRequest generates a "aws/request.Request" representing the
 11982  // client's request for the GetStatistics operation. The "output" return
 11983  // value will be populated with the request's response once the request completes
 11984  // successfully.
 11985  //
 11986  // Use "Send" method on the returned Request to send the API call to the service.
 11987  // the "output" return value is not valid until after Send returns without error.
 11988  //
 11989  // See GetStatistics for more information on using the GetStatistics
 11990  // API call, and error handling.
 11991  //
 11992  // This method is useful when you want to inject custom logic or configuration
 11993  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 11994  //
 11995  //
 11996  //    // Example sending a request using the GetStatisticsRequest method.
 11997  //    req, resp := client.GetStatisticsRequest(params)
 11998  //
 11999  //    err := req.Send()
 12000  //    if err == nil { // resp is now filled
 12001  //        fmt.Println(resp)
 12002  //    }
 12003  func (c *IoT) GetStatisticsRequest(input *GetStatisticsInput) (req *request.Request, output *GetStatisticsOutput) {
 12004  	op := &request.Operation{
 12005  		Name:       opGetStatistics,
 12006  		HTTPMethod: "POST",
 12007  		HTTPPath:   "/indices/statistics",
 12008  	}
 12009  
 12010  	if input == nil {
 12011  		input = &GetStatisticsInput{}
 12012  	}
 12013  
 12014  	output = &GetStatisticsOutput{}
 12015  	req = c.newRequest(op, input, output)
 12016  	return
 12017  }
 12018  
 12019  // GetStatistics API operation for AWS IoT.
 12020  //
 12021  // Returns the count, average, sum, minimum, maximum, sum of squares, variance,
 12022  // and standard deviation for the specified aggregated field. If the aggregation
 12023  // field is of type String, only the count statistic is returned.
 12024  //
 12025  // Requires permission to access the GetStatistics (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12026  // action.
 12027  //
 12028  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12029  // with awserr.Error's Code and Message methods to get detailed information about
 12030  // the error.
 12031  //
 12032  // See the AWS API reference guide for AWS IoT's
 12033  // API operation GetStatistics for usage and error information.
 12034  //
 12035  // Returned Error Types:
 12036  //   * InvalidRequestException
 12037  //   The request is not valid.
 12038  //
 12039  //   * ThrottlingException
 12040  //   The rate exceeds the limit.
 12041  //
 12042  //   * UnauthorizedException
 12043  //   You are not authorized to perform this operation.
 12044  //
 12045  //   * ServiceUnavailableException
 12046  //   The service is temporarily unavailable.
 12047  //
 12048  //   * InternalFailureException
 12049  //   An unexpected error has occurred.
 12050  //
 12051  //   * ResourceNotFoundException
 12052  //   The specified resource does not exist.
 12053  //
 12054  //   * InvalidQueryException
 12055  //   The query is invalid.
 12056  //
 12057  //   * InvalidAggregationException
 12058  //   The aggregation is invalid.
 12059  //
 12060  //   * IndexNotReadyException
 12061  //   The index is not ready.
 12062  //
 12063  func (c *IoT) GetStatistics(input *GetStatisticsInput) (*GetStatisticsOutput, error) {
 12064  	req, out := c.GetStatisticsRequest(input)
 12065  	return out, req.Send()
 12066  }
 12067  
 12068  // GetStatisticsWithContext is the same as GetStatistics with the addition of
 12069  // the ability to pass a context and additional request options.
 12070  //
 12071  // See GetStatistics for details on how to use this API operation.
 12072  //
 12073  // The context must be non-nil and will be used for request cancellation. If
 12074  // the context is nil a panic will occur. In the future the SDK may create
 12075  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12076  // for more information on using Contexts.
 12077  func (c *IoT) GetStatisticsWithContext(ctx aws.Context, input *GetStatisticsInput, opts ...request.Option) (*GetStatisticsOutput, error) {
 12078  	req, out := c.GetStatisticsRequest(input)
 12079  	req.SetContext(ctx)
 12080  	req.ApplyOptions(opts...)
 12081  	return out, req.Send()
 12082  }
 12083  
 12084  const opGetTopicRule = "GetTopicRule"
 12085  
 12086  // GetTopicRuleRequest generates a "aws/request.Request" representing the
 12087  // client's request for the GetTopicRule operation. The "output" return
 12088  // value will be populated with the request's response once the request completes
 12089  // successfully.
 12090  //
 12091  // Use "Send" method on the returned Request to send the API call to the service.
 12092  // the "output" return value is not valid until after Send returns without error.
 12093  //
 12094  // See GetTopicRule for more information on using the GetTopicRule
 12095  // API call, and error handling.
 12096  //
 12097  // This method is useful when you want to inject custom logic or configuration
 12098  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12099  //
 12100  //
 12101  //    // Example sending a request using the GetTopicRuleRequest method.
 12102  //    req, resp := client.GetTopicRuleRequest(params)
 12103  //
 12104  //    err := req.Send()
 12105  //    if err == nil { // resp is now filled
 12106  //        fmt.Println(resp)
 12107  //    }
 12108  func (c *IoT) GetTopicRuleRequest(input *GetTopicRuleInput) (req *request.Request, output *GetTopicRuleOutput) {
 12109  	op := &request.Operation{
 12110  		Name:       opGetTopicRule,
 12111  		HTTPMethod: "GET",
 12112  		HTTPPath:   "/rules/{ruleName}",
 12113  	}
 12114  
 12115  	if input == nil {
 12116  		input = &GetTopicRuleInput{}
 12117  	}
 12118  
 12119  	output = &GetTopicRuleOutput{}
 12120  	req = c.newRequest(op, input, output)
 12121  	return
 12122  }
 12123  
 12124  // GetTopicRule API operation for AWS IoT.
 12125  //
 12126  // Gets information about the rule.
 12127  //
 12128  // Requires permission to access the GetTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12129  // action.
 12130  //
 12131  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12132  // with awserr.Error's Code and Message methods to get detailed information about
 12133  // the error.
 12134  //
 12135  // See the AWS API reference guide for AWS IoT's
 12136  // API operation GetTopicRule for usage and error information.
 12137  //
 12138  // Returned Error Types:
 12139  //   * InternalException
 12140  //   An unexpected error has occurred.
 12141  //
 12142  //   * InvalidRequestException
 12143  //   The request is not valid.
 12144  //
 12145  //   * ServiceUnavailableException
 12146  //   The service is temporarily unavailable.
 12147  //
 12148  //   * UnauthorizedException
 12149  //   You are not authorized to perform this operation.
 12150  //
 12151  func (c *IoT) GetTopicRule(input *GetTopicRuleInput) (*GetTopicRuleOutput, error) {
 12152  	req, out := c.GetTopicRuleRequest(input)
 12153  	return out, req.Send()
 12154  }
 12155  
 12156  // GetTopicRuleWithContext is the same as GetTopicRule with the addition of
 12157  // the ability to pass a context and additional request options.
 12158  //
 12159  // See GetTopicRule for details on how to use this API operation.
 12160  //
 12161  // The context must be non-nil and will be used for request cancellation. If
 12162  // the context is nil a panic will occur. In the future the SDK may create
 12163  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12164  // for more information on using Contexts.
 12165  func (c *IoT) GetTopicRuleWithContext(ctx aws.Context, input *GetTopicRuleInput, opts ...request.Option) (*GetTopicRuleOutput, error) {
 12166  	req, out := c.GetTopicRuleRequest(input)
 12167  	req.SetContext(ctx)
 12168  	req.ApplyOptions(opts...)
 12169  	return out, req.Send()
 12170  }
 12171  
 12172  const opGetTopicRuleDestination = "GetTopicRuleDestination"
 12173  
 12174  // GetTopicRuleDestinationRequest generates a "aws/request.Request" representing the
 12175  // client's request for the GetTopicRuleDestination operation. The "output" return
 12176  // value will be populated with the request's response once the request completes
 12177  // successfully.
 12178  //
 12179  // Use "Send" method on the returned Request to send the API call to the service.
 12180  // the "output" return value is not valid until after Send returns without error.
 12181  //
 12182  // See GetTopicRuleDestination for more information on using the GetTopicRuleDestination
 12183  // API call, and error handling.
 12184  //
 12185  // This method is useful when you want to inject custom logic or configuration
 12186  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12187  //
 12188  //
 12189  //    // Example sending a request using the GetTopicRuleDestinationRequest method.
 12190  //    req, resp := client.GetTopicRuleDestinationRequest(params)
 12191  //
 12192  //    err := req.Send()
 12193  //    if err == nil { // resp is now filled
 12194  //        fmt.Println(resp)
 12195  //    }
 12196  func (c *IoT) GetTopicRuleDestinationRequest(input *GetTopicRuleDestinationInput) (req *request.Request, output *GetTopicRuleDestinationOutput) {
 12197  	op := &request.Operation{
 12198  		Name:       opGetTopicRuleDestination,
 12199  		HTTPMethod: "GET",
 12200  		HTTPPath:   "/destinations/{arn+}",
 12201  	}
 12202  
 12203  	if input == nil {
 12204  		input = &GetTopicRuleDestinationInput{}
 12205  	}
 12206  
 12207  	output = &GetTopicRuleDestinationOutput{}
 12208  	req = c.newRequest(op, input, output)
 12209  	return
 12210  }
 12211  
 12212  // GetTopicRuleDestination API operation for AWS IoT.
 12213  //
 12214  // Gets information about a topic rule destination.
 12215  //
 12216  // Requires permission to access the GetTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12217  // action.
 12218  //
 12219  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12220  // with awserr.Error's Code and Message methods to get detailed information about
 12221  // the error.
 12222  //
 12223  // See the AWS API reference guide for AWS IoT's
 12224  // API operation GetTopicRuleDestination for usage and error information.
 12225  //
 12226  // Returned Error Types:
 12227  //   * InternalException
 12228  //   An unexpected error has occurred.
 12229  //
 12230  //   * InvalidRequestException
 12231  //   The request is not valid.
 12232  //
 12233  //   * ServiceUnavailableException
 12234  //   The service is temporarily unavailable.
 12235  //
 12236  //   * UnauthorizedException
 12237  //   You are not authorized to perform this operation.
 12238  //
 12239  func (c *IoT) GetTopicRuleDestination(input *GetTopicRuleDestinationInput) (*GetTopicRuleDestinationOutput, error) {
 12240  	req, out := c.GetTopicRuleDestinationRequest(input)
 12241  	return out, req.Send()
 12242  }
 12243  
 12244  // GetTopicRuleDestinationWithContext is the same as GetTopicRuleDestination with the addition of
 12245  // the ability to pass a context and additional request options.
 12246  //
 12247  // See GetTopicRuleDestination for details on how to use this API operation.
 12248  //
 12249  // The context must be non-nil and will be used for request cancellation. If
 12250  // the context is nil a panic will occur. In the future the SDK may create
 12251  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12252  // for more information on using Contexts.
 12253  func (c *IoT) GetTopicRuleDestinationWithContext(ctx aws.Context, input *GetTopicRuleDestinationInput, opts ...request.Option) (*GetTopicRuleDestinationOutput, error) {
 12254  	req, out := c.GetTopicRuleDestinationRequest(input)
 12255  	req.SetContext(ctx)
 12256  	req.ApplyOptions(opts...)
 12257  	return out, req.Send()
 12258  }
 12259  
 12260  const opGetV2LoggingOptions = "GetV2LoggingOptions"
 12261  
 12262  // GetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
 12263  // client's request for the GetV2LoggingOptions operation. The "output" return
 12264  // value will be populated with the request's response once the request completes
 12265  // successfully.
 12266  //
 12267  // Use "Send" method on the returned Request to send the API call to the service.
 12268  // the "output" return value is not valid until after Send returns without error.
 12269  //
 12270  // See GetV2LoggingOptions for more information on using the GetV2LoggingOptions
 12271  // API call, and error handling.
 12272  //
 12273  // This method is useful when you want to inject custom logic or configuration
 12274  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12275  //
 12276  //
 12277  //    // Example sending a request using the GetV2LoggingOptionsRequest method.
 12278  //    req, resp := client.GetV2LoggingOptionsRequest(params)
 12279  //
 12280  //    err := req.Send()
 12281  //    if err == nil { // resp is now filled
 12282  //        fmt.Println(resp)
 12283  //    }
 12284  func (c *IoT) GetV2LoggingOptionsRequest(input *GetV2LoggingOptionsInput) (req *request.Request, output *GetV2LoggingOptionsOutput) {
 12285  	op := &request.Operation{
 12286  		Name:       opGetV2LoggingOptions,
 12287  		HTTPMethod: "GET",
 12288  		HTTPPath:   "/v2LoggingOptions",
 12289  	}
 12290  
 12291  	if input == nil {
 12292  		input = &GetV2LoggingOptionsInput{}
 12293  	}
 12294  
 12295  	output = &GetV2LoggingOptionsOutput{}
 12296  	req = c.newRequest(op, input, output)
 12297  	return
 12298  }
 12299  
 12300  // GetV2LoggingOptions API operation for AWS IoT.
 12301  //
 12302  // Gets the fine grained logging options.
 12303  //
 12304  // Requires permission to access the GetV2LoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12305  // action.
 12306  //
 12307  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12308  // with awserr.Error's Code and Message methods to get detailed information about
 12309  // the error.
 12310  //
 12311  // See the AWS API reference guide for AWS IoT's
 12312  // API operation GetV2LoggingOptions for usage and error information.
 12313  //
 12314  // Returned Error Types:
 12315  //   * InternalException
 12316  //   An unexpected error has occurred.
 12317  //
 12318  //   * NotConfiguredException
 12319  //   The resource is not configured.
 12320  //
 12321  //   * ServiceUnavailableException
 12322  //   The service is temporarily unavailable.
 12323  //
 12324  func (c *IoT) GetV2LoggingOptions(input *GetV2LoggingOptionsInput) (*GetV2LoggingOptionsOutput, error) {
 12325  	req, out := c.GetV2LoggingOptionsRequest(input)
 12326  	return out, req.Send()
 12327  }
 12328  
 12329  // GetV2LoggingOptionsWithContext is the same as GetV2LoggingOptions with the addition of
 12330  // the ability to pass a context and additional request options.
 12331  //
 12332  // See GetV2LoggingOptions for details on how to use this API operation.
 12333  //
 12334  // The context must be non-nil and will be used for request cancellation. If
 12335  // the context is nil a panic will occur. In the future the SDK may create
 12336  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12337  // for more information on using Contexts.
 12338  func (c *IoT) GetV2LoggingOptionsWithContext(ctx aws.Context, input *GetV2LoggingOptionsInput, opts ...request.Option) (*GetV2LoggingOptionsOutput, error) {
 12339  	req, out := c.GetV2LoggingOptionsRequest(input)
 12340  	req.SetContext(ctx)
 12341  	req.ApplyOptions(opts...)
 12342  	return out, req.Send()
 12343  }
 12344  
 12345  const opListActiveViolations = "ListActiveViolations"
 12346  
 12347  // ListActiveViolationsRequest generates a "aws/request.Request" representing the
 12348  // client's request for the ListActiveViolations operation. The "output" return
 12349  // value will be populated with the request's response once the request completes
 12350  // successfully.
 12351  //
 12352  // Use "Send" method on the returned Request to send the API call to the service.
 12353  // the "output" return value is not valid until after Send returns without error.
 12354  //
 12355  // See ListActiveViolations for more information on using the ListActiveViolations
 12356  // API call, and error handling.
 12357  //
 12358  // This method is useful when you want to inject custom logic or configuration
 12359  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12360  //
 12361  //
 12362  //    // Example sending a request using the ListActiveViolationsRequest method.
 12363  //    req, resp := client.ListActiveViolationsRequest(params)
 12364  //
 12365  //    err := req.Send()
 12366  //    if err == nil { // resp is now filled
 12367  //        fmt.Println(resp)
 12368  //    }
 12369  func (c *IoT) ListActiveViolationsRequest(input *ListActiveViolationsInput) (req *request.Request, output *ListActiveViolationsOutput) {
 12370  	op := &request.Operation{
 12371  		Name:       opListActiveViolations,
 12372  		HTTPMethod: "GET",
 12373  		HTTPPath:   "/active-violations",
 12374  		Paginator: &request.Paginator{
 12375  			InputTokens:     []string{"nextToken"},
 12376  			OutputTokens:    []string{"nextToken"},
 12377  			LimitToken:      "maxResults",
 12378  			TruncationToken: "",
 12379  		},
 12380  	}
 12381  
 12382  	if input == nil {
 12383  		input = &ListActiveViolationsInput{}
 12384  	}
 12385  
 12386  	output = &ListActiveViolationsOutput{}
 12387  	req = c.newRequest(op, input, output)
 12388  	return
 12389  }
 12390  
 12391  // ListActiveViolations API operation for AWS IoT.
 12392  //
 12393  // Lists the active violations for a given Device Defender security profile.
 12394  //
 12395  // Requires permission to access the ListActiveViolations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12396  // action.
 12397  //
 12398  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12399  // with awserr.Error's Code and Message methods to get detailed information about
 12400  // the error.
 12401  //
 12402  // See the AWS API reference guide for AWS IoT's
 12403  // API operation ListActiveViolations for usage and error information.
 12404  //
 12405  // Returned Error Types:
 12406  //   * InvalidRequestException
 12407  //   The request is not valid.
 12408  //
 12409  //   * ResourceNotFoundException
 12410  //   The specified resource does not exist.
 12411  //
 12412  //   * ThrottlingException
 12413  //   The rate exceeds the limit.
 12414  //
 12415  //   * InternalFailureException
 12416  //   An unexpected error has occurred.
 12417  //
 12418  func (c *IoT) ListActiveViolations(input *ListActiveViolationsInput) (*ListActiveViolationsOutput, error) {
 12419  	req, out := c.ListActiveViolationsRequest(input)
 12420  	return out, req.Send()
 12421  }
 12422  
 12423  // ListActiveViolationsWithContext is the same as ListActiveViolations with the addition of
 12424  // the ability to pass a context and additional request options.
 12425  //
 12426  // See ListActiveViolations for details on how to use this API operation.
 12427  //
 12428  // The context must be non-nil and will be used for request cancellation. If
 12429  // the context is nil a panic will occur. In the future the SDK may create
 12430  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12431  // for more information on using Contexts.
 12432  func (c *IoT) ListActiveViolationsWithContext(ctx aws.Context, input *ListActiveViolationsInput, opts ...request.Option) (*ListActiveViolationsOutput, error) {
 12433  	req, out := c.ListActiveViolationsRequest(input)
 12434  	req.SetContext(ctx)
 12435  	req.ApplyOptions(opts...)
 12436  	return out, req.Send()
 12437  }
 12438  
 12439  // ListActiveViolationsPages iterates over the pages of a ListActiveViolations operation,
 12440  // calling the "fn" function with the response data for each page. To stop
 12441  // iterating, return false from the fn function.
 12442  //
 12443  // See ListActiveViolations method for more information on how to use this operation.
 12444  //
 12445  // Note: This operation can generate multiple requests to a service.
 12446  //
 12447  //    // Example iterating over at most 3 pages of a ListActiveViolations operation.
 12448  //    pageNum := 0
 12449  //    err := client.ListActiveViolationsPages(params,
 12450  //        func(page *iot.ListActiveViolationsOutput, lastPage bool) bool {
 12451  //            pageNum++
 12452  //            fmt.Println(page)
 12453  //            return pageNum <= 3
 12454  //        })
 12455  //
 12456  func (c *IoT) ListActiveViolationsPages(input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool) error {
 12457  	return c.ListActiveViolationsPagesWithContext(aws.BackgroundContext(), input, fn)
 12458  }
 12459  
 12460  // ListActiveViolationsPagesWithContext same as ListActiveViolationsPages except
 12461  // it takes a Context and allows setting request options on the pages.
 12462  //
 12463  // The context must be non-nil and will be used for request cancellation. If
 12464  // the context is nil a panic will occur. In the future the SDK may create
 12465  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12466  // for more information on using Contexts.
 12467  func (c *IoT) ListActiveViolationsPagesWithContext(ctx aws.Context, input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool, opts ...request.Option) error {
 12468  	p := request.Pagination{
 12469  		NewRequest: func() (*request.Request, error) {
 12470  			var inCpy *ListActiveViolationsInput
 12471  			if input != nil {
 12472  				tmp := *input
 12473  				inCpy = &tmp
 12474  			}
 12475  			req, _ := c.ListActiveViolationsRequest(inCpy)
 12476  			req.SetContext(ctx)
 12477  			req.ApplyOptions(opts...)
 12478  			return req, nil
 12479  		},
 12480  	}
 12481  
 12482  	for p.Next() {
 12483  		if !fn(p.Page().(*ListActiveViolationsOutput), !p.HasNextPage()) {
 12484  			break
 12485  		}
 12486  	}
 12487  
 12488  	return p.Err()
 12489  }
 12490  
 12491  const opListAttachedPolicies = "ListAttachedPolicies"
 12492  
 12493  // ListAttachedPoliciesRequest generates a "aws/request.Request" representing the
 12494  // client's request for the ListAttachedPolicies operation. The "output" return
 12495  // value will be populated with the request's response once the request completes
 12496  // successfully.
 12497  //
 12498  // Use "Send" method on the returned Request to send the API call to the service.
 12499  // the "output" return value is not valid until after Send returns without error.
 12500  //
 12501  // See ListAttachedPolicies for more information on using the ListAttachedPolicies
 12502  // API call, and error handling.
 12503  //
 12504  // This method is useful when you want to inject custom logic or configuration
 12505  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12506  //
 12507  //
 12508  //    // Example sending a request using the ListAttachedPoliciesRequest method.
 12509  //    req, resp := client.ListAttachedPoliciesRequest(params)
 12510  //
 12511  //    err := req.Send()
 12512  //    if err == nil { // resp is now filled
 12513  //        fmt.Println(resp)
 12514  //    }
 12515  func (c *IoT) ListAttachedPoliciesRequest(input *ListAttachedPoliciesInput) (req *request.Request, output *ListAttachedPoliciesOutput) {
 12516  	op := &request.Operation{
 12517  		Name:       opListAttachedPolicies,
 12518  		HTTPMethod: "POST",
 12519  		HTTPPath:   "/attached-policies/{target}",
 12520  		Paginator: &request.Paginator{
 12521  			InputTokens:     []string{"marker"},
 12522  			OutputTokens:    []string{"nextMarker"},
 12523  			LimitToken:      "pageSize",
 12524  			TruncationToken: "",
 12525  		},
 12526  	}
 12527  
 12528  	if input == nil {
 12529  		input = &ListAttachedPoliciesInput{}
 12530  	}
 12531  
 12532  	output = &ListAttachedPoliciesOutput{}
 12533  	req = c.newRequest(op, input, output)
 12534  	return
 12535  }
 12536  
 12537  // ListAttachedPolicies API operation for AWS IoT.
 12538  //
 12539  // Lists the policies attached to the specified thing group.
 12540  //
 12541  // Requires permission to access the ListAttachedPolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12542  // action.
 12543  //
 12544  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12545  // with awserr.Error's Code and Message methods to get detailed information about
 12546  // the error.
 12547  //
 12548  // See the AWS API reference guide for AWS IoT's
 12549  // API operation ListAttachedPolicies for usage and error information.
 12550  //
 12551  // Returned Error Types:
 12552  //   * ResourceNotFoundException
 12553  //   The specified resource does not exist.
 12554  //
 12555  //   * InvalidRequestException
 12556  //   The request is not valid.
 12557  //
 12558  //   * ThrottlingException
 12559  //   The rate exceeds the limit.
 12560  //
 12561  //   * UnauthorizedException
 12562  //   You are not authorized to perform this operation.
 12563  //
 12564  //   * ServiceUnavailableException
 12565  //   The service is temporarily unavailable.
 12566  //
 12567  //   * InternalFailureException
 12568  //   An unexpected error has occurred.
 12569  //
 12570  //   * LimitExceededException
 12571  //   A limit has been exceeded.
 12572  //
 12573  func (c *IoT) ListAttachedPolicies(input *ListAttachedPoliciesInput) (*ListAttachedPoliciesOutput, error) {
 12574  	req, out := c.ListAttachedPoliciesRequest(input)
 12575  	return out, req.Send()
 12576  }
 12577  
 12578  // ListAttachedPoliciesWithContext is the same as ListAttachedPolicies with the addition of
 12579  // the ability to pass a context and additional request options.
 12580  //
 12581  // See ListAttachedPolicies for details on how to use this API operation.
 12582  //
 12583  // The context must be non-nil and will be used for request cancellation. If
 12584  // the context is nil a panic will occur. In the future the SDK may create
 12585  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12586  // for more information on using Contexts.
 12587  func (c *IoT) ListAttachedPoliciesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, opts ...request.Option) (*ListAttachedPoliciesOutput, error) {
 12588  	req, out := c.ListAttachedPoliciesRequest(input)
 12589  	req.SetContext(ctx)
 12590  	req.ApplyOptions(opts...)
 12591  	return out, req.Send()
 12592  }
 12593  
 12594  // ListAttachedPoliciesPages iterates over the pages of a ListAttachedPolicies operation,
 12595  // calling the "fn" function with the response data for each page. To stop
 12596  // iterating, return false from the fn function.
 12597  //
 12598  // See ListAttachedPolicies method for more information on how to use this operation.
 12599  //
 12600  // Note: This operation can generate multiple requests to a service.
 12601  //
 12602  //    // Example iterating over at most 3 pages of a ListAttachedPolicies operation.
 12603  //    pageNum := 0
 12604  //    err := client.ListAttachedPoliciesPages(params,
 12605  //        func(page *iot.ListAttachedPoliciesOutput, lastPage bool) bool {
 12606  //            pageNum++
 12607  //            fmt.Println(page)
 12608  //            return pageNum <= 3
 12609  //        })
 12610  //
 12611  func (c *IoT) ListAttachedPoliciesPages(input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool) error {
 12612  	return c.ListAttachedPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
 12613  }
 12614  
 12615  // ListAttachedPoliciesPagesWithContext same as ListAttachedPoliciesPages except
 12616  // it takes a Context and allows setting request options on the pages.
 12617  //
 12618  // The context must be non-nil and will be used for request cancellation. If
 12619  // the context is nil a panic will occur. In the future the SDK may create
 12620  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12621  // for more information on using Contexts.
 12622  func (c *IoT) ListAttachedPoliciesPagesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool, opts ...request.Option) error {
 12623  	p := request.Pagination{
 12624  		NewRequest: func() (*request.Request, error) {
 12625  			var inCpy *ListAttachedPoliciesInput
 12626  			if input != nil {
 12627  				tmp := *input
 12628  				inCpy = &tmp
 12629  			}
 12630  			req, _ := c.ListAttachedPoliciesRequest(inCpy)
 12631  			req.SetContext(ctx)
 12632  			req.ApplyOptions(opts...)
 12633  			return req, nil
 12634  		},
 12635  	}
 12636  
 12637  	for p.Next() {
 12638  		if !fn(p.Page().(*ListAttachedPoliciesOutput), !p.HasNextPage()) {
 12639  			break
 12640  		}
 12641  	}
 12642  
 12643  	return p.Err()
 12644  }
 12645  
 12646  const opListAuditFindings = "ListAuditFindings"
 12647  
 12648  // ListAuditFindingsRequest generates a "aws/request.Request" representing the
 12649  // client's request for the ListAuditFindings operation. The "output" return
 12650  // value will be populated with the request's response once the request completes
 12651  // successfully.
 12652  //
 12653  // Use "Send" method on the returned Request to send the API call to the service.
 12654  // the "output" return value is not valid until after Send returns without error.
 12655  //
 12656  // See ListAuditFindings for more information on using the ListAuditFindings
 12657  // API call, and error handling.
 12658  //
 12659  // This method is useful when you want to inject custom logic or configuration
 12660  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12661  //
 12662  //
 12663  //    // Example sending a request using the ListAuditFindingsRequest method.
 12664  //    req, resp := client.ListAuditFindingsRequest(params)
 12665  //
 12666  //    err := req.Send()
 12667  //    if err == nil { // resp is now filled
 12668  //        fmt.Println(resp)
 12669  //    }
 12670  func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *request.Request, output *ListAuditFindingsOutput) {
 12671  	op := &request.Operation{
 12672  		Name:       opListAuditFindings,
 12673  		HTTPMethod: "POST",
 12674  		HTTPPath:   "/audit/findings",
 12675  		Paginator: &request.Paginator{
 12676  			InputTokens:     []string{"nextToken"},
 12677  			OutputTokens:    []string{"nextToken"},
 12678  			LimitToken:      "maxResults",
 12679  			TruncationToken: "",
 12680  		},
 12681  	}
 12682  
 12683  	if input == nil {
 12684  		input = &ListAuditFindingsInput{}
 12685  	}
 12686  
 12687  	output = &ListAuditFindingsOutput{}
 12688  	req = c.newRequest(op, input, output)
 12689  	return
 12690  }
 12691  
 12692  // ListAuditFindings API operation for AWS IoT.
 12693  //
 12694  // Lists the findings (results) of a Device Defender audit or of the audits
 12695  // performed during a specified time period. (Findings are retained for 90 days.)
 12696  //
 12697  // Requires permission to access the ListAuditFindings (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12698  // action.
 12699  //
 12700  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12701  // with awserr.Error's Code and Message methods to get detailed information about
 12702  // the error.
 12703  //
 12704  // See the AWS API reference guide for AWS IoT's
 12705  // API operation ListAuditFindings for usage and error information.
 12706  //
 12707  // Returned Error Types:
 12708  //   * InvalidRequestException
 12709  //   The request is not valid.
 12710  //
 12711  //   * ThrottlingException
 12712  //   The rate exceeds the limit.
 12713  //
 12714  //   * InternalFailureException
 12715  //   An unexpected error has occurred.
 12716  //
 12717  func (c *IoT) ListAuditFindings(input *ListAuditFindingsInput) (*ListAuditFindingsOutput, error) {
 12718  	req, out := c.ListAuditFindingsRequest(input)
 12719  	return out, req.Send()
 12720  }
 12721  
 12722  // ListAuditFindingsWithContext is the same as ListAuditFindings with the addition of
 12723  // the ability to pass a context and additional request options.
 12724  //
 12725  // See ListAuditFindings for details on how to use this API operation.
 12726  //
 12727  // The context must be non-nil and will be used for request cancellation. If
 12728  // the context is nil a panic will occur. In the future the SDK may create
 12729  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12730  // for more information on using Contexts.
 12731  func (c *IoT) ListAuditFindingsWithContext(ctx aws.Context, input *ListAuditFindingsInput, opts ...request.Option) (*ListAuditFindingsOutput, error) {
 12732  	req, out := c.ListAuditFindingsRequest(input)
 12733  	req.SetContext(ctx)
 12734  	req.ApplyOptions(opts...)
 12735  	return out, req.Send()
 12736  }
 12737  
 12738  // ListAuditFindingsPages iterates over the pages of a ListAuditFindings operation,
 12739  // calling the "fn" function with the response data for each page. To stop
 12740  // iterating, return false from the fn function.
 12741  //
 12742  // See ListAuditFindings method for more information on how to use this operation.
 12743  //
 12744  // Note: This operation can generate multiple requests to a service.
 12745  //
 12746  //    // Example iterating over at most 3 pages of a ListAuditFindings operation.
 12747  //    pageNum := 0
 12748  //    err := client.ListAuditFindingsPages(params,
 12749  //        func(page *iot.ListAuditFindingsOutput, lastPage bool) bool {
 12750  //            pageNum++
 12751  //            fmt.Println(page)
 12752  //            return pageNum <= 3
 12753  //        })
 12754  //
 12755  func (c *IoT) ListAuditFindingsPages(input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool) error {
 12756  	return c.ListAuditFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
 12757  }
 12758  
 12759  // ListAuditFindingsPagesWithContext same as ListAuditFindingsPages except
 12760  // it takes a Context and allows setting request options on the pages.
 12761  //
 12762  // The context must be non-nil and will be used for request cancellation. If
 12763  // the context is nil a panic will occur. In the future the SDK may create
 12764  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12765  // for more information on using Contexts.
 12766  func (c *IoT) ListAuditFindingsPagesWithContext(ctx aws.Context, input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool, opts ...request.Option) error {
 12767  	p := request.Pagination{
 12768  		NewRequest: func() (*request.Request, error) {
 12769  			var inCpy *ListAuditFindingsInput
 12770  			if input != nil {
 12771  				tmp := *input
 12772  				inCpy = &tmp
 12773  			}
 12774  			req, _ := c.ListAuditFindingsRequest(inCpy)
 12775  			req.SetContext(ctx)
 12776  			req.ApplyOptions(opts...)
 12777  			return req, nil
 12778  		},
 12779  	}
 12780  
 12781  	for p.Next() {
 12782  		if !fn(p.Page().(*ListAuditFindingsOutput), !p.HasNextPage()) {
 12783  			break
 12784  		}
 12785  	}
 12786  
 12787  	return p.Err()
 12788  }
 12789  
 12790  const opListAuditMitigationActionsExecutions = "ListAuditMitigationActionsExecutions"
 12791  
 12792  // ListAuditMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
 12793  // client's request for the ListAuditMitigationActionsExecutions operation. The "output" return
 12794  // value will be populated with the request's response once the request completes
 12795  // successfully.
 12796  //
 12797  // Use "Send" method on the returned Request to send the API call to the service.
 12798  // the "output" return value is not valid until after Send returns without error.
 12799  //
 12800  // See ListAuditMitigationActionsExecutions for more information on using the ListAuditMitigationActionsExecutions
 12801  // API call, and error handling.
 12802  //
 12803  // This method is useful when you want to inject custom logic or configuration
 12804  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12805  //
 12806  //
 12807  //    // Example sending a request using the ListAuditMitigationActionsExecutionsRequest method.
 12808  //    req, resp := client.ListAuditMitigationActionsExecutionsRequest(params)
 12809  //
 12810  //    err := req.Send()
 12811  //    if err == nil { // resp is now filled
 12812  //        fmt.Println(resp)
 12813  //    }
 12814  func (c *IoT) ListAuditMitigationActionsExecutionsRequest(input *ListAuditMitigationActionsExecutionsInput) (req *request.Request, output *ListAuditMitigationActionsExecutionsOutput) {
 12815  	op := &request.Operation{
 12816  		Name:       opListAuditMitigationActionsExecutions,
 12817  		HTTPMethod: "GET",
 12818  		HTTPPath:   "/audit/mitigationactions/executions",
 12819  		Paginator: &request.Paginator{
 12820  			InputTokens:     []string{"nextToken"},
 12821  			OutputTokens:    []string{"nextToken"},
 12822  			LimitToken:      "maxResults",
 12823  			TruncationToken: "",
 12824  		},
 12825  	}
 12826  
 12827  	if input == nil {
 12828  		input = &ListAuditMitigationActionsExecutionsInput{}
 12829  	}
 12830  
 12831  	output = &ListAuditMitigationActionsExecutionsOutput{}
 12832  	req = c.newRequest(op, input, output)
 12833  	return
 12834  }
 12835  
 12836  // ListAuditMitigationActionsExecutions API operation for AWS IoT.
 12837  //
 12838  // Gets the status of audit mitigation action tasks that were executed.
 12839  //
 12840  // Requires permission to access the ListAuditMitigationActionsExecutions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12841  // action.
 12842  //
 12843  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12844  // with awserr.Error's Code and Message methods to get detailed information about
 12845  // the error.
 12846  //
 12847  // See the AWS API reference guide for AWS IoT's
 12848  // API operation ListAuditMitigationActionsExecutions for usage and error information.
 12849  //
 12850  // Returned Error Types:
 12851  //   * InvalidRequestException
 12852  //   The request is not valid.
 12853  //
 12854  //   * ThrottlingException
 12855  //   The rate exceeds the limit.
 12856  //
 12857  //   * InternalFailureException
 12858  //   An unexpected error has occurred.
 12859  //
 12860  func (c *IoT) ListAuditMitigationActionsExecutions(input *ListAuditMitigationActionsExecutionsInput) (*ListAuditMitigationActionsExecutionsOutput, error) {
 12861  	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
 12862  	return out, req.Send()
 12863  }
 12864  
 12865  // ListAuditMitigationActionsExecutionsWithContext is the same as ListAuditMitigationActionsExecutions with the addition of
 12866  // the ability to pass a context and additional request options.
 12867  //
 12868  // See ListAuditMitigationActionsExecutions for details on how to use this API operation.
 12869  //
 12870  // The context must be non-nil and will be used for request cancellation. If
 12871  // the context is nil a panic will occur. In the future the SDK may create
 12872  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12873  // for more information on using Contexts.
 12874  func (c *IoT) ListAuditMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, opts ...request.Option) (*ListAuditMitigationActionsExecutionsOutput, error) {
 12875  	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
 12876  	req.SetContext(ctx)
 12877  	req.ApplyOptions(opts...)
 12878  	return out, req.Send()
 12879  }
 12880  
 12881  // ListAuditMitigationActionsExecutionsPages iterates over the pages of a ListAuditMitigationActionsExecutions operation,
 12882  // calling the "fn" function with the response data for each page. To stop
 12883  // iterating, return false from the fn function.
 12884  //
 12885  // See ListAuditMitigationActionsExecutions method for more information on how to use this operation.
 12886  //
 12887  // Note: This operation can generate multiple requests to a service.
 12888  //
 12889  //    // Example iterating over at most 3 pages of a ListAuditMitigationActionsExecutions operation.
 12890  //    pageNum := 0
 12891  //    err := client.ListAuditMitigationActionsExecutionsPages(params,
 12892  //        func(page *iot.ListAuditMitigationActionsExecutionsOutput, lastPage bool) bool {
 12893  //            pageNum++
 12894  //            fmt.Println(page)
 12895  //            return pageNum <= 3
 12896  //        })
 12897  //
 12898  func (c *IoT) ListAuditMitigationActionsExecutionsPages(input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool) error {
 12899  	return c.ListAuditMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
 12900  }
 12901  
 12902  // ListAuditMitigationActionsExecutionsPagesWithContext same as ListAuditMitigationActionsExecutionsPages except
 12903  // it takes a Context and allows setting request options on the pages.
 12904  //
 12905  // The context must be non-nil and will be used for request cancellation. If
 12906  // the context is nil a panic will occur. In the future the SDK may create
 12907  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 12908  // for more information on using Contexts.
 12909  func (c *IoT) ListAuditMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
 12910  	p := request.Pagination{
 12911  		NewRequest: func() (*request.Request, error) {
 12912  			var inCpy *ListAuditMitigationActionsExecutionsInput
 12913  			if input != nil {
 12914  				tmp := *input
 12915  				inCpy = &tmp
 12916  			}
 12917  			req, _ := c.ListAuditMitigationActionsExecutionsRequest(inCpy)
 12918  			req.SetContext(ctx)
 12919  			req.ApplyOptions(opts...)
 12920  			return req, nil
 12921  		},
 12922  	}
 12923  
 12924  	for p.Next() {
 12925  		if !fn(p.Page().(*ListAuditMitigationActionsExecutionsOutput), !p.HasNextPage()) {
 12926  			break
 12927  		}
 12928  	}
 12929  
 12930  	return p.Err()
 12931  }
 12932  
 12933  const opListAuditMitigationActionsTasks = "ListAuditMitigationActionsTasks"
 12934  
 12935  // ListAuditMitigationActionsTasksRequest generates a "aws/request.Request" representing the
 12936  // client's request for the ListAuditMitigationActionsTasks operation. The "output" return
 12937  // value will be populated with the request's response once the request completes
 12938  // successfully.
 12939  //
 12940  // Use "Send" method on the returned Request to send the API call to the service.
 12941  // the "output" return value is not valid until after Send returns without error.
 12942  //
 12943  // See ListAuditMitigationActionsTasks for more information on using the ListAuditMitigationActionsTasks
 12944  // API call, and error handling.
 12945  //
 12946  // This method is useful when you want to inject custom logic or configuration
 12947  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 12948  //
 12949  //
 12950  //    // Example sending a request using the ListAuditMitigationActionsTasksRequest method.
 12951  //    req, resp := client.ListAuditMitigationActionsTasksRequest(params)
 12952  //
 12953  //    err := req.Send()
 12954  //    if err == nil { // resp is now filled
 12955  //        fmt.Println(resp)
 12956  //    }
 12957  func (c *IoT) ListAuditMitigationActionsTasksRequest(input *ListAuditMitigationActionsTasksInput) (req *request.Request, output *ListAuditMitigationActionsTasksOutput) {
 12958  	op := &request.Operation{
 12959  		Name:       opListAuditMitigationActionsTasks,
 12960  		HTTPMethod: "GET",
 12961  		HTTPPath:   "/audit/mitigationactions/tasks",
 12962  		Paginator: &request.Paginator{
 12963  			InputTokens:     []string{"nextToken"},
 12964  			OutputTokens:    []string{"nextToken"},
 12965  			LimitToken:      "maxResults",
 12966  			TruncationToken: "",
 12967  		},
 12968  	}
 12969  
 12970  	if input == nil {
 12971  		input = &ListAuditMitigationActionsTasksInput{}
 12972  	}
 12973  
 12974  	output = &ListAuditMitigationActionsTasksOutput{}
 12975  	req = c.newRequest(op, input, output)
 12976  	return
 12977  }
 12978  
 12979  // ListAuditMitigationActionsTasks API operation for AWS IoT.
 12980  //
 12981  // Gets a list of audit mitigation action tasks that match the specified filters.
 12982  //
 12983  // Requires permission to access the ListAuditMitigationActionsTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 12984  // action.
 12985  //
 12986  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 12987  // with awserr.Error's Code and Message methods to get detailed information about
 12988  // the error.
 12989  //
 12990  // See the AWS API reference guide for AWS IoT's
 12991  // API operation ListAuditMitigationActionsTasks for usage and error information.
 12992  //
 12993  // Returned Error Types:
 12994  //   * InvalidRequestException
 12995  //   The request is not valid.
 12996  //
 12997  //   * ThrottlingException
 12998  //   The rate exceeds the limit.
 12999  //
 13000  //   * InternalFailureException
 13001  //   An unexpected error has occurred.
 13002  //
 13003  func (c *IoT) ListAuditMitigationActionsTasks(input *ListAuditMitigationActionsTasksInput) (*ListAuditMitigationActionsTasksOutput, error) {
 13004  	req, out := c.ListAuditMitigationActionsTasksRequest(input)
 13005  	return out, req.Send()
 13006  }
 13007  
 13008  // ListAuditMitigationActionsTasksWithContext is the same as ListAuditMitigationActionsTasks with the addition of
 13009  // the ability to pass a context and additional request options.
 13010  //
 13011  // See ListAuditMitigationActionsTasks for details on how to use this API operation.
 13012  //
 13013  // The context must be non-nil and will be used for request cancellation. If
 13014  // the context is nil a panic will occur. In the future the SDK may create
 13015  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13016  // for more information on using Contexts.
 13017  func (c *IoT) ListAuditMitigationActionsTasksWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, opts ...request.Option) (*ListAuditMitigationActionsTasksOutput, error) {
 13018  	req, out := c.ListAuditMitigationActionsTasksRequest(input)
 13019  	req.SetContext(ctx)
 13020  	req.ApplyOptions(opts...)
 13021  	return out, req.Send()
 13022  }
 13023  
 13024  // ListAuditMitigationActionsTasksPages iterates over the pages of a ListAuditMitigationActionsTasks operation,
 13025  // calling the "fn" function with the response data for each page. To stop
 13026  // iterating, return false from the fn function.
 13027  //
 13028  // See ListAuditMitigationActionsTasks method for more information on how to use this operation.
 13029  //
 13030  // Note: This operation can generate multiple requests to a service.
 13031  //
 13032  //    // Example iterating over at most 3 pages of a ListAuditMitigationActionsTasks operation.
 13033  //    pageNum := 0
 13034  //    err := client.ListAuditMitigationActionsTasksPages(params,
 13035  //        func(page *iot.ListAuditMitigationActionsTasksOutput, lastPage bool) bool {
 13036  //            pageNum++
 13037  //            fmt.Println(page)
 13038  //            return pageNum <= 3
 13039  //        })
 13040  //
 13041  func (c *IoT) ListAuditMitigationActionsTasksPages(input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool) error {
 13042  	return c.ListAuditMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
 13043  }
 13044  
 13045  // ListAuditMitigationActionsTasksPagesWithContext same as ListAuditMitigationActionsTasksPages except
 13046  // it takes a Context and allows setting request options on the pages.
 13047  //
 13048  // The context must be non-nil and will be used for request cancellation. If
 13049  // the context is nil a panic will occur. In the future the SDK may create
 13050  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13051  // for more information on using Contexts.
 13052  func (c *IoT) ListAuditMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
 13053  	p := request.Pagination{
 13054  		NewRequest: func() (*request.Request, error) {
 13055  			var inCpy *ListAuditMitigationActionsTasksInput
 13056  			if input != nil {
 13057  				tmp := *input
 13058  				inCpy = &tmp
 13059  			}
 13060  			req, _ := c.ListAuditMitigationActionsTasksRequest(inCpy)
 13061  			req.SetContext(ctx)
 13062  			req.ApplyOptions(opts...)
 13063  			return req, nil
 13064  		},
 13065  	}
 13066  
 13067  	for p.Next() {
 13068  		if !fn(p.Page().(*ListAuditMitigationActionsTasksOutput), !p.HasNextPage()) {
 13069  			break
 13070  		}
 13071  	}
 13072  
 13073  	return p.Err()
 13074  }
 13075  
 13076  const opListAuditSuppressions = "ListAuditSuppressions"
 13077  
 13078  // ListAuditSuppressionsRequest generates a "aws/request.Request" representing the
 13079  // client's request for the ListAuditSuppressions operation. The "output" return
 13080  // value will be populated with the request's response once the request completes
 13081  // successfully.
 13082  //
 13083  // Use "Send" method on the returned Request to send the API call to the service.
 13084  // the "output" return value is not valid until after Send returns without error.
 13085  //
 13086  // See ListAuditSuppressions for more information on using the ListAuditSuppressions
 13087  // API call, and error handling.
 13088  //
 13089  // This method is useful when you want to inject custom logic or configuration
 13090  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 13091  //
 13092  //
 13093  //    // Example sending a request using the ListAuditSuppressionsRequest method.
 13094  //    req, resp := client.ListAuditSuppressionsRequest(params)
 13095  //
 13096  //    err := req.Send()
 13097  //    if err == nil { // resp is now filled
 13098  //        fmt.Println(resp)
 13099  //    }
 13100  func (c *IoT) ListAuditSuppressionsRequest(input *ListAuditSuppressionsInput) (req *request.Request, output *ListAuditSuppressionsOutput) {
 13101  	op := &request.Operation{
 13102  		Name:       opListAuditSuppressions,
 13103  		HTTPMethod: "POST",
 13104  		HTTPPath:   "/audit/suppressions/list",
 13105  		Paginator: &request.Paginator{
 13106  			InputTokens:     []string{"nextToken"},
 13107  			OutputTokens:    []string{"nextToken"},
 13108  			LimitToken:      "maxResults",
 13109  			TruncationToken: "",
 13110  		},
 13111  	}
 13112  
 13113  	if input == nil {
 13114  		input = &ListAuditSuppressionsInput{}
 13115  	}
 13116  
 13117  	output = &ListAuditSuppressionsOutput{}
 13118  	req = c.newRequest(op, input, output)
 13119  	return
 13120  }
 13121  
 13122  // ListAuditSuppressions API operation for AWS IoT.
 13123  //
 13124  // Lists your Device Defender audit listings.
 13125  //
 13126  // Requires permission to access the ListAuditSuppressions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 13127  // action.
 13128  //
 13129  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 13130  // with awserr.Error's Code and Message methods to get detailed information about
 13131  // the error.
 13132  //
 13133  // See the AWS API reference guide for AWS IoT's
 13134  // API operation ListAuditSuppressions for usage and error information.
 13135  //
 13136  // Returned Error Types:
 13137  //   * InvalidRequestException
 13138  //   The request is not valid.
 13139  //
 13140  //   * ThrottlingException
 13141  //   The rate exceeds the limit.
 13142  //
 13143  //   * InternalFailureException
 13144  //   An unexpected error has occurred.
 13145  //
 13146  func (c *IoT) ListAuditSuppressions(input *ListAuditSuppressionsInput) (*ListAuditSuppressionsOutput, error) {
 13147  	req, out := c.ListAuditSuppressionsRequest(input)
 13148  	return out, req.Send()
 13149  }
 13150  
 13151  // ListAuditSuppressionsWithContext is the same as ListAuditSuppressions with the addition of
 13152  // the ability to pass a context and additional request options.
 13153  //
 13154  // See ListAuditSuppressions for details on how to use this API operation.
 13155  //
 13156  // The context must be non-nil and will be used for request cancellation. If
 13157  // the context is nil a panic will occur. In the future the SDK may create
 13158  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13159  // for more information on using Contexts.
 13160  func (c *IoT) ListAuditSuppressionsWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, opts ...request.Option) (*ListAuditSuppressionsOutput, error) {
 13161  	req, out := c.ListAuditSuppressionsRequest(input)
 13162  	req.SetContext(ctx)
 13163  	req.ApplyOptions(opts...)
 13164  	return out, req.Send()
 13165  }
 13166  
 13167  // ListAuditSuppressionsPages iterates over the pages of a ListAuditSuppressions operation,
 13168  // calling the "fn" function with the response data for each page. To stop
 13169  // iterating, return false from the fn function.
 13170  //
 13171  // See ListAuditSuppressions method for more information on how to use this operation.
 13172  //
 13173  // Note: This operation can generate multiple requests to a service.
 13174  //
 13175  //    // Example iterating over at most 3 pages of a ListAuditSuppressions operation.
 13176  //    pageNum := 0
 13177  //    err := client.ListAuditSuppressionsPages(params,
 13178  //        func(page *iot.ListAuditSuppressionsOutput, lastPage bool) bool {
 13179  //            pageNum++
 13180  //            fmt.Println(page)
 13181  //            return pageNum <= 3
 13182  //        })
 13183  //
 13184  func (c *IoT) ListAuditSuppressionsPages(input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool) error {
 13185  	return c.ListAuditSuppressionsPagesWithContext(aws.BackgroundContext(), input, fn)
 13186  }
 13187  
 13188  // ListAuditSuppressionsPagesWithContext same as ListAuditSuppressionsPages except
 13189  // it takes a Context and allows setting request options on the pages.
 13190  //
 13191  // The context must be non-nil and will be used for request cancellation. If
 13192  // the context is nil a panic will occur. In the future the SDK may create
 13193  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13194  // for more information on using Contexts.
 13195  func (c *IoT) ListAuditSuppressionsPagesWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool, opts ...request.Option) error {
 13196  	p := request.Pagination{
 13197  		NewRequest: func() (*request.Request, error) {
 13198  			var inCpy *ListAuditSuppressionsInput
 13199  			if input != nil {
 13200  				tmp := *input
 13201  				inCpy = &tmp
 13202  			}
 13203  			req, _ := c.ListAuditSuppressionsRequest(inCpy)
 13204  			req.SetContext(ctx)
 13205  			req.ApplyOptions(opts...)
 13206  			return req, nil
 13207  		},
 13208  	}
 13209  
 13210  	for p.Next() {
 13211  		if !fn(p.Page().(*ListAuditSuppressionsOutput), !p.HasNextPage()) {
 13212  			break
 13213  		}
 13214  	}
 13215  
 13216  	return p.Err()
 13217  }
 13218  
 13219  const opListAuditTasks = "ListAuditTasks"
 13220  
 13221  // ListAuditTasksRequest generates a "aws/request.Request" representing the
 13222  // client's request for the ListAuditTasks operation. The "output" return
 13223  // value will be populated with the request's response once the request completes
 13224  // successfully.
 13225  //
 13226  // Use "Send" method on the returned Request to send the API call to the service.
 13227  // the "output" return value is not valid until after Send returns without error.
 13228  //
 13229  // See ListAuditTasks for more information on using the ListAuditTasks
 13230  // API call, and error handling.
 13231  //
 13232  // This method is useful when you want to inject custom logic or configuration
 13233  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 13234  //
 13235  //
 13236  //    // Example sending a request using the ListAuditTasksRequest method.
 13237  //    req, resp := client.ListAuditTasksRequest(params)
 13238  //
 13239  //    err := req.Send()
 13240  //    if err == nil { // resp is now filled
 13241  //        fmt.Println(resp)
 13242  //    }
 13243  func (c *IoT) ListAuditTasksRequest(input *ListAuditTasksInput) (req *request.Request, output *ListAuditTasksOutput) {
 13244  	op := &request.Operation{
 13245  		Name:       opListAuditTasks,
 13246  		HTTPMethod: "GET",
 13247  		HTTPPath:   "/audit/tasks",
 13248  		Paginator: &request.Paginator{
 13249  			InputTokens:     []string{"nextToken"},
 13250  			OutputTokens:    []string{"nextToken"},
 13251  			LimitToken:      "maxResults",
 13252  			TruncationToken: "",
 13253  		},
 13254  	}
 13255  
 13256  	if input == nil {
 13257  		input = &ListAuditTasksInput{}
 13258  	}
 13259  
 13260  	output = &ListAuditTasksOutput{}
 13261  	req = c.newRequest(op, input, output)
 13262  	return
 13263  }
 13264  
 13265  // ListAuditTasks API operation for AWS IoT.
 13266  //
 13267  // Lists the Device Defender audits that have been performed during a given
 13268  // time period.
 13269  //
 13270  // Requires permission to access the ListAuditTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 13271  // action.
 13272  //
 13273  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 13274  // with awserr.Error's Code and Message methods to get detailed information about
 13275  // the error.
 13276  //
 13277  // See the AWS API reference guide for AWS IoT's
 13278  // API operation ListAuditTasks for usage and error information.
 13279  //
 13280  // Returned Error Types:
 13281  //   * InvalidRequestException
 13282  //   The request is not valid.
 13283  //
 13284  //   * ThrottlingException
 13285  //   The rate exceeds the limit.
 13286  //
 13287  //   * InternalFailureException
 13288  //   An unexpected error has occurred.
 13289  //
 13290  func (c *IoT) ListAuditTasks(input *ListAuditTasksInput) (*ListAuditTasksOutput, error) {
 13291  	req, out := c.ListAuditTasksRequest(input)
 13292  	return out, req.Send()
 13293  }
 13294  
 13295  // ListAuditTasksWithContext is the same as ListAuditTasks with the addition of
 13296  // the ability to pass a context and additional request options.
 13297  //
 13298  // See ListAuditTasks for details on how to use this API operation.
 13299  //
 13300  // The context must be non-nil and will be used for request cancellation. If
 13301  // the context is nil a panic will occur. In the future the SDK may create
 13302  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13303  // for more information on using Contexts.
 13304  func (c *IoT) ListAuditTasksWithContext(ctx aws.Context, input *ListAuditTasksInput, opts ...request.Option) (*ListAuditTasksOutput, error) {
 13305  	req, out := c.ListAuditTasksRequest(input)
 13306  	req.SetContext(ctx)
 13307  	req.ApplyOptions(opts...)
 13308  	return out, req.Send()
 13309  }
 13310  
 13311  // ListAuditTasksPages iterates over the pages of a ListAuditTasks operation,
 13312  // calling the "fn" function with the response data for each page. To stop
 13313  // iterating, return false from the fn function.
 13314  //
 13315  // See ListAuditTasks method for more information on how to use this operation.
 13316  //
 13317  // Note: This operation can generate multiple requests to a service.
 13318  //
 13319  //    // Example iterating over at most 3 pages of a ListAuditTasks operation.
 13320  //    pageNum := 0
 13321  //    err := client.ListAuditTasksPages(params,
 13322  //        func(page *iot.ListAuditTasksOutput, lastPage bool) bool {
 13323  //            pageNum++
 13324  //            fmt.Println(page)
 13325  //            return pageNum <= 3
 13326  //        })
 13327  //
 13328  func (c *IoT) ListAuditTasksPages(input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool) error {
 13329  	return c.ListAuditTasksPagesWithContext(aws.BackgroundContext(), input, fn)
 13330  }
 13331  
 13332  // ListAuditTasksPagesWithContext same as ListAuditTasksPages except
 13333  // it takes a Context and allows setting request options on the pages.
 13334  //
 13335  // The context must be non-nil and will be used for request cancellation. If
 13336  // the context is nil a panic will occur. In the future the SDK may create
 13337  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13338  // for more information on using Contexts.
 13339  func (c *IoT) ListAuditTasksPagesWithContext(ctx aws.Context, input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool, opts ...request.Option) error {
 13340  	p := request.Pagination{
 13341  		NewRequest: func() (*request.Request, error) {
 13342  			var inCpy *ListAuditTasksInput
 13343  			if input != nil {
 13344  				tmp := *input
 13345  				inCpy = &tmp
 13346  			}
 13347  			req, _ := c.ListAuditTasksRequest(inCpy)
 13348  			req.SetContext(ctx)
 13349  			req.ApplyOptions(opts...)
 13350  			return req, nil
 13351  		},
 13352  	}
 13353  
 13354  	for p.Next() {
 13355  		if !fn(p.Page().(*ListAuditTasksOutput), !p.HasNextPage()) {
 13356  			break
 13357  		}
 13358  	}
 13359  
 13360  	return p.Err()
 13361  }
 13362  
 13363  const opListAuthorizers = "ListAuthorizers"
 13364  
 13365  // ListAuthorizersRequest generates a "aws/request.Request" representing the
 13366  // client's request for the ListAuthorizers operation. The "output" return
 13367  // value will be populated with the request's response once the request completes
 13368  // successfully.
 13369  //
 13370  // Use "Send" method on the returned Request to send the API call to the service.
 13371  // the "output" return value is not valid until after Send returns without error.
 13372  //
 13373  // See ListAuthorizers for more information on using the ListAuthorizers
 13374  // API call, and error handling.
 13375  //
 13376  // This method is useful when you want to inject custom logic or configuration
 13377  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 13378  //
 13379  //
 13380  //    // Example sending a request using the ListAuthorizersRequest method.
 13381  //    req, resp := client.ListAuthorizersRequest(params)
 13382  //
 13383  //    err := req.Send()
 13384  //    if err == nil { // resp is now filled
 13385  //        fmt.Println(resp)
 13386  //    }
 13387  func (c *IoT) ListAuthorizersRequest(input *ListAuthorizersInput) (req *request.Request, output *ListAuthorizersOutput) {
 13388  	op := &request.Operation{
 13389  		Name:       opListAuthorizers,
 13390  		HTTPMethod: "GET",
 13391  		HTTPPath:   "/authorizers/",
 13392  		Paginator: &request.Paginator{
 13393  			InputTokens:     []string{"marker"},
 13394  			OutputTokens:    []string{"nextMarker"},
 13395  			LimitToken:      "pageSize",
 13396  			TruncationToken: "",
 13397  		},
 13398  	}
 13399  
 13400  	if input == nil {
 13401  		input = &ListAuthorizersInput{}
 13402  	}
 13403  
 13404  	output = &ListAuthorizersOutput{}
 13405  	req = c.newRequest(op, input, output)
 13406  	return
 13407  }
 13408  
 13409  // ListAuthorizers API operation for AWS IoT.
 13410  //
 13411  // Lists the authorizers registered in your account.
 13412  //
 13413  // Requires permission to access the ListAuthorizers (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 13414  // action.
 13415  //
 13416  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 13417  // with awserr.Error's Code and Message methods to get detailed information about
 13418  // the error.
 13419  //
 13420  // See the AWS API reference guide for AWS IoT's
 13421  // API operation ListAuthorizers for usage and error information.
 13422  //
 13423  // Returned Error Types:
 13424  //   * InvalidRequestException
 13425  //   The request is not valid.
 13426  //
 13427  //   * ThrottlingException
 13428  //   The rate exceeds the limit.
 13429  //
 13430  //   * UnauthorizedException
 13431  //   You are not authorized to perform this operation.
 13432  //
 13433  //   * ServiceUnavailableException
 13434  //   The service is temporarily unavailable.
 13435  //
 13436  //   * InternalFailureException
 13437  //   An unexpected error has occurred.
 13438  //
 13439  func (c *IoT) ListAuthorizers(input *ListAuthorizersInput) (*ListAuthorizersOutput, error) {
 13440  	req, out := c.ListAuthorizersRequest(input)
 13441  	return out, req.Send()
 13442  }
 13443  
 13444  // ListAuthorizersWithContext is the same as ListAuthorizers with the addition of
 13445  // the ability to pass a context and additional request options.
 13446  //
 13447  // See ListAuthorizers for details on how to use this API operation.
 13448  //
 13449  // The context must be non-nil and will be used for request cancellation. If
 13450  // the context is nil a panic will occur. In the future the SDK may create
 13451  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13452  // for more information on using Contexts.
 13453  func (c *IoT) ListAuthorizersWithContext(ctx aws.Context, input *ListAuthorizersInput, opts ...request.Option) (*ListAuthorizersOutput, error) {
 13454  	req, out := c.ListAuthorizersRequest(input)
 13455  	req.SetContext(ctx)
 13456  	req.ApplyOptions(opts...)
 13457  	return out, req.Send()
 13458  }
 13459  
 13460  // ListAuthorizersPages iterates over the pages of a ListAuthorizers operation,
 13461  // calling the "fn" function with the response data for each page. To stop
 13462  // iterating, return false from the fn function.
 13463  //
 13464  // See ListAuthorizers method for more information on how to use this operation.
 13465  //
 13466  // Note: This operation can generate multiple requests to a service.
 13467  //
 13468  //    // Example iterating over at most 3 pages of a ListAuthorizers operation.
 13469  //    pageNum := 0
 13470  //    err := client.ListAuthorizersPages(params,
 13471  //        func(page *iot.ListAuthorizersOutput, lastPage bool) bool {
 13472  //            pageNum++
 13473  //            fmt.Println(page)
 13474  //            return pageNum <= 3
 13475  //        })
 13476  //
 13477  func (c *IoT) ListAuthorizersPages(input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool) error {
 13478  	return c.ListAuthorizersPagesWithContext(aws.BackgroundContext(), input, fn)
 13479  }
 13480  
 13481  // ListAuthorizersPagesWithContext same as ListAuthorizersPages except
 13482  // it takes a Context and allows setting request options on the pages.
 13483  //
 13484  // The context must be non-nil and will be used for request cancellation. If
 13485  // the context is nil a panic will occur. In the future the SDK may create
 13486  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13487  // for more information on using Contexts.
 13488  func (c *IoT) ListAuthorizersPagesWithContext(ctx aws.Context, input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool, opts ...request.Option) error {
 13489  	p := request.Pagination{
 13490  		NewRequest: func() (*request.Request, error) {
 13491  			var inCpy *ListAuthorizersInput
 13492  			if input != nil {
 13493  				tmp := *input
 13494  				inCpy = &tmp
 13495  			}
 13496  			req, _ := c.ListAuthorizersRequest(inCpy)
 13497  			req.SetContext(ctx)
 13498  			req.ApplyOptions(opts...)
 13499  			return req, nil
 13500  		},
 13501  	}
 13502  
 13503  	for p.Next() {
 13504  		if !fn(p.Page().(*ListAuthorizersOutput), !p.HasNextPage()) {
 13505  			break
 13506  		}
 13507  	}
 13508  
 13509  	return p.Err()
 13510  }
 13511  
 13512  const opListBillingGroups = "ListBillingGroups"
 13513  
 13514  // ListBillingGroupsRequest generates a "aws/request.Request" representing the
 13515  // client's request for the ListBillingGroups operation. The "output" return
 13516  // value will be populated with the request's response once the request completes
 13517  // successfully.
 13518  //
 13519  // Use "Send" method on the returned Request to send the API call to the service.
 13520  // the "output" return value is not valid until after Send returns without error.
 13521  //
 13522  // See ListBillingGroups for more information on using the ListBillingGroups
 13523  // API call, and error handling.
 13524  //
 13525  // This method is useful when you want to inject custom logic or configuration
 13526  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 13527  //
 13528  //
 13529  //    // Example sending a request using the ListBillingGroupsRequest method.
 13530  //    req, resp := client.ListBillingGroupsRequest(params)
 13531  //
 13532  //    err := req.Send()
 13533  //    if err == nil { // resp is now filled
 13534  //        fmt.Println(resp)
 13535  //    }
 13536  func (c *IoT) ListBillingGroupsRequest(input *ListBillingGroupsInput) (req *request.Request, output *ListBillingGroupsOutput) {
 13537  	op := &request.Operation{
 13538  		Name:       opListBillingGroups,
 13539  		HTTPMethod: "GET",
 13540  		HTTPPath:   "/billing-groups",
 13541  		Paginator: &request.Paginator{
 13542  			InputTokens:     []string{"nextToken"},
 13543  			OutputTokens:    []string{"nextToken"},
 13544  			LimitToken:      "maxResults",
 13545  			TruncationToken: "",
 13546  		},
 13547  	}
 13548  
 13549  	if input == nil {
 13550  		input = &ListBillingGroupsInput{}
 13551  	}
 13552  
 13553  	output = &ListBillingGroupsOutput{}
 13554  	req = c.newRequest(op, input, output)
 13555  	return
 13556  }
 13557  
 13558  // ListBillingGroups API operation for AWS IoT.
 13559  //
 13560  // Lists the billing groups you have created.
 13561  //
 13562  // Requires permission to access the ListBillingGroups (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 13563  // action.
 13564  //
 13565  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 13566  // with awserr.Error's Code and Message methods to get detailed information about
 13567  // the error.
 13568  //
 13569  // See the AWS API reference guide for AWS IoT's
 13570  // API operation ListBillingGroups for usage and error information.
 13571  //
 13572  // Returned Error Types:
 13573  //   * InvalidRequestException
 13574  //   The request is not valid.
 13575  //
 13576  //   * InternalFailureException
 13577  //   An unexpected error has occurred.
 13578  //
 13579  //   * ResourceNotFoundException
 13580  //   The specified resource does not exist.
 13581  //
 13582  //   * ThrottlingException
 13583  //   The rate exceeds the limit.
 13584  //
 13585  func (c *IoT) ListBillingGroups(input *ListBillingGroupsInput) (*ListBillingGroupsOutput, error) {
 13586  	req, out := c.ListBillingGroupsRequest(input)
 13587  	return out, req.Send()
 13588  }
 13589  
 13590  // ListBillingGroupsWithContext is the same as ListBillingGroups with the addition of
 13591  // the ability to pass a context and additional request options.
 13592  //
 13593  // See ListBillingGroups for details on how to use this API operation.
 13594  //
 13595  // The context must be non-nil and will be used for request cancellation. If
 13596  // the context is nil a panic will occur. In the future the SDK may create
 13597  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13598  // for more information on using Contexts.
 13599  func (c *IoT) ListBillingGroupsWithContext(ctx aws.Context, input *ListBillingGroupsInput, opts ...request.Option) (*ListBillingGroupsOutput, error) {
 13600  	req, out := c.ListBillingGroupsRequest(input)
 13601  	req.SetContext(ctx)
 13602  	req.ApplyOptions(opts...)
 13603  	return out, req.Send()
 13604  }
 13605  
 13606  // ListBillingGroupsPages iterates over the pages of a ListBillingGroups operation,
 13607  // calling the "fn" function with the response data for each page. To stop
 13608  // iterating, return false from the fn function.
 13609  //
 13610  // See ListBillingGroups method for more information on how to use this operation.
 13611  //
 13612  // Note: This operation can generate multiple requests to a service.
 13613  //
 13614  //    // Example iterating over at most 3 pages of a ListBillingGroups operation.
 13615  //    pageNum := 0
 13616  //    err := client.ListBillingGroupsPages(params,
 13617  //        func(page *iot.ListBillingGroupsOutput, lastPage bool) bool {
 13618  //            pageNum++
 13619  //            fmt.Println(page)
 13620  //            return pageNum <= 3
 13621  //        })
 13622  //
 13623  func (c *IoT) ListBillingGroupsPages(input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool) error {
 13624  	return c.ListBillingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
 13625  }
 13626  
 13627  // ListBillingGroupsPagesWithContext same as ListBillingGroupsPages except
 13628  // it takes a Context and allows setting request options on the pages.
 13629  //
 13630  // The context must be non-nil and will be used for request cancellation. If
 13631  // the context is nil a panic will occur. In the future the SDK may create
 13632  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13633  // for more information on using Contexts.
 13634  func (c *IoT) ListBillingGroupsPagesWithContext(ctx aws.Context, input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool, opts ...request.Option) error {
 13635  	p := request.Pagination{
 13636  		NewRequest: func() (*request.Request, error) {
 13637  			var inCpy *ListBillingGroupsInput
 13638  			if input != nil {
 13639  				tmp := *input
 13640  				inCpy = &tmp
 13641  			}
 13642  			req, _ := c.ListBillingGroupsRequest(inCpy)
 13643  			req.SetContext(ctx)
 13644  			req.ApplyOptions(opts...)
 13645  			return req, nil
 13646  		},
 13647  	}
 13648  
 13649  	for p.Next() {
 13650  		if !fn(p.Page().(*ListBillingGroupsOutput), !p.HasNextPage()) {
 13651  			break
 13652  		}
 13653  	}
 13654  
 13655  	return p.Err()
 13656  }
 13657  
 13658  const opListCACertificates = "ListCACertificates"
 13659  
 13660  // ListCACertificatesRequest generates a "aws/request.Request" representing the
 13661  // client's request for the ListCACertificates operation. The "output" return
 13662  // value will be populated with the request's response once the request completes
 13663  // successfully.
 13664  //
 13665  // Use "Send" method on the returned Request to send the API call to the service.
 13666  // the "output" return value is not valid until after Send returns without error.
 13667  //
 13668  // See ListCACertificates for more information on using the ListCACertificates
 13669  // API call, and error handling.
 13670  //
 13671  // This method is useful when you want to inject custom logic or configuration
 13672  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 13673  //
 13674  //
 13675  //    // Example sending a request using the ListCACertificatesRequest method.
 13676  //    req, resp := client.ListCACertificatesRequest(params)
 13677  //
 13678  //    err := req.Send()
 13679  //    if err == nil { // resp is now filled
 13680  //        fmt.Println(resp)
 13681  //    }
 13682  func (c *IoT) ListCACertificatesRequest(input *ListCACertificatesInput) (req *request.Request, output *ListCACertificatesOutput) {
 13683  	op := &request.Operation{
 13684  		Name:       opListCACertificates,
 13685  		HTTPMethod: "GET",
 13686  		HTTPPath:   "/cacertificates",
 13687  		Paginator: &request.Paginator{
 13688  			InputTokens:     []string{"marker"},
 13689  			OutputTokens:    []string{"nextMarker"},
 13690  			LimitToken:      "pageSize",
 13691  			TruncationToken: "",
 13692  		},
 13693  	}
 13694  
 13695  	if input == nil {
 13696  		input = &ListCACertificatesInput{}
 13697  	}
 13698  
 13699  	output = &ListCACertificatesOutput{}
 13700  	req = c.newRequest(op, input, output)
 13701  	return
 13702  }
 13703  
 13704  // ListCACertificates API operation for AWS IoT.
 13705  //
 13706  // Lists the CA certificates registered for your Amazon Web Services account.
 13707  //
 13708  // The results are paginated with a default page size of 25. You can use the
 13709  // returned marker to retrieve additional results.
 13710  //
 13711  // Requires permission to access the ListCACertificates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 13712  // action.
 13713  //
 13714  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 13715  // with awserr.Error's Code and Message methods to get detailed information about
 13716  // the error.
 13717  //
 13718  // See the AWS API reference guide for AWS IoT's
 13719  // API operation ListCACertificates for usage and error information.
 13720  //
 13721  // Returned Error Types:
 13722  //   * InvalidRequestException
 13723  //   The request is not valid.
 13724  //
 13725  //   * ThrottlingException
 13726  //   The rate exceeds the limit.
 13727  //
 13728  //   * UnauthorizedException
 13729  //   You are not authorized to perform this operation.
 13730  //
 13731  //   * ServiceUnavailableException
 13732  //   The service is temporarily unavailable.
 13733  //
 13734  //   * InternalFailureException
 13735  //   An unexpected error has occurred.
 13736  //
 13737  func (c *IoT) ListCACertificates(input *ListCACertificatesInput) (*ListCACertificatesOutput, error) {
 13738  	req, out := c.ListCACertificatesRequest(input)
 13739  	return out, req.Send()
 13740  }
 13741  
 13742  // ListCACertificatesWithContext is the same as ListCACertificates with the addition of
 13743  // the ability to pass a context and additional request options.
 13744  //
 13745  // See ListCACertificates for details on how to use this API operation.
 13746  //
 13747  // The context must be non-nil and will be used for request cancellation. If
 13748  // the context is nil a panic will occur. In the future the SDK may create
 13749  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13750  // for more information on using Contexts.
 13751  func (c *IoT) ListCACertificatesWithContext(ctx aws.Context, input *ListCACertificatesInput, opts ...request.Option) (*ListCACertificatesOutput, error) {
 13752  	req, out := c.ListCACertificatesRequest(input)
 13753  	req.SetContext(ctx)
 13754  	req.ApplyOptions(opts...)
 13755  	return out, req.Send()
 13756  }
 13757  
 13758  // ListCACertificatesPages iterates over the pages of a ListCACertificates operation,
 13759  // calling the "fn" function with the response data for each page. To stop
 13760  // iterating, return false from the fn function.
 13761  //
 13762  // See ListCACertificates method for more information on how to use this operation.
 13763  //
 13764  // Note: This operation can generate multiple requests to a service.
 13765  //
 13766  //    // Example iterating over at most 3 pages of a ListCACertificates operation.
 13767  //    pageNum := 0
 13768  //    err := client.ListCACertificatesPages(params,
 13769  //        func(page *iot.ListCACertificatesOutput, lastPage bool) bool {
 13770  //            pageNum++
 13771  //            fmt.Println(page)
 13772  //            return pageNum <= 3
 13773  //        })
 13774  //
 13775  func (c *IoT) ListCACertificatesPages(input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool) error {
 13776  	return c.ListCACertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
 13777  }
 13778  
 13779  // ListCACertificatesPagesWithContext same as ListCACertificatesPages except
 13780  // it takes a Context and allows setting request options on the pages.
 13781  //
 13782  // The context must be non-nil and will be used for request cancellation. If
 13783  // the context is nil a panic will occur. In the future the SDK may create
 13784  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13785  // for more information on using Contexts.
 13786  func (c *IoT) ListCACertificatesPagesWithContext(ctx aws.Context, input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool, opts ...request.Option) error {
 13787  	p := request.Pagination{
 13788  		NewRequest: func() (*request.Request, error) {
 13789  			var inCpy *ListCACertificatesInput
 13790  			if input != nil {
 13791  				tmp := *input
 13792  				inCpy = &tmp
 13793  			}
 13794  			req, _ := c.ListCACertificatesRequest(inCpy)
 13795  			req.SetContext(ctx)
 13796  			req.ApplyOptions(opts...)
 13797  			return req, nil
 13798  		},
 13799  	}
 13800  
 13801  	for p.Next() {
 13802  		if !fn(p.Page().(*ListCACertificatesOutput), !p.HasNextPage()) {
 13803  			break
 13804  		}
 13805  	}
 13806  
 13807  	return p.Err()
 13808  }
 13809  
 13810  const opListCertificates = "ListCertificates"
 13811  
 13812  // ListCertificatesRequest generates a "aws/request.Request" representing the
 13813  // client's request for the ListCertificates operation. The "output" return
 13814  // value will be populated with the request's response once the request completes
 13815  // successfully.
 13816  //
 13817  // Use "Send" method on the returned Request to send the API call to the service.
 13818  // the "output" return value is not valid until after Send returns without error.
 13819  //
 13820  // See ListCertificates for more information on using the ListCertificates
 13821  // API call, and error handling.
 13822  //
 13823  // This method is useful when you want to inject custom logic or configuration
 13824  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 13825  //
 13826  //
 13827  //    // Example sending a request using the ListCertificatesRequest method.
 13828  //    req, resp := client.ListCertificatesRequest(params)
 13829  //
 13830  //    err := req.Send()
 13831  //    if err == nil { // resp is now filled
 13832  //        fmt.Println(resp)
 13833  //    }
 13834  func (c *IoT) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
 13835  	op := &request.Operation{
 13836  		Name:       opListCertificates,
 13837  		HTTPMethod: "GET",
 13838  		HTTPPath:   "/certificates",
 13839  		Paginator: &request.Paginator{
 13840  			InputTokens:     []string{"marker"},
 13841  			OutputTokens:    []string{"nextMarker"},
 13842  			LimitToken:      "pageSize",
 13843  			TruncationToken: "",
 13844  		},
 13845  	}
 13846  
 13847  	if input == nil {
 13848  		input = &ListCertificatesInput{}
 13849  	}
 13850  
 13851  	output = &ListCertificatesOutput{}
 13852  	req = c.newRequest(op, input, output)
 13853  	return
 13854  }
 13855  
 13856  // ListCertificates API operation for AWS IoT.
 13857  //
 13858  // Lists the certificates registered in your Amazon Web Services account.
 13859  //
 13860  // The results are paginated with a default page size of 25. You can use the
 13861  // returned marker to retrieve additional results.
 13862  //
 13863  // Requires permission to access the ListCertificates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 13864  // action.
 13865  //
 13866  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 13867  // with awserr.Error's Code and Message methods to get detailed information about
 13868  // the error.
 13869  //
 13870  // See the AWS API reference guide for AWS IoT's
 13871  // API operation ListCertificates for usage and error information.
 13872  //
 13873  // Returned Error Types:
 13874  //   * InvalidRequestException
 13875  //   The request is not valid.
 13876  //
 13877  //   * ThrottlingException
 13878  //   The rate exceeds the limit.
 13879  //
 13880  //   * UnauthorizedException
 13881  //   You are not authorized to perform this operation.
 13882  //
 13883  //   * ServiceUnavailableException
 13884  //   The service is temporarily unavailable.
 13885  //
 13886  //   * InternalFailureException
 13887  //   An unexpected error has occurred.
 13888  //
 13889  func (c *IoT) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
 13890  	req, out := c.ListCertificatesRequest(input)
 13891  	return out, req.Send()
 13892  }
 13893  
 13894  // ListCertificatesWithContext is the same as ListCertificates with the addition of
 13895  // the ability to pass a context and additional request options.
 13896  //
 13897  // See ListCertificates for details on how to use this API operation.
 13898  //
 13899  // The context must be non-nil and will be used for request cancellation. If
 13900  // the context is nil a panic will occur. In the future the SDK may create
 13901  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13902  // for more information on using Contexts.
 13903  func (c *IoT) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
 13904  	req, out := c.ListCertificatesRequest(input)
 13905  	req.SetContext(ctx)
 13906  	req.ApplyOptions(opts...)
 13907  	return out, req.Send()
 13908  }
 13909  
 13910  // ListCertificatesPages iterates over the pages of a ListCertificates operation,
 13911  // calling the "fn" function with the response data for each page. To stop
 13912  // iterating, return false from the fn function.
 13913  //
 13914  // See ListCertificates method for more information on how to use this operation.
 13915  //
 13916  // Note: This operation can generate multiple requests to a service.
 13917  //
 13918  //    // Example iterating over at most 3 pages of a ListCertificates operation.
 13919  //    pageNum := 0
 13920  //    err := client.ListCertificatesPages(params,
 13921  //        func(page *iot.ListCertificatesOutput, lastPage bool) bool {
 13922  //            pageNum++
 13923  //            fmt.Println(page)
 13924  //            return pageNum <= 3
 13925  //        })
 13926  //
 13927  func (c *IoT) ListCertificatesPages(input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool) error {
 13928  	return c.ListCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
 13929  }
 13930  
 13931  // ListCertificatesPagesWithContext same as ListCertificatesPages except
 13932  // it takes a Context and allows setting request options on the pages.
 13933  //
 13934  // The context must be non-nil and will be used for request cancellation. If
 13935  // the context is nil a panic will occur. In the future the SDK may create
 13936  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 13937  // for more information on using Contexts.
 13938  func (c *IoT) ListCertificatesPagesWithContext(ctx aws.Context, input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool, opts ...request.Option) error {
 13939  	p := request.Pagination{
 13940  		NewRequest: func() (*request.Request, error) {
 13941  			var inCpy *ListCertificatesInput
 13942  			if input != nil {
 13943  				tmp := *input
 13944  				inCpy = &tmp
 13945  			}
 13946  			req, _ := c.ListCertificatesRequest(inCpy)
 13947  			req.SetContext(ctx)
 13948  			req.ApplyOptions(opts...)
 13949  			return req, nil
 13950  		},
 13951  	}
 13952  
 13953  	for p.Next() {
 13954  		if !fn(p.Page().(*ListCertificatesOutput), !p.HasNextPage()) {
 13955  			break
 13956  		}
 13957  	}
 13958  
 13959  	return p.Err()
 13960  }
 13961  
 13962  const opListCertificatesByCA = "ListCertificatesByCA"
 13963  
 13964  // ListCertificatesByCARequest generates a "aws/request.Request" representing the
 13965  // client's request for the ListCertificatesByCA operation. The "output" return
 13966  // value will be populated with the request's response once the request completes
 13967  // successfully.
 13968  //
 13969  // Use "Send" method on the returned Request to send the API call to the service.
 13970  // the "output" return value is not valid until after Send returns without error.
 13971  //
 13972  // See ListCertificatesByCA for more information on using the ListCertificatesByCA
 13973  // API call, and error handling.
 13974  //
 13975  // This method is useful when you want to inject custom logic or configuration
 13976  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 13977  //
 13978  //
 13979  //    // Example sending a request using the ListCertificatesByCARequest method.
 13980  //    req, resp := client.ListCertificatesByCARequest(params)
 13981  //
 13982  //    err := req.Send()
 13983  //    if err == nil { // resp is now filled
 13984  //        fmt.Println(resp)
 13985  //    }
 13986  func (c *IoT) ListCertificatesByCARequest(input *ListCertificatesByCAInput) (req *request.Request, output *ListCertificatesByCAOutput) {
 13987  	op := &request.Operation{
 13988  		Name:       opListCertificatesByCA,
 13989  		HTTPMethod: "GET",
 13990  		HTTPPath:   "/certificates-by-ca/{caCertificateId}",
 13991  		Paginator: &request.Paginator{
 13992  			InputTokens:     []string{"marker"},
 13993  			OutputTokens:    []string{"nextMarker"},
 13994  			LimitToken:      "pageSize",
 13995  			TruncationToken: "",
 13996  		},
 13997  	}
 13998  
 13999  	if input == nil {
 14000  		input = &ListCertificatesByCAInput{}
 14001  	}
 14002  
 14003  	output = &ListCertificatesByCAOutput{}
 14004  	req = c.newRequest(op, input, output)
 14005  	return
 14006  }
 14007  
 14008  // ListCertificatesByCA API operation for AWS IoT.
 14009  //
 14010  // List the device certificates signed by the specified CA certificate.
 14011  //
 14012  // Requires permission to access the ListCertificatesByCA (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 14013  // action.
 14014  //
 14015  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 14016  // with awserr.Error's Code and Message methods to get detailed information about
 14017  // the error.
 14018  //
 14019  // See the AWS API reference guide for AWS IoT's
 14020  // API operation ListCertificatesByCA for usage and error information.
 14021  //
 14022  // Returned Error Types:
 14023  //   * InvalidRequestException
 14024  //   The request is not valid.
 14025  //
 14026  //   * ThrottlingException
 14027  //   The rate exceeds the limit.
 14028  //
 14029  //   * UnauthorizedException
 14030  //   You are not authorized to perform this operation.
 14031  //
 14032  //   * ServiceUnavailableException
 14033  //   The service is temporarily unavailable.
 14034  //
 14035  //   * InternalFailureException
 14036  //   An unexpected error has occurred.
 14037  //
 14038  func (c *IoT) ListCertificatesByCA(input *ListCertificatesByCAInput) (*ListCertificatesByCAOutput, error) {
 14039  	req, out := c.ListCertificatesByCARequest(input)
 14040  	return out, req.Send()
 14041  }
 14042  
 14043  // ListCertificatesByCAWithContext is the same as ListCertificatesByCA with the addition of
 14044  // the ability to pass a context and additional request options.
 14045  //
 14046  // See ListCertificatesByCA for details on how to use this API operation.
 14047  //
 14048  // The context must be non-nil and will be used for request cancellation. If
 14049  // the context is nil a panic will occur. In the future the SDK may create
 14050  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14051  // for more information on using Contexts.
 14052  func (c *IoT) ListCertificatesByCAWithContext(ctx aws.Context, input *ListCertificatesByCAInput, opts ...request.Option) (*ListCertificatesByCAOutput, error) {
 14053  	req, out := c.ListCertificatesByCARequest(input)
 14054  	req.SetContext(ctx)
 14055  	req.ApplyOptions(opts...)
 14056  	return out, req.Send()
 14057  }
 14058  
 14059  // ListCertificatesByCAPages iterates over the pages of a ListCertificatesByCA operation,
 14060  // calling the "fn" function with the response data for each page. To stop
 14061  // iterating, return false from the fn function.
 14062  //
 14063  // See ListCertificatesByCA method for more information on how to use this operation.
 14064  //
 14065  // Note: This operation can generate multiple requests to a service.
 14066  //
 14067  //    // Example iterating over at most 3 pages of a ListCertificatesByCA operation.
 14068  //    pageNum := 0
 14069  //    err := client.ListCertificatesByCAPages(params,
 14070  //        func(page *iot.ListCertificatesByCAOutput, lastPage bool) bool {
 14071  //            pageNum++
 14072  //            fmt.Println(page)
 14073  //            return pageNum <= 3
 14074  //        })
 14075  //
 14076  func (c *IoT) ListCertificatesByCAPages(input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool) error {
 14077  	return c.ListCertificatesByCAPagesWithContext(aws.BackgroundContext(), input, fn)
 14078  }
 14079  
 14080  // ListCertificatesByCAPagesWithContext same as ListCertificatesByCAPages except
 14081  // it takes a Context and allows setting request options on the pages.
 14082  //
 14083  // The context must be non-nil and will be used for request cancellation. If
 14084  // the context is nil a panic will occur. In the future the SDK may create
 14085  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14086  // for more information on using Contexts.
 14087  func (c *IoT) ListCertificatesByCAPagesWithContext(ctx aws.Context, input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool, opts ...request.Option) error {
 14088  	p := request.Pagination{
 14089  		NewRequest: func() (*request.Request, error) {
 14090  			var inCpy *ListCertificatesByCAInput
 14091  			if input != nil {
 14092  				tmp := *input
 14093  				inCpy = &tmp
 14094  			}
 14095  			req, _ := c.ListCertificatesByCARequest(inCpy)
 14096  			req.SetContext(ctx)
 14097  			req.ApplyOptions(opts...)
 14098  			return req, nil
 14099  		},
 14100  	}
 14101  
 14102  	for p.Next() {
 14103  		if !fn(p.Page().(*ListCertificatesByCAOutput), !p.HasNextPage()) {
 14104  			break
 14105  		}
 14106  	}
 14107  
 14108  	return p.Err()
 14109  }
 14110  
 14111  const opListCustomMetrics = "ListCustomMetrics"
 14112  
 14113  // ListCustomMetricsRequest generates a "aws/request.Request" representing the
 14114  // client's request for the ListCustomMetrics operation. The "output" return
 14115  // value will be populated with the request's response once the request completes
 14116  // successfully.
 14117  //
 14118  // Use "Send" method on the returned Request to send the API call to the service.
 14119  // the "output" return value is not valid until after Send returns without error.
 14120  //
 14121  // See ListCustomMetrics for more information on using the ListCustomMetrics
 14122  // API call, and error handling.
 14123  //
 14124  // This method is useful when you want to inject custom logic or configuration
 14125  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 14126  //
 14127  //
 14128  //    // Example sending a request using the ListCustomMetricsRequest method.
 14129  //    req, resp := client.ListCustomMetricsRequest(params)
 14130  //
 14131  //    err := req.Send()
 14132  //    if err == nil { // resp is now filled
 14133  //        fmt.Println(resp)
 14134  //    }
 14135  func (c *IoT) ListCustomMetricsRequest(input *ListCustomMetricsInput) (req *request.Request, output *ListCustomMetricsOutput) {
 14136  	op := &request.Operation{
 14137  		Name:       opListCustomMetrics,
 14138  		HTTPMethod: "GET",
 14139  		HTTPPath:   "/custom-metrics",
 14140  		Paginator: &request.Paginator{
 14141  			InputTokens:     []string{"nextToken"},
 14142  			OutputTokens:    []string{"nextToken"},
 14143  			LimitToken:      "maxResults",
 14144  			TruncationToken: "",
 14145  		},
 14146  	}
 14147  
 14148  	if input == nil {
 14149  		input = &ListCustomMetricsInput{}
 14150  	}
 14151  
 14152  	output = &ListCustomMetricsOutput{}
 14153  	req = c.newRequest(op, input, output)
 14154  	return
 14155  }
 14156  
 14157  // ListCustomMetrics API operation for AWS IoT.
 14158  //
 14159  // Lists your Device Defender detect custom metrics.
 14160  //
 14161  // Requires permission to access the ListCustomMetrics (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 14162  // action.
 14163  //
 14164  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 14165  // with awserr.Error's Code and Message methods to get detailed information about
 14166  // the error.
 14167  //
 14168  // See the AWS API reference guide for AWS IoT's
 14169  // API operation ListCustomMetrics for usage and error information.
 14170  //
 14171  // Returned Error Types:
 14172  //   * InvalidRequestException
 14173  //   The request is not valid.
 14174  //
 14175  //   * ThrottlingException
 14176  //   The rate exceeds the limit.
 14177  //
 14178  //   * InternalFailureException
 14179  //   An unexpected error has occurred.
 14180  //
 14181  func (c *IoT) ListCustomMetrics(input *ListCustomMetricsInput) (*ListCustomMetricsOutput, error) {
 14182  	req, out := c.ListCustomMetricsRequest(input)
 14183  	return out, req.Send()
 14184  }
 14185  
 14186  // ListCustomMetricsWithContext is the same as ListCustomMetrics with the addition of
 14187  // the ability to pass a context and additional request options.
 14188  //
 14189  // See ListCustomMetrics for details on how to use this API operation.
 14190  //
 14191  // The context must be non-nil and will be used for request cancellation. If
 14192  // the context is nil a panic will occur. In the future the SDK may create
 14193  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14194  // for more information on using Contexts.
 14195  func (c *IoT) ListCustomMetricsWithContext(ctx aws.Context, input *ListCustomMetricsInput, opts ...request.Option) (*ListCustomMetricsOutput, error) {
 14196  	req, out := c.ListCustomMetricsRequest(input)
 14197  	req.SetContext(ctx)
 14198  	req.ApplyOptions(opts...)
 14199  	return out, req.Send()
 14200  }
 14201  
 14202  // ListCustomMetricsPages iterates over the pages of a ListCustomMetrics operation,
 14203  // calling the "fn" function with the response data for each page. To stop
 14204  // iterating, return false from the fn function.
 14205  //
 14206  // See ListCustomMetrics method for more information on how to use this operation.
 14207  //
 14208  // Note: This operation can generate multiple requests to a service.
 14209  //
 14210  //    // Example iterating over at most 3 pages of a ListCustomMetrics operation.
 14211  //    pageNum := 0
 14212  //    err := client.ListCustomMetricsPages(params,
 14213  //        func(page *iot.ListCustomMetricsOutput, lastPage bool) bool {
 14214  //            pageNum++
 14215  //            fmt.Println(page)
 14216  //            return pageNum <= 3
 14217  //        })
 14218  //
 14219  func (c *IoT) ListCustomMetricsPages(input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool) error {
 14220  	return c.ListCustomMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
 14221  }
 14222  
 14223  // ListCustomMetricsPagesWithContext same as ListCustomMetricsPages except
 14224  // it takes a Context and allows setting request options on the pages.
 14225  //
 14226  // The context must be non-nil and will be used for request cancellation. If
 14227  // the context is nil a panic will occur. In the future the SDK may create
 14228  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14229  // for more information on using Contexts.
 14230  func (c *IoT) ListCustomMetricsPagesWithContext(ctx aws.Context, input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool, opts ...request.Option) error {
 14231  	p := request.Pagination{
 14232  		NewRequest: func() (*request.Request, error) {
 14233  			var inCpy *ListCustomMetricsInput
 14234  			if input != nil {
 14235  				tmp := *input
 14236  				inCpy = &tmp
 14237  			}
 14238  			req, _ := c.ListCustomMetricsRequest(inCpy)
 14239  			req.SetContext(ctx)
 14240  			req.ApplyOptions(opts...)
 14241  			return req, nil
 14242  		},
 14243  	}
 14244  
 14245  	for p.Next() {
 14246  		if !fn(p.Page().(*ListCustomMetricsOutput), !p.HasNextPage()) {
 14247  			break
 14248  		}
 14249  	}
 14250  
 14251  	return p.Err()
 14252  }
 14253  
 14254  const opListDetectMitigationActionsExecutions = "ListDetectMitigationActionsExecutions"
 14255  
 14256  // ListDetectMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
 14257  // client's request for the ListDetectMitigationActionsExecutions operation. The "output" return
 14258  // value will be populated with the request's response once the request completes
 14259  // successfully.
 14260  //
 14261  // Use "Send" method on the returned Request to send the API call to the service.
 14262  // the "output" return value is not valid until after Send returns without error.
 14263  //
 14264  // See ListDetectMitigationActionsExecutions for more information on using the ListDetectMitigationActionsExecutions
 14265  // API call, and error handling.
 14266  //
 14267  // This method is useful when you want to inject custom logic or configuration
 14268  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 14269  //
 14270  //
 14271  //    // Example sending a request using the ListDetectMitigationActionsExecutionsRequest method.
 14272  //    req, resp := client.ListDetectMitigationActionsExecutionsRequest(params)
 14273  //
 14274  //    err := req.Send()
 14275  //    if err == nil { // resp is now filled
 14276  //        fmt.Println(resp)
 14277  //    }
 14278  func (c *IoT) ListDetectMitigationActionsExecutionsRequest(input *ListDetectMitigationActionsExecutionsInput) (req *request.Request, output *ListDetectMitigationActionsExecutionsOutput) {
 14279  	op := &request.Operation{
 14280  		Name:       opListDetectMitigationActionsExecutions,
 14281  		HTTPMethod: "GET",
 14282  		HTTPPath:   "/detect/mitigationactions/executions",
 14283  		Paginator: &request.Paginator{
 14284  			InputTokens:     []string{"nextToken"},
 14285  			OutputTokens:    []string{"nextToken"},
 14286  			LimitToken:      "maxResults",
 14287  			TruncationToken: "",
 14288  		},
 14289  	}
 14290  
 14291  	if input == nil {
 14292  		input = &ListDetectMitigationActionsExecutionsInput{}
 14293  	}
 14294  
 14295  	output = &ListDetectMitigationActionsExecutionsOutput{}
 14296  	req = c.newRequest(op, input, output)
 14297  	return
 14298  }
 14299  
 14300  // ListDetectMitigationActionsExecutions API operation for AWS IoT.
 14301  //
 14302  // Lists mitigation actions executions for a Device Defender ML Detect Security
 14303  // Profile.
 14304  //
 14305  // Requires permission to access the ListDetectMitigationActionsExecutions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 14306  // action.
 14307  //
 14308  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 14309  // with awserr.Error's Code and Message methods to get detailed information about
 14310  // the error.
 14311  //
 14312  // See the AWS API reference guide for AWS IoT's
 14313  // API operation ListDetectMitigationActionsExecutions for usage and error information.
 14314  //
 14315  // Returned Error Types:
 14316  //   * InvalidRequestException
 14317  //   The request is not valid.
 14318  //
 14319  //   * ThrottlingException
 14320  //   The rate exceeds the limit.
 14321  //
 14322  //   * InternalFailureException
 14323  //   An unexpected error has occurred.
 14324  //
 14325  func (c *IoT) ListDetectMitigationActionsExecutions(input *ListDetectMitigationActionsExecutionsInput) (*ListDetectMitigationActionsExecutionsOutput, error) {
 14326  	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
 14327  	return out, req.Send()
 14328  }
 14329  
 14330  // ListDetectMitigationActionsExecutionsWithContext is the same as ListDetectMitigationActionsExecutions with the addition of
 14331  // the ability to pass a context and additional request options.
 14332  //
 14333  // See ListDetectMitigationActionsExecutions for details on how to use this API operation.
 14334  //
 14335  // The context must be non-nil and will be used for request cancellation. If
 14336  // the context is nil a panic will occur. In the future the SDK may create
 14337  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14338  // for more information on using Contexts.
 14339  func (c *IoT) ListDetectMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, opts ...request.Option) (*ListDetectMitigationActionsExecutionsOutput, error) {
 14340  	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
 14341  	req.SetContext(ctx)
 14342  	req.ApplyOptions(opts...)
 14343  	return out, req.Send()
 14344  }
 14345  
 14346  // ListDetectMitigationActionsExecutionsPages iterates over the pages of a ListDetectMitigationActionsExecutions operation,
 14347  // calling the "fn" function with the response data for each page. To stop
 14348  // iterating, return false from the fn function.
 14349  //
 14350  // See ListDetectMitigationActionsExecutions method for more information on how to use this operation.
 14351  //
 14352  // Note: This operation can generate multiple requests to a service.
 14353  //
 14354  //    // Example iterating over at most 3 pages of a ListDetectMitigationActionsExecutions operation.
 14355  //    pageNum := 0
 14356  //    err := client.ListDetectMitigationActionsExecutionsPages(params,
 14357  //        func(page *iot.ListDetectMitigationActionsExecutionsOutput, lastPage bool) bool {
 14358  //            pageNum++
 14359  //            fmt.Println(page)
 14360  //            return pageNum <= 3
 14361  //        })
 14362  //
 14363  func (c *IoT) ListDetectMitigationActionsExecutionsPages(input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool) error {
 14364  	return c.ListDetectMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
 14365  }
 14366  
 14367  // ListDetectMitigationActionsExecutionsPagesWithContext same as ListDetectMitigationActionsExecutionsPages except
 14368  // it takes a Context and allows setting request options on the pages.
 14369  //
 14370  // The context must be non-nil and will be used for request cancellation. If
 14371  // the context is nil a panic will occur. In the future the SDK may create
 14372  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14373  // for more information on using Contexts.
 14374  func (c *IoT) ListDetectMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
 14375  	p := request.Pagination{
 14376  		NewRequest: func() (*request.Request, error) {
 14377  			var inCpy *ListDetectMitigationActionsExecutionsInput
 14378  			if input != nil {
 14379  				tmp := *input
 14380  				inCpy = &tmp
 14381  			}
 14382  			req, _ := c.ListDetectMitigationActionsExecutionsRequest(inCpy)
 14383  			req.SetContext(ctx)
 14384  			req.ApplyOptions(opts...)
 14385  			return req, nil
 14386  		},
 14387  	}
 14388  
 14389  	for p.Next() {
 14390  		if !fn(p.Page().(*ListDetectMitigationActionsExecutionsOutput), !p.HasNextPage()) {
 14391  			break
 14392  		}
 14393  	}
 14394  
 14395  	return p.Err()
 14396  }
 14397  
 14398  const opListDetectMitigationActionsTasks = "ListDetectMitigationActionsTasks"
 14399  
 14400  // ListDetectMitigationActionsTasksRequest generates a "aws/request.Request" representing the
 14401  // client's request for the ListDetectMitigationActionsTasks operation. The "output" return
 14402  // value will be populated with the request's response once the request completes
 14403  // successfully.
 14404  //
 14405  // Use "Send" method on the returned Request to send the API call to the service.
 14406  // the "output" return value is not valid until after Send returns without error.
 14407  //
 14408  // See ListDetectMitigationActionsTasks for more information on using the ListDetectMitigationActionsTasks
 14409  // API call, and error handling.
 14410  //
 14411  // This method is useful when you want to inject custom logic or configuration
 14412  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 14413  //
 14414  //
 14415  //    // Example sending a request using the ListDetectMitigationActionsTasksRequest method.
 14416  //    req, resp := client.ListDetectMitigationActionsTasksRequest(params)
 14417  //
 14418  //    err := req.Send()
 14419  //    if err == nil { // resp is now filled
 14420  //        fmt.Println(resp)
 14421  //    }
 14422  func (c *IoT) ListDetectMitigationActionsTasksRequest(input *ListDetectMitigationActionsTasksInput) (req *request.Request, output *ListDetectMitigationActionsTasksOutput) {
 14423  	op := &request.Operation{
 14424  		Name:       opListDetectMitigationActionsTasks,
 14425  		HTTPMethod: "GET",
 14426  		HTTPPath:   "/detect/mitigationactions/tasks",
 14427  		Paginator: &request.Paginator{
 14428  			InputTokens:     []string{"nextToken"},
 14429  			OutputTokens:    []string{"nextToken"},
 14430  			LimitToken:      "maxResults",
 14431  			TruncationToken: "",
 14432  		},
 14433  	}
 14434  
 14435  	if input == nil {
 14436  		input = &ListDetectMitigationActionsTasksInput{}
 14437  	}
 14438  
 14439  	output = &ListDetectMitigationActionsTasksOutput{}
 14440  	req = c.newRequest(op, input, output)
 14441  	return
 14442  }
 14443  
 14444  // ListDetectMitigationActionsTasks API operation for AWS IoT.
 14445  //
 14446  // List of Device Defender ML Detect mitigation actions tasks.
 14447  //
 14448  // Requires permission to access the ListDetectMitigationActionsTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 14449  // action.
 14450  //
 14451  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 14452  // with awserr.Error's Code and Message methods to get detailed information about
 14453  // the error.
 14454  //
 14455  // See the AWS API reference guide for AWS IoT's
 14456  // API operation ListDetectMitigationActionsTasks for usage and error information.
 14457  //
 14458  // Returned Error Types:
 14459  //   * InvalidRequestException
 14460  //   The request is not valid.
 14461  //
 14462  //   * ThrottlingException
 14463  //   The rate exceeds the limit.
 14464  //
 14465  //   * InternalFailureException
 14466  //   An unexpected error has occurred.
 14467  //
 14468  func (c *IoT) ListDetectMitigationActionsTasks(input *ListDetectMitigationActionsTasksInput) (*ListDetectMitigationActionsTasksOutput, error) {
 14469  	req, out := c.ListDetectMitigationActionsTasksRequest(input)
 14470  	return out, req.Send()
 14471  }
 14472  
 14473  // ListDetectMitigationActionsTasksWithContext is the same as ListDetectMitigationActionsTasks with the addition of
 14474  // the ability to pass a context and additional request options.
 14475  //
 14476  // See ListDetectMitigationActionsTasks for details on how to use this API operation.
 14477  //
 14478  // The context must be non-nil and will be used for request cancellation. If
 14479  // the context is nil a panic will occur. In the future the SDK may create
 14480  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14481  // for more information on using Contexts.
 14482  func (c *IoT) ListDetectMitigationActionsTasksWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, opts ...request.Option) (*ListDetectMitigationActionsTasksOutput, error) {
 14483  	req, out := c.ListDetectMitigationActionsTasksRequest(input)
 14484  	req.SetContext(ctx)
 14485  	req.ApplyOptions(opts...)
 14486  	return out, req.Send()
 14487  }
 14488  
 14489  // ListDetectMitigationActionsTasksPages iterates over the pages of a ListDetectMitigationActionsTasks operation,
 14490  // calling the "fn" function with the response data for each page. To stop
 14491  // iterating, return false from the fn function.
 14492  //
 14493  // See ListDetectMitigationActionsTasks method for more information on how to use this operation.
 14494  //
 14495  // Note: This operation can generate multiple requests to a service.
 14496  //
 14497  //    // Example iterating over at most 3 pages of a ListDetectMitigationActionsTasks operation.
 14498  //    pageNum := 0
 14499  //    err := client.ListDetectMitigationActionsTasksPages(params,
 14500  //        func(page *iot.ListDetectMitigationActionsTasksOutput, lastPage bool) bool {
 14501  //            pageNum++
 14502  //            fmt.Println(page)
 14503  //            return pageNum <= 3
 14504  //        })
 14505  //
 14506  func (c *IoT) ListDetectMitigationActionsTasksPages(input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool) error {
 14507  	return c.ListDetectMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
 14508  }
 14509  
 14510  // ListDetectMitigationActionsTasksPagesWithContext same as ListDetectMitigationActionsTasksPages except
 14511  // it takes a Context and allows setting request options on the pages.
 14512  //
 14513  // The context must be non-nil and will be used for request cancellation. If
 14514  // the context is nil a panic will occur. In the future the SDK may create
 14515  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14516  // for more information on using Contexts.
 14517  func (c *IoT) ListDetectMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
 14518  	p := request.Pagination{
 14519  		NewRequest: func() (*request.Request, error) {
 14520  			var inCpy *ListDetectMitigationActionsTasksInput
 14521  			if input != nil {
 14522  				tmp := *input
 14523  				inCpy = &tmp
 14524  			}
 14525  			req, _ := c.ListDetectMitigationActionsTasksRequest(inCpy)
 14526  			req.SetContext(ctx)
 14527  			req.ApplyOptions(opts...)
 14528  			return req, nil
 14529  		},
 14530  	}
 14531  
 14532  	for p.Next() {
 14533  		if !fn(p.Page().(*ListDetectMitigationActionsTasksOutput), !p.HasNextPage()) {
 14534  			break
 14535  		}
 14536  	}
 14537  
 14538  	return p.Err()
 14539  }
 14540  
 14541  const opListDimensions = "ListDimensions"
 14542  
 14543  // ListDimensionsRequest generates a "aws/request.Request" representing the
 14544  // client's request for the ListDimensions operation. The "output" return
 14545  // value will be populated with the request's response once the request completes
 14546  // successfully.
 14547  //
 14548  // Use "Send" method on the returned Request to send the API call to the service.
 14549  // the "output" return value is not valid until after Send returns without error.
 14550  //
 14551  // See ListDimensions for more information on using the ListDimensions
 14552  // API call, and error handling.
 14553  //
 14554  // This method is useful when you want to inject custom logic or configuration
 14555  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 14556  //
 14557  //
 14558  //    // Example sending a request using the ListDimensionsRequest method.
 14559  //    req, resp := client.ListDimensionsRequest(params)
 14560  //
 14561  //    err := req.Send()
 14562  //    if err == nil { // resp is now filled
 14563  //        fmt.Println(resp)
 14564  //    }
 14565  func (c *IoT) ListDimensionsRequest(input *ListDimensionsInput) (req *request.Request, output *ListDimensionsOutput) {
 14566  	op := &request.Operation{
 14567  		Name:       opListDimensions,
 14568  		HTTPMethod: "GET",
 14569  		HTTPPath:   "/dimensions",
 14570  		Paginator: &request.Paginator{
 14571  			InputTokens:     []string{"nextToken"},
 14572  			OutputTokens:    []string{"nextToken"},
 14573  			LimitToken:      "maxResults",
 14574  			TruncationToken: "",
 14575  		},
 14576  	}
 14577  
 14578  	if input == nil {
 14579  		input = &ListDimensionsInput{}
 14580  	}
 14581  
 14582  	output = &ListDimensionsOutput{}
 14583  	req = c.newRequest(op, input, output)
 14584  	return
 14585  }
 14586  
 14587  // ListDimensions API operation for AWS IoT.
 14588  //
 14589  // List the set of dimensions that are defined for your Amazon Web Services
 14590  // accounts.
 14591  //
 14592  // Requires permission to access the ListDimensions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 14593  // action.
 14594  //
 14595  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 14596  // with awserr.Error's Code and Message methods to get detailed information about
 14597  // the error.
 14598  //
 14599  // See the AWS API reference guide for AWS IoT's
 14600  // API operation ListDimensions for usage and error information.
 14601  //
 14602  // Returned Error Types:
 14603  //   * InternalFailureException
 14604  //   An unexpected error has occurred.
 14605  //
 14606  //   * InvalidRequestException
 14607  //   The request is not valid.
 14608  //
 14609  //   * ThrottlingException
 14610  //   The rate exceeds the limit.
 14611  //
 14612  func (c *IoT) ListDimensions(input *ListDimensionsInput) (*ListDimensionsOutput, error) {
 14613  	req, out := c.ListDimensionsRequest(input)
 14614  	return out, req.Send()
 14615  }
 14616  
 14617  // ListDimensionsWithContext is the same as ListDimensions with the addition of
 14618  // the ability to pass a context and additional request options.
 14619  //
 14620  // See ListDimensions for details on how to use this API operation.
 14621  //
 14622  // The context must be non-nil and will be used for request cancellation. If
 14623  // the context is nil a panic will occur. In the future the SDK may create
 14624  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14625  // for more information on using Contexts.
 14626  func (c *IoT) ListDimensionsWithContext(ctx aws.Context, input *ListDimensionsInput, opts ...request.Option) (*ListDimensionsOutput, error) {
 14627  	req, out := c.ListDimensionsRequest(input)
 14628  	req.SetContext(ctx)
 14629  	req.ApplyOptions(opts...)
 14630  	return out, req.Send()
 14631  }
 14632  
 14633  // ListDimensionsPages iterates over the pages of a ListDimensions operation,
 14634  // calling the "fn" function with the response data for each page. To stop
 14635  // iterating, return false from the fn function.
 14636  //
 14637  // See ListDimensions method for more information on how to use this operation.
 14638  //
 14639  // Note: This operation can generate multiple requests to a service.
 14640  //
 14641  //    // Example iterating over at most 3 pages of a ListDimensions operation.
 14642  //    pageNum := 0
 14643  //    err := client.ListDimensionsPages(params,
 14644  //        func(page *iot.ListDimensionsOutput, lastPage bool) bool {
 14645  //            pageNum++
 14646  //            fmt.Println(page)
 14647  //            return pageNum <= 3
 14648  //        })
 14649  //
 14650  func (c *IoT) ListDimensionsPages(input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool) error {
 14651  	return c.ListDimensionsPagesWithContext(aws.BackgroundContext(), input, fn)
 14652  }
 14653  
 14654  // ListDimensionsPagesWithContext same as ListDimensionsPages except
 14655  // it takes a Context and allows setting request options on the pages.
 14656  //
 14657  // The context must be non-nil and will be used for request cancellation. If
 14658  // the context is nil a panic will occur. In the future the SDK may create
 14659  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14660  // for more information on using Contexts.
 14661  func (c *IoT) ListDimensionsPagesWithContext(ctx aws.Context, input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool, opts ...request.Option) error {
 14662  	p := request.Pagination{
 14663  		NewRequest: func() (*request.Request, error) {
 14664  			var inCpy *ListDimensionsInput
 14665  			if input != nil {
 14666  				tmp := *input
 14667  				inCpy = &tmp
 14668  			}
 14669  			req, _ := c.ListDimensionsRequest(inCpy)
 14670  			req.SetContext(ctx)
 14671  			req.ApplyOptions(opts...)
 14672  			return req, nil
 14673  		},
 14674  	}
 14675  
 14676  	for p.Next() {
 14677  		if !fn(p.Page().(*ListDimensionsOutput), !p.HasNextPage()) {
 14678  			break
 14679  		}
 14680  	}
 14681  
 14682  	return p.Err()
 14683  }
 14684  
 14685  const opListDomainConfigurations = "ListDomainConfigurations"
 14686  
 14687  // ListDomainConfigurationsRequest generates a "aws/request.Request" representing the
 14688  // client's request for the ListDomainConfigurations operation. The "output" return
 14689  // value will be populated with the request's response once the request completes
 14690  // successfully.
 14691  //
 14692  // Use "Send" method on the returned Request to send the API call to the service.
 14693  // the "output" return value is not valid until after Send returns without error.
 14694  //
 14695  // See ListDomainConfigurations for more information on using the ListDomainConfigurations
 14696  // API call, and error handling.
 14697  //
 14698  // This method is useful when you want to inject custom logic or configuration
 14699  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 14700  //
 14701  //
 14702  //    // Example sending a request using the ListDomainConfigurationsRequest method.
 14703  //    req, resp := client.ListDomainConfigurationsRequest(params)
 14704  //
 14705  //    err := req.Send()
 14706  //    if err == nil { // resp is now filled
 14707  //        fmt.Println(resp)
 14708  //    }
 14709  func (c *IoT) ListDomainConfigurationsRequest(input *ListDomainConfigurationsInput) (req *request.Request, output *ListDomainConfigurationsOutput) {
 14710  	op := &request.Operation{
 14711  		Name:       opListDomainConfigurations,
 14712  		HTTPMethod: "GET",
 14713  		HTTPPath:   "/domainConfigurations",
 14714  		Paginator: &request.Paginator{
 14715  			InputTokens:     []string{"marker"},
 14716  			OutputTokens:    []string{"nextMarker"},
 14717  			LimitToken:      "pageSize",
 14718  			TruncationToken: "",
 14719  		},
 14720  	}
 14721  
 14722  	if input == nil {
 14723  		input = &ListDomainConfigurationsInput{}
 14724  	}
 14725  
 14726  	output = &ListDomainConfigurationsOutput{}
 14727  	req = c.newRequest(op, input, output)
 14728  	return
 14729  }
 14730  
 14731  // ListDomainConfigurations API operation for AWS IoT.
 14732  //
 14733  // Gets a list of domain configurations for the user. This list is sorted alphabetically
 14734  // by domain configuration name.
 14735  //
 14736  // Requires permission to access the ListDomainConfigurations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 14737  // action.
 14738  //
 14739  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 14740  // with awserr.Error's Code and Message methods to get detailed information about
 14741  // the error.
 14742  //
 14743  // See the AWS API reference guide for AWS IoT's
 14744  // API operation ListDomainConfigurations for usage and error information.
 14745  //
 14746  // Returned Error Types:
 14747  //   * InvalidRequestException
 14748  //   The request is not valid.
 14749  //
 14750  //   * ThrottlingException
 14751  //   The rate exceeds the limit.
 14752  //
 14753  //   * UnauthorizedException
 14754  //   You are not authorized to perform this operation.
 14755  //
 14756  //   * ServiceUnavailableException
 14757  //   The service is temporarily unavailable.
 14758  //
 14759  //   * InternalFailureException
 14760  //   An unexpected error has occurred.
 14761  //
 14762  func (c *IoT) ListDomainConfigurations(input *ListDomainConfigurationsInput) (*ListDomainConfigurationsOutput, error) {
 14763  	req, out := c.ListDomainConfigurationsRequest(input)
 14764  	return out, req.Send()
 14765  }
 14766  
 14767  // ListDomainConfigurationsWithContext is the same as ListDomainConfigurations with the addition of
 14768  // the ability to pass a context and additional request options.
 14769  //
 14770  // See ListDomainConfigurations for details on how to use this API operation.
 14771  //
 14772  // The context must be non-nil and will be used for request cancellation. If
 14773  // the context is nil a panic will occur. In the future the SDK may create
 14774  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14775  // for more information on using Contexts.
 14776  func (c *IoT) ListDomainConfigurationsWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, opts ...request.Option) (*ListDomainConfigurationsOutput, error) {
 14777  	req, out := c.ListDomainConfigurationsRequest(input)
 14778  	req.SetContext(ctx)
 14779  	req.ApplyOptions(opts...)
 14780  	return out, req.Send()
 14781  }
 14782  
 14783  // ListDomainConfigurationsPages iterates over the pages of a ListDomainConfigurations operation,
 14784  // calling the "fn" function with the response data for each page. To stop
 14785  // iterating, return false from the fn function.
 14786  //
 14787  // See ListDomainConfigurations method for more information on how to use this operation.
 14788  //
 14789  // Note: This operation can generate multiple requests to a service.
 14790  //
 14791  //    // Example iterating over at most 3 pages of a ListDomainConfigurations operation.
 14792  //    pageNum := 0
 14793  //    err := client.ListDomainConfigurationsPages(params,
 14794  //        func(page *iot.ListDomainConfigurationsOutput, lastPage bool) bool {
 14795  //            pageNum++
 14796  //            fmt.Println(page)
 14797  //            return pageNum <= 3
 14798  //        })
 14799  //
 14800  func (c *IoT) ListDomainConfigurationsPages(input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool) error {
 14801  	return c.ListDomainConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
 14802  }
 14803  
 14804  // ListDomainConfigurationsPagesWithContext same as ListDomainConfigurationsPages except
 14805  // it takes a Context and allows setting request options on the pages.
 14806  //
 14807  // The context must be non-nil and will be used for request cancellation. If
 14808  // the context is nil a panic will occur. In the future the SDK may create
 14809  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14810  // for more information on using Contexts.
 14811  func (c *IoT) ListDomainConfigurationsPagesWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool, opts ...request.Option) error {
 14812  	p := request.Pagination{
 14813  		NewRequest: func() (*request.Request, error) {
 14814  			var inCpy *ListDomainConfigurationsInput
 14815  			if input != nil {
 14816  				tmp := *input
 14817  				inCpy = &tmp
 14818  			}
 14819  			req, _ := c.ListDomainConfigurationsRequest(inCpy)
 14820  			req.SetContext(ctx)
 14821  			req.ApplyOptions(opts...)
 14822  			return req, nil
 14823  		},
 14824  	}
 14825  
 14826  	for p.Next() {
 14827  		if !fn(p.Page().(*ListDomainConfigurationsOutput), !p.HasNextPage()) {
 14828  			break
 14829  		}
 14830  	}
 14831  
 14832  	return p.Err()
 14833  }
 14834  
 14835  const opListFleetMetrics = "ListFleetMetrics"
 14836  
 14837  // ListFleetMetricsRequest generates a "aws/request.Request" representing the
 14838  // client's request for the ListFleetMetrics operation. The "output" return
 14839  // value will be populated with the request's response once the request completes
 14840  // successfully.
 14841  //
 14842  // Use "Send" method on the returned Request to send the API call to the service.
 14843  // the "output" return value is not valid until after Send returns without error.
 14844  //
 14845  // See ListFleetMetrics for more information on using the ListFleetMetrics
 14846  // API call, and error handling.
 14847  //
 14848  // This method is useful when you want to inject custom logic or configuration
 14849  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 14850  //
 14851  //
 14852  //    // Example sending a request using the ListFleetMetricsRequest method.
 14853  //    req, resp := client.ListFleetMetricsRequest(params)
 14854  //
 14855  //    err := req.Send()
 14856  //    if err == nil { // resp is now filled
 14857  //        fmt.Println(resp)
 14858  //    }
 14859  func (c *IoT) ListFleetMetricsRequest(input *ListFleetMetricsInput) (req *request.Request, output *ListFleetMetricsOutput) {
 14860  	op := &request.Operation{
 14861  		Name:       opListFleetMetrics,
 14862  		HTTPMethod: "GET",
 14863  		HTTPPath:   "/fleet-metrics",
 14864  		Paginator: &request.Paginator{
 14865  			InputTokens:     []string{"nextToken"},
 14866  			OutputTokens:    []string{"nextToken"},
 14867  			LimitToken:      "maxResults",
 14868  			TruncationToken: "",
 14869  		},
 14870  	}
 14871  
 14872  	if input == nil {
 14873  		input = &ListFleetMetricsInput{}
 14874  	}
 14875  
 14876  	output = &ListFleetMetricsOutput{}
 14877  	req = c.newRequest(op, input, output)
 14878  	return
 14879  }
 14880  
 14881  // ListFleetMetrics API operation for AWS IoT.
 14882  //
 14883  // Lists all your fleet metrics.
 14884  //
 14885  // Requires permission to access the ListFleetMetrics (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 14886  // action.
 14887  //
 14888  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 14889  // with awserr.Error's Code and Message methods to get detailed information about
 14890  // the error.
 14891  //
 14892  // See the AWS API reference guide for AWS IoT's
 14893  // API operation ListFleetMetrics for usage and error information.
 14894  //
 14895  // Returned Error Types:
 14896  //   * InvalidRequestException
 14897  //   The request is not valid.
 14898  //
 14899  //   * ThrottlingException
 14900  //   The rate exceeds the limit.
 14901  //
 14902  //   * UnauthorizedException
 14903  //   You are not authorized to perform this operation.
 14904  //
 14905  //   * ServiceUnavailableException
 14906  //   The service is temporarily unavailable.
 14907  //
 14908  //   * InternalFailureException
 14909  //   An unexpected error has occurred.
 14910  //
 14911  func (c *IoT) ListFleetMetrics(input *ListFleetMetricsInput) (*ListFleetMetricsOutput, error) {
 14912  	req, out := c.ListFleetMetricsRequest(input)
 14913  	return out, req.Send()
 14914  }
 14915  
 14916  // ListFleetMetricsWithContext is the same as ListFleetMetrics with the addition of
 14917  // the ability to pass a context and additional request options.
 14918  //
 14919  // See ListFleetMetrics for details on how to use this API operation.
 14920  //
 14921  // The context must be non-nil and will be used for request cancellation. If
 14922  // the context is nil a panic will occur. In the future the SDK may create
 14923  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14924  // for more information on using Contexts.
 14925  func (c *IoT) ListFleetMetricsWithContext(ctx aws.Context, input *ListFleetMetricsInput, opts ...request.Option) (*ListFleetMetricsOutput, error) {
 14926  	req, out := c.ListFleetMetricsRequest(input)
 14927  	req.SetContext(ctx)
 14928  	req.ApplyOptions(opts...)
 14929  	return out, req.Send()
 14930  }
 14931  
 14932  // ListFleetMetricsPages iterates over the pages of a ListFleetMetrics operation,
 14933  // calling the "fn" function with the response data for each page. To stop
 14934  // iterating, return false from the fn function.
 14935  //
 14936  // See ListFleetMetrics method for more information on how to use this operation.
 14937  //
 14938  // Note: This operation can generate multiple requests to a service.
 14939  //
 14940  //    // Example iterating over at most 3 pages of a ListFleetMetrics operation.
 14941  //    pageNum := 0
 14942  //    err := client.ListFleetMetricsPages(params,
 14943  //        func(page *iot.ListFleetMetricsOutput, lastPage bool) bool {
 14944  //            pageNum++
 14945  //            fmt.Println(page)
 14946  //            return pageNum <= 3
 14947  //        })
 14948  //
 14949  func (c *IoT) ListFleetMetricsPages(input *ListFleetMetricsInput, fn func(*ListFleetMetricsOutput, bool) bool) error {
 14950  	return c.ListFleetMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
 14951  }
 14952  
 14953  // ListFleetMetricsPagesWithContext same as ListFleetMetricsPages except
 14954  // it takes a Context and allows setting request options on the pages.
 14955  //
 14956  // The context must be non-nil and will be used for request cancellation. If
 14957  // the context is nil a panic will occur. In the future the SDK may create
 14958  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 14959  // for more information on using Contexts.
 14960  func (c *IoT) ListFleetMetricsPagesWithContext(ctx aws.Context, input *ListFleetMetricsInput, fn func(*ListFleetMetricsOutput, bool) bool, opts ...request.Option) error {
 14961  	p := request.Pagination{
 14962  		NewRequest: func() (*request.Request, error) {
 14963  			var inCpy *ListFleetMetricsInput
 14964  			if input != nil {
 14965  				tmp := *input
 14966  				inCpy = &tmp
 14967  			}
 14968  			req, _ := c.ListFleetMetricsRequest(inCpy)
 14969  			req.SetContext(ctx)
 14970  			req.ApplyOptions(opts...)
 14971  			return req, nil
 14972  		},
 14973  	}
 14974  
 14975  	for p.Next() {
 14976  		if !fn(p.Page().(*ListFleetMetricsOutput), !p.HasNextPage()) {
 14977  			break
 14978  		}
 14979  	}
 14980  
 14981  	return p.Err()
 14982  }
 14983  
 14984  const opListIndices = "ListIndices"
 14985  
 14986  // ListIndicesRequest generates a "aws/request.Request" representing the
 14987  // client's request for the ListIndices operation. The "output" return
 14988  // value will be populated with the request's response once the request completes
 14989  // successfully.
 14990  //
 14991  // Use "Send" method on the returned Request to send the API call to the service.
 14992  // the "output" return value is not valid until after Send returns without error.
 14993  //
 14994  // See ListIndices for more information on using the ListIndices
 14995  // API call, and error handling.
 14996  //
 14997  // This method is useful when you want to inject custom logic or configuration
 14998  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 14999  //
 15000  //
 15001  //    // Example sending a request using the ListIndicesRequest method.
 15002  //    req, resp := client.ListIndicesRequest(params)
 15003  //
 15004  //    err := req.Send()
 15005  //    if err == nil { // resp is now filled
 15006  //        fmt.Println(resp)
 15007  //    }
 15008  func (c *IoT) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
 15009  	op := &request.Operation{
 15010  		Name:       opListIndices,
 15011  		HTTPMethod: "GET",
 15012  		HTTPPath:   "/indices",
 15013  		Paginator: &request.Paginator{
 15014  			InputTokens:     []string{"nextToken"},
 15015  			OutputTokens:    []string{"nextToken"},
 15016  			LimitToken:      "maxResults",
 15017  			TruncationToken: "",
 15018  		},
 15019  	}
 15020  
 15021  	if input == nil {
 15022  		input = &ListIndicesInput{}
 15023  	}
 15024  
 15025  	output = &ListIndicesOutput{}
 15026  	req = c.newRequest(op, input, output)
 15027  	return
 15028  }
 15029  
 15030  // ListIndices API operation for AWS IoT.
 15031  //
 15032  // Lists the search indices.
 15033  //
 15034  // Requires permission to access the ListIndices (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 15035  // action.
 15036  //
 15037  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 15038  // with awserr.Error's Code and Message methods to get detailed information about
 15039  // the error.
 15040  //
 15041  // See the AWS API reference guide for AWS IoT's
 15042  // API operation ListIndices for usage and error information.
 15043  //
 15044  // Returned Error Types:
 15045  //   * InvalidRequestException
 15046  //   The request is not valid.
 15047  //
 15048  //   * ThrottlingException
 15049  //   The rate exceeds the limit.
 15050  //
 15051  //   * UnauthorizedException
 15052  //   You are not authorized to perform this operation.
 15053  //
 15054  //   * ServiceUnavailableException
 15055  //   The service is temporarily unavailable.
 15056  //
 15057  //   * InternalFailureException
 15058  //   An unexpected error has occurred.
 15059  //
 15060  func (c *IoT) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
 15061  	req, out := c.ListIndicesRequest(input)
 15062  	return out, req.Send()
 15063  }
 15064  
 15065  // ListIndicesWithContext is the same as ListIndices with the addition of
 15066  // the ability to pass a context and additional request options.
 15067  //
 15068  // See ListIndices for details on how to use this API operation.
 15069  //
 15070  // The context must be non-nil and will be used for request cancellation. If
 15071  // the context is nil a panic will occur. In the future the SDK may create
 15072  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15073  // for more information on using Contexts.
 15074  func (c *IoT) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
 15075  	req, out := c.ListIndicesRequest(input)
 15076  	req.SetContext(ctx)
 15077  	req.ApplyOptions(opts...)
 15078  	return out, req.Send()
 15079  }
 15080  
 15081  // ListIndicesPages iterates over the pages of a ListIndices operation,
 15082  // calling the "fn" function with the response data for each page. To stop
 15083  // iterating, return false from the fn function.
 15084  //
 15085  // See ListIndices method for more information on how to use this operation.
 15086  //
 15087  // Note: This operation can generate multiple requests to a service.
 15088  //
 15089  //    // Example iterating over at most 3 pages of a ListIndices operation.
 15090  //    pageNum := 0
 15091  //    err := client.ListIndicesPages(params,
 15092  //        func(page *iot.ListIndicesOutput, lastPage bool) bool {
 15093  //            pageNum++
 15094  //            fmt.Println(page)
 15095  //            return pageNum <= 3
 15096  //        })
 15097  //
 15098  func (c *IoT) ListIndicesPages(input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool) error {
 15099  	return c.ListIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
 15100  }
 15101  
 15102  // ListIndicesPagesWithContext same as ListIndicesPages except
 15103  // it takes a Context and allows setting request options on the pages.
 15104  //
 15105  // The context must be non-nil and will be used for request cancellation. If
 15106  // the context is nil a panic will occur. In the future the SDK may create
 15107  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15108  // for more information on using Contexts.
 15109  func (c *IoT) ListIndicesPagesWithContext(ctx aws.Context, input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool, opts ...request.Option) error {
 15110  	p := request.Pagination{
 15111  		NewRequest: func() (*request.Request, error) {
 15112  			var inCpy *ListIndicesInput
 15113  			if input != nil {
 15114  				tmp := *input
 15115  				inCpy = &tmp
 15116  			}
 15117  			req, _ := c.ListIndicesRequest(inCpy)
 15118  			req.SetContext(ctx)
 15119  			req.ApplyOptions(opts...)
 15120  			return req, nil
 15121  		},
 15122  	}
 15123  
 15124  	for p.Next() {
 15125  		if !fn(p.Page().(*ListIndicesOutput), !p.HasNextPage()) {
 15126  			break
 15127  		}
 15128  	}
 15129  
 15130  	return p.Err()
 15131  }
 15132  
 15133  const opListJobExecutionsForJob = "ListJobExecutionsForJob"
 15134  
 15135  // ListJobExecutionsForJobRequest generates a "aws/request.Request" representing the
 15136  // client's request for the ListJobExecutionsForJob operation. The "output" return
 15137  // value will be populated with the request's response once the request completes
 15138  // successfully.
 15139  //
 15140  // Use "Send" method on the returned Request to send the API call to the service.
 15141  // the "output" return value is not valid until after Send returns without error.
 15142  //
 15143  // See ListJobExecutionsForJob for more information on using the ListJobExecutionsForJob
 15144  // API call, and error handling.
 15145  //
 15146  // This method is useful when you want to inject custom logic or configuration
 15147  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 15148  //
 15149  //
 15150  //    // Example sending a request using the ListJobExecutionsForJobRequest method.
 15151  //    req, resp := client.ListJobExecutionsForJobRequest(params)
 15152  //
 15153  //    err := req.Send()
 15154  //    if err == nil { // resp is now filled
 15155  //        fmt.Println(resp)
 15156  //    }
 15157  func (c *IoT) ListJobExecutionsForJobRequest(input *ListJobExecutionsForJobInput) (req *request.Request, output *ListJobExecutionsForJobOutput) {
 15158  	op := &request.Operation{
 15159  		Name:       opListJobExecutionsForJob,
 15160  		HTTPMethod: "GET",
 15161  		HTTPPath:   "/jobs/{jobId}/things",
 15162  		Paginator: &request.Paginator{
 15163  			InputTokens:     []string{"nextToken"},
 15164  			OutputTokens:    []string{"nextToken"},
 15165  			LimitToken:      "maxResults",
 15166  			TruncationToken: "",
 15167  		},
 15168  	}
 15169  
 15170  	if input == nil {
 15171  		input = &ListJobExecutionsForJobInput{}
 15172  	}
 15173  
 15174  	output = &ListJobExecutionsForJobOutput{}
 15175  	req = c.newRequest(op, input, output)
 15176  	return
 15177  }
 15178  
 15179  // ListJobExecutionsForJob API operation for AWS IoT.
 15180  //
 15181  // Lists the job executions for a job.
 15182  //
 15183  // Requires permission to access the ListJobExecutionsForJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 15184  // action.
 15185  //
 15186  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 15187  // with awserr.Error's Code and Message methods to get detailed information about
 15188  // the error.
 15189  //
 15190  // See the AWS API reference guide for AWS IoT's
 15191  // API operation ListJobExecutionsForJob for usage and error information.
 15192  //
 15193  // Returned Error Types:
 15194  //   * InvalidRequestException
 15195  //   The request is not valid.
 15196  //
 15197  //   * ResourceNotFoundException
 15198  //   The specified resource does not exist.
 15199  //
 15200  //   * ThrottlingException
 15201  //   The rate exceeds the limit.
 15202  //
 15203  //   * ServiceUnavailableException
 15204  //   The service is temporarily unavailable.
 15205  //
 15206  func (c *IoT) ListJobExecutionsForJob(input *ListJobExecutionsForJobInput) (*ListJobExecutionsForJobOutput, error) {
 15207  	req, out := c.ListJobExecutionsForJobRequest(input)
 15208  	return out, req.Send()
 15209  }
 15210  
 15211  // ListJobExecutionsForJobWithContext is the same as ListJobExecutionsForJob with the addition of
 15212  // the ability to pass a context and additional request options.
 15213  //
 15214  // See ListJobExecutionsForJob for details on how to use this API operation.
 15215  //
 15216  // The context must be non-nil and will be used for request cancellation. If
 15217  // the context is nil a panic will occur. In the future the SDK may create
 15218  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15219  // for more information on using Contexts.
 15220  func (c *IoT) ListJobExecutionsForJobWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, opts ...request.Option) (*ListJobExecutionsForJobOutput, error) {
 15221  	req, out := c.ListJobExecutionsForJobRequest(input)
 15222  	req.SetContext(ctx)
 15223  	req.ApplyOptions(opts...)
 15224  	return out, req.Send()
 15225  }
 15226  
 15227  // ListJobExecutionsForJobPages iterates over the pages of a ListJobExecutionsForJob operation,
 15228  // calling the "fn" function with the response data for each page. To stop
 15229  // iterating, return false from the fn function.
 15230  //
 15231  // See ListJobExecutionsForJob method for more information on how to use this operation.
 15232  //
 15233  // Note: This operation can generate multiple requests to a service.
 15234  //
 15235  //    // Example iterating over at most 3 pages of a ListJobExecutionsForJob operation.
 15236  //    pageNum := 0
 15237  //    err := client.ListJobExecutionsForJobPages(params,
 15238  //        func(page *iot.ListJobExecutionsForJobOutput, lastPage bool) bool {
 15239  //            pageNum++
 15240  //            fmt.Println(page)
 15241  //            return pageNum <= 3
 15242  //        })
 15243  //
 15244  func (c *IoT) ListJobExecutionsForJobPages(input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool) error {
 15245  	return c.ListJobExecutionsForJobPagesWithContext(aws.BackgroundContext(), input, fn)
 15246  }
 15247  
 15248  // ListJobExecutionsForJobPagesWithContext same as ListJobExecutionsForJobPages except
 15249  // it takes a Context and allows setting request options on the pages.
 15250  //
 15251  // The context must be non-nil and will be used for request cancellation. If
 15252  // the context is nil a panic will occur. In the future the SDK may create
 15253  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15254  // for more information on using Contexts.
 15255  func (c *IoT) ListJobExecutionsForJobPagesWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool, opts ...request.Option) error {
 15256  	p := request.Pagination{
 15257  		NewRequest: func() (*request.Request, error) {
 15258  			var inCpy *ListJobExecutionsForJobInput
 15259  			if input != nil {
 15260  				tmp := *input
 15261  				inCpy = &tmp
 15262  			}
 15263  			req, _ := c.ListJobExecutionsForJobRequest(inCpy)
 15264  			req.SetContext(ctx)
 15265  			req.ApplyOptions(opts...)
 15266  			return req, nil
 15267  		},
 15268  	}
 15269  
 15270  	for p.Next() {
 15271  		if !fn(p.Page().(*ListJobExecutionsForJobOutput), !p.HasNextPage()) {
 15272  			break
 15273  		}
 15274  	}
 15275  
 15276  	return p.Err()
 15277  }
 15278  
 15279  const opListJobExecutionsForThing = "ListJobExecutionsForThing"
 15280  
 15281  // ListJobExecutionsForThingRequest generates a "aws/request.Request" representing the
 15282  // client's request for the ListJobExecutionsForThing operation. The "output" return
 15283  // value will be populated with the request's response once the request completes
 15284  // successfully.
 15285  //
 15286  // Use "Send" method on the returned Request to send the API call to the service.
 15287  // the "output" return value is not valid until after Send returns without error.
 15288  //
 15289  // See ListJobExecutionsForThing for more information on using the ListJobExecutionsForThing
 15290  // API call, and error handling.
 15291  //
 15292  // This method is useful when you want to inject custom logic or configuration
 15293  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 15294  //
 15295  //
 15296  //    // Example sending a request using the ListJobExecutionsForThingRequest method.
 15297  //    req, resp := client.ListJobExecutionsForThingRequest(params)
 15298  //
 15299  //    err := req.Send()
 15300  //    if err == nil { // resp is now filled
 15301  //        fmt.Println(resp)
 15302  //    }
 15303  func (c *IoT) ListJobExecutionsForThingRequest(input *ListJobExecutionsForThingInput) (req *request.Request, output *ListJobExecutionsForThingOutput) {
 15304  	op := &request.Operation{
 15305  		Name:       opListJobExecutionsForThing,
 15306  		HTTPMethod: "GET",
 15307  		HTTPPath:   "/things/{thingName}/jobs",
 15308  		Paginator: &request.Paginator{
 15309  			InputTokens:     []string{"nextToken"},
 15310  			OutputTokens:    []string{"nextToken"},
 15311  			LimitToken:      "maxResults",
 15312  			TruncationToken: "",
 15313  		},
 15314  	}
 15315  
 15316  	if input == nil {
 15317  		input = &ListJobExecutionsForThingInput{}
 15318  	}
 15319  
 15320  	output = &ListJobExecutionsForThingOutput{}
 15321  	req = c.newRequest(op, input, output)
 15322  	return
 15323  }
 15324  
 15325  // ListJobExecutionsForThing API operation for AWS IoT.
 15326  //
 15327  // Lists the job executions for the specified thing.
 15328  //
 15329  // Requires permission to access the ListJobExecutionsForThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 15330  // action.
 15331  //
 15332  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 15333  // with awserr.Error's Code and Message methods to get detailed information about
 15334  // the error.
 15335  //
 15336  // See the AWS API reference guide for AWS IoT's
 15337  // API operation ListJobExecutionsForThing for usage and error information.
 15338  //
 15339  // Returned Error Types:
 15340  //   * InvalidRequestException
 15341  //   The request is not valid.
 15342  //
 15343  //   * ResourceNotFoundException
 15344  //   The specified resource does not exist.
 15345  //
 15346  //   * ThrottlingException
 15347  //   The rate exceeds the limit.
 15348  //
 15349  //   * ServiceUnavailableException
 15350  //   The service is temporarily unavailable.
 15351  //
 15352  func (c *IoT) ListJobExecutionsForThing(input *ListJobExecutionsForThingInput) (*ListJobExecutionsForThingOutput, error) {
 15353  	req, out := c.ListJobExecutionsForThingRequest(input)
 15354  	return out, req.Send()
 15355  }
 15356  
 15357  // ListJobExecutionsForThingWithContext is the same as ListJobExecutionsForThing with the addition of
 15358  // the ability to pass a context and additional request options.
 15359  //
 15360  // See ListJobExecutionsForThing for details on how to use this API operation.
 15361  //
 15362  // The context must be non-nil and will be used for request cancellation. If
 15363  // the context is nil a panic will occur. In the future the SDK may create
 15364  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15365  // for more information on using Contexts.
 15366  func (c *IoT) ListJobExecutionsForThingWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, opts ...request.Option) (*ListJobExecutionsForThingOutput, error) {
 15367  	req, out := c.ListJobExecutionsForThingRequest(input)
 15368  	req.SetContext(ctx)
 15369  	req.ApplyOptions(opts...)
 15370  	return out, req.Send()
 15371  }
 15372  
 15373  // ListJobExecutionsForThingPages iterates over the pages of a ListJobExecutionsForThing operation,
 15374  // calling the "fn" function with the response data for each page. To stop
 15375  // iterating, return false from the fn function.
 15376  //
 15377  // See ListJobExecutionsForThing method for more information on how to use this operation.
 15378  //
 15379  // Note: This operation can generate multiple requests to a service.
 15380  //
 15381  //    // Example iterating over at most 3 pages of a ListJobExecutionsForThing operation.
 15382  //    pageNum := 0
 15383  //    err := client.ListJobExecutionsForThingPages(params,
 15384  //        func(page *iot.ListJobExecutionsForThingOutput, lastPage bool) bool {
 15385  //            pageNum++
 15386  //            fmt.Println(page)
 15387  //            return pageNum <= 3
 15388  //        })
 15389  //
 15390  func (c *IoT) ListJobExecutionsForThingPages(input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool) error {
 15391  	return c.ListJobExecutionsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
 15392  }
 15393  
 15394  // ListJobExecutionsForThingPagesWithContext same as ListJobExecutionsForThingPages except
 15395  // it takes a Context and allows setting request options on the pages.
 15396  //
 15397  // The context must be non-nil and will be used for request cancellation. If
 15398  // the context is nil a panic will occur. In the future the SDK may create
 15399  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15400  // for more information on using Contexts.
 15401  func (c *IoT) ListJobExecutionsForThingPagesWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool, opts ...request.Option) error {
 15402  	p := request.Pagination{
 15403  		NewRequest: func() (*request.Request, error) {
 15404  			var inCpy *ListJobExecutionsForThingInput
 15405  			if input != nil {
 15406  				tmp := *input
 15407  				inCpy = &tmp
 15408  			}
 15409  			req, _ := c.ListJobExecutionsForThingRequest(inCpy)
 15410  			req.SetContext(ctx)
 15411  			req.ApplyOptions(opts...)
 15412  			return req, nil
 15413  		},
 15414  	}
 15415  
 15416  	for p.Next() {
 15417  		if !fn(p.Page().(*ListJobExecutionsForThingOutput), !p.HasNextPage()) {
 15418  			break
 15419  		}
 15420  	}
 15421  
 15422  	return p.Err()
 15423  }
 15424  
 15425  const opListJobTemplates = "ListJobTemplates"
 15426  
 15427  // ListJobTemplatesRequest generates a "aws/request.Request" representing the
 15428  // client's request for the ListJobTemplates operation. The "output" return
 15429  // value will be populated with the request's response once the request completes
 15430  // successfully.
 15431  //
 15432  // Use "Send" method on the returned Request to send the API call to the service.
 15433  // the "output" return value is not valid until after Send returns without error.
 15434  //
 15435  // See ListJobTemplates for more information on using the ListJobTemplates
 15436  // API call, and error handling.
 15437  //
 15438  // This method is useful when you want to inject custom logic or configuration
 15439  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 15440  //
 15441  //
 15442  //    // Example sending a request using the ListJobTemplatesRequest method.
 15443  //    req, resp := client.ListJobTemplatesRequest(params)
 15444  //
 15445  //    err := req.Send()
 15446  //    if err == nil { // resp is now filled
 15447  //        fmt.Println(resp)
 15448  //    }
 15449  func (c *IoT) ListJobTemplatesRequest(input *ListJobTemplatesInput) (req *request.Request, output *ListJobTemplatesOutput) {
 15450  	op := &request.Operation{
 15451  		Name:       opListJobTemplates,
 15452  		HTTPMethod: "GET",
 15453  		HTTPPath:   "/job-templates",
 15454  		Paginator: &request.Paginator{
 15455  			InputTokens:     []string{"nextToken"},
 15456  			OutputTokens:    []string{"nextToken"},
 15457  			LimitToken:      "maxResults",
 15458  			TruncationToken: "",
 15459  		},
 15460  	}
 15461  
 15462  	if input == nil {
 15463  		input = &ListJobTemplatesInput{}
 15464  	}
 15465  
 15466  	output = &ListJobTemplatesOutput{}
 15467  	req = c.newRequest(op, input, output)
 15468  	return
 15469  }
 15470  
 15471  // ListJobTemplates API operation for AWS IoT.
 15472  //
 15473  // Returns a list of job templates.
 15474  //
 15475  // Requires permission to access the ListJobTemplates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 15476  // action.
 15477  //
 15478  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 15479  // with awserr.Error's Code and Message methods to get detailed information about
 15480  // the error.
 15481  //
 15482  // See the AWS API reference guide for AWS IoT's
 15483  // API operation ListJobTemplates for usage and error information.
 15484  //
 15485  // Returned Error Types:
 15486  //   * InvalidRequestException
 15487  //   The request is not valid.
 15488  //
 15489  //   * ThrottlingException
 15490  //   The rate exceeds the limit.
 15491  //
 15492  //   * InternalFailureException
 15493  //   An unexpected error has occurred.
 15494  //
 15495  func (c *IoT) ListJobTemplates(input *ListJobTemplatesInput) (*ListJobTemplatesOutput, error) {
 15496  	req, out := c.ListJobTemplatesRequest(input)
 15497  	return out, req.Send()
 15498  }
 15499  
 15500  // ListJobTemplatesWithContext is the same as ListJobTemplates with the addition of
 15501  // the ability to pass a context and additional request options.
 15502  //
 15503  // See ListJobTemplates for details on how to use this API operation.
 15504  //
 15505  // The context must be non-nil and will be used for request cancellation. If
 15506  // the context is nil a panic will occur. In the future the SDK may create
 15507  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15508  // for more information on using Contexts.
 15509  func (c *IoT) ListJobTemplatesWithContext(ctx aws.Context, input *ListJobTemplatesInput, opts ...request.Option) (*ListJobTemplatesOutput, error) {
 15510  	req, out := c.ListJobTemplatesRequest(input)
 15511  	req.SetContext(ctx)
 15512  	req.ApplyOptions(opts...)
 15513  	return out, req.Send()
 15514  }
 15515  
 15516  // ListJobTemplatesPages iterates over the pages of a ListJobTemplates operation,
 15517  // calling the "fn" function with the response data for each page. To stop
 15518  // iterating, return false from the fn function.
 15519  //
 15520  // See ListJobTemplates method for more information on how to use this operation.
 15521  //
 15522  // Note: This operation can generate multiple requests to a service.
 15523  //
 15524  //    // Example iterating over at most 3 pages of a ListJobTemplates operation.
 15525  //    pageNum := 0
 15526  //    err := client.ListJobTemplatesPages(params,
 15527  //        func(page *iot.ListJobTemplatesOutput, lastPage bool) bool {
 15528  //            pageNum++
 15529  //            fmt.Println(page)
 15530  //            return pageNum <= 3
 15531  //        })
 15532  //
 15533  func (c *IoT) ListJobTemplatesPages(input *ListJobTemplatesInput, fn func(*ListJobTemplatesOutput, bool) bool) error {
 15534  	return c.ListJobTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
 15535  }
 15536  
 15537  // ListJobTemplatesPagesWithContext same as ListJobTemplatesPages except
 15538  // it takes a Context and allows setting request options on the pages.
 15539  //
 15540  // The context must be non-nil and will be used for request cancellation. If
 15541  // the context is nil a panic will occur. In the future the SDK may create
 15542  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15543  // for more information on using Contexts.
 15544  func (c *IoT) ListJobTemplatesPagesWithContext(ctx aws.Context, input *ListJobTemplatesInput, fn func(*ListJobTemplatesOutput, bool) bool, opts ...request.Option) error {
 15545  	p := request.Pagination{
 15546  		NewRequest: func() (*request.Request, error) {
 15547  			var inCpy *ListJobTemplatesInput
 15548  			if input != nil {
 15549  				tmp := *input
 15550  				inCpy = &tmp
 15551  			}
 15552  			req, _ := c.ListJobTemplatesRequest(inCpy)
 15553  			req.SetContext(ctx)
 15554  			req.ApplyOptions(opts...)
 15555  			return req, nil
 15556  		},
 15557  	}
 15558  
 15559  	for p.Next() {
 15560  		if !fn(p.Page().(*ListJobTemplatesOutput), !p.HasNextPage()) {
 15561  			break
 15562  		}
 15563  	}
 15564  
 15565  	return p.Err()
 15566  }
 15567  
 15568  const opListJobs = "ListJobs"
 15569  
 15570  // ListJobsRequest generates a "aws/request.Request" representing the
 15571  // client's request for the ListJobs operation. The "output" return
 15572  // value will be populated with the request's response once the request completes
 15573  // successfully.
 15574  //
 15575  // Use "Send" method on the returned Request to send the API call to the service.
 15576  // the "output" return value is not valid until after Send returns without error.
 15577  //
 15578  // See ListJobs for more information on using the ListJobs
 15579  // API call, and error handling.
 15580  //
 15581  // This method is useful when you want to inject custom logic or configuration
 15582  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 15583  //
 15584  //
 15585  //    // Example sending a request using the ListJobsRequest method.
 15586  //    req, resp := client.ListJobsRequest(params)
 15587  //
 15588  //    err := req.Send()
 15589  //    if err == nil { // resp is now filled
 15590  //        fmt.Println(resp)
 15591  //    }
 15592  func (c *IoT) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
 15593  	op := &request.Operation{
 15594  		Name:       opListJobs,
 15595  		HTTPMethod: "GET",
 15596  		HTTPPath:   "/jobs",
 15597  		Paginator: &request.Paginator{
 15598  			InputTokens:     []string{"nextToken"},
 15599  			OutputTokens:    []string{"nextToken"},
 15600  			LimitToken:      "maxResults",
 15601  			TruncationToken: "",
 15602  		},
 15603  	}
 15604  
 15605  	if input == nil {
 15606  		input = &ListJobsInput{}
 15607  	}
 15608  
 15609  	output = &ListJobsOutput{}
 15610  	req = c.newRequest(op, input, output)
 15611  	return
 15612  }
 15613  
 15614  // ListJobs API operation for AWS IoT.
 15615  //
 15616  // Lists jobs.
 15617  //
 15618  // Requires permission to access the ListJobs (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 15619  // action.
 15620  //
 15621  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 15622  // with awserr.Error's Code and Message methods to get detailed information about
 15623  // the error.
 15624  //
 15625  // See the AWS API reference guide for AWS IoT's
 15626  // API operation ListJobs for usage and error information.
 15627  //
 15628  // Returned Error Types:
 15629  //   * InvalidRequestException
 15630  //   The request is not valid.
 15631  //
 15632  //   * ResourceNotFoundException
 15633  //   The specified resource does not exist.
 15634  //
 15635  //   * ThrottlingException
 15636  //   The rate exceeds the limit.
 15637  //
 15638  //   * ServiceUnavailableException
 15639  //   The service is temporarily unavailable.
 15640  //
 15641  func (c *IoT) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
 15642  	req, out := c.ListJobsRequest(input)
 15643  	return out, req.Send()
 15644  }
 15645  
 15646  // ListJobsWithContext is the same as ListJobs with the addition of
 15647  // the ability to pass a context and additional request options.
 15648  //
 15649  // See ListJobs for details on how to use this API operation.
 15650  //
 15651  // The context must be non-nil and will be used for request cancellation. If
 15652  // the context is nil a panic will occur. In the future the SDK may create
 15653  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15654  // for more information on using Contexts.
 15655  func (c *IoT) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
 15656  	req, out := c.ListJobsRequest(input)
 15657  	req.SetContext(ctx)
 15658  	req.ApplyOptions(opts...)
 15659  	return out, req.Send()
 15660  }
 15661  
 15662  // ListJobsPages iterates over the pages of a ListJobs operation,
 15663  // calling the "fn" function with the response data for each page. To stop
 15664  // iterating, return false from the fn function.
 15665  //
 15666  // See ListJobs method for more information on how to use this operation.
 15667  //
 15668  // Note: This operation can generate multiple requests to a service.
 15669  //
 15670  //    // Example iterating over at most 3 pages of a ListJobs operation.
 15671  //    pageNum := 0
 15672  //    err := client.ListJobsPages(params,
 15673  //        func(page *iot.ListJobsOutput, lastPage bool) bool {
 15674  //            pageNum++
 15675  //            fmt.Println(page)
 15676  //            return pageNum <= 3
 15677  //        })
 15678  //
 15679  func (c *IoT) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
 15680  	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
 15681  }
 15682  
 15683  // ListJobsPagesWithContext same as ListJobsPages except
 15684  // it takes a Context and allows setting request options on the pages.
 15685  //
 15686  // The context must be non-nil and will be used for request cancellation. If
 15687  // the context is nil a panic will occur. In the future the SDK may create
 15688  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15689  // for more information on using Contexts.
 15690  func (c *IoT) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
 15691  	p := request.Pagination{
 15692  		NewRequest: func() (*request.Request, error) {
 15693  			var inCpy *ListJobsInput
 15694  			if input != nil {
 15695  				tmp := *input
 15696  				inCpy = &tmp
 15697  			}
 15698  			req, _ := c.ListJobsRequest(inCpy)
 15699  			req.SetContext(ctx)
 15700  			req.ApplyOptions(opts...)
 15701  			return req, nil
 15702  		},
 15703  	}
 15704  
 15705  	for p.Next() {
 15706  		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
 15707  			break
 15708  		}
 15709  	}
 15710  
 15711  	return p.Err()
 15712  }
 15713  
 15714  const opListMitigationActions = "ListMitigationActions"
 15715  
 15716  // ListMitigationActionsRequest generates a "aws/request.Request" representing the
 15717  // client's request for the ListMitigationActions operation. The "output" return
 15718  // value will be populated with the request's response once the request completes
 15719  // successfully.
 15720  //
 15721  // Use "Send" method on the returned Request to send the API call to the service.
 15722  // the "output" return value is not valid until after Send returns without error.
 15723  //
 15724  // See ListMitigationActions for more information on using the ListMitigationActions
 15725  // API call, and error handling.
 15726  //
 15727  // This method is useful when you want to inject custom logic or configuration
 15728  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 15729  //
 15730  //
 15731  //    // Example sending a request using the ListMitigationActionsRequest method.
 15732  //    req, resp := client.ListMitigationActionsRequest(params)
 15733  //
 15734  //    err := req.Send()
 15735  //    if err == nil { // resp is now filled
 15736  //        fmt.Println(resp)
 15737  //    }
 15738  func (c *IoT) ListMitigationActionsRequest(input *ListMitigationActionsInput) (req *request.Request, output *ListMitigationActionsOutput) {
 15739  	op := &request.Operation{
 15740  		Name:       opListMitigationActions,
 15741  		HTTPMethod: "GET",
 15742  		HTTPPath:   "/mitigationactions/actions",
 15743  		Paginator: &request.Paginator{
 15744  			InputTokens:     []string{"nextToken"},
 15745  			OutputTokens:    []string{"nextToken"},
 15746  			LimitToken:      "maxResults",
 15747  			TruncationToken: "",
 15748  		},
 15749  	}
 15750  
 15751  	if input == nil {
 15752  		input = &ListMitigationActionsInput{}
 15753  	}
 15754  
 15755  	output = &ListMitigationActionsOutput{}
 15756  	req = c.newRequest(op, input, output)
 15757  	return
 15758  }
 15759  
 15760  // ListMitigationActions API operation for AWS IoT.
 15761  //
 15762  // Gets a list of all mitigation actions that match the specified filter criteria.
 15763  //
 15764  // Requires permission to access the ListMitigationActions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 15765  // action.
 15766  //
 15767  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 15768  // with awserr.Error's Code and Message methods to get detailed information about
 15769  // the error.
 15770  //
 15771  // See the AWS API reference guide for AWS IoT's
 15772  // API operation ListMitigationActions for usage and error information.
 15773  //
 15774  // Returned Error Types:
 15775  //   * InvalidRequestException
 15776  //   The request is not valid.
 15777  //
 15778  //   * ThrottlingException
 15779  //   The rate exceeds the limit.
 15780  //
 15781  //   * InternalFailureException
 15782  //   An unexpected error has occurred.
 15783  //
 15784  func (c *IoT) ListMitigationActions(input *ListMitigationActionsInput) (*ListMitigationActionsOutput, error) {
 15785  	req, out := c.ListMitigationActionsRequest(input)
 15786  	return out, req.Send()
 15787  }
 15788  
 15789  // ListMitigationActionsWithContext is the same as ListMitigationActions with the addition of
 15790  // the ability to pass a context and additional request options.
 15791  //
 15792  // See ListMitigationActions for details on how to use this API operation.
 15793  //
 15794  // The context must be non-nil and will be used for request cancellation. If
 15795  // the context is nil a panic will occur. In the future the SDK may create
 15796  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15797  // for more information on using Contexts.
 15798  func (c *IoT) ListMitigationActionsWithContext(ctx aws.Context, input *ListMitigationActionsInput, opts ...request.Option) (*ListMitigationActionsOutput, error) {
 15799  	req, out := c.ListMitigationActionsRequest(input)
 15800  	req.SetContext(ctx)
 15801  	req.ApplyOptions(opts...)
 15802  	return out, req.Send()
 15803  }
 15804  
 15805  // ListMitigationActionsPages iterates over the pages of a ListMitigationActions operation,
 15806  // calling the "fn" function with the response data for each page. To stop
 15807  // iterating, return false from the fn function.
 15808  //
 15809  // See ListMitigationActions method for more information on how to use this operation.
 15810  //
 15811  // Note: This operation can generate multiple requests to a service.
 15812  //
 15813  //    // Example iterating over at most 3 pages of a ListMitigationActions operation.
 15814  //    pageNum := 0
 15815  //    err := client.ListMitigationActionsPages(params,
 15816  //        func(page *iot.ListMitigationActionsOutput, lastPage bool) bool {
 15817  //            pageNum++
 15818  //            fmt.Println(page)
 15819  //            return pageNum <= 3
 15820  //        })
 15821  //
 15822  func (c *IoT) ListMitigationActionsPages(input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool) error {
 15823  	return c.ListMitigationActionsPagesWithContext(aws.BackgroundContext(), input, fn)
 15824  }
 15825  
 15826  // ListMitigationActionsPagesWithContext same as ListMitigationActionsPages except
 15827  // it takes a Context and allows setting request options on the pages.
 15828  //
 15829  // The context must be non-nil and will be used for request cancellation. If
 15830  // the context is nil a panic will occur. In the future the SDK may create
 15831  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15832  // for more information on using Contexts.
 15833  func (c *IoT) ListMitigationActionsPagesWithContext(ctx aws.Context, input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool, opts ...request.Option) error {
 15834  	p := request.Pagination{
 15835  		NewRequest: func() (*request.Request, error) {
 15836  			var inCpy *ListMitigationActionsInput
 15837  			if input != nil {
 15838  				tmp := *input
 15839  				inCpy = &tmp
 15840  			}
 15841  			req, _ := c.ListMitigationActionsRequest(inCpy)
 15842  			req.SetContext(ctx)
 15843  			req.ApplyOptions(opts...)
 15844  			return req, nil
 15845  		},
 15846  	}
 15847  
 15848  	for p.Next() {
 15849  		if !fn(p.Page().(*ListMitigationActionsOutput), !p.HasNextPage()) {
 15850  			break
 15851  		}
 15852  	}
 15853  
 15854  	return p.Err()
 15855  }
 15856  
 15857  const opListOTAUpdates = "ListOTAUpdates"
 15858  
 15859  // ListOTAUpdatesRequest generates a "aws/request.Request" representing the
 15860  // client's request for the ListOTAUpdates operation. The "output" return
 15861  // value will be populated with the request's response once the request completes
 15862  // successfully.
 15863  //
 15864  // Use "Send" method on the returned Request to send the API call to the service.
 15865  // the "output" return value is not valid until after Send returns without error.
 15866  //
 15867  // See ListOTAUpdates for more information on using the ListOTAUpdates
 15868  // API call, and error handling.
 15869  //
 15870  // This method is useful when you want to inject custom logic or configuration
 15871  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 15872  //
 15873  //
 15874  //    // Example sending a request using the ListOTAUpdatesRequest method.
 15875  //    req, resp := client.ListOTAUpdatesRequest(params)
 15876  //
 15877  //    err := req.Send()
 15878  //    if err == nil { // resp is now filled
 15879  //        fmt.Println(resp)
 15880  //    }
 15881  func (c *IoT) ListOTAUpdatesRequest(input *ListOTAUpdatesInput) (req *request.Request, output *ListOTAUpdatesOutput) {
 15882  	op := &request.Operation{
 15883  		Name:       opListOTAUpdates,
 15884  		HTTPMethod: "GET",
 15885  		HTTPPath:   "/otaUpdates",
 15886  		Paginator: &request.Paginator{
 15887  			InputTokens:     []string{"nextToken"},
 15888  			OutputTokens:    []string{"nextToken"},
 15889  			LimitToken:      "maxResults",
 15890  			TruncationToken: "",
 15891  		},
 15892  	}
 15893  
 15894  	if input == nil {
 15895  		input = &ListOTAUpdatesInput{}
 15896  	}
 15897  
 15898  	output = &ListOTAUpdatesOutput{}
 15899  	req = c.newRequest(op, input, output)
 15900  	return
 15901  }
 15902  
 15903  // ListOTAUpdates API operation for AWS IoT.
 15904  //
 15905  // Lists OTA updates.
 15906  //
 15907  // Requires permission to access the ListOTAUpdates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 15908  // action.
 15909  //
 15910  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 15911  // with awserr.Error's Code and Message methods to get detailed information about
 15912  // the error.
 15913  //
 15914  // See the AWS API reference guide for AWS IoT's
 15915  // API operation ListOTAUpdates for usage and error information.
 15916  //
 15917  // Returned Error Types:
 15918  //   * InvalidRequestException
 15919  //   The request is not valid.
 15920  //
 15921  //   * ThrottlingException
 15922  //   The rate exceeds the limit.
 15923  //
 15924  //   * UnauthorizedException
 15925  //   You are not authorized to perform this operation.
 15926  //
 15927  //   * InternalFailureException
 15928  //   An unexpected error has occurred.
 15929  //
 15930  //   * ServiceUnavailableException
 15931  //   The service is temporarily unavailable.
 15932  //
 15933  func (c *IoT) ListOTAUpdates(input *ListOTAUpdatesInput) (*ListOTAUpdatesOutput, error) {
 15934  	req, out := c.ListOTAUpdatesRequest(input)
 15935  	return out, req.Send()
 15936  }
 15937  
 15938  // ListOTAUpdatesWithContext is the same as ListOTAUpdates with the addition of
 15939  // the ability to pass a context and additional request options.
 15940  //
 15941  // See ListOTAUpdates for details on how to use this API operation.
 15942  //
 15943  // The context must be non-nil and will be used for request cancellation. If
 15944  // the context is nil a panic will occur. In the future the SDK may create
 15945  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15946  // for more information on using Contexts.
 15947  func (c *IoT) ListOTAUpdatesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, opts ...request.Option) (*ListOTAUpdatesOutput, error) {
 15948  	req, out := c.ListOTAUpdatesRequest(input)
 15949  	req.SetContext(ctx)
 15950  	req.ApplyOptions(opts...)
 15951  	return out, req.Send()
 15952  }
 15953  
 15954  // ListOTAUpdatesPages iterates over the pages of a ListOTAUpdates operation,
 15955  // calling the "fn" function with the response data for each page. To stop
 15956  // iterating, return false from the fn function.
 15957  //
 15958  // See ListOTAUpdates method for more information on how to use this operation.
 15959  //
 15960  // Note: This operation can generate multiple requests to a service.
 15961  //
 15962  //    // Example iterating over at most 3 pages of a ListOTAUpdates operation.
 15963  //    pageNum := 0
 15964  //    err := client.ListOTAUpdatesPages(params,
 15965  //        func(page *iot.ListOTAUpdatesOutput, lastPage bool) bool {
 15966  //            pageNum++
 15967  //            fmt.Println(page)
 15968  //            return pageNum <= 3
 15969  //        })
 15970  //
 15971  func (c *IoT) ListOTAUpdatesPages(input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool) error {
 15972  	return c.ListOTAUpdatesPagesWithContext(aws.BackgroundContext(), input, fn)
 15973  }
 15974  
 15975  // ListOTAUpdatesPagesWithContext same as ListOTAUpdatesPages except
 15976  // it takes a Context and allows setting request options on the pages.
 15977  //
 15978  // The context must be non-nil and will be used for request cancellation. If
 15979  // the context is nil a panic will occur. In the future the SDK may create
 15980  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 15981  // for more information on using Contexts.
 15982  func (c *IoT) ListOTAUpdatesPagesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool, opts ...request.Option) error {
 15983  	p := request.Pagination{
 15984  		NewRequest: func() (*request.Request, error) {
 15985  			var inCpy *ListOTAUpdatesInput
 15986  			if input != nil {
 15987  				tmp := *input
 15988  				inCpy = &tmp
 15989  			}
 15990  			req, _ := c.ListOTAUpdatesRequest(inCpy)
 15991  			req.SetContext(ctx)
 15992  			req.ApplyOptions(opts...)
 15993  			return req, nil
 15994  		},
 15995  	}
 15996  
 15997  	for p.Next() {
 15998  		if !fn(p.Page().(*ListOTAUpdatesOutput), !p.HasNextPage()) {
 15999  			break
 16000  		}
 16001  	}
 16002  
 16003  	return p.Err()
 16004  }
 16005  
 16006  const opListOutgoingCertificates = "ListOutgoingCertificates"
 16007  
 16008  // ListOutgoingCertificatesRequest generates a "aws/request.Request" representing the
 16009  // client's request for the ListOutgoingCertificates operation. The "output" return
 16010  // value will be populated with the request's response once the request completes
 16011  // successfully.
 16012  //
 16013  // Use "Send" method on the returned Request to send the API call to the service.
 16014  // the "output" return value is not valid until after Send returns without error.
 16015  //
 16016  // See ListOutgoingCertificates for more information on using the ListOutgoingCertificates
 16017  // API call, and error handling.
 16018  //
 16019  // This method is useful when you want to inject custom logic or configuration
 16020  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 16021  //
 16022  //
 16023  //    // Example sending a request using the ListOutgoingCertificatesRequest method.
 16024  //    req, resp := client.ListOutgoingCertificatesRequest(params)
 16025  //
 16026  //    err := req.Send()
 16027  //    if err == nil { // resp is now filled
 16028  //        fmt.Println(resp)
 16029  //    }
 16030  func (c *IoT) ListOutgoingCertificatesRequest(input *ListOutgoingCertificatesInput) (req *request.Request, output *ListOutgoingCertificatesOutput) {
 16031  	op := &request.Operation{
 16032  		Name:       opListOutgoingCertificates,
 16033  		HTTPMethod: "GET",
 16034  		HTTPPath:   "/certificates-out-going",
 16035  		Paginator: &request.Paginator{
 16036  			InputTokens:     []string{"marker"},
 16037  			OutputTokens:    []string{"nextMarker"},
 16038  			LimitToken:      "pageSize",
 16039  			TruncationToken: "",
 16040  		},
 16041  	}
 16042  
 16043  	if input == nil {
 16044  		input = &ListOutgoingCertificatesInput{}
 16045  	}
 16046  
 16047  	output = &ListOutgoingCertificatesOutput{}
 16048  	req = c.newRequest(op, input, output)
 16049  	return
 16050  }
 16051  
 16052  // ListOutgoingCertificates API operation for AWS IoT.
 16053  //
 16054  // Lists certificates that are being transferred but not yet accepted.
 16055  //
 16056  // Requires permission to access the ListOutgoingCertificates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 16057  // action.
 16058  //
 16059  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 16060  // with awserr.Error's Code and Message methods to get detailed information about
 16061  // the error.
 16062  //
 16063  // See the AWS API reference guide for AWS IoT's
 16064  // API operation ListOutgoingCertificates for usage and error information.
 16065  //
 16066  // Returned Error Types:
 16067  //   * InvalidRequestException
 16068  //   The request is not valid.
 16069  //
 16070  //   * ThrottlingException
 16071  //   The rate exceeds the limit.
 16072  //
 16073  //   * UnauthorizedException
 16074  //   You are not authorized to perform this operation.
 16075  //
 16076  //   * ServiceUnavailableException
 16077  //   The service is temporarily unavailable.
 16078  //
 16079  //   * InternalFailureException
 16080  //   An unexpected error has occurred.
 16081  //
 16082  func (c *IoT) ListOutgoingCertificates(input *ListOutgoingCertificatesInput) (*ListOutgoingCertificatesOutput, error) {
 16083  	req, out := c.ListOutgoingCertificatesRequest(input)
 16084  	return out, req.Send()
 16085  }
 16086  
 16087  // ListOutgoingCertificatesWithContext is the same as ListOutgoingCertificates with the addition of
 16088  // the ability to pass a context and additional request options.
 16089  //
 16090  // See ListOutgoingCertificates for details on how to use this API operation.
 16091  //
 16092  // The context must be non-nil and will be used for request cancellation. If
 16093  // the context is nil a panic will occur. In the future the SDK may create
 16094  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16095  // for more information on using Contexts.
 16096  func (c *IoT) ListOutgoingCertificatesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, opts ...request.Option) (*ListOutgoingCertificatesOutput, error) {
 16097  	req, out := c.ListOutgoingCertificatesRequest(input)
 16098  	req.SetContext(ctx)
 16099  	req.ApplyOptions(opts...)
 16100  	return out, req.Send()
 16101  }
 16102  
 16103  // ListOutgoingCertificatesPages iterates over the pages of a ListOutgoingCertificates operation,
 16104  // calling the "fn" function with the response data for each page. To stop
 16105  // iterating, return false from the fn function.
 16106  //
 16107  // See ListOutgoingCertificates method for more information on how to use this operation.
 16108  //
 16109  // Note: This operation can generate multiple requests to a service.
 16110  //
 16111  //    // Example iterating over at most 3 pages of a ListOutgoingCertificates operation.
 16112  //    pageNum := 0
 16113  //    err := client.ListOutgoingCertificatesPages(params,
 16114  //        func(page *iot.ListOutgoingCertificatesOutput, lastPage bool) bool {
 16115  //            pageNum++
 16116  //            fmt.Println(page)
 16117  //            return pageNum <= 3
 16118  //        })
 16119  //
 16120  func (c *IoT) ListOutgoingCertificatesPages(input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool) error {
 16121  	return c.ListOutgoingCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
 16122  }
 16123  
 16124  // ListOutgoingCertificatesPagesWithContext same as ListOutgoingCertificatesPages except
 16125  // it takes a Context and allows setting request options on the pages.
 16126  //
 16127  // The context must be non-nil and will be used for request cancellation. If
 16128  // the context is nil a panic will occur. In the future the SDK may create
 16129  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16130  // for more information on using Contexts.
 16131  func (c *IoT) ListOutgoingCertificatesPagesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool, opts ...request.Option) error {
 16132  	p := request.Pagination{
 16133  		NewRequest: func() (*request.Request, error) {
 16134  			var inCpy *ListOutgoingCertificatesInput
 16135  			if input != nil {
 16136  				tmp := *input
 16137  				inCpy = &tmp
 16138  			}
 16139  			req, _ := c.ListOutgoingCertificatesRequest(inCpy)
 16140  			req.SetContext(ctx)
 16141  			req.ApplyOptions(opts...)
 16142  			return req, nil
 16143  		},
 16144  	}
 16145  
 16146  	for p.Next() {
 16147  		if !fn(p.Page().(*ListOutgoingCertificatesOutput), !p.HasNextPage()) {
 16148  			break
 16149  		}
 16150  	}
 16151  
 16152  	return p.Err()
 16153  }
 16154  
 16155  const opListPolicies = "ListPolicies"
 16156  
 16157  // ListPoliciesRequest generates a "aws/request.Request" representing the
 16158  // client's request for the ListPolicies operation. The "output" return
 16159  // value will be populated with the request's response once the request completes
 16160  // successfully.
 16161  //
 16162  // Use "Send" method on the returned Request to send the API call to the service.
 16163  // the "output" return value is not valid until after Send returns without error.
 16164  //
 16165  // See ListPolicies for more information on using the ListPolicies
 16166  // API call, and error handling.
 16167  //
 16168  // This method is useful when you want to inject custom logic or configuration
 16169  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 16170  //
 16171  //
 16172  //    // Example sending a request using the ListPoliciesRequest method.
 16173  //    req, resp := client.ListPoliciesRequest(params)
 16174  //
 16175  //    err := req.Send()
 16176  //    if err == nil { // resp is now filled
 16177  //        fmt.Println(resp)
 16178  //    }
 16179  func (c *IoT) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
 16180  	op := &request.Operation{
 16181  		Name:       opListPolicies,
 16182  		HTTPMethod: "GET",
 16183  		HTTPPath:   "/policies",
 16184  		Paginator: &request.Paginator{
 16185  			InputTokens:     []string{"marker"},
 16186  			OutputTokens:    []string{"nextMarker"},
 16187  			LimitToken:      "pageSize",
 16188  			TruncationToken: "",
 16189  		},
 16190  	}
 16191  
 16192  	if input == nil {
 16193  		input = &ListPoliciesInput{}
 16194  	}
 16195  
 16196  	output = &ListPoliciesOutput{}
 16197  	req = c.newRequest(op, input, output)
 16198  	return
 16199  }
 16200  
 16201  // ListPolicies API operation for AWS IoT.
 16202  //
 16203  // Lists your policies.
 16204  //
 16205  // Requires permission to access the ListPolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 16206  // action.
 16207  //
 16208  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 16209  // with awserr.Error's Code and Message methods to get detailed information about
 16210  // the error.
 16211  //
 16212  // See the AWS API reference guide for AWS IoT's
 16213  // API operation ListPolicies for usage and error information.
 16214  //
 16215  // Returned Error Types:
 16216  //   * InvalidRequestException
 16217  //   The request is not valid.
 16218  //
 16219  //   * ThrottlingException
 16220  //   The rate exceeds the limit.
 16221  //
 16222  //   * UnauthorizedException
 16223  //   You are not authorized to perform this operation.
 16224  //
 16225  //   * ServiceUnavailableException
 16226  //   The service is temporarily unavailable.
 16227  //
 16228  //   * InternalFailureException
 16229  //   An unexpected error has occurred.
 16230  //
 16231  func (c *IoT) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
 16232  	req, out := c.ListPoliciesRequest(input)
 16233  	return out, req.Send()
 16234  }
 16235  
 16236  // ListPoliciesWithContext is the same as ListPolicies with the addition of
 16237  // the ability to pass a context and additional request options.
 16238  //
 16239  // See ListPolicies for details on how to use this API operation.
 16240  //
 16241  // The context must be non-nil and will be used for request cancellation. If
 16242  // the context is nil a panic will occur. In the future the SDK may create
 16243  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16244  // for more information on using Contexts.
 16245  func (c *IoT) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
 16246  	req, out := c.ListPoliciesRequest(input)
 16247  	req.SetContext(ctx)
 16248  	req.ApplyOptions(opts...)
 16249  	return out, req.Send()
 16250  }
 16251  
 16252  // ListPoliciesPages iterates over the pages of a ListPolicies operation,
 16253  // calling the "fn" function with the response data for each page. To stop
 16254  // iterating, return false from the fn function.
 16255  //
 16256  // See ListPolicies method for more information on how to use this operation.
 16257  //
 16258  // Note: This operation can generate multiple requests to a service.
 16259  //
 16260  //    // Example iterating over at most 3 pages of a ListPolicies operation.
 16261  //    pageNum := 0
 16262  //    err := client.ListPoliciesPages(params,
 16263  //        func(page *iot.ListPoliciesOutput, lastPage bool) bool {
 16264  //            pageNum++
 16265  //            fmt.Println(page)
 16266  //            return pageNum <= 3
 16267  //        })
 16268  //
 16269  func (c *IoT) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
 16270  	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
 16271  }
 16272  
 16273  // ListPoliciesPagesWithContext same as ListPoliciesPages except
 16274  // it takes a Context and allows setting request options on the pages.
 16275  //
 16276  // The context must be non-nil and will be used for request cancellation. If
 16277  // the context is nil a panic will occur. In the future the SDK may create
 16278  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16279  // for more information on using Contexts.
 16280  func (c *IoT) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
 16281  	p := request.Pagination{
 16282  		NewRequest: func() (*request.Request, error) {
 16283  			var inCpy *ListPoliciesInput
 16284  			if input != nil {
 16285  				tmp := *input
 16286  				inCpy = &tmp
 16287  			}
 16288  			req, _ := c.ListPoliciesRequest(inCpy)
 16289  			req.SetContext(ctx)
 16290  			req.ApplyOptions(opts...)
 16291  			return req, nil
 16292  		},
 16293  	}
 16294  
 16295  	for p.Next() {
 16296  		if !fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage()) {
 16297  			break
 16298  		}
 16299  	}
 16300  
 16301  	return p.Err()
 16302  }
 16303  
 16304  const opListPolicyPrincipals = "ListPolicyPrincipals"
 16305  
 16306  // ListPolicyPrincipalsRequest generates a "aws/request.Request" representing the
 16307  // client's request for the ListPolicyPrincipals operation. The "output" return
 16308  // value will be populated with the request's response once the request completes
 16309  // successfully.
 16310  //
 16311  // Use "Send" method on the returned Request to send the API call to the service.
 16312  // the "output" return value is not valid until after Send returns without error.
 16313  //
 16314  // See ListPolicyPrincipals for more information on using the ListPolicyPrincipals
 16315  // API call, and error handling.
 16316  //
 16317  // This method is useful when you want to inject custom logic or configuration
 16318  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 16319  //
 16320  //
 16321  //    // Example sending a request using the ListPolicyPrincipalsRequest method.
 16322  //    req, resp := client.ListPolicyPrincipalsRequest(params)
 16323  //
 16324  //    err := req.Send()
 16325  //    if err == nil { // resp is now filled
 16326  //        fmt.Println(resp)
 16327  //    }
 16328  //
 16329  // Deprecated: ListPolicyPrincipals has been deprecated
 16330  func (c *IoT) ListPolicyPrincipalsRequest(input *ListPolicyPrincipalsInput) (req *request.Request, output *ListPolicyPrincipalsOutput) {
 16331  	if c.Client.Config.Logger != nil {
 16332  		c.Client.Config.Logger.Log("This operation, ListPolicyPrincipals, has been deprecated")
 16333  	}
 16334  	op := &request.Operation{
 16335  		Name:       opListPolicyPrincipals,
 16336  		HTTPMethod: "GET",
 16337  		HTTPPath:   "/policy-principals",
 16338  		Paginator: &request.Paginator{
 16339  			InputTokens:     []string{"marker"},
 16340  			OutputTokens:    []string{"nextMarker"},
 16341  			LimitToken:      "pageSize",
 16342  			TruncationToken: "",
 16343  		},
 16344  	}
 16345  
 16346  	if input == nil {
 16347  		input = &ListPolicyPrincipalsInput{}
 16348  	}
 16349  
 16350  	output = &ListPolicyPrincipalsOutput{}
 16351  	req = c.newRequest(op, input, output)
 16352  	return
 16353  }
 16354  
 16355  // ListPolicyPrincipals API operation for AWS IoT.
 16356  //
 16357  // Lists the principals associated with the specified policy.
 16358  //
 16359  // Note: This action is deprecated. Please use ListTargetsForPolicy instead.
 16360  //
 16361  // Requires permission to access the ListPolicyPrincipals (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 16362  // action.
 16363  //
 16364  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 16365  // with awserr.Error's Code and Message methods to get detailed information about
 16366  // the error.
 16367  //
 16368  // See the AWS API reference guide for AWS IoT's
 16369  // API operation ListPolicyPrincipals for usage and error information.
 16370  //
 16371  // Returned Error Types:
 16372  //   * ResourceNotFoundException
 16373  //   The specified resource does not exist.
 16374  //
 16375  //   * InvalidRequestException
 16376  //   The request is not valid.
 16377  //
 16378  //   * ThrottlingException
 16379  //   The rate exceeds the limit.
 16380  //
 16381  //   * UnauthorizedException
 16382  //   You are not authorized to perform this operation.
 16383  //
 16384  //   * ServiceUnavailableException
 16385  //   The service is temporarily unavailable.
 16386  //
 16387  //   * InternalFailureException
 16388  //   An unexpected error has occurred.
 16389  //
 16390  //
 16391  // Deprecated: ListPolicyPrincipals has been deprecated
 16392  func (c *IoT) ListPolicyPrincipals(input *ListPolicyPrincipalsInput) (*ListPolicyPrincipalsOutput, error) {
 16393  	req, out := c.ListPolicyPrincipalsRequest(input)
 16394  	return out, req.Send()
 16395  }
 16396  
 16397  // ListPolicyPrincipalsWithContext is the same as ListPolicyPrincipals with the addition of
 16398  // the ability to pass a context and additional request options.
 16399  //
 16400  // See ListPolicyPrincipals for details on how to use this API operation.
 16401  //
 16402  // The context must be non-nil and will be used for request cancellation. If
 16403  // the context is nil a panic will occur. In the future the SDK may create
 16404  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16405  // for more information on using Contexts.
 16406  //
 16407  // Deprecated: ListPolicyPrincipalsWithContext has been deprecated
 16408  func (c *IoT) ListPolicyPrincipalsWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, opts ...request.Option) (*ListPolicyPrincipalsOutput, error) {
 16409  	req, out := c.ListPolicyPrincipalsRequest(input)
 16410  	req.SetContext(ctx)
 16411  	req.ApplyOptions(opts...)
 16412  	return out, req.Send()
 16413  }
 16414  
 16415  // ListPolicyPrincipalsPages iterates over the pages of a ListPolicyPrincipals operation,
 16416  // calling the "fn" function with the response data for each page. To stop
 16417  // iterating, return false from the fn function.
 16418  //
 16419  // See ListPolicyPrincipals method for more information on how to use this operation.
 16420  //
 16421  // Note: This operation can generate multiple requests to a service.
 16422  //
 16423  //    // Example iterating over at most 3 pages of a ListPolicyPrincipals operation.
 16424  //    pageNum := 0
 16425  //    err := client.ListPolicyPrincipalsPages(params,
 16426  //        func(page *iot.ListPolicyPrincipalsOutput, lastPage bool) bool {
 16427  //            pageNum++
 16428  //            fmt.Println(page)
 16429  //            return pageNum <= 3
 16430  //        })
 16431  //
 16432  //
 16433  // Deprecated: ListPolicyPrincipalsPages has been deprecated
 16434  func (c *IoT) ListPolicyPrincipalsPages(input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool) error {
 16435  	return c.ListPolicyPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
 16436  }
 16437  
 16438  // ListPolicyPrincipalsPagesWithContext same as ListPolicyPrincipalsPages except
 16439  // it takes a Context and allows setting request options on the pages.
 16440  //
 16441  // The context must be non-nil and will be used for request cancellation. If
 16442  // the context is nil a panic will occur. In the future the SDK may create
 16443  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16444  // for more information on using Contexts.
 16445  //
 16446  // Deprecated: ListPolicyPrincipalsPagesWithContext has been deprecated
 16447  func (c *IoT) ListPolicyPrincipalsPagesWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool, opts ...request.Option) error {
 16448  	p := request.Pagination{
 16449  		NewRequest: func() (*request.Request, error) {
 16450  			var inCpy *ListPolicyPrincipalsInput
 16451  			if input != nil {
 16452  				tmp := *input
 16453  				inCpy = &tmp
 16454  			}
 16455  			req, _ := c.ListPolicyPrincipalsRequest(inCpy)
 16456  			req.SetContext(ctx)
 16457  			req.ApplyOptions(opts...)
 16458  			return req, nil
 16459  		},
 16460  	}
 16461  
 16462  	for p.Next() {
 16463  		if !fn(p.Page().(*ListPolicyPrincipalsOutput), !p.HasNextPage()) {
 16464  			break
 16465  		}
 16466  	}
 16467  
 16468  	return p.Err()
 16469  }
 16470  
 16471  const opListPolicyVersions = "ListPolicyVersions"
 16472  
 16473  // ListPolicyVersionsRequest generates a "aws/request.Request" representing the
 16474  // client's request for the ListPolicyVersions operation. The "output" return
 16475  // value will be populated with the request's response once the request completes
 16476  // successfully.
 16477  //
 16478  // Use "Send" method on the returned Request to send the API call to the service.
 16479  // the "output" return value is not valid until after Send returns without error.
 16480  //
 16481  // See ListPolicyVersions for more information on using the ListPolicyVersions
 16482  // API call, and error handling.
 16483  //
 16484  // This method is useful when you want to inject custom logic or configuration
 16485  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 16486  //
 16487  //
 16488  //    // Example sending a request using the ListPolicyVersionsRequest method.
 16489  //    req, resp := client.ListPolicyVersionsRequest(params)
 16490  //
 16491  //    err := req.Send()
 16492  //    if err == nil { // resp is now filled
 16493  //        fmt.Println(resp)
 16494  //    }
 16495  func (c *IoT) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
 16496  	op := &request.Operation{
 16497  		Name:       opListPolicyVersions,
 16498  		HTTPMethod: "GET",
 16499  		HTTPPath:   "/policies/{policyName}/version",
 16500  	}
 16501  
 16502  	if input == nil {
 16503  		input = &ListPolicyVersionsInput{}
 16504  	}
 16505  
 16506  	output = &ListPolicyVersionsOutput{}
 16507  	req = c.newRequest(op, input, output)
 16508  	return
 16509  }
 16510  
 16511  // ListPolicyVersions API operation for AWS IoT.
 16512  //
 16513  // Lists the versions of the specified policy and identifies the default version.
 16514  //
 16515  // Requires permission to access the ListPolicyVersions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 16516  // action.
 16517  //
 16518  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 16519  // with awserr.Error's Code and Message methods to get detailed information about
 16520  // the error.
 16521  //
 16522  // See the AWS API reference guide for AWS IoT's
 16523  // API operation ListPolicyVersions for usage and error information.
 16524  //
 16525  // Returned Error Types:
 16526  //   * ResourceNotFoundException
 16527  //   The specified resource does not exist.
 16528  //
 16529  //   * InvalidRequestException
 16530  //   The request is not valid.
 16531  //
 16532  //   * ThrottlingException
 16533  //   The rate exceeds the limit.
 16534  //
 16535  //   * UnauthorizedException
 16536  //   You are not authorized to perform this operation.
 16537  //
 16538  //   * ServiceUnavailableException
 16539  //   The service is temporarily unavailable.
 16540  //
 16541  //   * InternalFailureException
 16542  //   An unexpected error has occurred.
 16543  //
 16544  func (c *IoT) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
 16545  	req, out := c.ListPolicyVersionsRequest(input)
 16546  	return out, req.Send()
 16547  }
 16548  
 16549  // ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
 16550  // the ability to pass a context and additional request options.
 16551  //
 16552  // See ListPolicyVersions for details on how to use this API operation.
 16553  //
 16554  // The context must be non-nil and will be used for request cancellation. If
 16555  // the context is nil a panic will occur. In the future the SDK may create
 16556  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16557  // for more information on using Contexts.
 16558  func (c *IoT) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
 16559  	req, out := c.ListPolicyVersionsRequest(input)
 16560  	req.SetContext(ctx)
 16561  	req.ApplyOptions(opts...)
 16562  	return out, req.Send()
 16563  }
 16564  
 16565  const opListPrincipalPolicies = "ListPrincipalPolicies"
 16566  
 16567  // ListPrincipalPoliciesRequest generates a "aws/request.Request" representing the
 16568  // client's request for the ListPrincipalPolicies operation. The "output" return
 16569  // value will be populated with the request's response once the request completes
 16570  // successfully.
 16571  //
 16572  // Use "Send" method on the returned Request to send the API call to the service.
 16573  // the "output" return value is not valid until after Send returns without error.
 16574  //
 16575  // See ListPrincipalPolicies for more information on using the ListPrincipalPolicies
 16576  // API call, and error handling.
 16577  //
 16578  // This method is useful when you want to inject custom logic or configuration
 16579  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 16580  //
 16581  //
 16582  //    // Example sending a request using the ListPrincipalPoliciesRequest method.
 16583  //    req, resp := client.ListPrincipalPoliciesRequest(params)
 16584  //
 16585  //    err := req.Send()
 16586  //    if err == nil { // resp is now filled
 16587  //        fmt.Println(resp)
 16588  //    }
 16589  //
 16590  // Deprecated: ListPrincipalPolicies has been deprecated
 16591  func (c *IoT) ListPrincipalPoliciesRequest(input *ListPrincipalPoliciesInput) (req *request.Request, output *ListPrincipalPoliciesOutput) {
 16592  	if c.Client.Config.Logger != nil {
 16593  		c.Client.Config.Logger.Log("This operation, ListPrincipalPolicies, has been deprecated")
 16594  	}
 16595  	op := &request.Operation{
 16596  		Name:       opListPrincipalPolicies,
 16597  		HTTPMethod: "GET",
 16598  		HTTPPath:   "/principal-policies",
 16599  		Paginator: &request.Paginator{
 16600  			InputTokens:     []string{"marker"},
 16601  			OutputTokens:    []string{"nextMarker"},
 16602  			LimitToken:      "pageSize",
 16603  			TruncationToken: "",
 16604  		},
 16605  	}
 16606  
 16607  	if input == nil {
 16608  		input = &ListPrincipalPoliciesInput{}
 16609  	}
 16610  
 16611  	output = &ListPrincipalPoliciesOutput{}
 16612  	req = c.newRequest(op, input, output)
 16613  	return
 16614  }
 16615  
 16616  // ListPrincipalPolicies API operation for AWS IoT.
 16617  //
 16618  // Lists the policies attached to the specified principal. If you use an Cognito
 16619  // identity, the ID must be in AmazonCognito Identity format (https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax).
 16620  //
 16621  // Note: This action is deprecated. Please use ListAttachedPolicies instead.
 16622  //
 16623  // Requires permission to access the ListPrincipalPolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 16624  // action.
 16625  //
 16626  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 16627  // with awserr.Error's Code and Message methods to get detailed information about
 16628  // the error.
 16629  //
 16630  // See the AWS API reference guide for AWS IoT's
 16631  // API operation ListPrincipalPolicies for usage and error information.
 16632  //
 16633  // Returned Error Types:
 16634  //   * ResourceNotFoundException
 16635  //   The specified resource does not exist.
 16636  //
 16637  //   * InvalidRequestException
 16638  //   The request is not valid.
 16639  //
 16640  //   * ThrottlingException
 16641  //   The rate exceeds the limit.
 16642  //
 16643  //   * UnauthorizedException
 16644  //   You are not authorized to perform this operation.
 16645  //
 16646  //   * ServiceUnavailableException
 16647  //   The service is temporarily unavailable.
 16648  //
 16649  //   * InternalFailureException
 16650  //   An unexpected error has occurred.
 16651  //
 16652  //
 16653  // Deprecated: ListPrincipalPolicies has been deprecated
 16654  func (c *IoT) ListPrincipalPolicies(input *ListPrincipalPoliciesInput) (*ListPrincipalPoliciesOutput, error) {
 16655  	req, out := c.ListPrincipalPoliciesRequest(input)
 16656  	return out, req.Send()
 16657  }
 16658  
 16659  // ListPrincipalPoliciesWithContext is the same as ListPrincipalPolicies with the addition of
 16660  // the ability to pass a context and additional request options.
 16661  //
 16662  // See ListPrincipalPolicies for details on how to use this API operation.
 16663  //
 16664  // The context must be non-nil and will be used for request cancellation. If
 16665  // the context is nil a panic will occur. In the future the SDK may create
 16666  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16667  // for more information on using Contexts.
 16668  //
 16669  // Deprecated: ListPrincipalPoliciesWithContext has been deprecated
 16670  func (c *IoT) ListPrincipalPoliciesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, opts ...request.Option) (*ListPrincipalPoliciesOutput, error) {
 16671  	req, out := c.ListPrincipalPoliciesRequest(input)
 16672  	req.SetContext(ctx)
 16673  	req.ApplyOptions(opts...)
 16674  	return out, req.Send()
 16675  }
 16676  
 16677  // ListPrincipalPoliciesPages iterates over the pages of a ListPrincipalPolicies operation,
 16678  // calling the "fn" function with the response data for each page. To stop
 16679  // iterating, return false from the fn function.
 16680  //
 16681  // See ListPrincipalPolicies method for more information on how to use this operation.
 16682  //
 16683  // Note: This operation can generate multiple requests to a service.
 16684  //
 16685  //    // Example iterating over at most 3 pages of a ListPrincipalPolicies operation.
 16686  //    pageNum := 0
 16687  //    err := client.ListPrincipalPoliciesPages(params,
 16688  //        func(page *iot.ListPrincipalPoliciesOutput, lastPage bool) bool {
 16689  //            pageNum++
 16690  //            fmt.Println(page)
 16691  //            return pageNum <= 3
 16692  //        })
 16693  //
 16694  //
 16695  // Deprecated: ListPrincipalPoliciesPages has been deprecated
 16696  func (c *IoT) ListPrincipalPoliciesPages(input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool) error {
 16697  	return c.ListPrincipalPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
 16698  }
 16699  
 16700  // ListPrincipalPoliciesPagesWithContext same as ListPrincipalPoliciesPages except
 16701  // it takes a Context and allows setting request options on the pages.
 16702  //
 16703  // The context must be non-nil and will be used for request cancellation. If
 16704  // the context is nil a panic will occur. In the future the SDK may create
 16705  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16706  // for more information on using Contexts.
 16707  //
 16708  // Deprecated: ListPrincipalPoliciesPagesWithContext has been deprecated
 16709  func (c *IoT) ListPrincipalPoliciesPagesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool, opts ...request.Option) error {
 16710  	p := request.Pagination{
 16711  		NewRequest: func() (*request.Request, error) {
 16712  			var inCpy *ListPrincipalPoliciesInput
 16713  			if input != nil {
 16714  				tmp := *input
 16715  				inCpy = &tmp
 16716  			}
 16717  			req, _ := c.ListPrincipalPoliciesRequest(inCpy)
 16718  			req.SetContext(ctx)
 16719  			req.ApplyOptions(opts...)
 16720  			return req, nil
 16721  		},
 16722  	}
 16723  
 16724  	for p.Next() {
 16725  		if !fn(p.Page().(*ListPrincipalPoliciesOutput), !p.HasNextPage()) {
 16726  			break
 16727  		}
 16728  	}
 16729  
 16730  	return p.Err()
 16731  }
 16732  
 16733  const opListPrincipalThings = "ListPrincipalThings"
 16734  
 16735  // ListPrincipalThingsRequest generates a "aws/request.Request" representing the
 16736  // client's request for the ListPrincipalThings operation. The "output" return
 16737  // value will be populated with the request's response once the request completes
 16738  // successfully.
 16739  //
 16740  // Use "Send" method on the returned Request to send the API call to the service.
 16741  // the "output" return value is not valid until after Send returns without error.
 16742  //
 16743  // See ListPrincipalThings for more information on using the ListPrincipalThings
 16744  // API call, and error handling.
 16745  //
 16746  // This method is useful when you want to inject custom logic or configuration
 16747  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 16748  //
 16749  //
 16750  //    // Example sending a request using the ListPrincipalThingsRequest method.
 16751  //    req, resp := client.ListPrincipalThingsRequest(params)
 16752  //
 16753  //    err := req.Send()
 16754  //    if err == nil { // resp is now filled
 16755  //        fmt.Println(resp)
 16756  //    }
 16757  func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *request.Request, output *ListPrincipalThingsOutput) {
 16758  	op := &request.Operation{
 16759  		Name:       opListPrincipalThings,
 16760  		HTTPMethod: "GET",
 16761  		HTTPPath:   "/principals/things",
 16762  		Paginator: &request.Paginator{
 16763  			InputTokens:     []string{"nextToken"},
 16764  			OutputTokens:    []string{"nextToken"},
 16765  			LimitToken:      "maxResults",
 16766  			TruncationToken: "",
 16767  		},
 16768  	}
 16769  
 16770  	if input == nil {
 16771  		input = &ListPrincipalThingsInput{}
 16772  	}
 16773  
 16774  	output = &ListPrincipalThingsOutput{}
 16775  	req = c.newRequest(op, input, output)
 16776  	return
 16777  }
 16778  
 16779  // ListPrincipalThings API operation for AWS IoT.
 16780  //
 16781  // Lists the things associated with the specified principal. A principal can
 16782  // be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
 16783  // or federated identities.
 16784  //
 16785  // Requires permission to access the ListPrincipalThings (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 16786  // action.
 16787  //
 16788  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 16789  // with awserr.Error's Code and Message methods to get detailed information about
 16790  // the error.
 16791  //
 16792  // See the AWS API reference guide for AWS IoT's
 16793  // API operation ListPrincipalThings for usage and error information.
 16794  //
 16795  // Returned Error Types:
 16796  //   * InvalidRequestException
 16797  //   The request is not valid.
 16798  //
 16799  //   * ThrottlingException
 16800  //   The rate exceeds the limit.
 16801  //
 16802  //   * UnauthorizedException
 16803  //   You are not authorized to perform this operation.
 16804  //
 16805  //   * ServiceUnavailableException
 16806  //   The service is temporarily unavailable.
 16807  //
 16808  //   * InternalFailureException
 16809  //   An unexpected error has occurred.
 16810  //
 16811  //   * ResourceNotFoundException
 16812  //   The specified resource does not exist.
 16813  //
 16814  func (c *IoT) ListPrincipalThings(input *ListPrincipalThingsInput) (*ListPrincipalThingsOutput, error) {
 16815  	req, out := c.ListPrincipalThingsRequest(input)
 16816  	return out, req.Send()
 16817  }
 16818  
 16819  // ListPrincipalThingsWithContext is the same as ListPrincipalThings with the addition of
 16820  // the ability to pass a context and additional request options.
 16821  //
 16822  // See ListPrincipalThings for details on how to use this API operation.
 16823  //
 16824  // The context must be non-nil and will be used for request cancellation. If
 16825  // the context is nil a panic will occur. In the future the SDK may create
 16826  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16827  // for more information on using Contexts.
 16828  func (c *IoT) ListPrincipalThingsWithContext(ctx aws.Context, input *ListPrincipalThingsInput, opts ...request.Option) (*ListPrincipalThingsOutput, error) {
 16829  	req, out := c.ListPrincipalThingsRequest(input)
 16830  	req.SetContext(ctx)
 16831  	req.ApplyOptions(opts...)
 16832  	return out, req.Send()
 16833  }
 16834  
 16835  // ListPrincipalThingsPages iterates over the pages of a ListPrincipalThings operation,
 16836  // calling the "fn" function with the response data for each page. To stop
 16837  // iterating, return false from the fn function.
 16838  //
 16839  // See ListPrincipalThings method for more information on how to use this operation.
 16840  //
 16841  // Note: This operation can generate multiple requests to a service.
 16842  //
 16843  //    // Example iterating over at most 3 pages of a ListPrincipalThings operation.
 16844  //    pageNum := 0
 16845  //    err := client.ListPrincipalThingsPages(params,
 16846  //        func(page *iot.ListPrincipalThingsOutput, lastPage bool) bool {
 16847  //            pageNum++
 16848  //            fmt.Println(page)
 16849  //            return pageNum <= 3
 16850  //        })
 16851  //
 16852  func (c *IoT) ListPrincipalThingsPages(input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool) error {
 16853  	return c.ListPrincipalThingsPagesWithContext(aws.BackgroundContext(), input, fn)
 16854  }
 16855  
 16856  // ListPrincipalThingsPagesWithContext same as ListPrincipalThingsPages except
 16857  // it takes a Context and allows setting request options on the pages.
 16858  //
 16859  // The context must be non-nil and will be used for request cancellation. If
 16860  // the context is nil a panic will occur. In the future the SDK may create
 16861  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16862  // for more information on using Contexts.
 16863  func (c *IoT) ListPrincipalThingsPagesWithContext(ctx aws.Context, input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool, opts ...request.Option) error {
 16864  	p := request.Pagination{
 16865  		NewRequest: func() (*request.Request, error) {
 16866  			var inCpy *ListPrincipalThingsInput
 16867  			if input != nil {
 16868  				tmp := *input
 16869  				inCpy = &tmp
 16870  			}
 16871  			req, _ := c.ListPrincipalThingsRequest(inCpy)
 16872  			req.SetContext(ctx)
 16873  			req.ApplyOptions(opts...)
 16874  			return req, nil
 16875  		},
 16876  	}
 16877  
 16878  	for p.Next() {
 16879  		if !fn(p.Page().(*ListPrincipalThingsOutput), !p.HasNextPage()) {
 16880  			break
 16881  		}
 16882  	}
 16883  
 16884  	return p.Err()
 16885  }
 16886  
 16887  const opListProvisioningTemplateVersions = "ListProvisioningTemplateVersions"
 16888  
 16889  // ListProvisioningTemplateVersionsRequest generates a "aws/request.Request" representing the
 16890  // client's request for the ListProvisioningTemplateVersions operation. The "output" return
 16891  // value will be populated with the request's response once the request completes
 16892  // successfully.
 16893  //
 16894  // Use "Send" method on the returned Request to send the API call to the service.
 16895  // the "output" return value is not valid until after Send returns without error.
 16896  //
 16897  // See ListProvisioningTemplateVersions for more information on using the ListProvisioningTemplateVersions
 16898  // API call, and error handling.
 16899  //
 16900  // This method is useful when you want to inject custom logic or configuration
 16901  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 16902  //
 16903  //
 16904  //    // Example sending a request using the ListProvisioningTemplateVersionsRequest method.
 16905  //    req, resp := client.ListProvisioningTemplateVersionsRequest(params)
 16906  //
 16907  //    err := req.Send()
 16908  //    if err == nil { // resp is now filled
 16909  //        fmt.Println(resp)
 16910  //    }
 16911  func (c *IoT) ListProvisioningTemplateVersionsRequest(input *ListProvisioningTemplateVersionsInput) (req *request.Request, output *ListProvisioningTemplateVersionsOutput) {
 16912  	op := &request.Operation{
 16913  		Name:       opListProvisioningTemplateVersions,
 16914  		HTTPMethod: "GET",
 16915  		HTTPPath:   "/provisioning-templates/{templateName}/versions",
 16916  		Paginator: &request.Paginator{
 16917  			InputTokens:     []string{"nextToken"},
 16918  			OutputTokens:    []string{"nextToken"},
 16919  			LimitToken:      "maxResults",
 16920  			TruncationToken: "",
 16921  		},
 16922  	}
 16923  
 16924  	if input == nil {
 16925  		input = &ListProvisioningTemplateVersionsInput{}
 16926  	}
 16927  
 16928  	output = &ListProvisioningTemplateVersionsOutput{}
 16929  	req = c.newRequest(op, input, output)
 16930  	return
 16931  }
 16932  
 16933  // ListProvisioningTemplateVersions API operation for AWS IoT.
 16934  //
 16935  // A list of fleet provisioning template versions.
 16936  //
 16937  // Requires permission to access the ListProvisioningTemplateVersions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 16938  // action.
 16939  //
 16940  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 16941  // with awserr.Error's Code and Message methods to get detailed information about
 16942  // the error.
 16943  //
 16944  // See the AWS API reference guide for AWS IoT's
 16945  // API operation ListProvisioningTemplateVersions for usage and error information.
 16946  //
 16947  // Returned Error Types:
 16948  //   * InternalFailureException
 16949  //   An unexpected error has occurred.
 16950  //
 16951  //   * InvalidRequestException
 16952  //   The request is not valid.
 16953  //
 16954  //   * ThrottlingException
 16955  //   The rate exceeds the limit.
 16956  //
 16957  //   * ResourceNotFoundException
 16958  //   The specified resource does not exist.
 16959  //
 16960  //   * UnauthorizedException
 16961  //   You are not authorized to perform this operation.
 16962  //
 16963  func (c *IoT) ListProvisioningTemplateVersions(input *ListProvisioningTemplateVersionsInput) (*ListProvisioningTemplateVersionsOutput, error) {
 16964  	req, out := c.ListProvisioningTemplateVersionsRequest(input)
 16965  	return out, req.Send()
 16966  }
 16967  
 16968  // ListProvisioningTemplateVersionsWithContext is the same as ListProvisioningTemplateVersions with the addition of
 16969  // the ability to pass a context and additional request options.
 16970  //
 16971  // See ListProvisioningTemplateVersions for details on how to use this API operation.
 16972  //
 16973  // The context must be non-nil and will be used for request cancellation. If
 16974  // the context is nil a panic will occur. In the future the SDK may create
 16975  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 16976  // for more information on using Contexts.
 16977  func (c *IoT) ListProvisioningTemplateVersionsWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, opts ...request.Option) (*ListProvisioningTemplateVersionsOutput, error) {
 16978  	req, out := c.ListProvisioningTemplateVersionsRequest(input)
 16979  	req.SetContext(ctx)
 16980  	req.ApplyOptions(opts...)
 16981  	return out, req.Send()
 16982  }
 16983  
 16984  // ListProvisioningTemplateVersionsPages iterates over the pages of a ListProvisioningTemplateVersions operation,
 16985  // calling the "fn" function with the response data for each page. To stop
 16986  // iterating, return false from the fn function.
 16987  //
 16988  // See ListProvisioningTemplateVersions method for more information on how to use this operation.
 16989  //
 16990  // Note: This operation can generate multiple requests to a service.
 16991  //
 16992  //    // Example iterating over at most 3 pages of a ListProvisioningTemplateVersions operation.
 16993  //    pageNum := 0
 16994  //    err := client.ListProvisioningTemplateVersionsPages(params,
 16995  //        func(page *iot.ListProvisioningTemplateVersionsOutput, lastPage bool) bool {
 16996  //            pageNum++
 16997  //            fmt.Println(page)
 16998  //            return pageNum <= 3
 16999  //        })
 17000  //
 17001  func (c *IoT) ListProvisioningTemplateVersionsPages(input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool) error {
 17002  	return c.ListProvisioningTemplateVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
 17003  }
 17004  
 17005  // ListProvisioningTemplateVersionsPagesWithContext same as ListProvisioningTemplateVersionsPages except
 17006  // it takes a Context and allows setting request options on the pages.
 17007  //
 17008  // The context must be non-nil and will be used for request cancellation. If
 17009  // the context is nil a panic will occur. In the future the SDK may create
 17010  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17011  // for more information on using Contexts.
 17012  func (c *IoT) ListProvisioningTemplateVersionsPagesWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool, opts ...request.Option) error {
 17013  	p := request.Pagination{
 17014  		NewRequest: func() (*request.Request, error) {
 17015  			var inCpy *ListProvisioningTemplateVersionsInput
 17016  			if input != nil {
 17017  				tmp := *input
 17018  				inCpy = &tmp
 17019  			}
 17020  			req, _ := c.ListProvisioningTemplateVersionsRequest(inCpy)
 17021  			req.SetContext(ctx)
 17022  			req.ApplyOptions(opts...)
 17023  			return req, nil
 17024  		},
 17025  	}
 17026  
 17027  	for p.Next() {
 17028  		if !fn(p.Page().(*ListProvisioningTemplateVersionsOutput), !p.HasNextPage()) {
 17029  			break
 17030  		}
 17031  	}
 17032  
 17033  	return p.Err()
 17034  }
 17035  
 17036  const opListProvisioningTemplates = "ListProvisioningTemplates"
 17037  
 17038  // ListProvisioningTemplatesRequest generates a "aws/request.Request" representing the
 17039  // client's request for the ListProvisioningTemplates operation. The "output" return
 17040  // value will be populated with the request's response once the request completes
 17041  // successfully.
 17042  //
 17043  // Use "Send" method on the returned Request to send the API call to the service.
 17044  // the "output" return value is not valid until after Send returns without error.
 17045  //
 17046  // See ListProvisioningTemplates for more information on using the ListProvisioningTemplates
 17047  // API call, and error handling.
 17048  //
 17049  // This method is useful when you want to inject custom logic or configuration
 17050  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 17051  //
 17052  //
 17053  //    // Example sending a request using the ListProvisioningTemplatesRequest method.
 17054  //    req, resp := client.ListProvisioningTemplatesRequest(params)
 17055  //
 17056  //    err := req.Send()
 17057  //    if err == nil { // resp is now filled
 17058  //        fmt.Println(resp)
 17059  //    }
 17060  func (c *IoT) ListProvisioningTemplatesRequest(input *ListProvisioningTemplatesInput) (req *request.Request, output *ListProvisioningTemplatesOutput) {
 17061  	op := &request.Operation{
 17062  		Name:       opListProvisioningTemplates,
 17063  		HTTPMethod: "GET",
 17064  		HTTPPath:   "/provisioning-templates",
 17065  		Paginator: &request.Paginator{
 17066  			InputTokens:     []string{"nextToken"},
 17067  			OutputTokens:    []string{"nextToken"},
 17068  			LimitToken:      "maxResults",
 17069  			TruncationToken: "",
 17070  		},
 17071  	}
 17072  
 17073  	if input == nil {
 17074  		input = &ListProvisioningTemplatesInput{}
 17075  	}
 17076  
 17077  	output = &ListProvisioningTemplatesOutput{}
 17078  	req = c.newRequest(op, input, output)
 17079  	return
 17080  }
 17081  
 17082  // ListProvisioningTemplates API operation for AWS IoT.
 17083  //
 17084  // Lists the fleet provisioning templates in your Amazon Web Services account.
 17085  //
 17086  // Requires permission to access the ListProvisioningTemplates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 17087  // action.
 17088  //
 17089  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 17090  // with awserr.Error's Code and Message methods to get detailed information about
 17091  // the error.
 17092  //
 17093  // See the AWS API reference guide for AWS IoT's
 17094  // API operation ListProvisioningTemplates for usage and error information.
 17095  //
 17096  // Returned Error Types:
 17097  //   * InternalFailureException
 17098  //   An unexpected error has occurred.
 17099  //
 17100  //   * InvalidRequestException
 17101  //   The request is not valid.
 17102  //
 17103  //   * ThrottlingException
 17104  //   The rate exceeds the limit.
 17105  //
 17106  //   * UnauthorizedException
 17107  //   You are not authorized to perform this operation.
 17108  //
 17109  func (c *IoT) ListProvisioningTemplates(input *ListProvisioningTemplatesInput) (*ListProvisioningTemplatesOutput, error) {
 17110  	req, out := c.ListProvisioningTemplatesRequest(input)
 17111  	return out, req.Send()
 17112  }
 17113  
 17114  // ListProvisioningTemplatesWithContext is the same as ListProvisioningTemplates with the addition of
 17115  // the ability to pass a context and additional request options.
 17116  //
 17117  // See ListProvisioningTemplates for details on how to use this API operation.
 17118  //
 17119  // The context must be non-nil and will be used for request cancellation. If
 17120  // the context is nil a panic will occur. In the future the SDK may create
 17121  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17122  // for more information on using Contexts.
 17123  func (c *IoT) ListProvisioningTemplatesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, opts ...request.Option) (*ListProvisioningTemplatesOutput, error) {
 17124  	req, out := c.ListProvisioningTemplatesRequest(input)
 17125  	req.SetContext(ctx)
 17126  	req.ApplyOptions(opts...)
 17127  	return out, req.Send()
 17128  }
 17129  
 17130  // ListProvisioningTemplatesPages iterates over the pages of a ListProvisioningTemplates operation,
 17131  // calling the "fn" function with the response data for each page. To stop
 17132  // iterating, return false from the fn function.
 17133  //
 17134  // See ListProvisioningTemplates method for more information on how to use this operation.
 17135  //
 17136  // Note: This operation can generate multiple requests to a service.
 17137  //
 17138  //    // Example iterating over at most 3 pages of a ListProvisioningTemplates operation.
 17139  //    pageNum := 0
 17140  //    err := client.ListProvisioningTemplatesPages(params,
 17141  //        func(page *iot.ListProvisioningTemplatesOutput, lastPage bool) bool {
 17142  //            pageNum++
 17143  //            fmt.Println(page)
 17144  //            return pageNum <= 3
 17145  //        })
 17146  //
 17147  func (c *IoT) ListProvisioningTemplatesPages(input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool) error {
 17148  	return c.ListProvisioningTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
 17149  }
 17150  
 17151  // ListProvisioningTemplatesPagesWithContext same as ListProvisioningTemplatesPages except
 17152  // it takes a Context and allows setting request options on the pages.
 17153  //
 17154  // The context must be non-nil and will be used for request cancellation. If
 17155  // the context is nil a panic will occur. In the future the SDK may create
 17156  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17157  // for more information on using Contexts.
 17158  func (c *IoT) ListProvisioningTemplatesPagesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool, opts ...request.Option) error {
 17159  	p := request.Pagination{
 17160  		NewRequest: func() (*request.Request, error) {
 17161  			var inCpy *ListProvisioningTemplatesInput
 17162  			if input != nil {
 17163  				tmp := *input
 17164  				inCpy = &tmp
 17165  			}
 17166  			req, _ := c.ListProvisioningTemplatesRequest(inCpy)
 17167  			req.SetContext(ctx)
 17168  			req.ApplyOptions(opts...)
 17169  			return req, nil
 17170  		},
 17171  	}
 17172  
 17173  	for p.Next() {
 17174  		if !fn(p.Page().(*ListProvisioningTemplatesOutput), !p.HasNextPage()) {
 17175  			break
 17176  		}
 17177  	}
 17178  
 17179  	return p.Err()
 17180  }
 17181  
 17182  const opListRoleAliases = "ListRoleAliases"
 17183  
 17184  // ListRoleAliasesRequest generates a "aws/request.Request" representing the
 17185  // client's request for the ListRoleAliases operation. The "output" return
 17186  // value will be populated with the request's response once the request completes
 17187  // successfully.
 17188  //
 17189  // Use "Send" method on the returned Request to send the API call to the service.
 17190  // the "output" return value is not valid until after Send returns without error.
 17191  //
 17192  // See ListRoleAliases for more information on using the ListRoleAliases
 17193  // API call, and error handling.
 17194  //
 17195  // This method is useful when you want to inject custom logic or configuration
 17196  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 17197  //
 17198  //
 17199  //    // Example sending a request using the ListRoleAliasesRequest method.
 17200  //    req, resp := client.ListRoleAliasesRequest(params)
 17201  //
 17202  //    err := req.Send()
 17203  //    if err == nil { // resp is now filled
 17204  //        fmt.Println(resp)
 17205  //    }
 17206  func (c *IoT) ListRoleAliasesRequest(input *ListRoleAliasesInput) (req *request.Request, output *ListRoleAliasesOutput) {
 17207  	op := &request.Operation{
 17208  		Name:       opListRoleAliases,
 17209  		HTTPMethod: "GET",
 17210  		HTTPPath:   "/role-aliases",
 17211  		Paginator: &request.Paginator{
 17212  			InputTokens:     []string{"marker"},
 17213  			OutputTokens:    []string{"nextMarker"},
 17214  			LimitToken:      "pageSize",
 17215  			TruncationToken: "",
 17216  		},
 17217  	}
 17218  
 17219  	if input == nil {
 17220  		input = &ListRoleAliasesInput{}
 17221  	}
 17222  
 17223  	output = &ListRoleAliasesOutput{}
 17224  	req = c.newRequest(op, input, output)
 17225  	return
 17226  }
 17227  
 17228  // ListRoleAliases API operation for AWS IoT.
 17229  //
 17230  // Lists the role aliases registered in your account.
 17231  //
 17232  // Requires permission to access the ListRoleAliases (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 17233  // action.
 17234  //
 17235  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 17236  // with awserr.Error's Code and Message methods to get detailed information about
 17237  // the error.
 17238  //
 17239  // See the AWS API reference guide for AWS IoT's
 17240  // API operation ListRoleAliases for usage and error information.
 17241  //
 17242  // Returned Error Types:
 17243  //   * InvalidRequestException
 17244  //   The request is not valid.
 17245  //
 17246  //   * ThrottlingException
 17247  //   The rate exceeds the limit.
 17248  //
 17249  //   * UnauthorizedException
 17250  //   You are not authorized to perform this operation.
 17251  //
 17252  //   * ServiceUnavailableException
 17253  //   The service is temporarily unavailable.
 17254  //
 17255  //   * InternalFailureException
 17256  //   An unexpected error has occurred.
 17257  //
 17258  func (c *IoT) ListRoleAliases(input *ListRoleAliasesInput) (*ListRoleAliasesOutput, error) {
 17259  	req, out := c.ListRoleAliasesRequest(input)
 17260  	return out, req.Send()
 17261  }
 17262  
 17263  // ListRoleAliasesWithContext is the same as ListRoleAliases with the addition of
 17264  // the ability to pass a context and additional request options.
 17265  //
 17266  // See ListRoleAliases for details on how to use this API operation.
 17267  //
 17268  // The context must be non-nil and will be used for request cancellation. If
 17269  // the context is nil a panic will occur. In the future the SDK may create
 17270  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17271  // for more information on using Contexts.
 17272  func (c *IoT) ListRoleAliasesWithContext(ctx aws.Context, input *ListRoleAliasesInput, opts ...request.Option) (*ListRoleAliasesOutput, error) {
 17273  	req, out := c.ListRoleAliasesRequest(input)
 17274  	req.SetContext(ctx)
 17275  	req.ApplyOptions(opts...)
 17276  	return out, req.Send()
 17277  }
 17278  
 17279  // ListRoleAliasesPages iterates over the pages of a ListRoleAliases operation,
 17280  // calling the "fn" function with the response data for each page. To stop
 17281  // iterating, return false from the fn function.
 17282  //
 17283  // See ListRoleAliases method for more information on how to use this operation.
 17284  //
 17285  // Note: This operation can generate multiple requests to a service.
 17286  //
 17287  //    // Example iterating over at most 3 pages of a ListRoleAliases operation.
 17288  //    pageNum := 0
 17289  //    err := client.ListRoleAliasesPages(params,
 17290  //        func(page *iot.ListRoleAliasesOutput, lastPage bool) bool {
 17291  //            pageNum++
 17292  //            fmt.Println(page)
 17293  //            return pageNum <= 3
 17294  //        })
 17295  //
 17296  func (c *IoT) ListRoleAliasesPages(input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool) error {
 17297  	return c.ListRoleAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
 17298  }
 17299  
 17300  // ListRoleAliasesPagesWithContext same as ListRoleAliasesPages except
 17301  // it takes a Context and allows setting request options on the pages.
 17302  //
 17303  // The context must be non-nil and will be used for request cancellation. If
 17304  // the context is nil a panic will occur. In the future the SDK may create
 17305  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17306  // for more information on using Contexts.
 17307  func (c *IoT) ListRoleAliasesPagesWithContext(ctx aws.Context, input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool, opts ...request.Option) error {
 17308  	p := request.Pagination{
 17309  		NewRequest: func() (*request.Request, error) {
 17310  			var inCpy *ListRoleAliasesInput
 17311  			if input != nil {
 17312  				tmp := *input
 17313  				inCpy = &tmp
 17314  			}
 17315  			req, _ := c.ListRoleAliasesRequest(inCpy)
 17316  			req.SetContext(ctx)
 17317  			req.ApplyOptions(opts...)
 17318  			return req, nil
 17319  		},
 17320  	}
 17321  
 17322  	for p.Next() {
 17323  		if !fn(p.Page().(*ListRoleAliasesOutput), !p.HasNextPage()) {
 17324  			break
 17325  		}
 17326  	}
 17327  
 17328  	return p.Err()
 17329  }
 17330  
 17331  const opListScheduledAudits = "ListScheduledAudits"
 17332  
 17333  // ListScheduledAuditsRequest generates a "aws/request.Request" representing the
 17334  // client's request for the ListScheduledAudits operation. The "output" return
 17335  // value will be populated with the request's response once the request completes
 17336  // successfully.
 17337  //
 17338  // Use "Send" method on the returned Request to send the API call to the service.
 17339  // the "output" return value is not valid until after Send returns without error.
 17340  //
 17341  // See ListScheduledAudits for more information on using the ListScheduledAudits
 17342  // API call, and error handling.
 17343  //
 17344  // This method is useful when you want to inject custom logic or configuration
 17345  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 17346  //
 17347  //
 17348  //    // Example sending a request using the ListScheduledAuditsRequest method.
 17349  //    req, resp := client.ListScheduledAuditsRequest(params)
 17350  //
 17351  //    err := req.Send()
 17352  //    if err == nil { // resp is now filled
 17353  //        fmt.Println(resp)
 17354  //    }
 17355  func (c *IoT) ListScheduledAuditsRequest(input *ListScheduledAuditsInput) (req *request.Request, output *ListScheduledAuditsOutput) {
 17356  	op := &request.Operation{
 17357  		Name:       opListScheduledAudits,
 17358  		HTTPMethod: "GET",
 17359  		HTTPPath:   "/audit/scheduledaudits",
 17360  		Paginator: &request.Paginator{
 17361  			InputTokens:     []string{"nextToken"},
 17362  			OutputTokens:    []string{"nextToken"},
 17363  			LimitToken:      "maxResults",
 17364  			TruncationToken: "",
 17365  		},
 17366  	}
 17367  
 17368  	if input == nil {
 17369  		input = &ListScheduledAuditsInput{}
 17370  	}
 17371  
 17372  	output = &ListScheduledAuditsOutput{}
 17373  	req = c.newRequest(op, input, output)
 17374  	return
 17375  }
 17376  
 17377  // ListScheduledAudits API operation for AWS IoT.
 17378  //
 17379  // Lists all of your scheduled audits.
 17380  //
 17381  // Requires permission to access the ListScheduledAudits (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 17382  // action.
 17383  //
 17384  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 17385  // with awserr.Error's Code and Message methods to get detailed information about
 17386  // the error.
 17387  //
 17388  // See the AWS API reference guide for AWS IoT's
 17389  // API operation ListScheduledAudits for usage and error information.
 17390  //
 17391  // Returned Error Types:
 17392  //   * InvalidRequestException
 17393  //   The request is not valid.
 17394  //
 17395  //   * ThrottlingException
 17396  //   The rate exceeds the limit.
 17397  //
 17398  //   * InternalFailureException
 17399  //   An unexpected error has occurred.
 17400  //
 17401  func (c *IoT) ListScheduledAudits(input *ListScheduledAuditsInput) (*ListScheduledAuditsOutput, error) {
 17402  	req, out := c.ListScheduledAuditsRequest(input)
 17403  	return out, req.Send()
 17404  }
 17405  
 17406  // ListScheduledAuditsWithContext is the same as ListScheduledAudits with the addition of
 17407  // the ability to pass a context and additional request options.
 17408  //
 17409  // See ListScheduledAudits for details on how to use this API operation.
 17410  //
 17411  // The context must be non-nil and will be used for request cancellation. If
 17412  // the context is nil a panic will occur. In the future the SDK may create
 17413  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17414  // for more information on using Contexts.
 17415  func (c *IoT) ListScheduledAuditsWithContext(ctx aws.Context, input *ListScheduledAuditsInput, opts ...request.Option) (*ListScheduledAuditsOutput, error) {
 17416  	req, out := c.ListScheduledAuditsRequest(input)
 17417  	req.SetContext(ctx)
 17418  	req.ApplyOptions(opts...)
 17419  	return out, req.Send()
 17420  }
 17421  
 17422  // ListScheduledAuditsPages iterates over the pages of a ListScheduledAudits operation,
 17423  // calling the "fn" function with the response data for each page. To stop
 17424  // iterating, return false from the fn function.
 17425  //
 17426  // See ListScheduledAudits method for more information on how to use this operation.
 17427  //
 17428  // Note: This operation can generate multiple requests to a service.
 17429  //
 17430  //    // Example iterating over at most 3 pages of a ListScheduledAudits operation.
 17431  //    pageNum := 0
 17432  //    err := client.ListScheduledAuditsPages(params,
 17433  //        func(page *iot.ListScheduledAuditsOutput, lastPage bool) bool {
 17434  //            pageNum++
 17435  //            fmt.Println(page)
 17436  //            return pageNum <= 3
 17437  //        })
 17438  //
 17439  func (c *IoT) ListScheduledAuditsPages(input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool) error {
 17440  	return c.ListScheduledAuditsPagesWithContext(aws.BackgroundContext(), input, fn)
 17441  }
 17442  
 17443  // ListScheduledAuditsPagesWithContext same as ListScheduledAuditsPages except
 17444  // it takes a Context and allows setting request options on the pages.
 17445  //
 17446  // The context must be non-nil and will be used for request cancellation. If
 17447  // the context is nil a panic will occur. In the future the SDK may create
 17448  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17449  // for more information on using Contexts.
 17450  func (c *IoT) ListScheduledAuditsPagesWithContext(ctx aws.Context, input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool, opts ...request.Option) error {
 17451  	p := request.Pagination{
 17452  		NewRequest: func() (*request.Request, error) {
 17453  			var inCpy *ListScheduledAuditsInput
 17454  			if input != nil {
 17455  				tmp := *input
 17456  				inCpy = &tmp
 17457  			}
 17458  			req, _ := c.ListScheduledAuditsRequest(inCpy)
 17459  			req.SetContext(ctx)
 17460  			req.ApplyOptions(opts...)
 17461  			return req, nil
 17462  		},
 17463  	}
 17464  
 17465  	for p.Next() {
 17466  		if !fn(p.Page().(*ListScheduledAuditsOutput), !p.HasNextPage()) {
 17467  			break
 17468  		}
 17469  	}
 17470  
 17471  	return p.Err()
 17472  }
 17473  
 17474  const opListSecurityProfiles = "ListSecurityProfiles"
 17475  
 17476  // ListSecurityProfilesRequest generates a "aws/request.Request" representing the
 17477  // client's request for the ListSecurityProfiles operation. The "output" return
 17478  // value will be populated with the request's response once the request completes
 17479  // successfully.
 17480  //
 17481  // Use "Send" method on the returned Request to send the API call to the service.
 17482  // the "output" return value is not valid until after Send returns without error.
 17483  //
 17484  // See ListSecurityProfiles for more information on using the ListSecurityProfiles
 17485  // API call, and error handling.
 17486  //
 17487  // This method is useful when you want to inject custom logic or configuration
 17488  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 17489  //
 17490  //
 17491  //    // Example sending a request using the ListSecurityProfilesRequest method.
 17492  //    req, resp := client.ListSecurityProfilesRequest(params)
 17493  //
 17494  //    err := req.Send()
 17495  //    if err == nil { // resp is now filled
 17496  //        fmt.Println(resp)
 17497  //    }
 17498  func (c *IoT) ListSecurityProfilesRequest(input *ListSecurityProfilesInput) (req *request.Request, output *ListSecurityProfilesOutput) {
 17499  	op := &request.Operation{
 17500  		Name:       opListSecurityProfiles,
 17501  		HTTPMethod: "GET",
 17502  		HTTPPath:   "/security-profiles",
 17503  		Paginator: &request.Paginator{
 17504  			InputTokens:     []string{"nextToken"},
 17505  			OutputTokens:    []string{"nextToken"},
 17506  			LimitToken:      "maxResults",
 17507  			TruncationToken: "",
 17508  		},
 17509  	}
 17510  
 17511  	if input == nil {
 17512  		input = &ListSecurityProfilesInput{}
 17513  	}
 17514  
 17515  	output = &ListSecurityProfilesOutput{}
 17516  	req = c.newRequest(op, input, output)
 17517  	return
 17518  }
 17519  
 17520  // ListSecurityProfiles API operation for AWS IoT.
 17521  //
 17522  // Lists the Device Defender security profiles you've created. You can filter
 17523  // security profiles by dimension or custom metric.
 17524  //
 17525  // Requires permission to access the ListSecurityProfiles (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 17526  // action.
 17527  //
 17528  // dimensionName and metricName cannot be used in the same request.
 17529  //
 17530  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 17531  // with awserr.Error's Code and Message methods to get detailed information about
 17532  // the error.
 17533  //
 17534  // See the AWS API reference guide for AWS IoT's
 17535  // API operation ListSecurityProfiles for usage and error information.
 17536  //
 17537  // Returned Error Types:
 17538  //   * InvalidRequestException
 17539  //   The request is not valid.
 17540  //
 17541  //   * ThrottlingException
 17542  //   The rate exceeds the limit.
 17543  //
 17544  //   * InternalFailureException
 17545  //   An unexpected error has occurred.
 17546  //
 17547  //   * ResourceNotFoundException
 17548  //   The specified resource does not exist.
 17549  //
 17550  func (c *IoT) ListSecurityProfiles(input *ListSecurityProfilesInput) (*ListSecurityProfilesOutput, error) {
 17551  	req, out := c.ListSecurityProfilesRequest(input)
 17552  	return out, req.Send()
 17553  }
 17554  
 17555  // ListSecurityProfilesWithContext is the same as ListSecurityProfiles with the addition of
 17556  // the ability to pass a context and additional request options.
 17557  //
 17558  // See ListSecurityProfiles for details on how to use this API operation.
 17559  //
 17560  // The context must be non-nil and will be used for request cancellation. If
 17561  // the context is nil a panic will occur. In the future the SDK may create
 17562  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17563  // for more information on using Contexts.
 17564  func (c *IoT) ListSecurityProfilesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, opts ...request.Option) (*ListSecurityProfilesOutput, error) {
 17565  	req, out := c.ListSecurityProfilesRequest(input)
 17566  	req.SetContext(ctx)
 17567  	req.ApplyOptions(opts...)
 17568  	return out, req.Send()
 17569  }
 17570  
 17571  // ListSecurityProfilesPages iterates over the pages of a ListSecurityProfiles operation,
 17572  // calling the "fn" function with the response data for each page. To stop
 17573  // iterating, return false from the fn function.
 17574  //
 17575  // See ListSecurityProfiles method for more information on how to use this operation.
 17576  //
 17577  // Note: This operation can generate multiple requests to a service.
 17578  //
 17579  //    // Example iterating over at most 3 pages of a ListSecurityProfiles operation.
 17580  //    pageNum := 0
 17581  //    err := client.ListSecurityProfilesPages(params,
 17582  //        func(page *iot.ListSecurityProfilesOutput, lastPage bool) bool {
 17583  //            pageNum++
 17584  //            fmt.Println(page)
 17585  //            return pageNum <= 3
 17586  //        })
 17587  //
 17588  func (c *IoT) ListSecurityProfilesPages(input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool) error {
 17589  	return c.ListSecurityProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
 17590  }
 17591  
 17592  // ListSecurityProfilesPagesWithContext same as ListSecurityProfilesPages except
 17593  // it takes a Context and allows setting request options on the pages.
 17594  //
 17595  // The context must be non-nil and will be used for request cancellation. If
 17596  // the context is nil a panic will occur. In the future the SDK may create
 17597  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17598  // for more information on using Contexts.
 17599  func (c *IoT) ListSecurityProfilesPagesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool, opts ...request.Option) error {
 17600  	p := request.Pagination{
 17601  		NewRequest: func() (*request.Request, error) {
 17602  			var inCpy *ListSecurityProfilesInput
 17603  			if input != nil {
 17604  				tmp := *input
 17605  				inCpy = &tmp
 17606  			}
 17607  			req, _ := c.ListSecurityProfilesRequest(inCpy)
 17608  			req.SetContext(ctx)
 17609  			req.ApplyOptions(opts...)
 17610  			return req, nil
 17611  		},
 17612  	}
 17613  
 17614  	for p.Next() {
 17615  		if !fn(p.Page().(*ListSecurityProfilesOutput), !p.HasNextPage()) {
 17616  			break
 17617  		}
 17618  	}
 17619  
 17620  	return p.Err()
 17621  }
 17622  
 17623  const opListSecurityProfilesForTarget = "ListSecurityProfilesForTarget"
 17624  
 17625  // ListSecurityProfilesForTargetRequest generates a "aws/request.Request" representing the
 17626  // client's request for the ListSecurityProfilesForTarget operation. The "output" return
 17627  // value will be populated with the request's response once the request completes
 17628  // successfully.
 17629  //
 17630  // Use "Send" method on the returned Request to send the API call to the service.
 17631  // the "output" return value is not valid until after Send returns without error.
 17632  //
 17633  // See ListSecurityProfilesForTarget for more information on using the ListSecurityProfilesForTarget
 17634  // API call, and error handling.
 17635  //
 17636  // This method is useful when you want to inject custom logic or configuration
 17637  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 17638  //
 17639  //
 17640  //    // Example sending a request using the ListSecurityProfilesForTargetRequest method.
 17641  //    req, resp := client.ListSecurityProfilesForTargetRequest(params)
 17642  //
 17643  //    err := req.Send()
 17644  //    if err == nil { // resp is now filled
 17645  //        fmt.Println(resp)
 17646  //    }
 17647  func (c *IoT) ListSecurityProfilesForTargetRequest(input *ListSecurityProfilesForTargetInput) (req *request.Request, output *ListSecurityProfilesForTargetOutput) {
 17648  	op := &request.Operation{
 17649  		Name:       opListSecurityProfilesForTarget,
 17650  		HTTPMethod: "GET",
 17651  		HTTPPath:   "/security-profiles-for-target",
 17652  		Paginator: &request.Paginator{
 17653  			InputTokens:     []string{"nextToken"},
 17654  			OutputTokens:    []string{"nextToken"},
 17655  			LimitToken:      "maxResults",
 17656  			TruncationToken: "",
 17657  		},
 17658  	}
 17659  
 17660  	if input == nil {
 17661  		input = &ListSecurityProfilesForTargetInput{}
 17662  	}
 17663  
 17664  	output = &ListSecurityProfilesForTargetOutput{}
 17665  	req = c.newRequest(op, input, output)
 17666  	return
 17667  }
 17668  
 17669  // ListSecurityProfilesForTarget API operation for AWS IoT.
 17670  //
 17671  // Lists the Device Defender security profiles attached to a target (thing group).
 17672  //
 17673  // Requires permission to access the ListSecurityProfilesForTarget (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 17674  // action.
 17675  //
 17676  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 17677  // with awserr.Error's Code and Message methods to get detailed information about
 17678  // the error.
 17679  //
 17680  // See the AWS API reference guide for AWS IoT's
 17681  // API operation ListSecurityProfilesForTarget for usage and error information.
 17682  //
 17683  // Returned Error Types:
 17684  //   * InvalidRequestException
 17685  //   The request is not valid.
 17686  //
 17687  //   * ThrottlingException
 17688  //   The rate exceeds the limit.
 17689  //
 17690  //   * InternalFailureException
 17691  //   An unexpected error has occurred.
 17692  //
 17693  //   * ResourceNotFoundException
 17694  //   The specified resource does not exist.
 17695  //
 17696  func (c *IoT) ListSecurityProfilesForTarget(input *ListSecurityProfilesForTargetInput) (*ListSecurityProfilesForTargetOutput, error) {
 17697  	req, out := c.ListSecurityProfilesForTargetRequest(input)
 17698  	return out, req.Send()
 17699  }
 17700  
 17701  // ListSecurityProfilesForTargetWithContext is the same as ListSecurityProfilesForTarget with the addition of
 17702  // the ability to pass a context and additional request options.
 17703  //
 17704  // See ListSecurityProfilesForTarget for details on how to use this API operation.
 17705  //
 17706  // The context must be non-nil and will be used for request cancellation. If
 17707  // the context is nil a panic will occur. In the future the SDK may create
 17708  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17709  // for more information on using Contexts.
 17710  func (c *IoT) ListSecurityProfilesForTargetWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, opts ...request.Option) (*ListSecurityProfilesForTargetOutput, error) {
 17711  	req, out := c.ListSecurityProfilesForTargetRequest(input)
 17712  	req.SetContext(ctx)
 17713  	req.ApplyOptions(opts...)
 17714  	return out, req.Send()
 17715  }
 17716  
 17717  // ListSecurityProfilesForTargetPages iterates over the pages of a ListSecurityProfilesForTarget operation,
 17718  // calling the "fn" function with the response data for each page. To stop
 17719  // iterating, return false from the fn function.
 17720  //
 17721  // See ListSecurityProfilesForTarget method for more information on how to use this operation.
 17722  //
 17723  // Note: This operation can generate multiple requests to a service.
 17724  //
 17725  //    // Example iterating over at most 3 pages of a ListSecurityProfilesForTarget operation.
 17726  //    pageNum := 0
 17727  //    err := client.ListSecurityProfilesForTargetPages(params,
 17728  //        func(page *iot.ListSecurityProfilesForTargetOutput, lastPage bool) bool {
 17729  //            pageNum++
 17730  //            fmt.Println(page)
 17731  //            return pageNum <= 3
 17732  //        })
 17733  //
 17734  func (c *IoT) ListSecurityProfilesForTargetPages(input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool) error {
 17735  	return c.ListSecurityProfilesForTargetPagesWithContext(aws.BackgroundContext(), input, fn)
 17736  }
 17737  
 17738  // ListSecurityProfilesForTargetPagesWithContext same as ListSecurityProfilesForTargetPages except
 17739  // it takes a Context and allows setting request options on the pages.
 17740  //
 17741  // The context must be non-nil and will be used for request cancellation. If
 17742  // the context is nil a panic will occur. In the future the SDK may create
 17743  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17744  // for more information on using Contexts.
 17745  func (c *IoT) ListSecurityProfilesForTargetPagesWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool, opts ...request.Option) error {
 17746  	p := request.Pagination{
 17747  		NewRequest: func() (*request.Request, error) {
 17748  			var inCpy *ListSecurityProfilesForTargetInput
 17749  			if input != nil {
 17750  				tmp := *input
 17751  				inCpy = &tmp
 17752  			}
 17753  			req, _ := c.ListSecurityProfilesForTargetRequest(inCpy)
 17754  			req.SetContext(ctx)
 17755  			req.ApplyOptions(opts...)
 17756  			return req, nil
 17757  		},
 17758  	}
 17759  
 17760  	for p.Next() {
 17761  		if !fn(p.Page().(*ListSecurityProfilesForTargetOutput), !p.HasNextPage()) {
 17762  			break
 17763  		}
 17764  	}
 17765  
 17766  	return p.Err()
 17767  }
 17768  
 17769  const opListStreams = "ListStreams"
 17770  
 17771  // ListStreamsRequest generates a "aws/request.Request" representing the
 17772  // client's request for the ListStreams operation. The "output" return
 17773  // value will be populated with the request's response once the request completes
 17774  // successfully.
 17775  //
 17776  // Use "Send" method on the returned Request to send the API call to the service.
 17777  // the "output" return value is not valid until after Send returns without error.
 17778  //
 17779  // See ListStreams for more information on using the ListStreams
 17780  // API call, and error handling.
 17781  //
 17782  // This method is useful when you want to inject custom logic or configuration
 17783  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 17784  //
 17785  //
 17786  //    // Example sending a request using the ListStreamsRequest method.
 17787  //    req, resp := client.ListStreamsRequest(params)
 17788  //
 17789  //    err := req.Send()
 17790  //    if err == nil { // resp is now filled
 17791  //        fmt.Println(resp)
 17792  //    }
 17793  func (c *IoT) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
 17794  	op := &request.Operation{
 17795  		Name:       opListStreams,
 17796  		HTTPMethod: "GET",
 17797  		HTTPPath:   "/streams",
 17798  		Paginator: &request.Paginator{
 17799  			InputTokens:     []string{"nextToken"},
 17800  			OutputTokens:    []string{"nextToken"},
 17801  			LimitToken:      "maxResults",
 17802  			TruncationToken: "",
 17803  		},
 17804  	}
 17805  
 17806  	if input == nil {
 17807  		input = &ListStreamsInput{}
 17808  	}
 17809  
 17810  	output = &ListStreamsOutput{}
 17811  	req = c.newRequest(op, input, output)
 17812  	return
 17813  }
 17814  
 17815  // ListStreams API operation for AWS IoT.
 17816  //
 17817  // Lists all of the streams in your Amazon Web Services account.
 17818  //
 17819  // Requires permission to access the ListStreams (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 17820  // action.
 17821  //
 17822  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 17823  // with awserr.Error's Code and Message methods to get detailed information about
 17824  // the error.
 17825  //
 17826  // See the AWS API reference guide for AWS IoT's
 17827  // API operation ListStreams for usage and error information.
 17828  //
 17829  // Returned Error Types:
 17830  //   * InvalidRequestException
 17831  //   The request is not valid.
 17832  //
 17833  //   * ThrottlingException
 17834  //   The rate exceeds the limit.
 17835  //
 17836  //   * UnauthorizedException
 17837  //   You are not authorized to perform this operation.
 17838  //
 17839  //   * ServiceUnavailableException
 17840  //   The service is temporarily unavailable.
 17841  //
 17842  //   * InternalFailureException
 17843  //   An unexpected error has occurred.
 17844  //
 17845  func (c *IoT) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
 17846  	req, out := c.ListStreamsRequest(input)
 17847  	return out, req.Send()
 17848  }
 17849  
 17850  // ListStreamsWithContext is the same as ListStreams with the addition of
 17851  // the ability to pass a context and additional request options.
 17852  //
 17853  // See ListStreams for details on how to use this API operation.
 17854  //
 17855  // The context must be non-nil and will be used for request cancellation. If
 17856  // the context is nil a panic will occur. In the future the SDK may create
 17857  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17858  // for more information on using Contexts.
 17859  func (c *IoT) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
 17860  	req, out := c.ListStreamsRequest(input)
 17861  	req.SetContext(ctx)
 17862  	req.ApplyOptions(opts...)
 17863  	return out, req.Send()
 17864  }
 17865  
 17866  // ListStreamsPages iterates over the pages of a ListStreams operation,
 17867  // calling the "fn" function with the response data for each page. To stop
 17868  // iterating, return false from the fn function.
 17869  //
 17870  // See ListStreams method for more information on how to use this operation.
 17871  //
 17872  // Note: This operation can generate multiple requests to a service.
 17873  //
 17874  //    // Example iterating over at most 3 pages of a ListStreams operation.
 17875  //    pageNum := 0
 17876  //    err := client.ListStreamsPages(params,
 17877  //        func(page *iot.ListStreamsOutput, lastPage bool) bool {
 17878  //            pageNum++
 17879  //            fmt.Println(page)
 17880  //            return pageNum <= 3
 17881  //        })
 17882  //
 17883  func (c *IoT) ListStreamsPages(input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool) error {
 17884  	return c.ListStreamsPagesWithContext(aws.BackgroundContext(), input, fn)
 17885  }
 17886  
 17887  // ListStreamsPagesWithContext same as ListStreamsPages except
 17888  // it takes a Context and allows setting request options on the pages.
 17889  //
 17890  // The context must be non-nil and will be used for request cancellation. If
 17891  // the context is nil a panic will occur. In the future the SDK may create
 17892  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 17893  // for more information on using Contexts.
 17894  func (c *IoT) ListStreamsPagesWithContext(ctx aws.Context, input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool, opts ...request.Option) error {
 17895  	p := request.Pagination{
 17896  		NewRequest: func() (*request.Request, error) {
 17897  			var inCpy *ListStreamsInput
 17898  			if input != nil {
 17899  				tmp := *input
 17900  				inCpy = &tmp
 17901  			}
 17902  			req, _ := c.ListStreamsRequest(inCpy)
 17903  			req.SetContext(ctx)
 17904  			req.ApplyOptions(opts...)
 17905  			return req, nil
 17906  		},
 17907  	}
 17908  
 17909  	for p.Next() {
 17910  		if !fn(p.Page().(*ListStreamsOutput), !p.HasNextPage()) {
 17911  			break
 17912  		}
 17913  	}
 17914  
 17915  	return p.Err()
 17916  }
 17917  
 17918  const opListTagsForResource = "ListTagsForResource"
 17919  
 17920  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
 17921  // client's request for the ListTagsForResource operation. The "output" return
 17922  // value will be populated with the request's response once the request completes
 17923  // successfully.
 17924  //
 17925  // Use "Send" method on the returned Request to send the API call to the service.
 17926  // the "output" return value is not valid until after Send returns without error.
 17927  //
 17928  // See ListTagsForResource for more information on using the ListTagsForResource
 17929  // API call, and error handling.
 17930  //
 17931  // This method is useful when you want to inject custom logic or configuration
 17932  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 17933  //
 17934  //
 17935  //    // Example sending a request using the ListTagsForResourceRequest method.
 17936  //    req, resp := client.ListTagsForResourceRequest(params)
 17937  //
 17938  //    err := req.Send()
 17939  //    if err == nil { // resp is now filled
 17940  //        fmt.Println(resp)
 17941  //    }
 17942  func (c *IoT) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
 17943  	op := &request.Operation{
 17944  		Name:       opListTagsForResource,
 17945  		HTTPMethod: "GET",
 17946  		HTTPPath:   "/tags",
 17947  		Paginator: &request.Paginator{
 17948  			InputTokens:     []string{"nextToken"},
 17949  			OutputTokens:    []string{"nextToken"},
 17950  			LimitToken:      "",
 17951  			TruncationToken: "",
 17952  		},
 17953  	}
 17954  
 17955  	if input == nil {
 17956  		input = &ListTagsForResourceInput{}
 17957  	}
 17958  
 17959  	output = &ListTagsForResourceOutput{}
 17960  	req = c.newRequest(op, input, output)
 17961  	return
 17962  }
 17963  
 17964  // ListTagsForResource API operation for AWS IoT.
 17965  //
 17966  // Lists the tags (metadata) you have assigned to the resource.
 17967  //
 17968  // Requires permission to access the ListTagsForResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 17969  // action.
 17970  //
 17971  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 17972  // with awserr.Error's Code and Message methods to get detailed information about
 17973  // the error.
 17974  //
 17975  // See the AWS API reference guide for AWS IoT's
 17976  // API operation ListTagsForResource for usage and error information.
 17977  //
 17978  // Returned Error Types:
 17979  //   * InvalidRequestException
 17980  //   The request is not valid.
 17981  //
 17982  //   * InternalFailureException
 17983  //   An unexpected error has occurred.
 17984  //
 17985  //   * ResourceNotFoundException
 17986  //   The specified resource does not exist.
 17987  //
 17988  //   * ThrottlingException
 17989  //   The rate exceeds the limit.
 17990  //
 17991  func (c *IoT) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
 17992  	req, out := c.ListTagsForResourceRequest(input)
 17993  	return out, req.Send()
 17994  }
 17995  
 17996  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
 17997  // the ability to pass a context and additional request options.
 17998  //
 17999  // See ListTagsForResource for details on how to use this API operation.
 18000  //
 18001  // The context must be non-nil and will be used for request cancellation. If
 18002  // the context is nil a panic will occur. In the future the SDK may create
 18003  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18004  // for more information on using Contexts.
 18005  func (c *IoT) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
 18006  	req, out := c.ListTagsForResourceRequest(input)
 18007  	req.SetContext(ctx)
 18008  	req.ApplyOptions(opts...)
 18009  	return out, req.Send()
 18010  }
 18011  
 18012  // ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
 18013  // calling the "fn" function with the response data for each page. To stop
 18014  // iterating, return false from the fn function.
 18015  //
 18016  // See ListTagsForResource method for more information on how to use this operation.
 18017  //
 18018  // Note: This operation can generate multiple requests to a service.
 18019  //
 18020  //    // Example iterating over at most 3 pages of a ListTagsForResource operation.
 18021  //    pageNum := 0
 18022  //    err := client.ListTagsForResourcePages(params,
 18023  //        func(page *iot.ListTagsForResourceOutput, lastPage bool) bool {
 18024  //            pageNum++
 18025  //            fmt.Println(page)
 18026  //            return pageNum <= 3
 18027  //        })
 18028  //
 18029  func (c *IoT) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
 18030  	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
 18031  }
 18032  
 18033  // ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
 18034  // it takes a Context and allows setting request options on the pages.
 18035  //
 18036  // The context must be non-nil and will be used for request cancellation. If
 18037  // the context is nil a panic will occur. In the future the SDK may create
 18038  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18039  // for more information on using Contexts.
 18040  func (c *IoT) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
 18041  	p := request.Pagination{
 18042  		NewRequest: func() (*request.Request, error) {
 18043  			var inCpy *ListTagsForResourceInput
 18044  			if input != nil {
 18045  				tmp := *input
 18046  				inCpy = &tmp
 18047  			}
 18048  			req, _ := c.ListTagsForResourceRequest(inCpy)
 18049  			req.SetContext(ctx)
 18050  			req.ApplyOptions(opts...)
 18051  			return req, nil
 18052  		},
 18053  	}
 18054  
 18055  	for p.Next() {
 18056  		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
 18057  			break
 18058  		}
 18059  	}
 18060  
 18061  	return p.Err()
 18062  }
 18063  
 18064  const opListTargetsForPolicy = "ListTargetsForPolicy"
 18065  
 18066  // ListTargetsForPolicyRequest generates a "aws/request.Request" representing the
 18067  // client's request for the ListTargetsForPolicy operation. The "output" return
 18068  // value will be populated with the request's response once the request completes
 18069  // successfully.
 18070  //
 18071  // Use "Send" method on the returned Request to send the API call to the service.
 18072  // the "output" return value is not valid until after Send returns without error.
 18073  //
 18074  // See ListTargetsForPolicy for more information on using the ListTargetsForPolicy
 18075  // API call, and error handling.
 18076  //
 18077  // This method is useful when you want to inject custom logic or configuration
 18078  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 18079  //
 18080  //
 18081  //    // Example sending a request using the ListTargetsForPolicyRequest method.
 18082  //    req, resp := client.ListTargetsForPolicyRequest(params)
 18083  //
 18084  //    err := req.Send()
 18085  //    if err == nil { // resp is now filled
 18086  //        fmt.Println(resp)
 18087  //    }
 18088  func (c *IoT) ListTargetsForPolicyRequest(input *ListTargetsForPolicyInput) (req *request.Request, output *ListTargetsForPolicyOutput) {
 18089  	op := &request.Operation{
 18090  		Name:       opListTargetsForPolicy,
 18091  		HTTPMethod: "POST",
 18092  		HTTPPath:   "/policy-targets/{policyName}",
 18093  		Paginator: &request.Paginator{
 18094  			InputTokens:     []string{"marker"},
 18095  			OutputTokens:    []string{"nextMarker"},
 18096  			LimitToken:      "pageSize",
 18097  			TruncationToken: "",
 18098  		},
 18099  	}
 18100  
 18101  	if input == nil {
 18102  		input = &ListTargetsForPolicyInput{}
 18103  	}
 18104  
 18105  	output = &ListTargetsForPolicyOutput{}
 18106  	req = c.newRequest(op, input, output)
 18107  	return
 18108  }
 18109  
 18110  // ListTargetsForPolicy API operation for AWS IoT.
 18111  //
 18112  // List targets for the specified policy.
 18113  //
 18114  // Requires permission to access the ListTargetsForPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 18115  // action.
 18116  //
 18117  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 18118  // with awserr.Error's Code and Message methods to get detailed information about
 18119  // the error.
 18120  //
 18121  // See the AWS API reference guide for AWS IoT's
 18122  // API operation ListTargetsForPolicy for usage and error information.
 18123  //
 18124  // Returned Error Types:
 18125  //   * ResourceNotFoundException
 18126  //   The specified resource does not exist.
 18127  //
 18128  //   * InvalidRequestException
 18129  //   The request is not valid.
 18130  //
 18131  //   * ThrottlingException
 18132  //   The rate exceeds the limit.
 18133  //
 18134  //   * UnauthorizedException
 18135  //   You are not authorized to perform this operation.
 18136  //
 18137  //   * ServiceUnavailableException
 18138  //   The service is temporarily unavailable.
 18139  //
 18140  //   * InternalFailureException
 18141  //   An unexpected error has occurred.
 18142  //
 18143  //   * LimitExceededException
 18144  //   A limit has been exceeded.
 18145  //
 18146  func (c *IoT) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
 18147  	req, out := c.ListTargetsForPolicyRequest(input)
 18148  	return out, req.Send()
 18149  }
 18150  
 18151  // ListTargetsForPolicyWithContext is the same as ListTargetsForPolicy with the addition of
 18152  // the ability to pass a context and additional request options.
 18153  //
 18154  // See ListTargetsForPolicy for details on how to use this API operation.
 18155  //
 18156  // The context must be non-nil and will be used for request cancellation. If
 18157  // the context is nil a panic will occur. In the future the SDK may create
 18158  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18159  // for more information on using Contexts.
 18160  func (c *IoT) ListTargetsForPolicyWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, opts ...request.Option) (*ListTargetsForPolicyOutput, error) {
 18161  	req, out := c.ListTargetsForPolicyRequest(input)
 18162  	req.SetContext(ctx)
 18163  	req.ApplyOptions(opts...)
 18164  	return out, req.Send()
 18165  }
 18166  
 18167  // ListTargetsForPolicyPages iterates over the pages of a ListTargetsForPolicy operation,
 18168  // calling the "fn" function with the response data for each page. To stop
 18169  // iterating, return false from the fn function.
 18170  //
 18171  // See ListTargetsForPolicy method for more information on how to use this operation.
 18172  //
 18173  // Note: This operation can generate multiple requests to a service.
 18174  //
 18175  //    // Example iterating over at most 3 pages of a ListTargetsForPolicy operation.
 18176  //    pageNum := 0
 18177  //    err := client.ListTargetsForPolicyPages(params,
 18178  //        func(page *iot.ListTargetsForPolicyOutput, lastPage bool) bool {
 18179  //            pageNum++
 18180  //            fmt.Println(page)
 18181  //            return pageNum <= 3
 18182  //        })
 18183  //
 18184  func (c *IoT) ListTargetsForPolicyPages(input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool) error {
 18185  	return c.ListTargetsForPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
 18186  }
 18187  
 18188  // ListTargetsForPolicyPagesWithContext same as ListTargetsForPolicyPages except
 18189  // it takes a Context and allows setting request options on the pages.
 18190  //
 18191  // The context must be non-nil and will be used for request cancellation. If
 18192  // the context is nil a panic will occur. In the future the SDK may create
 18193  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18194  // for more information on using Contexts.
 18195  func (c *IoT) ListTargetsForPolicyPagesWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool, opts ...request.Option) error {
 18196  	p := request.Pagination{
 18197  		NewRequest: func() (*request.Request, error) {
 18198  			var inCpy *ListTargetsForPolicyInput
 18199  			if input != nil {
 18200  				tmp := *input
 18201  				inCpy = &tmp
 18202  			}
 18203  			req, _ := c.ListTargetsForPolicyRequest(inCpy)
 18204  			req.SetContext(ctx)
 18205  			req.ApplyOptions(opts...)
 18206  			return req, nil
 18207  		},
 18208  	}
 18209  
 18210  	for p.Next() {
 18211  		if !fn(p.Page().(*ListTargetsForPolicyOutput), !p.HasNextPage()) {
 18212  			break
 18213  		}
 18214  	}
 18215  
 18216  	return p.Err()
 18217  }
 18218  
 18219  const opListTargetsForSecurityProfile = "ListTargetsForSecurityProfile"
 18220  
 18221  // ListTargetsForSecurityProfileRequest generates a "aws/request.Request" representing the
 18222  // client's request for the ListTargetsForSecurityProfile operation. The "output" return
 18223  // value will be populated with the request's response once the request completes
 18224  // successfully.
 18225  //
 18226  // Use "Send" method on the returned Request to send the API call to the service.
 18227  // the "output" return value is not valid until after Send returns without error.
 18228  //
 18229  // See ListTargetsForSecurityProfile for more information on using the ListTargetsForSecurityProfile
 18230  // API call, and error handling.
 18231  //
 18232  // This method is useful when you want to inject custom logic or configuration
 18233  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 18234  //
 18235  //
 18236  //    // Example sending a request using the ListTargetsForSecurityProfileRequest method.
 18237  //    req, resp := client.ListTargetsForSecurityProfileRequest(params)
 18238  //
 18239  //    err := req.Send()
 18240  //    if err == nil { // resp is now filled
 18241  //        fmt.Println(resp)
 18242  //    }
 18243  func (c *IoT) ListTargetsForSecurityProfileRequest(input *ListTargetsForSecurityProfileInput) (req *request.Request, output *ListTargetsForSecurityProfileOutput) {
 18244  	op := &request.Operation{
 18245  		Name:       opListTargetsForSecurityProfile,
 18246  		HTTPMethod: "GET",
 18247  		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
 18248  		Paginator: &request.Paginator{
 18249  			InputTokens:     []string{"nextToken"},
 18250  			OutputTokens:    []string{"nextToken"},
 18251  			LimitToken:      "maxResults",
 18252  			TruncationToken: "",
 18253  		},
 18254  	}
 18255  
 18256  	if input == nil {
 18257  		input = &ListTargetsForSecurityProfileInput{}
 18258  	}
 18259  
 18260  	output = &ListTargetsForSecurityProfileOutput{}
 18261  	req = c.newRequest(op, input, output)
 18262  	return
 18263  }
 18264  
 18265  // ListTargetsForSecurityProfile API operation for AWS IoT.
 18266  //
 18267  // Lists the targets (thing groups) associated with a given Device Defender
 18268  // security profile.
 18269  //
 18270  // Requires permission to access the ListTargetsForSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 18271  // action.
 18272  //
 18273  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 18274  // with awserr.Error's Code and Message methods to get detailed information about
 18275  // the error.
 18276  //
 18277  // See the AWS API reference guide for AWS IoT's
 18278  // API operation ListTargetsForSecurityProfile for usage and error information.
 18279  //
 18280  // Returned Error Types:
 18281  //   * InvalidRequestException
 18282  //   The request is not valid.
 18283  //
 18284  //   * ResourceNotFoundException
 18285  //   The specified resource does not exist.
 18286  //
 18287  //   * ThrottlingException
 18288  //   The rate exceeds the limit.
 18289  //
 18290  //   * InternalFailureException
 18291  //   An unexpected error has occurred.
 18292  //
 18293  func (c *IoT) ListTargetsForSecurityProfile(input *ListTargetsForSecurityProfileInput) (*ListTargetsForSecurityProfileOutput, error) {
 18294  	req, out := c.ListTargetsForSecurityProfileRequest(input)
 18295  	return out, req.Send()
 18296  }
 18297  
 18298  // ListTargetsForSecurityProfileWithContext is the same as ListTargetsForSecurityProfile with the addition of
 18299  // the ability to pass a context and additional request options.
 18300  //
 18301  // See ListTargetsForSecurityProfile for details on how to use this API operation.
 18302  //
 18303  // The context must be non-nil and will be used for request cancellation. If
 18304  // the context is nil a panic will occur. In the future the SDK may create
 18305  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18306  // for more information on using Contexts.
 18307  func (c *IoT) ListTargetsForSecurityProfileWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, opts ...request.Option) (*ListTargetsForSecurityProfileOutput, error) {
 18308  	req, out := c.ListTargetsForSecurityProfileRequest(input)
 18309  	req.SetContext(ctx)
 18310  	req.ApplyOptions(opts...)
 18311  	return out, req.Send()
 18312  }
 18313  
 18314  // ListTargetsForSecurityProfilePages iterates over the pages of a ListTargetsForSecurityProfile operation,
 18315  // calling the "fn" function with the response data for each page. To stop
 18316  // iterating, return false from the fn function.
 18317  //
 18318  // See ListTargetsForSecurityProfile method for more information on how to use this operation.
 18319  //
 18320  // Note: This operation can generate multiple requests to a service.
 18321  //
 18322  //    // Example iterating over at most 3 pages of a ListTargetsForSecurityProfile operation.
 18323  //    pageNum := 0
 18324  //    err := client.ListTargetsForSecurityProfilePages(params,
 18325  //        func(page *iot.ListTargetsForSecurityProfileOutput, lastPage bool) bool {
 18326  //            pageNum++
 18327  //            fmt.Println(page)
 18328  //            return pageNum <= 3
 18329  //        })
 18330  //
 18331  func (c *IoT) ListTargetsForSecurityProfilePages(input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool) error {
 18332  	return c.ListTargetsForSecurityProfilePagesWithContext(aws.BackgroundContext(), input, fn)
 18333  }
 18334  
 18335  // ListTargetsForSecurityProfilePagesWithContext same as ListTargetsForSecurityProfilePages except
 18336  // it takes a Context and allows setting request options on the pages.
 18337  //
 18338  // The context must be non-nil and will be used for request cancellation. If
 18339  // the context is nil a panic will occur. In the future the SDK may create
 18340  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18341  // for more information on using Contexts.
 18342  func (c *IoT) ListTargetsForSecurityProfilePagesWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool, opts ...request.Option) error {
 18343  	p := request.Pagination{
 18344  		NewRequest: func() (*request.Request, error) {
 18345  			var inCpy *ListTargetsForSecurityProfileInput
 18346  			if input != nil {
 18347  				tmp := *input
 18348  				inCpy = &tmp
 18349  			}
 18350  			req, _ := c.ListTargetsForSecurityProfileRequest(inCpy)
 18351  			req.SetContext(ctx)
 18352  			req.ApplyOptions(opts...)
 18353  			return req, nil
 18354  		},
 18355  	}
 18356  
 18357  	for p.Next() {
 18358  		if !fn(p.Page().(*ListTargetsForSecurityProfileOutput), !p.HasNextPage()) {
 18359  			break
 18360  		}
 18361  	}
 18362  
 18363  	return p.Err()
 18364  }
 18365  
 18366  const opListThingGroups = "ListThingGroups"
 18367  
 18368  // ListThingGroupsRequest generates a "aws/request.Request" representing the
 18369  // client's request for the ListThingGroups operation. The "output" return
 18370  // value will be populated with the request's response once the request completes
 18371  // successfully.
 18372  //
 18373  // Use "Send" method on the returned Request to send the API call to the service.
 18374  // the "output" return value is not valid until after Send returns without error.
 18375  //
 18376  // See ListThingGroups for more information on using the ListThingGroups
 18377  // API call, and error handling.
 18378  //
 18379  // This method is useful when you want to inject custom logic or configuration
 18380  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 18381  //
 18382  //
 18383  //    // Example sending a request using the ListThingGroupsRequest method.
 18384  //    req, resp := client.ListThingGroupsRequest(params)
 18385  //
 18386  //    err := req.Send()
 18387  //    if err == nil { // resp is now filled
 18388  //        fmt.Println(resp)
 18389  //    }
 18390  func (c *IoT) ListThingGroupsRequest(input *ListThingGroupsInput) (req *request.Request, output *ListThingGroupsOutput) {
 18391  	op := &request.Operation{
 18392  		Name:       opListThingGroups,
 18393  		HTTPMethod: "GET",
 18394  		HTTPPath:   "/thing-groups",
 18395  		Paginator: &request.Paginator{
 18396  			InputTokens:     []string{"nextToken"},
 18397  			OutputTokens:    []string{"nextToken"},
 18398  			LimitToken:      "maxResults",
 18399  			TruncationToken: "",
 18400  		},
 18401  	}
 18402  
 18403  	if input == nil {
 18404  		input = &ListThingGroupsInput{}
 18405  	}
 18406  
 18407  	output = &ListThingGroupsOutput{}
 18408  	req = c.newRequest(op, input, output)
 18409  	return
 18410  }
 18411  
 18412  // ListThingGroups API operation for AWS IoT.
 18413  //
 18414  // List the thing groups in your account.
 18415  //
 18416  // Requires permission to access the ListThingGroups (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 18417  // action.
 18418  //
 18419  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 18420  // with awserr.Error's Code and Message methods to get detailed information about
 18421  // the error.
 18422  //
 18423  // See the AWS API reference guide for AWS IoT's
 18424  // API operation ListThingGroups for usage and error information.
 18425  //
 18426  // Returned Error Types:
 18427  //   * InvalidRequestException
 18428  //   The request is not valid.
 18429  //
 18430  //   * InternalFailureException
 18431  //   An unexpected error has occurred.
 18432  //
 18433  //   * ResourceNotFoundException
 18434  //   The specified resource does not exist.
 18435  //
 18436  //   * ThrottlingException
 18437  //   The rate exceeds the limit.
 18438  //
 18439  func (c *IoT) ListThingGroups(input *ListThingGroupsInput) (*ListThingGroupsOutput, error) {
 18440  	req, out := c.ListThingGroupsRequest(input)
 18441  	return out, req.Send()
 18442  }
 18443  
 18444  // ListThingGroupsWithContext is the same as ListThingGroups with the addition of
 18445  // the ability to pass a context and additional request options.
 18446  //
 18447  // See ListThingGroups for details on how to use this API operation.
 18448  //
 18449  // The context must be non-nil and will be used for request cancellation. If
 18450  // the context is nil a panic will occur. In the future the SDK may create
 18451  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18452  // for more information on using Contexts.
 18453  func (c *IoT) ListThingGroupsWithContext(ctx aws.Context, input *ListThingGroupsInput, opts ...request.Option) (*ListThingGroupsOutput, error) {
 18454  	req, out := c.ListThingGroupsRequest(input)
 18455  	req.SetContext(ctx)
 18456  	req.ApplyOptions(opts...)
 18457  	return out, req.Send()
 18458  }
 18459  
 18460  // ListThingGroupsPages iterates over the pages of a ListThingGroups operation,
 18461  // calling the "fn" function with the response data for each page. To stop
 18462  // iterating, return false from the fn function.
 18463  //
 18464  // See ListThingGroups method for more information on how to use this operation.
 18465  //
 18466  // Note: This operation can generate multiple requests to a service.
 18467  //
 18468  //    // Example iterating over at most 3 pages of a ListThingGroups operation.
 18469  //    pageNum := 0
 18470  //    err := client.ListThingGroupsPages(params,
 18471  //        func(page *iot.ListThingGroupsOutput, lastPage bool) bool {
 18472  //            pageNum++
 18473  //            fmt.Println(page)
 18474  //            return pageNum <= 3
 18475  //        })
 18476  //
 18477  func (c *IoT) ListThingGroupsPages(input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool) error {
 18478  	return c.ListThingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
 18479  }
 18480  
 18481  // ListThingGroupsPagesWithContext same as ListThingGroupsPages except
 18482  // it takes a Context and allows setting request options on the pages.
 18483  //
 18484  // The context must be non-nil and will be used for request cancellation. If
 18485  // the context is nil a panic will occur. In the future the SDK may create
 18486  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18487  // for more information on using Contexts.
 18488  func (c *IoT) ListThingGroupsPagesWithContext(ctx aws.Context, input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool, opts ...request.Option) error {
 18489  	p := request.Pagination{
 18490  		NewRequest: func() (*request.Request, error) {
 18491  			var inCpy *ListThingGroupsInput
 18492  			if input != nil {
 18493  				tmp := *input
 18494  				inCpy = &tmp
 18495  			}
 18496  			req, _ := c.ListThingGroupsRequest(inCpy)
 18497  			req.SetContext(ctx)
 18498  			req.ApplyOptions(opts...)
 18499  			return req, nil
 18500  		},
 18501  	}
 18502  
 18503  	for p.Next() {
 18504  		if !fn(p.Page().(*ListThingGroupsOutput), !p.HasNextPage()) {
 18505  			break
 18506  		}
 18507  	}
 18508  
 18509  	return p.Err()
 18510  }
 18511  
 18512  const opListThingGroupsForThing = "ListThingGroupsForThing"
 18513  
 18514  // ListThingGroupsForThingRequest generates a "aws/request.Request" representing the
 18515  // client's request for the ListThingGroupsForThing operation. The "output" return
 18516  // value will be populated with the request's response once the request completes
 18517  // successfully.
 18518  //
 18519  // Use "Send" method on the returned Request to send the API call to the service.
 18520  // the "output" return value is not valid until after Send returns without error.
 18521  //
 18522  // See ListThingGroupsForThing for more information on using the ListThingGroupsForThing
 18523  // API call, and error handling.
 18524  //
 18525  // This method is useful when you want to inject custom logic or configuration
 18526  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 18527  //
 18528  //
 18529  //    // Example sending a request using the ListThingGroupsForThingRequest method.
 18530  //    req, resp := client.ListThingGroupsForThingRequest(params)
 18531  //
 18532  //    err := req.Send()
 18533  //    if err == nil { // resp is now filled
 18534  //        fmt.Println(resp)
 18535  //    }
 18536  func (c *IoT) ListThingGroupsForThingRequest(input *ListThingGroupsForThingInput) (req *request.Request, output *ListThingGroupsForThingOutput) {
 18537  	op := &request.Operation{
 18538  		Name:       opListThingGroupsForThing,
 18539  		HTTPMethod: "GET",
 18540  		HTTPPath:   "/things/{thingName}/thing-groups",
 18541  		Paginator: &request.Paginator{
 18542  			InputTokens:     []string{"nextToken"},
 18543  			OutputTokens:    []string{"nextToken"},
 18544  			LimitToken:      "maxResults",
 18545  			TruncationToken: "",
 18546  		},
 18547  	}
 18548  
 18549  	if input == nil {
 18550  		input = &ListThingGroupsForThingInput{}
 18551  	}
 18552  
 18553  	output = &ListThingGroupsForThingOutput{}
 18554  	req = c.newRequest(op, input, output)
 18555  	return
 18556  }
 18557  
 18558  // ListThingGroupsForThing API operation for AWS IoT.
 18559  //
 18560  // List the thing groups to which the specified thing belongs.
 18561  //
 18562  // Requires permission to access the ListThingGroupsForThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 18563  // action.
 18564  //
 18565  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 18566  // with awserr.Error's Code and Message methods to get detailed information about
 18567  // the error.
 18568  //
 18569  // See the AWS API reference guide for AWS IoT's
 18570  // API operation ListThingGroupsForThing for usage and error information.
 18571  //
 18572  // Returned Error Types:
 18573  //   * InvalidRequestException
 18574  //   The request is not valid.
 18575  //
 18576  //   * InternalFailureException
 18577  //   An unexpected error has occurred.
 18578  //
 18579  //   * ResourceNotFoundException
 18580  //   The specified resource does not exist.
 18581  //
 18582  //   * ThrottlingException
 18583  //   The rate exceeds the limit.
 18584  //
 18585  func (c *IoT) ListThingGroupsForThing(input *ListThingGroupsForThingInput) (*ListThingGroupsForThingOutput, error) {
 18586  	req, out := c.ListThingGroupsForThingRequest(input)
 18587  	return out, req.Send()
 18588  }
 18589  
 18590  // ListThingGroupsForThingWithContext is the same as ListThingGroupsForThing with the addition of
 18591  // the ability to pass a context and additional request options.
 18592  //
 18593  // See ListThingGroupsForThing for details on how to use this API operation.
 18594  //
 18595  // The context must be non-nil and will be used for request cancellation. If
 18596  // the context is nil a panic will occur. In the future the SDK may create
 18597  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18598  // for more information on using Contexts.
 18599  func (c *IoT) ListThingGroupsForThingWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, opts ...request.Option) (*ListThingGroupsForThingOutput, error) {
 18600  	req, out := c.ListThingGroupsForThingRequest(input)
 18601  	req.SetContext(ctx)
 18602  	req.ApplyOptions(opts...)
 18603  	return out, req.Send()
 18604  }
 18605  
 18606  // ListThingGroupsForThingPages iterates over the pages of a ListThingGroupsForThing operation,
 18607  // calling the "fn" function with the response data for each page. To stop
 18608  // iterating, return false from the fn function.
 18609  //
 18610  // See ListThingGroupsForThing method for more information on how to use this operation.
 18611  //
 18612  // Note: This operation can generate multiple requests to a service.
 18613  //
 18614  //    // Example iterating over at most 3 pages of a ListThingGroupsForThing operation.
 18615  //    pageNum := 0
 18616  //    err := client.ListThingGroupsForThingPages(params,
 18617  //        func(page *iot.ListThingGroupsForThingOutput, lastPage bool) bool {
 18618  //            pageNum++
 18619  //            fmt.Println(page)
 18620  //            return pageNum <= 3
 18621  //        })
 18622  //
 18623  func (c *IoT) ListThingGroupsForThingPages(input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool) error {
 18624  	return c.ListThingGroupsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
 18625  }
 18626  
 18627  // ListThingGroupsForThingPagesWithContext same as ListThingGroupsForThingPages except
 18628  // it takes a Context and allows setting request options on the pages.
 18629  //
 18630  // The context must be non-nil and will be used for request cancellation. If
 18631  // the context is nil a panic will occur. In the future the SDK may create
 18632  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18633  // for more information on using Contexts.
 18634  func (c *IoT) ListThingGroupsForThingPagesWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool, opts ...request.Option) error {
 18635  	p := request.Pagination{
 18636  		NewRequest: func() (*request.Request, error) {
 18637  			var inCpy *ListThingGroupsForThingInput
 18638  			if input != nil {
 18639  				tmp := *input
 18640  				inCpy = &tmp
 18641  			}
 18642  			req, _ := c.ListThingGroupsForThingRequest(inCpy)
 18643  			req.SetContext(ctx)
 18644  			req.ApplyOptions(opts...)
 18645  			return req, nil
 18646  		},
 18647  	}
 18648  
 18649  	for p.Next() {
 18650  		if !fn(p.Page().(*ListThingGroupsForThingOutput), !p.HasNextPage()) {
 18651  			break
 18652  		}
 18653  	}
 18654  
 18655  	return p.Err()
 18656  }
 18657  
 18658  const opListThingPrincipals = "ListThingPrincipals"
 18659  
 18660  // ListThingPrincipalsRequest generates a "aws/request.Request" representing the
 18661  // client's request for the ListThingPrincipals operation. The "output" return
 18662  // value will be populated with the request's response once the request completes
 18663  // successfully.
 18664  //
 18665  // Use "Send" method on the returned Request to send the API call to the service.
 18666  // the "output" return value is not valid until after Send returns without error.
 18667  //
 18668  // See ListThingPrincipals for more information on using the ListThingPrincipals
 18669  // API call, and error handling.
 18670  //
 18671  // This method is useful when you want to inject custom logic or configuration
 18672  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 18673  //
 18674  //
 18675  //    // Example sending a request using the ListThingPrincipalsRequest method.
 18676  //    req, resp := client.ListThingPrincipalsRequest(params)
 18677  //
 18678  //    err := req.Send()
 18679  //    if err == nil { // resp is now filled
 18680  //        fmt.Println(resp)
 18681  //    }
 18682  func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *request.Request, output *ListThingPrincipalsOutput) {
 18683  	op := &request.Operation{
 18684  		Name:       opListThingPrincipals,
 18685  		HTTPMethod: "GET",
 18686  		HTTPPath:   "/things/{thingName}/principals",
 18687  		Paginator: &request.Paginator{
 18688  			InputTokens:     []string{"nextToken"},
 18689  			OutputTokens:    []string{"nextToken"},
 18690  			LimitToken:      "maxResults",
 18691  			TruncationToken: "",
 18692  		},
 18693  	}
 18694  
 18695  	if input == nil {
 18696  		input = &ListThingPrincipalsInput{}
 18697  	}
 18698  
 18699  	output = &ListThingPrincipalsOutput{}
 18700  	req = c.newRequest(op, input, output)
 18701  	return
 18702  }
 18703  
 18704  // ListThingPrincipals API operation for AWS IoT.
 18705  //
 18706  // Lists the principals associated with the specified thing. A principal can
 18707  // be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
 18708  // or federated identities.
 18709  //
 18710  // Requires permission to access the ListThingPrincipals (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 18711  // action.
 18712  //
 18713  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 18714  // with awserr.Error's Code and Message methods to get detailed information about
 18715  // the error.
 18716  //
 18717  // See the AWS API reference guide for AWS IoT's
 18718  // API operation ListThingPrincipals for usage and error information.
 18719  //
 18720  // Returned Error Types:
 18721  //   * InvalidRequestException
 18722  //   The request is not valid.
 18723  //
 18724  //   * ThrottlingException
 18725  //   The rate exceeds the limit.
 18726  //
 18727  //   * UnauthorizedException
 18728  //   You are not authorized to perform this operation.
 18729  //
 18730  //   * ServiceUnavailableException
 18731  //   The service is temporarily unavailable.
 18732  //
 18733  //   * InternalFailureException
 18734  //   An unexpected error has occurred.
 18735  //
 18736  //   * ResourceNotFoundException
 18737  //   The specified resource does not exist.
 18738  //
 18739  func (c *IoT) ListThingPrincipals(input *ListThingPrincipalsInput) (*ListThingPrincipalsOutput, error) {
 18740  	req, out := c.ListThingPrincipalsRequest(input)
 18741  	return out, req.Send()
 18742  }
 18743  
 18744  // ListThingPrincipalsWithContext is the same as ListThingPrincipals with the addition of
 18745  // the ability to pass a context and additional request options.
 18746  //
 18747  // See ListThingPrincipals for details on how to use this API operation.
 18748  //
 18749  // The context must be non-nil and will be used for request cancellation. If
 18750  // the context is nil a panic will occur. In the future the SDK may create
 18751  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18752  // for more information on using Contexts.
 18753  func (c *IoT) ListThingPrincipalsWithContext(ctx aws.Context, input *ListThingPrincipalsInput, opts ...request.Option) (*ListThingPrincipalsOutput, error) {
 18754  	req, out := c.ListThingPrincipalsRequest(input)
 18755  	req.SetContext(ctx)
 18756  	req.ApplyOptions(opts...)
 18757  	return out, req.Send()
 18758  }
 18759  
 18760  // ListThingPrincipalsPages iterates over the pages of a ListThingPrincipals operation,
 18761  // calling the "fn" function with the response data for each page. To stop
 18762  // iterating, return false from the fn function.
 18763  //
 18764  // See ListThingPrincipals method for more information on how to use this operation.
 18765  //
 18766  // Note: This operation can generate multiple requests to a service.
 18767  //
 18768  //    // Example iterating over at most 3 pages of a ListThingPrincipals operation.
 18769  //    pageNum := 0
 18770  //    err := client.ListThingPrincipalsPages(params,
 18771  //        func(page *iot.ListThingPrincipalsOutput, lastPage bool) bool {
 18772  //            pageNum++
 18773  //            fmt.Println(page)
 18774  //            return pageNum <= 3
 18775  //        })
 18776  //
 18777  func (c *IoT) ListThingPrincipalsPages(input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool) error {
 18778  	return c.ListThingPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
 18779  }
 18780  
 18781  // ListThingPrincipalsPagesWithContext same as ListThingPrincipalsPages except
 18782  // it takes a Context and allows setting request options on the pages.
 18783  //
 18784  // The context must be non-nil and will be used for request cancellation. If
 18785  // the context is nil a panic will occur. In the future the SDK may create
 18786  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18787  // for more information on using Contexts.
 18788  func (c *IoT) ListThingPrincipalsPagesWithContext(ctx aws.Context, input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool, opts ...request.Option) error {
 18789  	p := request.Pagination{
 18790  		NewRequest: func() (*request.Request, error) {
 18791  			var inCpy *ListThingPrincipalsInput
 18792  			if input != nil {
 18793  				tmp := *input
 18794  				inCpy = &tmp
 18795  			}
 18796  			req, _ := c.ListThingPrincipalsRequest(inCpy)
 18797  			req.SetContext(ctx)
 18798  			req.ApplyOptions(opts...)
 18799  			return req, nil
 18800  		},
 18801  	}
 18802  
 18803  	for p.Next() {
 18804  		if !fn(p.Page().(*ListThingPrincipalsOutput), !p.HasNextPage()) {
 18805  			break
 18806  		}
 18807  	}
 18808  
 18809  	return p.Err()
 18810  }
 18811  
 18812  const opListThingRegistrationTaskReports = "ListThingRegistrationTaskReports"
 18813  
 18814  // ListThingRegistrationTaskReportsRequest generates a "aws/request.Request" representing the
 18815  // client's request for the ListThingRegistrationTaskReports operation. The "output" return
 18816  // value will be populated with the request's response once the request completes
 18817  // successfully.
 18818  //
 18819  // Use "Send" method on the returned Request to send the API call to the service.
 18820  // the "output" return value is not valid until after Send returns without error.
 18821  //
 18822  // See ListThingRegistrationTaskReports for more information on using the ListThingRegistrationTaskReports
 18823  // API call, and error handling.
 18824  //
 18825  // This method is useful when you want to inject custom logic or configuration
 18826  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 18827  //
 18828  //
 18829  //    // Example sending a request using the ListThingRegistrationTaskReportsRequest method.
 18830  //    req, resp := client.ListThingRegistrationTaskReportsRequest(params)
 18831  //
 18832  //    err := req.Send()
 18833  //    if err == nil { // resp is now filled
 18834  //        fmt.Println(resp)
 18835  //    }
 18836  func (c *IoT) ListThingRegistrationTaskReportsRequest(input *ListThingRegistrationTaskReportsInput) (req *request.Request, output *ListThingRegistrationTaskReportsOutput) {
 18837  	op := &request.Operation{
 18838  		Name:       opListThingRegistrationTaskReports,
 18839  		HTTPMethod: "GET",
 18840  		HTTPPath:   "/thing-registration-tasks/{taskId}/reports",
 18841  		Paginator: &request.Paginator{
 18842  			InputTokens:     []string{"nextToken"},
 18843  			OutputTokens:    []string{"nextToken"},
 18844  			LimitToken:      "maxResults",
 18845  			TruncationToken: "",
 18846  		},
 18847  	}
 18848  
 18849  	if input == nil {
 18850  		input = &ListThingRegistrationTaskReportsInput{}
 18851  	}
 18852  
 18853  	output = &ListThingRegistrationTaskReportsOutput{}
 18854  	req = c.newRequest(op, input, output)
 18855  	return
 18856  }
 18857  
 18858  // ListThingRegistrationTaskReports API operation for AWS IoT.
 18859  //
 18860  // Information about the thing registration tasks.
 18861  //
 18862  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 18863  // with awserr.Error's Code and Message methods to get detailed information about
 18864  // the error.
 18865  //
 18866  // See the AWS API reference guide for AWS IoT's
 18867  // API operation ListThingRegistrationTaskReports for usage and error information.
 18868  //
 18869  // Returned Error Types:
 18870  //   * InvalidRequestException
 18871  //   The request is not valid.
 18872  //
 18873  //   * ThrottlingException
 18874  //   The rate exceeds the limit.
 18875  //
 18876  //   * UnauthorizedException
 18877  //   You are not authorized to perform this operation.
 18878  //
 18879  //   * InternalFailureException
 18880  //   An unexpected error has occurred.
 18881  //
 18882  func (c *IoT) ListThingRegistrationTaskReports(input *ListThingRegistrationTaskReportsInput) (*ListThingRegistrationTaskReportsOutput, error) {
 18883  	req, out := c.ListThingRegistrationTaskReportsRequest(input)
 18884  	return out, req.Send()
 18885  }
 18886  
 18887  // ListThingRegistrationTaskReportsWithContext is the same as ListThingRegistrationTaskReports with the addition of
 18888  // the ability to pass a context and additional request options.
 18889  //
 18890  // See ListThingRegistrationTaskReports for details on how to use this API operation.
 18891  //
 18892  // The context must be non-nil and will be used for request cancellation. If
 18893  // the context is nil a panic will occur. In the future the SDK may create
 18894  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18895  // for more information on using Contexts.
 18896  func (c *IoT) ListThingRegistrationTaskReportsWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, opts ...request.Option) (*ListThingRegistrationTaskReportsOutput, error) {
 18897  	req, out := c.ListThingRegistrationTaskReportsRequest(input)
 18898  	req.SetContext(ctx)
 18899  	req.ApplyOptions(opts...)
 18900  	return out, req.Send()
 18901  }
 18902  
 18903  // ListThingRegistrationTaskReportsPages iterates over the pages of a ListThingRegistrationTaskReports operation,
 18904  // calling the "fn" function with the response data for each page. To stop
 18905  // iterating, return false from the fn function.
 18906  //
 18907  // See ListThingRegistrationTaskReports method for more information on how to use this operation.
 18908  //
 18909  // Note: This operation can generate multiple requests to a service.
 18910  //
 18911  //    // Example iterating over at most 3 pages of a ListThingRegistrationTaskReports operation.
 18912  //    pageNum := 0
 18913  //    err := client.ListThingRegistrationTaskReportsPages(params,
 18914  //        func(page *iot.ListThingRegistrationTaskReportsOutput, lastPage bool) bool {
 18915  //            pageNum++
 18916  //            fmt.Println(page)
 18917  //            return pageNum <= 3
 18918  //        })
 18919  //
 18920  func (c *IoT) ListThingRegistrationTaskReportsPages(input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool) error {
 18921  	return c.ListThingRegistrationTaskReportsPagesWithContext(aws.BackgroundContext(), input, fn)
 18922  }
 18923  
 18924  // ListThingRegistrationTaskReportsPagesWithContext same as ListThingRegistrationTaskReportsPages except
 18925  // it takes a Context and allows setting request options on the pages.
 18926  //
 18927  // The context must be non-nil and will be used for request cancellation. If
 18928  // the context is nil a panic will occur. In the future the SDK may create
 18929  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 18930  // for more information on using Contexts.
 18931  func (c *IoT) ListThingRegistrationTaskReportsPagesWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool, opts ...request.Option) error {
 18932  	p := request.Pagination{
 18933  		NewRequest: func() (*request.Request, error) {
 18934  			var inCpy *ListThingRegistrationTaskReportsInput
 18935  			if input != nil {
 18936  				tmp := *input
 18937  				inCpy = &tmp
 18938  			}
 18939  			req, _ := c.ListThingRegistrationTaskReportsRequest(inCpy)
 18940  			req.SetContext(ctx)
 18941  			req.ApplyOptions(opts...)
 18942  			return req, nil
 18943  		},
 18944  	}
 18945  
 18946  	for p.Next() {
 18947  		if !fn(p.Page().(*ListThingRegistrationTaskReportsOutput), !p.HasNextPage()) {
 18948  			break
 18949  		}
 18950  	}
 18951  
 18952  	return p.Err()
 18953  }
 18954  
 18955  const opListThingRegistrationTasks = "ListThingRegistrationTasks"
 18956  
 18957  // ListThingRegistrationTasksRequest generates a "aws/request.Request" representing the
 18958  // client's request for the ListThingRegistrationTasks operation. The "output" return
 18959  // value will be populated with the request's response once the request completes
 18960  // successfully.
 18961  //
 18962  // Use "Send" method on the returned Request to send the API call to the service.
 18963  // the "output" return value is not valid until after Send returns without error.
 18964  //
 18965  // See ListThingRegistrationTasks for more information on using the ListThingRegistrationTasks
 18966  // API call, and error handling.
 18967  //
 18968  // This method is useful when you want to inject custom logic or configuration
 18969  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 18970  //
 18971  //
 18972  //    // Example sending a request using the ListThingRegistrationTasksRequest method.
 18973  //    req, resp := client.ListThingRegistrationTasksRequest(params)
 18974  //
 18975  //    err := req.Send()
 18976  //    if err == nil { // resp is now filled
 18977  //        fmt.Println(resp)
 18978  //    }
 18979  func (c *IoT) ListThingRegistrationTasksRequest(input *ListThingRegistrationTasksInput) (req *request.Request, output *ListThingRegistrationTasksOutput) {
 18980  	op := &request.Operation{
 18981  		Name:       opListThingRegistrationTasks,
 18982  		HTTPMethod: "GET",
 18983  		HTTPPath:   "/thing-registration-tasks",
 18984  		Paginator: &request.Paginator{
 18985  			InputTokens:     []string{"nextToken"},
 18986  			OutputTokens:    []string{"nextToken"},
 18987  			LimitToken:      "maxResults",
 18988  			TruncationToken: "",
 18989  		},
 18990  	}
 18991  
 18992  	if input == nil {
 18993  		input = &ListThingRegistrationTasksInput{}
 18994  	}
 18995  
 18996  	output = &ListThingRegistrationTasksOutput{}
 18997  	req = c.newRequest(op, input, output)
 18998  	return
 18999  }
 19000  
 19001  // ListThingRegistrationTasks API operation for AWS IoT.
 19002  //
 19003  // List bulk thing provisioning tasks.
 19004  //
 19005  // Requires permission to access the ListThingRegistrationTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 19006  // action.
 19007  //
 19008  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 19009  // with awserr.Error's Code and Message methods to get detailed information about
 19010  // the error.
 19011  //
 19012  // See the AWS API reference guide for AWS IoT's
 19013  // API operation ListThingRegistrationTasks for usage and error information.
 19014  //
 19015  // Returned Error Types:
 19016  //   * InvalidRequestException
 19017  //   The request is not valid.
 19018  //
 19019  //   * ThrottlingException
 19020  //   The rate exceeds the limit.
 19021  //
 19022  //   * UnauthorizedException
 19023  //   You are not authorized to perform this operation.
 19024  //
 19025  //   * InternalFailureException
 19026  //   An unexpected error has occurred.
 19027  //
 19028  func (c *IoT) ListThingRegistrationTasks(input *ListThingRegistrationTasksInput) (*ListThingRegistrationTasksOutput, error) {
 19029  	req, out := c.ListThingRegistrationTasksRequest(input)
 19030  	return out, req.Send()
 19031  }
 19032  
 19033  // ListThingRegistrationTasksWithContext is the same as ListThingRegistrationTasks with the addition of
 19034  // the ability to pass a context and additional request options.
 19035  //
 19036  // See ListThingRegistrationTasks for details on how to use this API operation.
 19037  //
 19038  // The context must be non-nil and will be used for request cancellation. If
 19039  // the context is nil a panic will occur. In the future the SDK may create
 19040  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19041  // for more information on using Contexts.
 19042  func (c *IoT) ListThingRegistrationTasksWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, opts ...request.Option) (*ListThingRegistrationTasksOutput, error) {
 19043  	req, out := c.ListThingRegistrationTasksRequest(input)
 19044  	req.SetContext(ctx)
 19045  	req.ApplyOptions(opts...)
 19046  	return out, req.Send()
 19047  }
 19048  
 19049  // ListThingRegistrationTasksPages iterates over the pages of a ListThingRegistrationTasks operation,
 19050  // calling the "fn" function with the response data for each page. To stop
 19051  // iterating, return false from the fn function.
 19052  //
 19053  // See ListThingRegistrationTasks method for more information on how to use this operation.
 19054  //
 19055  // Note: This operation can generate multiple requests to a service.
 19056  //
 19057  //    // Example iterating over at most 3 pages of a ListThingRegistrationTasks operation.
 19058  //    pageNum := 0
 19059  //    err := client.ListThingRegistrationTasksPages(params,
 19060  //        func(page *iot.ListThingRegistrationTasksOutput, lastPage bool) bool {
 19061  //            pageNum++
 19062  //            fmt.Println(page)
 19063  //            return pageNum <= 3
 19064  //        })
 19065  //
 19066  func (c *IoT) ListThingRegistrationTasksPages(input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool) error {
 19067  	return c.ListThingRegistrationTasksPagesWithContext(aws.BackgroundContext(), input, fn)
 19068  }
 19069  
 19070  // ListThingRegistrationTasksPagesWithContext same as ListThingRegistrationTasksPages except
 19071  // it takes a Context and allows setting request options on the pages.
 19072  //
 19073  // The context must be non-nil and will be used for request cancellation. If
 19074  // the context is nil a panic will occur. In the future the SDK may create
 19075  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19076  // for more information on using Contexts.
 19077  func (c *IoT) ListThingRegistrationTasksPagesWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool, opts ...request.Option) error {
 19078  	p := request.Pagination{
 19079  		NewRequest: func() (*request.Request, error) {
 19080  			var inCpy *ListThingRegistrationTasksInput
 19081  			if input != nil {
 19082  				tmp := *input
 19083  				inCpy = &tmp
 19084  			}
 19085  			req, _ := c.ListThingRegistrationTasksRequest(inCpy)
 19086  			req.SetContext(ctx)
 19087  			req.ApplyOptions(opts...)
 19088  			return req, nil
 19089  		},
 19090  	}
 19091  
 19092  	for p.Next() {
 19093  		if !fn(p.Page().(*ListThingRegistrationTasksOutput), !p.HasNextPage()) {
 19094  			break
 19095  		}
 19096  	}
 19097  
 19098  	return p.Err()
 19099  }
 19100  
 19101  const opListThingTypes = "ListThingTypes"
 19102  
 19103  // ListThingTypesRequest generates a "aws/request.Request" representing the
 19104  // client's request for the ListThingTypes operation. The "output" return
 19105  // value will be populated with the request's response once the request completes
 19106  // successfully.
 19107  //
 19108  // Use "Send" method on the returned Request to send the API call to the service.
 19109  // the "output" return value is not valid until after Send returns without error.
 19110  //
 19111  // See ListThingTypes for more information on using the ListThingTypes
 19112  // API call, and error handling.
 19113  //
 19114  // This method is useful when you want to inject custom logic or configuration
 19115  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 19116  //
 19117  //
 19118  //    // Example sending a request using the ListThingTypesRequest method.
 19119  //    req, resp := client.ListThingTypesRequest(params)
 19120  //
 19121  //    err := req.Send()
 19122  //    if err == nil { // resp is now filled
 19123  //        fmt.Println(resp)
 19124  //    }
 19125  func (c *IoT) ListThingTypesRequest(input *ListThingTypesInput) (req *request.Request, output *ListThingTypesOutput) {
 19126  	op := &request.Operation{
 19127  		Name:       opListThingTypes,
 19128  		HTTPMethod: "GET",
 19129  		HTTPPath:   "/thing-types",
 19130  		Paginator: &request.Paginator{
 19131  			InputTokens:     []string{"nextToken"},
 19132  			OutputTokens:    []string{"nextToken"},
 19133  			LimitToken:      "maxResults",
 19134  			TruncationToken: "",
 19135  		},
 19136  	}
 19137  
 19138  	if input == nil {
 19139  		input = &ListThingTypesInput{}
 19140  	}
 19141  
 19142  	output = &ListThingTypesOutput{}
 19143  	req = c.newRequest(op, input, output)
 19144  	return
 19145  }
 19146  
 19147  // ListThingTypes API operation for AWS IoT.
 19148  //
 19149  // Lists the existing thing types.
 19150  //
 19151  // Requires permission to access the ListThingTypes (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 19152  // action.
 19153  //
 19154  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 19155  // with awserr.Error's Code and Message methods to get detailed information about
 19156  // the error.
 19157  //
 19158  // See the AWS API reference guide for AWS IoT's
 19159  // API operation ListThingTypes for usage and error information.
 19160  //
 19161  // Returned Error Types:
 19162  //   * InvalidRequestException
 19163  //   The request is not valid.
 19164  //
 19165  //   * ThrottlingException
 19166  //   The rate exceeds the limit.
 19167  //
 19168  //   * UnauthorizedException
 19169  //   You are not authorized to perform this operation.
 19170  //
 19171  //   * ServiceUnavailableException
 19172  //   The service is temporarily unavailable.
 19173  //
 19174  //   * InternalFailureException
 19175  //   An unexpected error has occurred.
 19176  //
 19177  func (c *IoT) ListThingTypes(input *ListThingTypesInput) (*ListThingTypesOutput, error) {
 19178  	req, out := c.ListThingTypesRequest(input)
 19179  	return out, req.Send()
 19180  }
 19181  
 19182  // ListThingTypesWithContext is the same as ListThingTypes with the addition of
 19183  // the ability to pass a context and additional request options.
 19184  //
 19185  // See ListThingTypes for details on how to use this API operation.
 19186  //
 19187  // The context must be non-nil and will be used for request cancellation. If
 19188  // the context is nil a panic will occur. In the future the SDK may create
 19189  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19190  // for more information on using Contexts.
 19191  func (c *IoT) ListThingTypesWithContext(ctx aws.Context, input *ListThingTypesInput, opts ...request.Option) (*ListThingTypesOutput, error) {
 19192  	req, out := c.ListThingTypesRequest(input)
 19193  	req.SetContext(ctx)
 19194  	req.ApplyOptions(opts...)
 19195  	return out, req.Send()
 19196  }
 19197  
 19198  // ListThingTypesPages iterates over the pages of a ListThingTypes operation,
 19199  // calling the "fn" function with the response data for each page. To stop
 19200  // iterating, return false from the fn function.
 19201  //
 19202  // See ListThingTypes method for more information on how to use this operation.
 19203  //
 19204  // Note: This operation can generate multiple requests to a service.
 19205  //
 19206  //    // Example iterating over at most 3 pages of a ListThingTypes operation.
 19207  //    pageNum := 0
 19208  //    err := client.ListThingTypesPages(params,
 19209  //        func(page *iot.ListThingTypesOutput, lastPage bool) bool {
 19210  //            pageNum++
 19211  //            fmt.Println(page)
 19212  //            return pageNum <= 3
 19213  //        })
 19214  //
 19215  func (c *IoT) ListThingTypesPages(input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool) error {
 19216  	return c.ListThingTypesPagesWithContext(aws.BackgroundContext(), input, fn)
 19217  }
 19218  
 19219  // ListThingTypesPagesWithContext same as ListThingTypesPages except
 19220  // it takes a Context and allows setting request options on the pages.
 19221  //
 19222  // The context must be non-nil and will be used for request cancellation. If
 19223  // the context is nil a panic will occur. In the future the SDK may create
 19224  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19225  // for more information on using Contexts.
 19226  func (c *IoT) ListThingTypesPagesWithContext(ctx aws.Context, input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool, opts ...request.Option) error {
 19227  	p := request.Pagination{
 19228  		NewRequest: func() (*request.Request, error) {
 19229  			var inCpy *ListThingTypesInput
 19230  			if input != nil {
 19231  				tmp := *input
 19232  				inCpy = &tmp
 19233  			}
 19234  			req, _ := c.ListThingTypesRequest(inCpy)
 19235  			req.SetContext(ctx)
 19236  			req.ApplyOptions(opts...)
 19237  			return req, nil
 19238  		},
 19239  	}
 19240  
 19241  	for p.Next() {
 19242  		if !fn(p.Page().(*ListThingTypesOutput), !p.HasNextPage()) {
 19243  			break
 19244  		}
 19245  	}
 19246  
 19247  	return p.Err()
 19248  }
 19249  
 19250  const opListThings = "ListThings"
 19251  
 19252  // ListThingsRequest generates a "aws/request.Request" representing the
 19253  // client's request for the ListThings operation. The "output" return
 19254  // value will be populated with the request's response once the request completes
 19255  // successfully.
 19256  //
 19257  // Use "Send" method on the returned Request to send the API call to the service.
 19258  // the "output" return value is not valid until after Send returns without error.
 19259  //
 19260  // See ListThings for more information on using the ListThings
 19261  // API call, and error handling.
 19262  //
 19263  // This method is useful when you want to inject custom logic or configuration
 19264  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 19265  //
 19266  //
 19267  //    // Example sending a request using the ListThingsRequest method.
 19268  //    req, resp := client.ListThingsRequest(params)
 19269  //
 19270  //    err := req.Send()
 19271  //    if err == nil { // resp is now filled
 19272  //        fmt.Println(resp)
 19273  //    }
 19274  func (c *IoT) ListThingsRequest(input *ListThingsInput) (req *request.Request, output *ListThingsOutput) {
 19275  	op := &request.Operation{
 19276  		Name:       opListThings,
 19277  		HTTPMethod: "GET",
 19278  		HTTPPath:   "/things",
 19279  		Paginator: &request.Paginator{
 19280  			InputTokens:     []string{"nextToken"},
 19281  			OutputTokens:    []string{"nextToken"},
 19282  			LimitToken:      "maxResults",
 19283  			TruncationToken: "",
 19284  		},
 19285  	}
 19286  
 19287  	if input == nil {
 19288  		input = &ListThingsInput{}
 19289  	}
 19290  
 19291  	output = &ListThingsOutput{}
 19292  	req = c.newRequest(op, input, output)
 19293  	return
 19294  }
 19295  
 19296  // ListThings API operation for AWS IoT.
 19297  //
 19298  // Lists your things. Use the attributeName and attributeValue parameters to
 19299  // filter your things. For example, calling ListThings with attributeName=Color
 19300  // and attributeValue=Red retrieves all things in the registry that contain
 19301  // an attribute Color with the value Red.
 19302  //
 19303  // Requires permission to access the ListThings (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 19304  // action.
 19305  //
 19306  // You will not be charged for calling this API if an Access denied error is
 19307  // returned. You will also not be charged if no attributes or pagination token
 19308  // was provided in request and no pagination token and no results were returned.
 19309  //
 19310  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 19311  // with awserr.Error's Code and Message methods to get detailed information about
 19312  // the error.
 19313  //
 19314  // See the AWS API reference guide for AWS IoT's
 19315  // API operation ListThings for usage and error information.
 19316  //
 19317  // Returned Error Types:
 19318  //   * InvalidRequestException
 19319  //   The request is not valid.
 19320  //
 19321  //   * ThrottlingException
 19322  //   The rate exceeds the limit.
 19323  //
 19324  //   * UnauthorizedException
 19325  //   You are not authorized to perform this operation.
 19326  //
 19327  //   * ServiceUnavailableException
 19328  //   The service is temporarily unavailable.
 19329  //
 19330  //   * InternalFailureException
 19331  //   An unexpected error has occurred.
 19332  //
 19333  func (c *IoT) ListThings(input *ListThingsInput) (*ListThingsOutput, error) {
 19334  	req, out := c.ListThingsRequest(input)
 19335  	return out, req.Send()
 19336  }
 19337  
 19338  // ListThingsWithContext is the same as ListThings with the addition of
 19339  // the ability to pass a context and additional request options.
 19340  //
 19341  // See ListThings for details on how to use this API operation.
 19342  //
 19343  // The context must be non-nil and will be used for request cancellation. If
 19344  // the context is nil a panic will occur. In the future the SDK may create
 19345  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19346  // for more information on using Contexts.
 19347  func (c *IoT) ListThingsWithContext(ctx aws.Context, input *ListThingsInput, opts ...request.Option) (*ListThingsOutput, error) {
 19348  	req, out := c.ListThingsRequest(input)
 19349  	req.SetContext(ctx)
 19350  	req.ApplyOptions(opts...)
 19351  	return out, req.Send()
 19352  }
 19353  
 19354  // ListThingsPages iterates over the pages of a ListThings operation,
 19355  // calling the "fn" function with the response data for each page. To stop
 19356  // iterating, return false from the fn function.
 19357  //
 19358  // See ListThings method for more information on how to use this operation.
 19359  //
 19360  // Note: This operation can generate multiple requests to a service.
 19361  //
 19362  //    // Example iterating over at most 3 pages of a ListThings operation.
 19363  //    pageNum := 0
 19364  //    err := client.ListThingsPages(params,
 19365  //        func(page *iot.ListThingsOutput, lastPage bool) bool {
 19366  //            pageNum++
 19367  //            fmt.Println(page)
 19368  //            return pageNum <= 3
 19369  //        })
 19370  //
 19371  func (c *IoT) ListThingsPages(input *ListThingsInput, fn func(*ListThingsOutput, bool) bool) error {
 19372  	return c.ListThingsPagesWithContext(aws.BackgroundContext(), input, fn)
 19373  }
 19374  
 19375  // ListThingsPagesWithContext same as ListThingsPages except
 19376  // it takes a Context and allows setting request options on the pages.
 19377  //
 19378  // The context must be non-nil and will be used for request cancellation. If
 19379  // the context is nil a panic will occur. In the future the SDK may create
 19380  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19381  // for more information on using Contexts.
 19382  func (c *IoT) ListThingsPagesWithContext(ctx aws.Context, input *ListThingsInput, fn func(*ListThingsOutput, bool) bool, opts ...request.Option) error {
 19383  	p := request.Pagination{
 19384  		NewRequest: func() (*request.Request, error) {
 19385  			var inCpy *ListThingsInput
 19386  			if input != nil {
 19387  				tmp := *input
 19388  				inCpy = &tmp
 19389  			}
 19390  			req, _ := c.ListThingsRequest(inCpy)
 19391  			req.SetContext(ctx)
 19392  			req.ApplyOptions(opts...)
 19393  			return req, nil
 19394  		},
 19395  	}
 19396  
 19397  	for p.Next() {
 19398  		if !fn(p.Page().(*ListThingsOutput), !p.HasNextPage()) {
 19399  			break
 19400  		}
 19401  	}
 19402  
 19403  	return p.Err()
 19404  }
 19405  
 19406  const opListThingsInBillingGroup = "ListThingsInBillingGroup"
 19407  
 19408  // ListThingsInBillingGroupRequest generates a "aws/request.Request" representing the
 19409  // client's request for the ListThingsInBillingGroup operation. The "output" return
 19410  // value will be populated with the request's response once the request completes
 19411  // successfully.
 19412  //
 19413  // Use "Send" method on the returned Request to send the API call to the service.
 19414  // the "output" return value is not valid until after Send returns without error.
 19415  //
 19416  // See ListThingsInBillingGroup for more information on using the ListThingsInBillingGroup
 19417  // API call, and error handling.
 19418  //
 19419  // This method is useful when you want to inject custom logic or configuration
 19420  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 19421  //
 19422  //
 19423  //    // Example sending a request using the ListThingsInBillingGroupRequest method.
 19424  //    req, resp := client.ListThingsInBillingGroupRequest(params)
 19425  //
 19426  //    err := req.Send()
 19427  //    if err == nil { // resp is now filled
 19428  //        fmt.Println(resp)
 19429  //    }
 19430  func (c *IoT) ListThingsInBillingGroupRequest(input *ListThingsInBillingGroupInput) (req *request.Request, output *ListThingsInBillingGroupOutput) {
 19431  	op := &request.Operation{
 19432  		Name:       opListThingsInBillingGroup,
 19433  		HTTPMethod: "GET",
 19434  		HTTPPath:   "/billing-groups/{billingGroupName}/things",
 19435  		Paginator: &request.Paginator{
 19436  			InputTokens:     []string{"nextToken"},
 19437  			OutputTokens:    []string{"nextToken"},
 19438  			LimitToken:      "maxResults",
 19439  			TruncationToken: "",
 19440  		},
 19441  	}
 19442  
 19443  	if input == nil {
 19444  		input = &ListThingsInBillingGroupInput{}
 19445  	}
 19446  
 19447  	output = &ListThingsInBillingGroupOutput{}
 19448  	req = c.newRequest(op, input, output)
 19449  	return
 19450  }
 19451  
 19452  // ListThingsInBillingGroup API operation for AWS IoT.
 19453  //
 19454  // Lists the things you have added to the given billing group.
 19455  //
 19456  // Requires permission to access the ListThingsInBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 19457  // action.
 19458  //
 19459  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 19460  // with awserr.Error's Code and Message methods to get detailed information about
 19461  // the error.
 19462  //
 19463  // See the AWS API reference guide for AWS IoT's
 19464  // API operation ListThingsInBillingGroup for usage and error information.
 19465  //
 19466  // Returned Error Types:
 19467  //   * InvalidRequestException
 19468  //   The request is not valid.
 19469  //
 19470  //   * InternalFailureException
 19471  //   An unexpected error has occurred.
 19472  //
 19473  //   * ResourceNotFoundException
 19474  //   The specified resource does not exist.
 19475  //
 19476  //   * ThrottlingException
 19477  //   The rate exceeds the limit.
 19478  //
 19479  func (c *IoT) ListThingsInBillingGroup(input *ListThingsInBillingGroupInput) (*ListThingsInBillingGroupOutput, error) {
 19480  	req, out := c.ListThingsInBillingGroupRequest(input)
 19481  	return out, req.Send()
 19482  }
 19483  
 19484  // ListThingsInBillingGroupWithContext is the same as ListThingsInBillingGroup with the addition of
 19485  // the ability to pass a context and additional request options.
 19486  //
 19487  // See ListThingsInBillingGroup for details on how to use this API operation.
 19488  //
 19489  // The context must be non-nil and will be used for request cancellation. If
 19490  // the context is nil a panic will occur. In the future the SDK may create
 19491  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19492  // for more information on using Contexts.
 19493  func (c *IoT) ListThingsInBillingGroupWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, opts ...request.Option) (*ListThingsInBillingGroupOutput, error) {
 19494  	req, out := c.ListThingsInBillingGroupRequest(input)
 19495  	req.SetContext(ctx)
 19496  	req.ApplyOptions(opts...)
 19497  	return out, req.Send()
 19498  }
 19499  
 19500  // ListThingsInBillingGroupPages iterates over the pages of a ListThingsInBillingGroup operation,
 19501  // calling the "fn" function with the response data for each page. To stop
 19502  // iterating, return false from the fn function.
 19503  //
 19504  // See ListThingsInBillingGroup method for more information on how to use this operation.
 19505  //
 19506  // Note: This operation can generate multiple requests to a service.
 19507  //
 19508  //    // Example iterating over at most 3 pages of a ListThingsInBillingGroup operation.
 19509  //    pageNum := 0
 19510  //    err := client.ListThingsInBillingGroupPages(params,
 19511  //        func(page *iot.ListThingsInBillingGroupOutput, lastPage bool) bool {
 19512  //            pageNum++
 19513  //            fmt.Println(page)
 19514  //            return pageNum <= 3
 19515  //        })
 19516  //
 19517  func (c *IoT) ListThingsInBillingGroupPages(input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool) error {
 19518  	return c.ListThingsInBillingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
 19519  }
 19520  
 19521  // ListThingsInBillingGroupPagesWithContext same as ListThingsInBillingGroupPages except
 19522  // it takes a Context and allows setting request options on the pages.
 19523  //
 19524  // The context must be non-nil and will be used for request cancellation. If
 19525  // the context is nil a panic will occur. In the future the SDK may create
 19526  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19527  // for more information on using Contexts.
 19528  func (c *IoT) ListThingsInBillingGroupPagesWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool, opts ...request.Option) error {
 19529  	p := request.Pagination{
 19530  		NewRequest: func() (*request.Request, error) {
 19531  			var inCpy *ListThingsInBillingGroupInput
 19532  			if input != nil {
 19533  				tmp := *input
 19534  				inCpy = &tmp
 19535  			}
 19536  			req, _ := c.ListThingsInBillingGroupRequest(inCpy)
 19537  			req.SetContext(ctx)
 19538  			req.ApplyOptions(opts...)
 19539  			return req, nil
 19540  		},
 19541  	}
 19542  
 19543  	for p.Next() {
 19544  		if !fn(p.Page().(*ListThingsInBillingGroupOutput), !p.HasNextPage()) {
 19545  			break
 19546  		}
 19547  	}
 19548  
 19549  	return p.Err()
 19550  }
 19551  
 19552  const opListThingsInThingGroup = "ListThingsInThingGroup"
 19553  
 19554  // ListThingsInThingGroupRequest generates a "aws/request.Request" representing the
 19555  // client's request for the ListThingsInThingGroup operation. The "output" return
 19556  // value will be populated with the request's response once the request completes
 19557  // successfully.
 19558  //
 19559  // Use "Send" method on the returned Request to send the API call to the service.
 19560  // the "output" return value is not valid until after Send returns without error.
 19561  //
 19562  // See ListThingsInThingGroup for more information on using the ListThingsInThingGroup
 19563  // API call, and error handling.
 19564  //
 19565  // This method is useful when you want to inject custom logic or configuration
 19566  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 19567  //
 19568  //
 19569  //    // Example sending a request using the ListThingsInThingGroupRequest method.
 19570  //    req, resp := client.ListThingsInThingGroupRequest(params)
 19571  //
 19572  //    err := req.Send()
 19573  //    if err == nil { // resp is now filled
 19574  //        fmt.Println(resp)
 19575  //    }
 19576  func (c *IoT) ListThingsInThingGroupRequest(input *ListThingsInThingGroupInput) (req *request.Request, output *ListThingsInThingGroupOutput) {
 19577  	op := &request.Operation{
 19578  		Name:       opListThingsInThingGroup,
 19579  		HTTPMethod: "GET",
 19580  		HTTPPath:   "/thing-groups/{thingGroupName}/things",
 19581  		Paginator: &request.Paginator{
 19582  			InputTokens:     []string{"nextToken"},
 19583  			OutputTokens:    []string{"nextToken"},
 19584  			LimitToken:      "maxResults",
 19585  			TruncationToken: "",
 19586  		},
 19587  	}
 19588  
 19589  	if input == nil {
 19590  		input = &ListThingsInThingGroupInput{}
 19591  	}
 19592  
 19593  	output = &ListThingsInThingGroupOutput{}
 19594  	req = c.newRequest(op, input, output)
 19595  	return
 19596  }
 19597  
 19598  // ListThingsInThingGroup API operation for AWS IoT.
 19599  //
 19600  // Lists the things in the specified group.
 19601  //
 19602  // Requires permission to access the ListThingsInThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 19603  // action.
 19604  //
 19605  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 19606  // with awserr.Error's Code and Message methods to get detailed information about
 19607  // the error.
 19608  //
 19609  // See the AWS API reference guide for AWS IoT's
 19610  // API operation ListThingsInThingGroup for usage and error information.
 19611  //
 19612  // Returned Error Types:
 19613  //   * InvalidRequestException
 19614  //   The request is not valid.
 19615  //
 19616  //   * InternalFailureException
 19617  //   An unexpected error has occurred.
 19618  //
 19619  //   * ResourceNotFoundException
 19620  //   The specified resource does not exist.
 19621  //
 19622  //   * ThrottlingException
 19623  //   The rate exceeds the limit.
 19624  //
 19625  func (c *IoT) ListThingsInThingGroup(input *ListThingsInThingGroupInput) (*ListThingsInThingGroupOutput, error) {
 19626  	req, out := c.ListThingsInThingGroupRequest(input)
 19627  	return out, req.Send()
 19628  }
 19629  
 19630  // ListThingsInThingGroupWithContext is the same as ListThingsInThingGroup with the addition of
 19631  // the ability to pass a context and additional request options.
 19632  //
 19633  // See ListThingsInThingGroup for details on how to use this API operation.
 19634  //
 19635  // The context must be non-nil and will be used for request cancellation. If
 19636  // the context is nil a panic will occur. In the future the SDK may create
 19637  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19638  // for more information on using Contexts.
 19639  func (c *IoT) ListThingsInThingGroupWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, opts ...request.Option) (*ListThingsInThingGroupOutput, error) {
 19640  	req, out := c.ListThingsInThingGroupRequest(input)
 19641  	req.SetContext(ctx)
 19642  	req.ApplyOptions(opts...)
 19643  	return out, req.Send()
 19644  }
 19645  
 19646  // ListThingsInThingGroupPages iterates over the pages of a ListThingsInThingGroup operation,
 19647  // calling the "fn" function with the response data for each page. To stop
 19648  // iterating, return false from the fn function.
 19649  //
 19650  // See ListThingsInThingGroup method for more information on how to use this operation.
 19651  //
 19652  // Note: This operation can generate multiple requests to a service.
 19653  //
 19654  //    // Example iterating over at most 3 pages of a ListThingsInThingGroup operation.
 19655  //    pageNum := 0
 19656  //    err := client.ListThingsInThingGroupPages(params,
 19657  //        func(page *iot.ListThingsInThingGroupOutput, lastPage bool) bool {
 19658  //            pageNum++
 19659  //            fmt.Println(page)
 19660  //            return pageNum <= 3
 19661  //        })
 19662  //
 19663  func (c *IoT) ListThingsInThingGroupPages(input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool) error {
 19664  	return c.ListThingsInThingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
 19665  }
 19666  
 19667  // ListThingsInThingGroupPagesWithContext same as ListThingsInThingGroupPages except
 19668  // it takes a Context and allows setting request options on the pages.
 19669  //
 19670  // The context must be non-nil and will be used for request cancellation. If
 19671  // the context is nil a panic will occur. In the future the SDK may create
 19672  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19673  // for more information on using Contexts.
 19674  func (c *IoT) ListThingsInThingGroupPagesWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool, opts ...request.Option) error {
 19675  	p := request.Pagination{
 19676  		NewRequest: func() (*request.Request, error) {
 19677  			var inCpy *ListThingsInThingGroupInput
 19678  			if input != nil {
 19679  				tmp := *input
 19680  				inCpy = &tmp
 19681  			}
 19682  			req, _ := c.ListThingsInThingGroupRequest(inCpy)
 19683  			req.SetContext(ctx)
 19684  			req.ApplyOptions(opts...)
 19685  			return req, nil
 19686  		},
 19687  	}
 19688  
 19689  	for p.Next() {
 19690  		if !fn(p.Page().(*ListThingsInThingGroupOutput), !p.HasNextPage()) {
 19691  			break
 19692  		}
 19693  	}
 19694  
 19695  	return p.Err()
 19696  }
 19697  
 19698  const opListTopicRuleDestinations = "ListTopicRuleDestinations"
 19699  
 19700  // ListTopicRuleDestinationsRequest generates a "aws/request.Request" representing the
 19701  // client's request for the ListTopicRuleDestinations operation. The "output" return
 19702  // value will be populated with the request's response once the request completes
 19703  // successfully.
 19704  //
 19705  // Use "Send" method on the returned Request to send the API call to the service.
 19706  // the "output" return value is not valid until after Send returns without error.
 19707  //
 19708  // See ListTopicRuleDestinations for more information on using the ListTopicRuleDestinations
 19709  // API call, and error handling.
 19710  //
 19711  // This method is useful when you want to inject custom logic or configuration
 19712  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 19713  //
 19714  //
 19715  //    // Example sending a request using the ListTopicRuleDestinationsRequest method.
 19716  //    req, resp := client.ListTopicRuleDestinationsRequest(params)
 19717  //
 19718  //    err := req.Send()
 19719  //    if err == nil { // resp is now filled
 19720  //        fmt.Println(resp)
 19721  //    }
 19722  func (c *IoT) ListTopicRuleDestinationsRequest(input *ListTopicRuleDestinationsInput) (req *request.Request, output *ListTopicRuleDestinationsOutput) {
 19723  	op := &request.Operation{
 19724  		Name:       opListTopicRuleDestinations,
 19725  		HTTPMethod: "GET",
 19726  		HTTPPath:   "/destinations",
 19727  		Paginator: &request.Paginator{
 19728  			InputTokens:     []string{"nextToken"},
 19729  			OutputTokens:    []string{"nextToken"},
 19730  			LimitToken:      "maxResults",
 19731  			TruncationToken: "",
 19732  		},
 19733  	}
 19734  
 19735  	if input == nil {
 19736  		input = &ListTopicRuleDestinationsInput{}
 19737  	}
 19738  
 19739  	output = &ListTopicRuleDestinationsOutput{}
 19740  	req = c.newRequest(op, input, output)
 19741  	return
 19742  }
 19743  
 19744  // ListTopicRuleDestinations API operation for AWS IoT.
 19745  //
 19746  // Lists all the topic rule destinations in your Amazon Web Services account.
 19747  //
 19748  // Requires permission to access the ListTopicRuleDestinations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 19749  // action.
 19750  //
 19751  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 19752  // with awserr.Error's Code and Message methods to get detailed information about
 19753  // the error.
 19754  //
 19755  // See the AWS API reference guide for AWS IoT's
 19756  // API operation ListTopicRuleDestinations for usage and error information.
 19757  //
 19758  // Returned Error Types:
 19759  //   * InternalException
 19760  //   An unexpected error has occurred.
 19761  //
 19762  //   * InvalidRequestException
 19763  //   The request is not valid.
 19764  //
 19765  //   * ServiceUnavailableException
 19766  //   The service is temporarily unavailable.
 19767  //
 19768  //   * UnauthorizedException
 19769  //   You are not authorized to perform this operation.
 19770  //
 19771  func (c *IoT) ListTopicRuleDestinations(input *ListTopicRuleDestinationsInput) (*ListTopicRuleDestinationsOutput, error) {
 19772  	req, out := c.ListTopicRuleDestinationsRequest(input)
 19773  	return out, req.Send()
 19774  }
 19775  
 19776  // ListTopicRuleDestinationsWithContext is the same as ListTopicRuleDestinations with the addition of
 19777  // the ability to pass a context and additional request options.
 19778  //
 19779  // See ListTopicRuleDestinations for details on how to use this API operation.
 19780  //
 19781  // The context must be non-nil and will be used for request cancellation. If
 19782  // the context is nil a panic will occur. In the future the SDK may create
 19783  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19784  // for more information on using Contexts.
 19785  func (c *IoT) ListTopicRuleDestinationsWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, opts ...request.Option) (*ListTopicRuleDestinationsOutput, error) {
 19786  	req, out := c.ListTopicRuleDestinationsRequest(input)
 19787  	req.SetContext(ctx)
 19788  	req.ApplyOptions(opts...)
 19789  	return out, req.Send()
 19790  }
 19791  
 19792  // ListTopicRuleDestinationsPages iterates over the pages of a ListTopicRuleDestinations operation,
 19793  // calling the "fn" function with the response data for each page. To stop
 19794  // iterating, return false from the fn function.
 19795  //
 19796  // See ListTopicRuleDestinations method for more information on how to use this operation.
 19797  //
 19798  // Note: This operation can generate multiple requests to a service.
 19799  //
 19800  //    // Example iterating over at most 3 pages of a ListTopicRuleDestinations operation.
 19801  //    pageNum := 0
 19802  //    err := client.ListTopicRuleDestinationsPages(params,
 19803  //        func(page *iot.ListTopicRuleDestinationsOutput, lastPage bool) bool {
 19804  //            pageNum++
 19805  //            fmt.Println(page)
 19806  //            return pageNum <= 3
 19807  //        })
 19808  //
 19809  func (c *IoT) ListTopicRuleDestinationsPages(input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool) error {
 19810  	return c.ListTopicRuleDestinationsPagesWithContext(aws.BackgroundContext(), input, fn)
 19811  }
 19812  
 19813  // ListTopicRuleDestinationsPagesWithContext same as ListTopicRuleDestinationsPages except
 19814  // it takes a Context and allows setting request options on the pages.
 19815  //
 19816  // The context must be non-nil and will be used for request cancellation. If
 19817  // the context is nil a panic will occur. In the future the SDK may create
 19818  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19819  // for more information on using Contexts.
 19820  func (c *IoT) ListTopicRuleDestinationsPagesWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool, opts ...request.Option) error {
 19821  	p := request.Pagination{
 19822  		NewRequest: func() (*request.Request, error) {
 19823  			var inCpy *ListTopicRuleDestinationsInput
 19824  			if input != nil {
 19825  				tmp := *input
 19826  				inCpy = &tmp
 19827  			}
 19828  			req, _ := c.ListTopicRuleDestinationsRequest(inCpy)
 19829  			req.SetContext(ctx)
 19830  			req.ApplyOptions(opts...)
 19831  			return req, nil
 19832  		},
 19833  	}
 19834  
 19835  	for p.Next() {
 19836  		if !fn(p.Page().(*ListTopicRuleDestinationsOutput), !p.HasNextPage()) {
 19837  			break
 19838  		}
 19839  	}
 19840  
 19841  	return p.Err()
 19842  }
 19843  
 19844  const opListTopicRules = "ListTopicRules"
 19845  
 19846  // ListTopicRulesRequest generates a "aws/request.Request" representing the
 19847  // client's request for the ListTopicRules operation. The "output" return
 19848  // value will be populated with the request's response once the request completes
 19849  // successfully.
 19850  //
 19851  // Use "Send" method on the returned Request to send the API call to the service.
 19852  // the "output" return value is not valid until after Send returns without error.
 19853  //
 19854  // See ListTopicRules for more information on using the ListTopicRules
 19855  // API call, and error handling.
 19856  //
 19857  // This method is useful when you want to inject custom logic or configuration
 19858  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 19859  //
 19860  //
 19861  //    // Example sending a request using the ListTopicRulesRequest method.
 19862  //    req, resp := client.ListTopicRulesRequest(params)
 19863  //
 19864  //    err := req.Send()
 19865  //    if err == nil { // resp is now filled
 19866  //        fmt.Println(resp)
 19867  //    }
 19868  func (c *IoT) ListTopicRulesRequest(input *ListTopicRulesInput) (req *request.Request, output *ListTopicRulesOutput) {
 19869  	op := &request.Operation{
 19870  		Name:       opListTopicRules,
 19871  		HTTPMethod: "GET",
 19872  		HTTPPath:   "/rules",
 19873  		Paginator: &request.Paginator{
 19874  			InputTokens:     []string{"nextToken"},
 19875  			OutputTokens:    []string{"nextToken"},
 19876  			LimitToken:      "maxResults",
 19877  			TruncationToken: "",
 19878  		},
 19879  	}
 19880  
 19881  	if input == nil {
 19882  		input = &ListTopicRulesInput{}
 19883  	}
 19884  
 19885  	output = &ListTopicRulesOutput{}
 19886  	req = c.newRequest(op, input, output)
 19887  	return
 19888  }
 19889  
 19890  // ListTopicRules API operation for AWS IoT.
 19891  //
 19892  // Lists the rules for the specific topic.
 19893  //
 19894  // Requires permission to access the ListTopicRules (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 19895  // action.
 19896  //
 19897  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 19898  // with awserr.Error's Code and Message methods to get detailed information about
 19899  // the error.
 19900  //
 19901  // See the AWS API reference guide for AWS IoT's
 19902  // API operation ListTopicRules for usage and error information.
 19903  //
 19904  // Returned Error Types:
 19905  //   * InternalException
 19906  //   An unexpected error has occurred.
 19907  //
 19908  //   * InvalidRequestException
 19909  //   The request is not valid.
 19910  //
 19911  //   * ServiceUnavailableException
 19912  //   The service is temporarily unavailable.
 19913  //
 19914  func (c *IoT) ListTopicRules(input *ListTopicRulesInput) (*ListTopicRulesOutput, error) {
 19915  	req, out := c.ListTopicRulesRequest(input)
 19916  	return out, req.Send()
 19917  }
 19918  
 19919  // ListTopicRulesWithContext is the same as ListTopicRules with the addition of
 19920  // the ability to pass a context and additional request options.
 19921  //
 19922  // See ListTopicRules for details on how to use this API operation.
 19923  //
 19924  // The context must be non-nil and will be used for request cancellation. If
 19925  // the context is nil a panic will occur. In the future the SDK may create
 19926  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19927  // for more information on using Contexts.
 19928  func (c *IoT) ListTopicRulesWithContext(ctx aws.Context, input *ListTopicRulesInput, opts ...request.Option) (*ListTopicRulesOutput, error) {
 19929  	req, out := c.ListTopicRulesRequest(input)
 19930  	req.SetContext(ctx)
 19931  	req.ApplyOptions(opts...)
 19932  	return out, req.Send()
 19933  }
 19934  
 19935  // ListTopicRulesPages iterates over the pages of a ListTopicRules operation,
 19936  // calling the "fn" function with the response data for each page. To stop
 19937  // iterating, return false from the fn function.
 19938  //
 19939  // See ListTopicRules method for more information on how to use this operation.
 19940  //
 19941  // Note: This operation can generate multiple requests to a service.
 19942  //
 19943  //    // Example iterating over at most 3 pages of a ListTopicRules operation.
 19944  //    pageNum := 0
 19945  //    err := client.ListTopicRulesPages(params,
 19946  //        func(page *iot.ListTopicRulesOutput, lastPage bool) bool {
 19947  //            pageNum++
 19948  //            fmt.Println(page)
 19949  //            return pageNum <= 3
 19950  //        })
 19951  //
 19952  func (c *IoT) ListTopicRulesPages(input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool) error {
 19953  	return c.ListTopicRulesPagesWithContext(aws.BackgroundContext(), input, fn)
 19954  }
 19955  
 19956  // ListTopicRulesPagesWithContext same as ListTopicRulesPages except
 19957  // it takes a Context and allows setting request options on the pages.
 19958  //
 19959  // The context must be non-nil and will be used for request cancellation. If
 19960  // the context is nil a panic will occur. In the future the SDK may create
 19961  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 19962  // for more information on using Contexts.
 19963  func (c *IoT) ListTopicRulesPagesWithContext(ctx aws.Context, input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool, opts ...request.Option) error {
 19964  	p := request.Pagination{
 19965  		NewRequest: func() (*request.Request, error) {
 19966  			var inCpy *ListTopicRulesInput
 19967  			if input != nil {
 19968  				tmp := *input
 19969  				inCpy = &tmp
 19970  			}
 19971  			req, _ := c.ListTopicRulesRequest(inCpy)
 19972  			req.SetContext(ctx)
 19973  			req.ApplyOptions(opts...)
 19974  			return req, nil
 19975  		},
 19976  	}
 19977  
 19978  	for p.Next() {
 19979  		if !fn(p.Page().(*ListTopicRulesOutput), !p.HasNextPage()) {
 19980  			break
 19981  		}
 19982  	}
 19983  
 19984  	return p.Err()
 19985  }
 19986  
 19987  const opListV2LoggingLevels = "ListV2LoggingLevels"
 19988  
 19989  // ListV2LoggingLevelsRequest generates a "aws/request.Request" representing the
 19990  // client's request for the ListV2LoggingLevels operation. The "output" return
 19991  // value will be populated with the request's response once the request completes
 19992  // successfully.
 19993  //
 19994  // Use "Send" method on the returned Request to send the API call to the service.
 19995  // the "output" return value is not valid until after Send returns without error.
 19996  //
 19997  // See ListV2LoggingLevels for more information on using the ListV2LoggingLevels
 19998  // API call, and error handling.
 19999  //
 20000  // This method is useful when you want to inject custom logic or configuration
 20001  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20002  //
 20003  //
 20004  //    // Example sending a request using the ListV2LoggingLevelsRequest method.
 20005  //    req, resp := client.ListV2LoggingLevelsRequest(params)
 20006  //
 20007  //    err := req.Send()
 20008  //    if err == nil { // resp is now filled
 20009  //        fmt.Println(resp)
 20010  //    }
 20011  func (c *IoT) ListV2LoggingLevelsRequest(input *ListV2LoggingLevelsInput) (req *request.Request, output *ListV2LoggingLevelsOutput) {
 20012  	op := &request.Operation{
 20013  		Name:       opListV2LoggingLevels,
 20014  		HTTPMethod: "GET",
 20015  		HTTPPath:   "/v2LoggingLevel",
 20016  		Paginator: &request.Paginator{
 20017  			InputTokens:     []string{"nextToken"},
 20018  			OutputTokens:    []string{"nextToken"},
 20019  			LimitToken:      "maxResults",
 20020  			TruncationToken: "",
 20021  		},
 20022  	}
 20023  
 20024  	if input == nil {
 20025  		input = &ListV2LoggingLevelsInput{}
 20026  	}
 20027  
 20028  	output = &ListV2LoggingLevelsOutput{}
 20029  	req = c.newRequest(op, input, output)
 20030  	return
 20031  }
 20032  
 20033  // ListV2LoggingLevels API operation for AWS IoT.
 20034  //
 20035  // Lists logging levels.
 20036  //
 20037  // Requires permission to access the ListV2LoggingLevels (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 20038  // action.
 20039  //
 20040  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20041  // with awserr.Error's Code and Message methods to get detailed information about
 20042  // the error.
 20043  //
 20044  // See the AWS API reference guide for AWS IoT's
 20045  // API operation ListV2LoggingLevels for usage and error information.
 20046  //
 20047  // Returned Error Types:
 20048  //   * InternalException
 20049  //   An unexpected error has occurred.
 20050  //
 20051  //   * NotConfiguredException
 20052  //   The resource is not configured.
 20053  //
 20054  //   * InvalidRequestException
 20055  //   The request is not valid.
 20056  //
 20057  //   * ServiceUnavailableException
 20058  //   The service is temporarily unavailable.
 20059  //
 20060  func (c *IoT) ListV2LoggingLevels(input *ListV2LoggingLevelsInput) (*ListV2LoggingLevelsOutput, error) {
 20061  	req, out := c.ListV2LoggingLevelsRequest(input)
 20062  	return out, req.Send()
 20063  }
 20064  
 20065  // ListV2LoggingLevelsWithContext is the same as ListV2LoggingLevels with the addition of
 20066  // the ability to pass a context and additional request options.
 20067  //
 20068  // See ListV2LoggingLevels for details on how to use this API operation.
 20069  //
 20070  // The context must be non-nil and will be used for request cancellation. If
 20071  // the context is nil a panic will occur. In the future the SDK may create
 20072  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20073  // for more information on using Contexts.
 20074  func (c *IoT) ListV2LoggingLevelsWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, opts ...request.Option) (*ListV2LoggingLevelsOutput, error) {
 20075  	req, out := c.ListV2LoggingLevelsRequest(input)
 20076  	req.SetContext(ctx)
 20077  	req.ApplyOptions(opts...)
 20078  	return out, req.Send()
 20079  }
 20080  
 20081  // ListV2LoggingLevelsPages iterates over the pages of a ListV2LoggingLevels operation,
 20082  // calling the "fn" function with the response data for each page. To stop
 20083  // iterating, return false from the fn function.
 20084  //
 20085  // See ListV2LoggingLevels method for more information on how to use this operation.
 20086  //
 20087  // Note: This operation can generate multiple requests to a service.
 20088  //
 20089  //    // Example iterating over at most 3 pages of a ListV2LoggingLevels operation.
 20090  //    pageNum := 0
 20091  //    err := client.ListV2LoggingLevelsPages(params,
 20092  //        func(page *iot.ListV2LoggingLevelsOutput, lastPage bool) bool {
 20093  //            pageNum++
 20094  //            fmt.Println(page)
 20095  //            return pageNum <= 3
 20096  //        })
 20097  //
 20098  func (c *IoT) ListV2LoggingLevelsPages(input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool) error {
 20099  	return c.ListV2LoggingLevelsPagesWithContext(aws.BackgroundContext(), input, fn)
 20100  }
 20101  
 20102  // ListV2LoggingLevelsPagesWithContext same as ListV2LoggingLevelsPages except
 20103  // it takes a Context and allows setting request options on the pages.
 20104  //
 20105  // The context must be non-nil and will be used for request cancellation. If
 20106  // the context is nil a panic will occur. In the future the SDK may create
 20107  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20108  // for more information on using Contexts.
 20109  func (c *IoT) ListV2LoggingLevelsPagesWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool, opts ...request.Option) error {
 20110  	p := request.Pagination{
 20111  		NewRequest: func() (*request.Request, error) {
 20112  			var inCpy *ListV2LoggingLevelsInput
 20113  			if input != nil {
 20114  				tmp := *input
 20115  				inCpy = &tmp
 20116  			}
 20117  			req, _ := c.ListV2LoggingLevelsRequest(inCpy)
 20118  			req.SetContext(ctx)
 20119  			req.ApplyOptions(opts...)
 20120  			return req, nil
 20121  		},
 20122  	}
 20123  
 20124  	for p.Next() {
 20125  		if !fn(p.Page().(*ListV2LoggingLevelsOutput), !p.HasNextPage()) {
 20126  			break
 20127  		}
 20128  	}
 20129  
 20130  	return p.Err()
 20131  }
 20132  
 20133  const opListViolationEvents = "ListViolationEvents"
 20134  
 20135  // ListViolationEventsRequest generates a "aws/request.Request" representing the
 20136  // client's request for the ListViolationEvents operation. The "output" return
 20137  // value will be populated with the request's response once the request completes
 20138  // successfully.
 20139  //
 20140  // Use "Send" method on the returned Request to send the API call to the service.
 20141  // the "output" return value is not valid until after Send returns without error.
 20142  //
 20143  // See ListViolationEvents for more information on using the ListViolationEvents
 20144  // API call, and error handling.
 20145  //
 20146  // This method is useful when you want to inject custom logic or configuration
 20147  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20148  //
 20149  //
 20150  //    // Example sending a request using the ListViolationEventsRequest method.
 20151  //    req, resp := client.ListViolationEventsRequest(params)
 20152  //
 20153  //    err := req.Send()
 20154  //    if err == nil { // resp is now filled
 20155  //        fmt.Println(resp)
 20156  //    }
 20157  func (c *IoT) ListViolationEventsRequest(input *ListViolationEventsInput) (req *request.Request, output *ListViolationEventsOutput) {
 20158  	op := &request.Operation{
 20159  		Name:       opListViolationEvents,
 20160  		HTTPMethod: "GET",
 20161  		HTTPPath:   "/violation-events",
 20162  		Paginator: &request.Paginator{
 20163  			InputTokens:     []string{"nextToken"},
 20164  			OutputTokens:    []string{"nextToken"},
 20165  			LimitToken:      "maxResults",
 20166  			TruncationToken: "",
 20167  		},
 20168  	}
 20169  
 20170  	if input == nil {
 20171  		input = &ListViolationEventsInput{}
 20172  	}
 20173  
 20174  	output = &ListViolationEventsOutput{}
 20175  	req = c.newRequest(op, input, output)
 20176  	return
 20177  }
 20178  
 20179  // ListViolationEvents API operation for AWS IoT.
 20180  //
 20181  // Lists the Device Defender security profile violations discovered during the
 20182  // given time period. You can use filters to limit the results to those alerts
 20183  // issued for a particular security profile, behavior, or thing (device).
 20184  //
 20185  // Requires permission to access the ListViolationEvents (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 20186  // action.
 20187  //
 20188  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20189  // with awserr.Error's Code and Message methods to get detailed information about
 20190  // the error.
 20191  //
 20192  // See the AWS API reference guide for AWS IoT's
 20193  // API operation ListViolationEvents for usage and error information.
 20194  //
 20195  // Returned Error Types:
 20196  //   * InvalidRequestException
 20197  //   The request is not valid.
 20198  //
 20199  //   * ThrottlingException
 20200  //   The rate exceeds the limit.
 20201  //
 20202  //   * InternalFailureException
 20203  //   An unexpected error has occurred.
 20204  //
 20205  func (c *IoT) ListViolationEvents(input *ListViolationEventsInput) (*ListViolationEventsOutput, error) {
 20206  	req, out := c.ListViolationEventsRequest(input)
 20207  	return out, req.Send()
 20208  }
 20209  
 20210  // ListViolationEventsWithContext is the same as ListViolationEvents with the addition of
 20211  // the ability to pass a context and additional request options.
 20212  //
 20213  // See ListViolationEvents for details on how to use this API operation.
 20214  //
 20215  // The context must be non-nil and will be used for request cancellation. If
 20216  // the context is nil a panic will occur. In the future the SDK may create
 20217  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20218  // for more information on using Contexts.
 20219  func (c *IoT) ListViolationEventsWithContext(ctx aws.Context, input *ListViolationEventsInput, opts ...request.Option) (*ListViolationEventsOutput, error) {
 20220  	req, out := c.ListViolationEventsRequest(input)
 20221  	req.SetContext(ctx)
 20222  	req.ApplyOptions(opts...)
 20223  	return out, req.Send()
 20224  }
 20225  
 20226  // ListViolationEventsPages iterates over the pages of a ListViolationEvents operation,
 20227  // calling the "fn" function with the response data for each page. To stop
 20228  // iterating, return false from the fn function.
 20229  //
 20230  // See ListViolationEvents method for more information on how to use this operation.
 20231  //
 20232  // Note: This operation can generate multiple requests to a service.
 20233  //
 20234  //    // Example iterating over at most 3 pages of a ListViolationEvents operation.
 20235  //    pageNum := 0
 20236  //    err := client.ListViolationEventsPages(params,
 20237  //        func(page *iot.ListViolationEventsOutput, lastPage bool) bool {
 20238  //            pageNum++
 20239  //            fmt.Println(page)
 20240  //            return pageNum <= 3
 20241  //        })
 20242  //
 20243  func (c *IoT) ListViolationEventsPages(input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool) error {
 20244  	return c.ListViolationEventsPagesWithContext(aws.BackgroundContext(), input, fn)
 20245  }
 20246  
 20247  // ListViolationEventsPagesWithContext same as ListViolationEventsPages except
 20248  // it takes a Context and allows setting request options on the pages.
 20249  //
 20250  // The context must be non-nil and will be used for request cancellation. If
 20251  // the context is nil a panic will occur. In the future the SDK may create
 20252  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20253  // for more information on using Contexts.
 20254  func (c *IoT) ListViolationEventsPagesWithContext(ctx aws.Context, input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool, opts ...request.Option) error {
 20255  	p := request.Pagination{
 20256  		NewRequest: func() (*request.Request, error) {
 20257  			var inCpy *ListViolationEventsInput
 20258  			if input != nil {
 20259  				tmp := *input
 20260  				inCpy = &tmp
 20261  			}
 20262  			req, _ := c.ListViolationEventsRequest(inCpy)
 20263  			req.SetContext(ctx)
 20264  			req.ApplyOptions(opts...)
 20265  			return req, nil
 20266  		},
 20267  	}
 20268  
 20269  	for p.Next() {
 20270  		if !fn(p.Page().(*ListViolationEventsOutput), !p.HasNextPage()) {
 20271  			break
 20272  		}
 20273  	}
 20274  
 20275  	return p.Err()
 20276  }
 20277  
 20278  const opPutVerificationStateOnViolation = "PutVerificationStateOnViolation"
 20279  
 20280  // PutVerificationStateOnViolationRequest generates a "aws/request.Request" representing the
 20281  // client's request for the PutVerificationStateOnViolation operation. The "output" return
 20282  // value will be populated with the request's response once the request completes
 20283  // successfully.
 20284  //
 20285  // Use "Send" method on the returned Request to send the API call to the service.
 20286  // the "output" return value is not valid until after Send returns without error.
 20287  //
 20288  // See PutVerificationStateOnViolation for more information on using the PutVerificationStateOnViolation
 20289  // API call, and error handling.
 20290  //
 20291  // This method is useful when you want to inject custom logic or configuration
 20292  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20293  //
 20294  //
 20295  //    // Example sending a request using the PutVerificationStateOnViolationRequest method.
 20296  //    req, resp := client.PutVerificationStateOnViolationRequest(params)
 20297  //
 20298  //    err := req.Send()
 20299  //    if err == nil { // resp is now filled
 20300  //        fmt.Println(resp)
 20301  //    }
 20302  func (c *IoT) PutVerificationStateOnViolationRequest(input *PutVerificationStateOnViolationInput) (req *request.Request, output *PutVerificationStateOnViolationOutput) {
 20303  	op := &request.Operation{
 20304  		Name:       opPutVerificationStateOnViolation,
 20305  		HTTPMethod: "POST",
 20306  		HTTPPath:   "/violations/verification-state/{violationId}",
 20307  	}
 20308  
 20309  	if input == nil {
 20310  		input = &PutVerificationStateOnViolationInput{}
 20311  	}
 20312  
 20313  	output = &PutVerificationStateOnViolationOutput{}
 20314  	req = c.newRequest(op, input, output)
 20315  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 20316  	return
 20317  }
 20318  
 20319  // PutVerificationStateOnViolation API operation for AWS IoT.
 20320  //
 20321  // Set a verification state and provide a description of that verification state
 20322  // on a violation (detect alarm).
 20323  //
 20324  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20325  // with awserr.Error's Code and Message methods to get detailed information about
 20326  // the error.
 20327  //
 20328  // See the AWS API reference guide for AWS IoT's
 20329  // API operation PutVerificationStateOnViolation for usage and error information.
 20330  //
 20331  // Returned Error Types:
 20332  //   * InvalidRequestException
 20333  //   The request is not valid.
 20334  //
 20335  //   * ThrottlingException
 20336  //   The rate exceeds the limit.
 20337  //
 20338  //   * InternalFailureException
 20339  //   An unexpected error has occurred.
 20340  //
 20341  func (c *IoT) PutVerificationStateOnViolation(input *PutVerificationStateOnViolationInput) (*PutVerificationStateOnViolationOutput, error) {
 20342  	req, out := c.PutVerificationStateOnViolationRequest(input)
 20343  	return out, req.Send()
 20344  }
 20345  
 20346  // PutVerificationStateOnViolationWithContext is the same as PutVerificationStateOnViolation with the addition of
 20347  // the ability to pass a context and additional request options.
 20348  //
 20349  // See PutVerificationStateOnViolation for details on how to use this API operation.
 20350  //
 20351  // The context must be non-nil and will be used for request cancellation. If
 20352  // the context is nil a panic will occur. In the future the SDK may create
 20353  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20354  // for more information on using Contexts.
 20355  func (c *IoT) PutVerificationStateOnViolationWithContext(ctx aws.Context, input *PutVerificationStateOnViolationInput, opts ...request.Option) (*PutVerificationStateOnViolationOutput, error) {
 20356  	req, out := c.PutVerificationStateOnViolationRequest(input)
 20357  	req.SetContext(ctx)
 20358  	req.ApplyOptions(opts...)
 20359  	return out, req.Send()
 20360  }
 20361  
 20362  const opRegisterCACertificate = "RegisterCACertificate"
 20363  
 20364  // RegisterCACertificateRequest generates a "aws/request.Request" representing the
 20365  // client's request for the RegisterCACertificate operation. The "output" return
 20366  // value will be populated with the request's response once the request completes
 20367  // successfully.
 20368  //
 20369  // Use "Send" method on the returned Request to send the API call to the service.
 20370  // the "output" return value is not valid until after Send returns without error.
 20371  //
 20372  // See RegisterCACertificate for more information on using the RegisterCACertificate
 20373  // API call, and error handling.
 20374  //
 20375  // This method is useful when you want to inject custom logic or configuration
 20376  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20377  //
 20378  //
 20379  //    // Example sending a request using the RegisterCACertificateRequest method.
 20380  //    req, resp := client.RegisterCACertificateRequest(params)
 20381  //
 20382  //    err := req.Send()
 20383  //    if err == nil { // resp is now filled
 20384  //        fmt.Println(resp)
 20385  //    }
 20386  func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
 20387  	op := &request.Operation{
 20388  		Name:       opRegisterCACertificate,
 20389  		HTTPMethod: "POST",
 20390  		HTTPPath:   "/cacertificate",
 20391  	}
 20392  
 20393  	if input == nil {
 20394  		input = &RegisterCACertificateInput{}
 20395  	}
 20396  
 20397  	output = &RegisterCACertificateOutput{}
 20398  	req = c.newRequest(op, input, output)
 20399  	return
 20400  }
 20401  
 20402  // RegisterCACertificate API operation for AWS IoT.
 20403  //
 20404  // Registers a CA certificate with IoT. This CA certificate can then be used
 20405  // to sign device certificates, which can be then registered with IoT. You can
 20406  // register up to 10 CA certificates per Amazon Web Services account that have
 20407  // the same subject field. This enables you to have up to 10 certificate authorities
 20408  // sign your device certificates. If you have more than one CA certificate registered,
 20409  // make sure you pass the CA certificate when you register your device certificates
 20410  // with the RegisterCertificate action.
 20411  //
 20412  // Requires permission to access the RegisterCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 20413  // action.
 20414  //
 20415  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20416  // with awserr.Error's Code and Message methods to get detailed information about
 20417  // the error.
 20418  //
 20419  // See the AWS API reference guide for AWS IoT's
 20420  // API operation RegisterCACertificate for usage and error information.
 20421  //
 20422  // Returned Error Types:
 20423  //   * ResourceAlreadyExistsException
 20424  //   The resource already exists.
 20425  //
 20426  //   * RegistrationCodeValidationException
 20427  //   The registration code is invalid.
 20428  //
 20429  //   * InvalidRequestException
 20430  //   The request is not valid.
 20431  //
 20432  //   * CertificateValidationException
 20433  //   The certificate is invalid.
 20434  //
 20435  //   * ThrottlingException
 20436  //   The rate exceeds the limit.
 20437  //
 20438  //   * LimitExceededException
 20439  //   A limit has been exceeded.
 20440  //
 20441  //   * UnauthorizedException
 20442  //   You are not authorized to perform this operation.
 20443  //
 20444  //   * ServiceUnavailableException
 20445  //   The service is temporarily unavailable.
 20446  //
 20447  //   * InternalFailureException
 20448  //   An unexpected error has occurred.
 20449  //
 20450  func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
 20451  	req, out := c.RegisterCACertificateRequest(input)
 20452  	return out, req.Send()
 20453  }
 20454  
 20455  // RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
 20456  // the ability to pass a context and additional request options.
 20457  //
 20458  // See RegisterCACertificate for details on how to use this API operation.
 20459  //
 20460  // The context must be non-nil and will be used for request cancellation. If
 20461  // the context is nil a panic will occur. In the future the SDK may create
 20462  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20463  // for more information on using Contexts.
 20464  func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
 20465  	req, out := c.RegisterCACertificateRequest(input)
 20466  	req.SetContext(ctx)
 20467  	req.ApplyOptions(opts...)
 20468  	return out, req.Send()
 20469  }
 20470  
 20471  const opRegisterCertificate = "RegisterCertificate"
 20472  
 20473  // RegisterCertificateRequest generates a "aws/request.Request" representing the
 20474  // client's request for the RegisterCertificate operation. The "output" return
 20475  // value will be populated with the request's response once the request completes
 20476  // successfully.
 20477  //
 20478  // Use "Send" method on the returned Request to send the API call to the service.
 20479  // the "output" return value is not valid until after Send returns without error.
 20480  //
 20481  // See RegisterCertificate for more information on using the RegisterCertificate
 20482  // API call, and error handling.
 20483  //
 20484  // This method is useful when you want to inject custom logic or configuration
 20485  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20486  //
 20487  //
 20488  //    // Example sending a request using the RegisterCertificateRequest method.
 20489  //    req, resp := client.RegisterCertificateRequest(params)
 20490  //
 20491  //    err := req.Send()
 20492  //    if err == nil { // resp is now filled
 20493  //        fmt.Println(resp)
 20494  //    }
 20495  func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
 20496  	op := &request.Operation{
 20497  		Name:       opRegisterCertificate,
 20498  		HTTPMethod: "POST",
 20499  		HTTPPath:   "/certificate/register",
 20500  	}
 20501  
 20502  	if input == nil {
 20503  		input = &RegisterCertificateInput{}
 20504  	}
 20505  
 20506  	output = &RegisterCertificateOutput{}
 20507  	req = c.newRequest(op, input, output)
 20508  	return
 20509  }
 20510  
 20511  // RegisterCertificate API operation for AWS IoT.
 20512  //
 20513  // Registers a device certificate with IoT. If you have more than one CA certificate
 20514  // that has the same subject field, you must specify the CA certificate that
 20515  // was used to sign the device certificate being registered.
 20516  //
 20517  // Requires permission to access the RegisterCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 20518  // action.
 20519  //
 20520  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20521  // with awserr.Error's Code and Message methods to get detailed information about
 20522  // the error.
 20523  //
 20524  // See the AWS API reference guide for AWS IoT's
 20525  // API operation RegisterCertificate for usage and error information.
 20526  //
 20527  // Returned Error Types:
 20528  //   * ResourceAlreadyExistsException
 20529  //   The resource already exists.
 20530  //
 20531  //   * InvalidRequestException
 20532  //   The request is not valid.
 20533  //
 20534  //   * CertificateValidationException
 20535  //   The certificate is invalid.
 20536  //
 20537  //   * CertificateStateException
 20538  //   The certificate operation is not allowed.
 20539  //
 20540  //   * CertificateConflictException
 20541  //   Unable to verify the CA certificate used to sign the device certificate you
 20542  //   are attempting to register. This is happens when you have registered more
 20543  //   than one CA certificate that has the same subject field and public key.
 20544  //
 20545  //   * ThrottlingException
 20546  //   The rate exceeds the limit.
 20547  //
 20548  //   * UnauthorizedException
 20549  //   You are not authorized to perform this operation.
 20550  //
 20551  //   * ServiceUnavailableException
 20552  //   The service is temporarily unavailable.
 20553  //
 20554  //   * InternalFailureException
 20555  //   An unexpected error has occurred.
 20556  //
 20557  func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
 20558  	req, out := c.RegisterCertificateRequest(input)
 20559  	return out, req.Send()
 20560  }
 20561  
 20562  // RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
 20563  // the ability to pass a context and additional request options.
 20564  //
 20565  // See RegisterCertificate for details on how to use this API operation.
 20566  //
 20567  // The context must be non-nil and will be used for request cancellation. If
 20568  // the context is nil a panic will occur. In the future the SDK may create
 20569  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20570  // for more information on using Contexts.
 20571  func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
 20572  	req, out := c.RegisterCertificateRequest(input)
 20573  	req.SetContext(ctx)
 20574  	req.ApplyOptions(opts...)
 20575  	return out, req.Send()
 20576  }
 20577  
 20578  const opRegisterCertificateWithoutCA = "RegisterCertificateWithoutCA"
 20579  
 20580  // RegisterCertificateWithoutCARequest generates a "aws/request.Request" representing the
 20581  // client's request for the RegisterCertificateWithoutCA operation. The "output" return
 20582  // value will be populated with the request's response once the request completes
 20583  // successfully.
 20584  //
 20585  // Use "Send" method on the returned Request to send the API call to the service.
 20586  // the "output" return value is not valid until after Send returns without error.
 20587  //
 20588  // See RegisterCertificateWithoutCA for more information on using the RegisterCertificateWithoutCA
 20589  // API call, and error handling.
 20590  //
 20591  // This method is useful when you want to inject custom logic or configuration
 20592  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20593  //
 20594  //
 20595  //    // Example sending a request using the RegisterCertificateWithoutCARequest method.
 20596  //    req, resp := client.RegisterCertificateWithoutCARequest(params)
 20597  //
 20598  //    err := req.Send()
 20599  //    if err == nil { // resp is now filled
 20600  //        fmt.Println(resp)
 20601  //    }
 20602  func (c *IoT) RegisterCertificateWithoutCARequest(input *RegisterCertificateWithoutCAInput) (req *request.Request, output *RegisterCertificateWithoutCAOutput) {
 20603  	op := &request.Operation{
 20604  		Name:       opRegisterCertificateWithoutCA,
 20605  		HTTPMethod: "POST",
 20606  		HTTPPath:   "/certificate/register-no-ca",
 20607  	}
 20608  
 20609  	if input == nil {
 20610  		input = &RegisterCertificateWithoutCAInput{}
 20611  	}
 20612  
 20613  	output = &RegisterCertificateWithoutCAOutput{}
 20614  	req = c.newRequest(op, input, output)
 20615  	return
 20616  }
 20617  
 20618  // RegisterCertificateWithoutCA API operation for AWS IoT.
 20619  //
 20620  // Register a certificate that does not have a certificate authority (CA).
 20621  //
 20622  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20623  // with awserr.Error's Code and Message methods to get detailed information about
 20624  // the error.
 20625  //
 20626  // See the AWS API reference guide for AWS IoT's
 20627  // API operation RegisterCertificateWithoutCA for usage and error information.
 20628  //
 20629  // Returned Error Types:
 20630  //   * ResourceAlreadyExistsException
 20631  //   The resource already exists.
 20632  //
 20633  //   * InvalidRequestException
 20634  //   The request is not valid.
 20635  //
 20636  //   * CertificateStateException
 20637  //   The certificate operation is not allowed.
 20638  //
 20639  //   * CertificateValidationException
 20640  //   The certificate is invalid.
 20641  //
 20642  //   * ThrottlingException
 20643  //   The rate exceeds the limit.
 20644  //
 20645  //   * UnauthorizedException
 20646  //   You are not authorized to perform this operation.
 20647  //
 20648  //   * ServiceUnavailableException
 20649  //   The service is temporarily unavailable.
 20650  //
 20651  //   * InternalFailureException
 20652  //   An unexpected error has occurred.
 20653  //
 20654  func (c *IoT) RegisterCertificateWithoutCA(input *RegisterCertificateWithoutCAInput) (*RegisterCertificateWithoutCAOutput, error) {
 20655  	req, out := c.RegisterCertificateWithoutCARequest(input)
 20656  	return out, req.Send()
 20657  }
 20658  
 20659  // RegisterCertificateWithoutCAWithContext is the same as RegisterCertificateWithoutCA with the addition of
 20660  // the ability to pass a context and additional request options.
 20661  //
 20662  // See RegisterCertificateWithoutCA for details on how to use this API operation.
 20663  //
 20664  // The context must be non-nil and will be used for request cancellation. If
 20665  // the context is nil a panic will occur. In the future the SDK may create
 20666  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20667  // for more information on using Contexts.
 20668  func (c *IoT) RegisterCertificateWithoutCAWithContext(ctx aws.Context, input *RegisterCertificateWithoutCAInput, opts ...request.Option) (*RegisterCertificateWithoutCAOutput, error) {
 20669  	req, out := c.RegisterCertificateWithoutCARequest(input)
 20670  	req.SetContext(ctx)
 20671  	req.ApplyOptions(opts...)
 20672  	return out, req.Send()
 20673  }
 20674  
 20675  const opRegisterThing = "RegisterThing"
 20676  
 20677  // RegisterThingRequest generates a "aws/request.Request" representing the
 20678  // client's request for the RegisterThing operation. The "output" return
 20679  // value will be populated with the request's response once the request completes
 20680  // successfully.
 20681  //
 20682  // Use "Send" method on the returned Request to send the API call to the service.
 20683  // the "output" return value is not valid until after Send returns without error.
 20684  //
 20685  // See RegisterThing for more information on using the RegisterThing
 20686  // API call, and error handling.
 20687  //
 20688  // This method is useful when you want to inject custom logic or configuration
 20689  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20690  //
 20691  //
 20692  //    // Example sending a request using the RegisterThingRequest method.
 20693  //    req, resp := client.RegisterThingRequest(params)
 20694  //
 20695  //    err := req.Send()
 20696  //    if err == nil { // resp is now filled
 20697  //        fmt.Println(resp)
 20698  //    }
 20699  func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
 20700  	op := &request.Operation{
 20701  		Name:       opRegisterThing,
 20702  		HTTPMethod: "POST",
 20703  		HTTPPath:   "/things",
 20704  	}
 20705  
 20706  	if input == nil {
 20707  		input = &RegisterThingInput{}
 20708  	}
 20709  
 20710  	output = &RegisterThingOutput{}
 20711  	req = c.newRequest(op, input, output)
 20712  	return
 20713  }
 20714  
 20715  // RegisterThing API operation for AWS IoT.
 20716  //
 20717  // Provisions a thing in the device registry. RegisterThing calls other IoT
 20718  // control plane APIs. These calls might exceed your account level IoT Throttling
 20719  // Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot)
 20720  // and cause throttle errors. Please contact Amazon Web Services Customer Support
 20721  // (https://console.aws.amazon.com/support/home) to raise your throttling limits
 20722  // if necessary.
 20723  //
 20724  // Requires permission to access the RegisterThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 20725  // action.
 20726  //
 20727  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20728  // with awserr.Error's Code and Message methods to get detailed information about
 20729  // the error.
 20730  //
 20731  // See the AWS API reference guide for AWS IoT's
 20732  // API operation RegisterThing for usage and error information.
 20733  //
 20734  // Returned Error Types:
 20735  //   * InternalFailureException
 20736  //   An unexpected error has occurred.
 20737  //
 20738  //   * ServiceUnavailableException
 20739  //   The service is temporarily unavailable.
 20740  //
 20741  //   * InvalidRequestException
 20742  //   The request is not valid.
 20743  //
 20744  //   * UnauthorizedException
 20745  //   You are not authorized to perform this operation.
 20746  //
 20747  //   * ThrottlingException
 20748  //   The rate exceeds the limit.
 20749  //
 20750  //   * ConflictingResourceUpdateException
 20751  //   A conflicting resource update exception. This exception is thrown when two
 20752  //   pending updates cause a conflict.
 20753  //
 20754  //   * ResourceRegistrationFailureException
 20755  //   The resource registration failed.
 20756  //
 20757  func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
 20758  	req, out := c.RegisterThingRequest(input)
 20759  	return out, req.Send()
 20760  }
 20761  
 20762  // RegisterThingWithContext is the same as RegisterThing with the addition of
 20763  // the ability to pass a context and additional request options.
 20764  //
 20765  // See RegisterThing for details on how to use this API operation.
 20766  //
 20767  // The context must be non-nil and will be used for request cancellation. If
 20768  // the context is nil a panic will occur. In the future the SDK may create
 20769  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20770  // for more information on using Contexts.
 20771  func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
 20772  	req, out := c.RegisterThingRequest(input)
 20773  	req.SetContext(ctx)
 20774  	req.ApplyOptions(opts...)
 20775  	return out, req.Send()
 20776  }
 20777  
 20778  const opRejectCertificateTransfer = "RejectCertificateTransfer"
 20779  
 20780  // RejectCertificateTransferRequest generates a "aws/request.Request" representing the
 20781  // client's request for the RejectCertificateTransfer operation. The "output" return
 20782  // value will be populated with the request's response once the request completes
 20783  // successfully.
 20784  //
 20785  // Use "Send" method on the returned Request to send the API call to the service.
 20786  // the "output" return value is not valid until after Send returns without error.
 20787  //
 20788  // See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
 20789  // API call, and error handling.
 20790  //
 20791  // This method is useful when you want to inject custom logic or configuration
 20792  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20793  //
 20794  //
 20795  //    // Example sending a request using the RejectCertificateTransferRequest method.
 20796  //    req, resp := client.RejectCertificateTransferRequest(params)
 20797  //
 20798  //    err := req.Send()
 20799  //    if err == nil { // resp is now filled
 20800  //        fmt.Println(resp)
 20801  //    }
 20802  func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
 20803  	op := &request.Operation{
 20804  		Name:       opRejectCertificateTransfer,
 20805  		HTTPMethod: "PATCH",
 20806  		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
 20807  	}
 20808  
 20809  	if input == nil {
 20810  		input = &RejectCertificateTransferInput{}
 20811  	}
 20812  
 20813  	output = &RejectCertificateTransferOutput{}
 20814  	req = c.newRequest(op, input, output)
 20815  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 20816  	return
 20817  }
 20818  
 20819  // RejectCertificateTransfer API operation for AWS IoT.
 20820  //
 20821  // Rejects a pending certificate transfer. After IoT rejects a certificate transfer,
 20822  // the certificate status changes from PENDING_TRANSFER to INACTIVE.
 20823  //
 20824  // To check for pending certificate transfers, call ListCertificates to enumerate
 20825  // your certificates.
 20826  //
 20827  // This operation can only be called by the transfer destination. After it is
 20828  // called, the certificate will be returned to the source's account in the INACTIVE
 20829  // state.
 20830  //
 20831  // Requires permission to access the RejectCertificateTransfer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 20832  // action.
 20833  //
 20834  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20835  // with awserr.Error's Code and Message methods to get detailed information about
 20836  // the error.
 20837  //
 20838  // See the AWS API reference guide for AWS IoT's
 20839  // API operation RejectCertificateTransfer for usage and error information.
 20840  //
 20841  // Returned Error Types:
 20842  //   * ResourceNotFoundException
 20843  //   The specified resource does not exist.
 20844  //
 20845  //   * TransferAlreadyCompletedException
 20846  //   You can't revert the certificate transfer because the transfer is already
 20847  //   complete.
 20848  //
 20849  //   * InvalidRequestException
 20850  //   The request is not valid.
 20851  //
 20852  //   * ThrottlingException
 20853  //   The rate exceeds the limit.
 20854  //
 20855  //   * UnauthorizedException
 20856  //   You are not authorized to perform this operation.
 20857  //
 20858  //   * ServiceUnavailableException
 20859  //   The service is temporarily unavailable.
 20860  //
 20861  //   * InternalFailureException
 20862  //   An unexpected error has occurred.
 20863  //
 20864  func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
 20865  	req, out := c.RejectCertificateTransferRequest(input)
 20866  	return out, req.Send()
 20867  }
 20868  
 20869  // RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
 20870  // the ability to pass a context and additional request options.
 20871  //
 20872  // See RejectCertificateTransfer for details on how to use this API operation.
 20873  //
 20874  // The context must be non-nil and will be used for request cancellation. If
 20875  // the context is nil a panic will occur. In the future the SDK may create
 20876  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20877  // for more information on using Contexts.
 20878  func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
 20879  	req, out := c.RejectCertificateTransferRequest(input)
 20880  	req.SetContext(ctx)
 20881  	req.ApplyOptions(opts...)
 20882  	return out, req.Send()
 20883  }
 20884  
 20885  const opRemoveThingFromBillingGroup = "RemoveThingFromBillingGroup"
 20886  
 20887  // RemoveThingFromBillingGroupRequest generates a "aws/request.Request" representing the
 20888  // client's request for the RemoveThingFromBillingGroup operation. The "output" return
 20889  // value will be populated with the request's response once the request completes
 20890  // successfully.
 20891  //
 20892  // Use "Send" method on the returned Request to send the API call to the service.
 20893  // the "output" return value is not valid until after Send returns without error.
 20894  //
 20895  // See RemoveThingFromBillingGroup for more information on using the RemoveThingFromBillingGroup
 20896  // API call, and error handling.
 20897  //
 20898  // This method is useful when you want to inject custom logic or configuration
 20899  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20900  //
 20901  //
 20902  //    // Example sending a request using the RemoveThingFromBillingGroupRequest method.
 20903  //    req, resp := client.RemoveThingFromBillingGroupRequest(params)
 20904  //
 20905  //    err := req.Send()
 20906  //    if err == nil { // resp is now filled
 20907  //        fmt.Println(resp)
 20908  //    }
 20909  func (c *IoT) RemoveThingFromBillingGroupRequest(input *RemoveThingFromBillingGroupInput) (req *request.Request, output *RemoveThingFromBillingGroupOutput) {
 20910  	op := &request.Operation{
 20911  		Name:       opRemoveThingFromBillingGroup,
 20912  		HTTPMethod: "PUT",
 20913  		HTTPPath:   "/billing-groups/removeThingFromBillingGroup",
 20914  	}
 20915  
 20916  	if input == nil {
 20917  		input = &RemoveThingFromBillingGroupInput{}
 20918  	}
 20919  
 20920  	output = &RemoveThingFromBillingGroupOutput{}
 20921  	req = c.newRequest(op, input, output)
 20922  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 20923  	return
 20924  }
 20925  
 20926  // RemoveThingFromBillingGroup API operation for AWS IoT.
 20927  //
 20928  // Removes the given thing from the billing group.
 20929  //
 20930  // Requires permission to access the RemoveThingFromBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 20931  // action.
 20932  //
 20933  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 20934  // with awserr.Error's Code and Message methods to get detailed information about
 20935  // the error.
 20936  //
 20937  // See the AWS API reference guide for AWS IoT's
 20938  // API operation RemoveThingFromBillingGroup for usage and error information.
 20939  //
 20940  // Returned Error Types:
 20941  //   * InvalidRequestException
 20942  //   The request is not valid.
 20943  //
 20944  //   * ThrottlingException
 20945  //   The rate exceeds the limit.
 20946  //
 20947  //   * InternalFailureException
 20948  //   An unexpected error has occurred.
 20949  //
 20950  //   * ResourceNotFoundException
 20951  //   The specified resource does not exist.
 20952  //
 20953  func (c *IoT) RemoveThingFromBillingGroup(input *RemoveThingFromBillingGroupInput) (*RemoveThingFromBillingGroupOutput, error) {
 20954  	req, out := c.RemoveThingFromBillingGroupRequest(input)
 20955  	return out, req.Send()
 20956  }
 20957  
 20958  // RemoveThingFromBillingGroupWithContext is the same as RemoveThingFromBillingGroup with the addition of
 20959  // the ability to pass a context and additional request options.
 20960  //
 20961  // See RemoveThingFromBillingGroup for details on how to use this API operation.
 20962  //
 20963  // The context must be non-nil and will be used for request cancellation. If
 20964  // the context is nil a panic will occur. In the future the SDK may create
 20965  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 20966  // for more information on using Contexts.
 20967  func (c *IoT) RemoveThingFromBillingGroupWithContext(ctx aws.Context, input *RemoveThingFromBillingGroupInput, opts ...request.Option) (*RemoveThingFromBillingGroupOutput, error) {
 20968  	req, out := c.RemoveThingFromBillingGroupRequest(input)
 20969  	req.SetContext(ctx)
 20970  	req.ApplyOptions(opts...)
 20971  	return out, req.Send()
 20972  }
 20973  
 20974  const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
 20975  
 20976  // RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
 20977  // client's request for the RemoveThingFromThingGroup operation. The "output" return
 20978  // value will be populated with the request's response once the request completes
 20979  // successfully.
 20980  //
 20981  // Use "Send" method on the returned Request to send the API call to the service.
 20982  // the "output" return value is not valid until after Send returns without error.
 20983  //
 20984  // See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
 20985  // API call, and error handling.
 20986  //
 20987  // This method is useful when you want to inject custom logic or configuration
 20988  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 20989  //
 20990  //
 20991  //    // Example sending a request using the RemoveThingFromThingGroupRequest method.
 20992  //    req, resp := client.RemoveThingFromThingGroupRequest(params)
 20993  //
 20994  //    err := req.Send()
 20995  //    if err == nil { // resp is now filled
 20996  //        fmt.Println(resp)
 20997  //    }
 20998  func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
 20999  	op := &request.Operation{
 21000  		Name:       opRemoveThingFromThingGroup,
 21001  		HTTPMethod: "PUT",
 21002  		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
 21003  	}
 21004  
 21005  	if input == nil {
 21006  		input = &RemoveThingFromThingGroupInput{}
 21007  	}
 21008  
 21009  	output = &RemoveThingFromThingGroupOutput{}
 21010  	req = c.newRequest(op, input, output)
 21011  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 21012  	return
 21013  }
 21014  
 21015  // RemoveThingFromThingGroup API operation for AWS IoT.
 21016  //
 21017  // Remove the specified thing from the specified group.
 21018  //
 21019  // You must specify either a thingGroupArn or a thingGroupName to identify the
 21020  // thing group and either a thingArn or a thingName to identify the thing to
 21021  // remove from the thing group.
 21022  //
 21023  // Requires permission to access the RemoveThingFromThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21024  // action.
 21025  //
 21026  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21027  // with awserr.Error's Code and Message methods to get detailed information about
 21028  // the error.
 21029  //
 21030  // See the AWS API reference guide for AWS IoT's
 21031  // API operation RemoveThingFromThingGroup for usage and error information.
 21032  //
 21033  // Returned Error Types:
 21034  //   * InvalidRequestException
 21035  //   The request is not valid.
 21036  //
 21037  //   * ThrottlingException
 21038  //   The rate exceeds the limit.
 21039  //
 21040  //   * InternalFailureException
 21041  //   An unexpected error has occurred.
 21042  //
 21043  //   * ResourceNotFoundException
 21044  //   The specified resource does not exist.
 21045  //
 21046  func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
 21047  	req, out := c.RemoveThingFromThingGroupRequest(input)
 21048  	return out, req.Send()
 21049  }
 21050  
 21051  // RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
 21052  // the ability to pass a context and additional request options.
 21053  //
 21054  // See RemoveThingFromThingGroup for details on how to use this API operation.
 21055  //
 21056  // The context must be non-nil and will be used for request cancellation. If
 21057  // the context is nil a panic will occur. In the future the SDK may create
 21058  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21059  // for more information on using Contexts.
 21060  func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
 21061  	req, out := c.RemoveThingFromThingGroupRequest(input)
 21062  	req.SetContext(ctx)
 21063  	req.ApplyOptions(opts...)
 21064  	return out, req.Send()
 21065  }
 21066  
 21067  const opReplaceTopicRule = "ReplaceTopicRule"
 21068  
 21069  // ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
 21070  // client's request for the ReplaceTopicRule operation. The "output" return
 21071  // value will be populated with the request's response once the request completes
 21072  // successfully.
 21073  //
 21074  // Use "Send" method on the returned Request to send the API call to the service.
 21075  // the "output" return value is not valid until after Send returns without error.
 21076  //
 21077  // See ReplaceTopicRule for more information on using the ReplaceTopicRule
 21078  // API call, and error handling.
 21079  //
 21080  // This method is useful when you want to inject custom logic or configuration
 21081  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21082  //
 21083  //
 21084  //    // Example sending a request using the ReplaceTopicRuleRequest method.
 21085  //    req, resp := client.ReplaceTopicRuleRequest(params)
 21086  //
 21087  //    err := req.Send()
 21088  //    if err == nil { // resp is now filled
 21089  //        fmt.Println(resp)
 21090  //    }
 21091  func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
 21092  	op := &request.Operation{
 21093  		Name:       opReplaceTopicRule,
 21094  		HTTPMethod: "PATCH",
 21095  		HTTPPath:   "/rules/{ruleName}",
 21096  	}
 21097  
 21098  	if input == nil {
 21099  		input = &ReplaceTopicRuleInput{}
 21100  	}
 21101  
 21102  	output = &ReplaceTopicRuleOutput{}
 21103  	req = c.newRequest(op, input, output)
 21104  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 21105  	return
 21106  }
 21107  
 21108  // ReplaceTopicRule API operation for AWS IoT.
 21109  //
 21110  // Replaces the rule. You must specify all parameters for the new rule. Creating
 21111  // rules is an administrator-level action. Any user who has permission to create
 21112  // rules will be able to access data processed by the rule.
 21113  //
 21114  // Requires permission to access the ReplaceTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21115  // action.
 21116  //
 21117  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21118  // with awserr.Error's Code and Message methods to get detailed information about
 21119  // the error.
 21120  //
 21121  // See the AWS API reference guide for AWS IoT's
 21122  // API operation ReplaceTopicRule for usage and error information.
 21123  //
 21124  // Returned Error Types:
 21125  //   * SqlParseException
 21126  //   The Rule-SQL expression can't be parsed correctly.
 21127  //
 21128  //   * InternalException
 21129  //   An unexpected error has occurred.
 21130  //
 21131  //   * InvalidRequestException
 21132  //   The request is not valid.
 21133  //
 21134  //   * ServiceUnavailableException
 21135  //   The service is temporarily unavailable.
 21136  //
 21137  //   * UnauthorizedException
 21138  //   You are not authorized to perform this operation.
 21139  //
 21140  //   * ConflictingResourceUpdateException
 21141  //   A conflicting resource update exception. This exception is thrown when two
 21142  //   pending updates cause a conflict.
 21143  //
 21144  func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
 21145  	req, out := c.ReplaceTopicRuleRequest(input)
 21146  	return out, req.Send()
 21147  }
 21148  
 21149  // ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
 21150  // the ability to pass a context and additional request options.
 21151  //
 21152  // See ReplaceTopicRule for details on how to use this API operation.
 21153  //
 21154  // The context must be non-nil and will be used for request cancellation. If
 21155  // the context is nil a panic will occur. In the future the SDK may create
 21156  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21157  // for more information on using Contexts.
 21158  func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
 21159  	req, out := c.ReplaceTopicRuleRequest(input)
 21160  	req.SetContext(ctx)
 21161  	req.ApplyOptions(opts...)
 21162  	return out, req.Send()
 21163  }
 21164  
 21165  const opSearchIndex = "SearchIndex"
 21166  
 21167  // SearchIndexRequest generates a "aws/request.Request" representing the
 21168  // client's request for the SearchIndex operation. The "output" return
 21169  // value will be populated with the request's response once the request completes
 21170  // successfully.
 21171  //
 21172  // Use "Send" method on the returned Request to send the API call to the service.
 21173  // the "output" return value is not valid until after Send returns without error.
 21174  //
 21175  // See SearchIndex for more information on using the SearchIndex
 21176  // API call, and error handling.
 21177  //
 21178  // This method is useful when you want to inject custom logic or configuration
 21179  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21180  //
 21181  //
 21182  //    // Example sending a request using the SearchIndexRequest method.
 21183  //    req, resp := client.SearchIndexRequest(params)
 21184  //
 21185  //    err := req.Send()
 21186  //    if err == nil { // resp is now filled
 21187  //        fmt.Println(resp)
 21188  //    }
 21189  func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
 21190  	op := &request.Operation{
 21191  		Name:       opSearchIndex,
 21192  		HTTPMethod: "POST",
 21193  		HTTPPath:   "/indices/search",
 21194  	}
 21195  
 21196  	if input == nil {
 21197  		input = &SearchIndexInput{}
 21198  	}
 21199  
 21200  	output = &SearchIndexOutput{}
 21201  	req = c.newRequest(op, input, output)
 21202  	return
 21203  }
 21204  
 21205  // SearchIndex API operation for AWS IoT.
 21206  //
 21207  // The query search index.
 21208  //
 21209  // Requires permission to access the SearchIndex (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21210  // action.
 21211  //
 21212  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21213  // with awserr.Error's Code and Message methods to get detailed information about
 21214  // the error.
 21215  //
 21216  // See the AWS API reference guide for AWS IoT's
 21217  // API operation SearchIndex for usage and error information.
 21218  //
 21219  // Returned Error Types:
 21220  //   * InvalidRequestException
 21221  //   The request is not valid.
 21222  //
 21223  //   * ThrottlingException
 21224  //   The rate exceeds the limit.
 21225  //
 21226  //   * UnauthorizedException
 21227  //   You are not authorized to perform this operation.
 21228  //
 21229  //   * ServiceUnavailableException
 21230  //   The service is temporarily unavailable.
 21231  //
 21232  //   * InternalFailureException
 21233  //   An unexpected error has occurred.
 21234  //
 21235  //   * ResourceNotFoundException
 21236  //   The specified resource does not exist.
 21237  //
 21238  //   * InvalidQueryException
 21239  //   The query is invalid.
 21240  //
 21241  //   * IndexNotReadyException
 21242  //   The index is not ready.
 21243  //
 21244  func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
 21245  	req, out := c.SearchIndexRequest(input)
 21246  	return out, req.Send()
 21247  }
 21248  
 21249  // SearchIndexWithContext is the same as SearchIndex with the addition of
 21250  // the ability to pass a context and additional request options.
 21251  //
 21252  // See SearchIndex for details on how to use this API operation.
 21253  //
 21254  // The context must be non-nil and will be used for request cancellation. If
 21255  // the context is nil a panic will occur. In the future the SDK may create
 21256  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21257  // for more information on using Contexts.
 21258  func (c *IoT) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
 21259  	req, out := c.SearchIndexRequest(input)
 21260  	req.SetContext(ctx)
 21261  	req.ApplyOptions(opts...)
 21262  	return out, req.Send()
 21263  }
 21264  
 21265  const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
 21266  
 21267  // SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
 21268  // client's request for the SetDefaultAuthorizer operation. The "output" return
 21269  // value will be populated with the request's response once the request completes
 21270  // successfully.
 21271  //
 21272  // Use "Send" method on the returned Request to send the API call to the service.
 21273  // the "output" return value is not valid until after Send returns without error.
 21274  //
 21275  // See SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
 21276  // API call, and error handling.
 21277  //
 21278  // This method is useful when you want to inject custom logic or configuration
 21279  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21280  //
 21281  //
 21282  //    // Example sending a request using the SetDefaultAuthorizerRequest method.
 21283  //    req, resp := client.SetDefaultAuthorizerRequest(params)
 21284  //
 21285  //    err := req.Send()
 21286  //    if err == nil { // resp is now filled
 21287  //        fmt.Println(resp)
 21288  //    }
 21289  func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
 21290  	op := &request.Operation{
 21291  		Name:       opSetDefaultAuthorizer,
 21292  		HTTPMethod: "POST",
 21293  		HTTPPath:   "/default-authorizer",
 21294  	}
 21295  
 21296  	if input == nil {
 21297  		input = &SetDefaultAuthorizerInput{}
 21298  	}
 21299  
 21300  	output = &SetDefaultAuthorizerOutput{}
 21301  	req = c.newRequest(op, input, output)
 21302  	return
 21303  }
 21304  
 21305  // SetDefaultAuthorizer API operation for AWS IoT.
 21306  //
 21307  // Sets the default authorizer. This will be used if a websocket connection
 21308  // is made without specifying an authorizer.
 21309  //
 21310  // Requires permission to access the SetDefaultAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21311  // action.
 21312  //
 21313  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21314  // with awserr.Error's Code and Message methods to get detailed information about
 21315  // the error.
 21316  //
 21317  // See the AWS API reference guide for AWS IoT's
 21318  // API operation SetDefaultAuthorizer for usage and error information.
 21319  //
 21320  // Returned Error Types:
 21321  //   * ResourceNotFoundException
 21322  //   The specified resource does not exist.
 21323  //
 21324  //   * InvalidRequestException
 21325  //   The request is not valid.
 21326  //
 21327  //   * ThrottlingException
 21328  //   The rate exceeds the limit.
 21329  //
 21330  //   * UnauthorizedException
 21331  //   You are not authorized to perform this operation.
 21332  //
 21333  //   * ServiceUnavailableException
 21334  //   The service is temporarily unavailable.
 21335  //
 21336  //   * InternalFailureException
 21337  //   An unexpected error has occurred.
 21338  //
 21339  //   * ResourceAlreadyExistsException
 21340  //   The resource already exists.
 21341  //
 21342  func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
 21343  	req, out := c.SetDefaultAuthorizerRequest(input)
 21344  	return out, req.Send()
 21345  }
 21346  
 21347  // SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
 21348  // the ability to pass a context and additional request options.
 21349  //
 21350  // See SetDefaultAuthorizer for details on how to use this API operation.
 21351  //
 21352  // The context must be non-nil and will be used for request cancellation. If
 21353  // the context is nil a panic will occur. In the future the SDK may create
 21354  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21355  // for more information on using Contexts.
 21356  func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
 21357  	req, out := c.SetDefaultAuthorizerRequest(input)
 21358  	req.SetContext(ctx)
 21359  	req.ApplyOptions(opts...)
 21360  	return out, req.Send()
 21361  }
 21362  
 21363  const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
 21364  
 21365  // SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
 21366  // client's request for the SetDefaultPolicyVersion operation. The "output" return
 21367  // value will be populated with the request's response once the request completes
 21368  // successfully.
 21369  //
 21370  // Use "Send" method on the returned Request to send the API call to the service.
 21371  // the "output" return value is not valid until after Send returns without error.
 21372  //
 21373  // See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
 21374  // API call, and error handling.
 21375  //
 21376  // This method is useful when you want to inject custom logic or configuration
 21377  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21378  //
 21379  //
 21380  //    // Example sending a request using the SetDefaultPolicyVersionRequest method.
 21381  //    req, resp := client.SetDefaultPolicyVersionRequest(params)
 21382  //
 21383  //    err := req.Send()
 21384  //    if err == nil { // resp is now filled
 21385  //        fmt.Println(resp)
 21386  //    }
 21387  func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
 21388  	op := &request.Operation{
 21389  		Name:       opSetDefaultPolicyVersion,
 21390  		HTTPMethod: "PATCH",
 21391  		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
 21392  	}
 21393  
 21394  	if input == nil {
 21395  		input = &SetDefaultPolicyVersionInput{}
 21396  	}
 21397  
 21398  	output = &SetDefaultPolicyVersionOutput{}
 21399  	req = c.newRequest(op, input, output)
 21400  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 21401  	return
 21402  }
 21403  
 21404  // SetDefaultPolicyVersion API operation for AWS IoT.
 21405  //
 21406  // Sets the specified version of the specified policy as the policy's default
 21407  // (operative) version. This action affects all certificates to which the policy
 21408  // is attached. To list the principals the policy is attached to, use the ListPrincipalPolicies
 21409  // action.
 21410  //
 21411  // Requires permission to access the SetDefaultPolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21412  // action.
 21413  //
 21414  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21415  // with awserr.Error's Code and Message methods to get detailed information about
 21416  // the error.
 21417  //
 21418  // See the AWS API reference guide for AWS IoT's
 21419  // API operation SetDefaultPolicyVersion for usage and error information.
 21420  //
 21421  // Returned Error Types:
 21422  //   * ResourceNotFoundException
 21423  //   The specified resource does not exist.
 21424  //
 21425  //   * InvalidRequestException
 21426  //   The request is not valid.
 21427  //
 21428  //   * ThrottlingException
 21429  //   The rate exceeds the limit.
 21430  //
 21431  //   * UnauthorizedException
 21432  //   You are not authorized to perform this operation.
 21433  //
 21434  //   * ServiceUnavailableException
 21435  //   The service is temporarily unavailable.
 21436  //
 21437  //   * InternalFailureException
 21438  //   An unexpected error has occurred.
 21439  //
 21440  func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
 21441  	req, out := c.SetDefaultPolicyVersionRequest(input)
 21442  	return out, req.Send()
 21443  }
 21444  
 21445  // SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
 21446  // the ability to pass a context and additional request options.
 21447  //
 21448  // See SetDefaultPolicyVersion for details on how to use this API operation.
 21449  //
 21450  // The context must be non-nil and will be used for request cancellation. If
 21451  // the context is nil a panic will occur. In the future the SDK may create
 21452  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21453  // for more information on using Contexts.
 21454  func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
 21455  	req, out := c.SetDefaultPolicyVersionRequest(input)
 21456  	req.SetContext(ctx)
 21457  	req.ApplyOptions(opts...)
 21458  	return out, req.Send()
 21459  }
 21460  
 21461  const opSetLoggingOptions = "SetLoggingOptions"
 21462  
 21463  // SetLoggingOptionsRequest generates a "aws/request.Request" representing the
 21464  // client's request for the SetLoggingOptions operation. The "output" return
 21465  // value will be populated with the request's response once the request completes
 21466  // successfully.
 21467  //
 21468  // Use "Send" method on the returned Request to send the API call to the service.
 21469  // the "output" return value is not valid until after Send returns without error.
 21470  //
 21471  // See SetLoggingOptions for more information on using the SetLoggingOptions
 21472  // API call, and error handling.
 21473  //
 21474  // This method is useful when you want to inject custom logic or configuration
 21475  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21476  //
 21477  //
 21478  //    // Example sending a request using the SetLoggingOptionsRequest method.
 21479  //    req, resp := client.SetLoggingOptionsRequest(params)
 21480  //
 21481  //    err := req.Send()
 21482  //    if err == nil { // resp is now filled
 21483  //        fmt.Println(resp)
 21484  //    }
 21485  func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
 21486  	op := &request.Operation{
 21487  		Name:       opSetLoggingOptions,
 21488  		HTTPMethod: "POST",
 21489  		HTTPPath:   "/loggingOptions",
 21490  	}
 21491  
 21492  	if input == nil {
 21493  		input = &SetLoggingOptionsInput{}
 21494  	}
 21495  
 21496  	output = &SetLoggingOptionsOutput{}
 21497  	req = c.newRequest(op, input, output)
 21498  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 21499  	return
 21500  }
 21501  
 21502  // SetLoggingOptions API operation for AWS IoT.
 21503  //
 21504  // Sets the logging options.
 21505  //
 21506  // NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
 21507  //
 21508  // Requires permission to access the SetLoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21509  // action.
 21510  //
 21511  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21512  // with awserr.Error's Code and Message methods to get detailed information about
 21513  // the error.
 21514  //
 21515  // See the AWS API reference guide for AWS IoT's
 21516  // API operation SetLoggingOptions for usage and error information.
 21517  //
 21518  // Returned Error Types:
 21519  //   * InternalException
 21520  //   An unexpected error has occurred.
 21521  //
 21522  //   * InvalidRequestException
 21523  //   The request is not valid.
 21524  //
 21525  //   * ServiceUnavailableException
 21526  //   The service is temporarily unavailable.
 21527  //
 21528  func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
 21529  	req, out := c.SetLoggingOptionsRequest(input)
 21530  	return out, req.Send()
 21531  }
 21532  
 21533  // SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
 21534  // the ability to pass a context and additional request options.
 21535  //
 21536  // See SetLoggingOptions for details on how to use this API operation.
 21537  //
 21538  // The context must be non-nil and will be used for request cancellation. If
 21539  // the context is nil a panic will occur. In the future the SDK may create
 21540  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21541  // for more information on using Contexts.
 21542  func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
 21543  	req, out := c.SetLoggingOptionsRequest(input)
 21544  	req.SetContext(ctx)
 21545  	req.ApplyOptions(opts...)
 21546  	return out, req.Send()
 21547  }
 21548  
 21549  const opSetV2LoggingLevel = "SetV2LoggingLevel"
 21550  
 21551  // SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
 21552  // client's request for the SetV2LoggingLevel operation. The "output" return
 21553  // value will be populated with the request's response once the request completes
 21554  // successfully.
 21555  //
 21556  // Use "Send" method on the returned Request to send the API call to the service.
 21557  // the "output" return value is not valid until after Send returns without error.
 21558  //
 21559  // See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
 21560  // API call, and error handling.
 21561  //
 21562  // This method is useful when you want to inject custom logic or configuration
 21563  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21564  //
 21565  //
 21566  //    // Example sending a request using the SetV2LoggingLevelRequest method.
 21567  //    req, resp := client.SetV2LoggingLevelRequest(params)
 21568  //
 21569  //    err := req.Send()
 21570  //    if err == nil { // resp is now filled
 21571  //        fmt.Println(resp)
 21572  //    }
 21573  func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
 21574  	op := &request.Operation{
 21575  		Name:       opSetV2LoggingLevel,
 21576  		HTTPMethod: "POST",
 21577  		HTTPPath:   "/v2LoggingLevel",
 21578  	}
 21579  
 21580  	if input == nil {
 21581  		input = &SetV2LoggingLevelInput{}
 21582  	}
 21583  
 21584  	output = &SetV2LoggingLevelOutput{}
 21585  	req = c.newRequest(op, input, output)
 21586  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 21587  	return
 21588  }
 21589  
 21590  // SetV2LoggingLevel API operation for AWS IoT.
 21591  //
 21592  // Sets the logging level.
 21593  //
 21594  // Requires permission to access the SetV2LoggingLevel (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21595  // action.
 21596  //
 21597  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21598  // with awserr.Error's Code and Message methods to get detailed information about
 21599  // the error.
 21600  //
 21601  // See the AWS API reference guide for AWS IoT's
 21602  // API operation SetV2LoggingLevel for usage and error information.
 21603  //
 21604  // Returned Error Types:
 21605  //   * InternalException
 21606  //   An unexpected error has occurred.
 21607  //
 21608  //   * NotConfiguredException
 21609  //   The resource is not configured.
 21610  //
 21611  //   * InvalidRequestException
 21612  //   The request is not valid.
 21613  //
 21614  //   * ServiceUnavailableException
 21615  //   The service is temporarily unavailable.
 21616  //
 21617  //   * LimitExceededException
 21618  //   A limit has been exceeded.
 21619  //
 21620  func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
 21621  	req, out := c.SetV2LoggingLevelRequest(input)
 21622  	return out, req.Send()
 21623  }
 21624  
 21625  // SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
 21626  // the ability to pass a context and additional request options.
 21627  //
 21628  // See SetV2LoggingLevel for details on how to use this API operation.
 21629  //
 21630  // The context must be non-nil and will be used for request cancellation. If
 21631  // the context is nil a panic will occur. In the future the SDK may create
 21632  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21633  // for more information on using Contexts.
 21634  func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
 21635  	req, out := c.SetV2LoggingLevelRequest(input)
 21636  	req.SetContext(ctx)
 21637  	req.ApplyOptions(opts...)
 21638  	return out, req.Send()
 21639  }
 21640  
 21641  const opSetV2LoggingOptions = "SetV2LoggingOptions"
 21642  
 21643  // SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
 21644  // client's request for the SetV2LoggingOptions operation. The "output" return
 21645  // value will be populated with the request's response once the request completes
 21646  // successfully.
 21647  //
 21648  // Use "Send" method on the returned Request to send the API call to the service.
 21649  // the "output" return value is not valid until after Send returns without error.
 21650  //
 21651  // See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
 21652  // API call, and error handling.
 21653  //
 21654  // This method is useful when you want to inject custom logic or configuration
 21655  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21656  //
 21657  //
 21658  //    // Example sending a request using the SetV2LoggingOptionsRequest method.
 21659  //    req, resp := client.SetV2LoggingOptionsRequest(params)
 21660  //
 21661  //    err := req.Send()
 21662  //    if err == nil { // resp is now filled
 21663  //        fmt.Println(resp)
 21664  //    }
 21665  func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
 21666  	op := &request.Operation{
 21667  		Name:       opSetV2LoggingOptions,
 21668  		HTTPMethod: "POST",
 21669  		HTTPPath:   "/v2LoggingOptions",
 21670  	}
 21671  
 21672  	if input == nil {
 21673  		input = &SetV2LoggingOptionsInput{}
 21674  	}
 21675  
 21676  	output = &SetV2LoggingOptionsOutput{}
 21677  	req = c.newRequest(op, input, output)
 21678  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 21679  	return
 21680  }
 21681  
 21682  // SetV2LoggingOptions API operation for AWS IoT.
 21683  //
 21684  // Sets the logging options for the V2 logging service.
 21685  //
 21686  // Requires permission to access the SetV2LoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21687  // action.
 21688  //
 21689  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21690  // with awserr.Error's Code and Message methods to get detailed information about
 21691  // the error.
 21692  //
 21693  // See the AWS API reference guide for AWS IoT's
 21694  // API operation SetV2LoggingOptions for usage and error information.
 21695  //
 21696  // Returned Error Types:
 21697  //   * InternalException
 21698  //   An unexpected error has occurred.
 21699  //
 21700  //   * InvalidRequestException
 21701  //   The request is not valid.
 21702  //
 21703  //   * ServiceUnavailableException
 21704  //   The service is temporarily unavailable.
 21705  //
 21706  func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
 21707  	req, out := c.SetV2LoggingOptionsRequest(input)
 21708  	return out, req.Send()
 21709  }
 21710  
 21711  // SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
 21712  // the ability to pass a context and additional request options.
 21713  //
 21714  // See SetV2LoggingOptions for details on how to use this API operation.
 21715  //
 21716  // The context must be non-nil and will be used for request cancellation. If
 21717  // the context is nil a panic will occur. In the future the SDK may create
 21718  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21719  // for more information on using Contexts.
 21720  func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
 21721  	req, out := c.SetV2LoggingOptionsRequest(input)
 21722  	req.SetContext(ctx)
 21723  	req.ApplyOptions(opts...)
 21724  	return out, req.Send()
 21725  }
 21726  
 21727  const opStartAuditMitigationActionsTask = "StartAuditMitigationActionsTask"
 21728  
 21729  // StartAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
 21730  // client's request for the StartAuditMitigationActionsTask operation. The "output" return
 21731  // value will be populated with the request's response once the request completes
 21732  // successfully.
 21733  //
 21734  // Use "Send" method on the returned Request to send the API call to the service.
 21735  // the "output" return value is not valid until after Send returns without error.
 21736  //
 21737  // See StartAuditMitigationActionsTask for more information on using the StartAuditMitigationActionsTask
 21738  // API call, and error handling.
 21739  //
 21740  // This method is useful when you want to inject custom logic or configuration
 21741  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21742  //
 21743  //
 21744  //    // Example sending a request using the StartAuditMitigationActionsTaskRequest method.
 21745  //    req, resp := client.StartAuditMitigationActionsTaskRequest(params)
 21746  //
 21747  //    err := req.Send()
 21748  //    if err == nil { // resp is now filled
 21749  //        fmt.Println(resp)
 21750  //    }
 21751  func (c *IoT) StartAuditMitigationActionsTaskRequest(input *StartAuditMitigationActionsTaskInput) (req *request.Request, output *StartAuditMitigationActionsTaskOutput) {
 21752  	op := &request.Operation{
 21753  		Name:       opStartAuditMitigationActionsTask,
 21754  		HTTPMethod: "POST",
 21755  		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
 21756  	}
 21757  
 21758  	if input == nil {
 21759  		input = &StartAuditMitigationActionsTaskInput{}
 21760  	}
 21761  
 21762  	output = &StartAuditMitigationActionsTaskOutput{}
 21763  	req = c.newRequest(op, input, output)
 21764  	return
 21765  }
 21766  
 21767  // StartAuditMitigationActionsTask API operation for AWS IoT.
 21768  //
 21769  // Starts a task that applies a set of mitigation actions to the specified target.
 21770  //
 21771  // Requires permission to access the StartAuditMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21772  // action.
 21773  //
 21774  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21775  // with awserr.Error's Code and Message methods to get detailed information about
 21776  // the error.
 21777  //
 21778  // See the AWS API reference guide for AWS IoT's
 21779  // API operation StartAuditMitigationActionsTask for usage and error information.
 21780  //
 21781  // Returned Error Types:
 21782  //   * InvalidRequestException
 21783  //   The request is not valid.
 21784  //
 21785  //   * TaskAlreadyExistsException
 21786  //   This exception occurs if you attempt to start a task with the same task-id
 21787  //   as an existing task but with a different clientRequestToken.
 21788  //
 21789  //   * LimitExceededException
 21790  //   A limit has been exceeded.
 21791  //
 21792  //   * ThrottlingException
 21793  //   The rate exceeds the limit.
 21794  //
 21795  //   * InternalFailureException
 21796  //   An unexpected error has occurred.
 21797  //
 21798  func (c *IoT) StartAuditMitigationActionsTask(input *StartAuditMitigationActionsTaskInput) (*StartAuditMitigationActionsTaskOutput, error) {
 21799  	req, out := c.StartAuditMitigationActionsTaskRequest(input)
 21800  	return out, req.Send()
 21801  }
 21802  
 21803  // StartAuditMitigationActionsTaskWithContext is the same as StartAuditMitigationActionsTask with the addition of
 21804  // the ability to pass a context and additional request options.
 21805  //
 21806  // See StartAuditMitigationActionsTask for details on how to use this API operation.
 21807  //
 21808  // The context must be non-nil and will be used for request cancellation. If
 21809  // the context is nil a panic will occur. In the future the SDK may create
 21810  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21811  // for more information on using Contexts.
 21812  func (c *IoT) StartAuditMitigationActionsTaskWithContext(ctx aws.Context, input *StartAuditMitigationActionsTaskInput, opts ...request.Option) (*StartAuditMitigationActionsTaskOutput, error) {
 21813  	req, out := c.StartAuditMitigationActionsTaskRequest(input)
 21814  	req.SetContext(ctx)
 21815  	req.ApplyOptions(opts...)
 21816  	return out, req.Send()
 21817  }
 21818  
 21819  const opStartDetectMitigationActionsTask = "StartDetectMitigationActionsTask"
 21820  
 21821  // StartDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
 21822  // client's request for the StartDetectMitigationActionsTask operation. The "output" return
 21823  // value will be populated with the request's response once the request completes
 21824  // successfully.
 21825  //
 21826  // Use "Send" method on the returned Request to send the API call to the service.
 21827  // the "output" return value is not valid until after Send returns without error.
 21828  //
 21829  // See StartDetectMitigationActionsTask for more information on using the StartDetectMitigationActionsTask
 21830  // API call, and error handling.
 21831  //
 21832  // This method is useful when you want to inject custom logic or configuration
 21833  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21834  //
 21835  //
 21836  //    // Example sending a request using the StartDetectMitigationActionsTaskRequest method.
 21837  //    req, resp := client.StartDetectMitigationActionsTaskRequest(params)
 21838  //
 21839  //    err := req.Send()
 21840  //    if err == nil { // resp is now filled
 21841  //        fmt.Println(resp)
 21842  //    }
 21843  func (c *IoT) StartDetectMitigationActionsTaskRequest(input *StartDetectMitigationActionsTaskInput) (req *request.Request, output *StartDetectMitigationActionsTaskOutput) {
 21844  	op := &request.Operation{
 21845  		Name:       opStartDetectMitigationActionsTask,
 21846  		HTTPMethod: "PUT",
 21847  		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
 21848  	}
 21849  
 21850  	if input == nil {
 21851  		input = &StartDetectMitigationActionsTaskInput{}
 21852  	}
 21853  
 21854  	output = &StartDetectMitigationActionsTaskOutput{}
 21855  	req = c.newRequest(op, input, output)
 21856  	return
 21857  }
 21858  
 21859  // StartDetectMitigationActionsTask API operation for AWS IoT.
 21860  //
 21861  // Starts a Device Defender ML Detect mitigation actions task.
 21862  //
 21863  // Requires permission to access the StartDetectMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21864  // action.
 21865  //
 21866  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21867  // with awserr.Error's Code and Message methods to get detailed information about
 21868  // the error.
 21869  //
 21870  // See the AWS API reference guide for AWS IoT's
 21871  // API operation StartDetectMitigationActionsTask for usage and error information.
 21872  //
 21873  // Returned Error Types:
 21874  //   * InvalidRequestException
 21875  //   The request is not valid.
 21876  //
 21877  //   * TaskAlreadyExistsException
 21878  //   This exception occurs if you attempt to start a task with the same task-id
 21879  //   as an existing task but with a different clientRequestToken.
 21880  //
 21881  //   * LimitExceededException
 21882  //   A limit has been exceeded.
 21883  //
 21884  //   * ThrottlingException
 21885  //   The rate exceeds the limit.
 21886  //
 21887  //   * InternalFailureException
 21888  //   An unexpected error has occurred.
 21889  //
 21890  func (c *IoT) StartDetectMitigationActionsTask(input *StartDetectMitigationActionsTaskInput) (*StartDetectMitigationActionsTaskOutput, error) {
 21891  	req, out := c.StartDetectMitigationActionsTaskRequest(input)
 21892  	return out, req.Send()
 21893  }
 21894  
 21895  // StartDetectMitigationActionsTaskWithContext is the same as StartDetectMitigationActionsTask with the addition of
 21896  // the ability to pass a context and additional request options.
 21897  //
 21898  // See StartDetectMitigationActionsTask for details on how to use this API operation.
 21899  //
 21900  // The context must be non-nil and will be used for request cancellation. If
 21901  // the context is nil a panic will occur. In the future the SDK may create
 21902  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21903  // for more information on using Contexts.
 21904  func (c *IoT) StartDetectMitigationActionsTaskWithContext(ctx aws.Context, input *StartDetectMitigationActionsTaskInput, opts ...request.Option) (*StartDetectMitigationActionsTaskOutput, error) {
 21905  	req, out := c.StartDetectMitigationActionsTaskRequest(input)
 21906  	req.SetContext(ctx)
 21907  	req.ApplyOptions(opts...)
 21908  	return out, req.Send()
 21909  }
 21910  
 21911  const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
 21912  
 21913  // StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
 21914  // client's request for the StartOnDemandAuditTask operation. The "output" return
 21915  // value will be populated with the request's response once the request completes
 21916  // successfully.
 21917  //
 21918  // Use "Send" method on the returned Request to send the API call to the service.
 21919  // the "output" return value is not valid until after Send returns without error.
 21920  //
 21921  // See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
 21922  // API call, and error handling.
 21923  //
 21924  // This method is useful when you want to inject custom logic or configuration
 21925  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 21926  //
 21927  //
 21928  //    // Example sending a request using the StartOnDemandAuditTaskRequest method.
 21929  //    req, resp := client.StartOnDemandAuditTaskRequest(params)
 21930  //
 21931  //    err := req.Send()
 21932  //    if err == nil { // resp is now filled
 21933  //        fmt.Println(resp)
 21934  //    }
 21935  func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
 21936  	op := &request.Operation{
 21937  		Name:       opStartOnDemandAuditTask,
 21938  		HTTPMethod: "POST",
 21939  		HTTPPath:   "/audit/tasks",
 21940  	}
 21941  
 21942  	if input == nil {
 21943  		input = &StartOnDemandAuditTaskInput{}
 21944  	}
 21945  
 21946  	output = &StartOnDemandAuditTaskOutput{}
 21947  	req = c.newRequest(op, input, output)
 21948  	return
 21949  }
 21950  
 21951  // StartOnDemandAuditTask API operation for AWS IoT.
 21952  //
 21953  // Starts an on-demand Device Defender audit.
 21954  //
 21955  // Requires permission to access the StartOnDemandAuditTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 21956  // action.
 21957  //
 21958  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 21959  // with awserr.Error's Code and Message methods to get detailed information about
 21960  // the error.
 21961  //
 21962  // See the AWS API reference guide for AWS IoT's
 21963  // API operation StartOnDemandAuditTask for usage and error information.
 21964  //
 21965  // Returned Error Types:
 21966  //   * InvalidRequestException
 21967  //   The request is not valid.
 21968  //
 21969  //   * ThrottlingException
 21970  //   The rate exceeds the limit.
 21971  //
 21972  //   * InternalFailureException
 21973  //   An unexpected error has occurred.
 21974  //
 21975  //   * LimitExceededException
 21976  //   A limit has been exceeded.
 21977  //
 21978  func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
 21979  	req, out := c.StartOnDemandAuditTaskRequest(input)
 21980  	return out, req.Send()
 21981  }
 21982  
 21983  // StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
 21984  // the ability to pass a context and additional request options.
 21985  //
 21986  // See StartOnDemandAuditTask for details on how to use this API operation.
 21987  //
 21988  // The context must be non-nil and will be used for request cancellation. If
 21989  // the context is nil a panic will occur. In the future the SDK may create
 21990  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 21991  // for more information on using Contexts.
 21992  func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
 21993  	req, out := c.StartOnDemandAuditTaskRequest(input)
 21994  	req.SetContext(ctx)
 21995  	req.ApplyOptions(opts...)
 21996  	return out, req.Send()
 21997  }
 21998  
 21999  const opStartThingRegistrationTask = "StartThingRegistrationTask"
 22000  
 22001  // StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
 22002  // client's request for the StartThingRegistrationTask operation. The "output" return
 22003  // value will be populated with the request's response once the request completes
 22004  // successfully.
 22005  //
 22006  // Use "Send" method on the returned Request to send the API call to the service.
 22007  // the "output" return value is not valid until after Send returns without error.
 22008  //
 22009  // See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
 22010  // API call, and error handling.
 22011  //
 22012  // This method is useful when you want to inject custom logic or configuration
 22013  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22014  //
 22015  //
 22016  //    // Example sending a request using the StartThingRegistrationTaskRequest method.
 22017  //    req, resp := client.StartThingRegistrationTaskRequest(params)
 22018  //
 22019  //    err := req.Send()
 22020  //    if err == nil { // resp is now filled
 22021  //        fmt.Println(resp)
 22022  //    }
 22023  func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
 22024  	op := &request.Operation{
 22025  		Name:       opStartThingRegistrationTask,
 22026  		HTTPMethod: "POST",
 22027  		HTTPPath:   "/thing-registration-tasks",
 22028  	}
 22029  
 22030  	if input == nil {
 22031  		input = &StartThingRegistrationTaskInput{}
 22032  	}
 22033  
 22034  	output = &StartThingRegistrationTaskOutput{}
 22035  	req = c.newRequest(op, input, output)
 22036  	return
 22037  }
 22038  
 22039  // StartThingRegistrationTask API operation for AWS IoT.
 22040  //
 22041  // Creates a bulk thing provisioning task.
 22042  //
 22043  // Requires permission to access the StartThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22044  // action.
 22045  //
 22046  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22047  // with awserr.Error's Code and Message methods to get detailed information about
 22048  // the error.
 22049  //
 22050  // See the AWS API reference guide for AWS IoT's
 22051  // API operation StartThingRegistrationTask for usage and error information.
 22052  //
 22053  // Returned Error Types:
 22054  //   * InvalidRequestException
 22055  //   The request is not valid.
 22056  //
 22057  //   * ThrottlingException
 22058  //   The rate exceeds the limit.
 22059  //
 22060  //   * UnauthorizedException
 22061  //   You are not authorized to perform this operation.
 22062  //
 22063  //   * InternalFailureException
 22064  //   An unexpected error has occurred.
 22065  //
 22066  func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
 22067  	req, out := c.StartThingRegistrationTaskRequest(input)
 22068  	return out, req.Send()
 22069  }
 22070  
 22071  // StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
 22072  // the ability to pass a context and additional request options.
 22073  //
 22074  // See StartThingRegistrationTask for details on how to use this API operation.
 22075  //
 22076  // The context must be non-nil and will be used for request cancellation. If
 22077  // the context is nil a panic will occur. In the future the SDK may create
 22078  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22079  // for more information on using Contexts.
 22080  func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
 22081  	req, out := c.StartThingRegistrationTaskRequest(input)
 22082  	req.SetContext(ctx)
 22083  	req.ApplyOptions(opts...)
 22084  	return out, req.Send()
 22085  }
 22086  
 22087  const opStopThingRegistrationTask = "StopThingRegistrationTask"
 22088  
 22089  // StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
 22090  // client's request for the StopThingRegistrationTask operation. The "output" return
 22091  // value will be populated with the request's response once the request completes
 22092  // successfully.
 22093  //
 22094  // Use "Send" method on the returned Request to send the API call to the service.
 22095  // the "output" return value is not valid until after Send returns without error.
 22096  //
 22097  // See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
 22098  // API call, and error handling.
 22099  //
 22100  // This method is useful when you want to inject custom logic or configuration
 22101  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22102  //
 22103  //
 22104  //    // Example sending a request using the StopThingRegistrationTaskRequest method.
 22105  //    req, resp := client.StopThingRegistrationTaskRequest(params)
 22106  //
 22107  //    err := req.Send()
 22108  //    if err == nil { // resp is now filled
 22109  //        fmt.Println(resp)
 22110  //    }
 22111  func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
 22112  	op := &request.Operation{
 22113  		Name:       opStopThingRegistrationTask,
 22114  		HTTPMethod: "PUT",
 22115  		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
 22116  	}
 22117  
 22118  	if input == nil {
 22119  		input = &StopThingRegistrationTaskInput{}
 22120  	}
 22121  
 22122  	output = &StopThingRegistrationTaskOutput{}
 22123  	req = c.newRequest(op, input, output)
 22124  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 22125  	return
 22126  }
 22127  
 22128  // StopThingRegistrationTask API operation for AWS IoT.
 22129  //
 22130  // Cancels a bulk thing provisioning task.
 22131  //
 22132  // Requires permission to access the StopThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22133  // action.
 22134  //
 22135  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22136  // with awserr.Error's Code and Message methods to get detailed information about
 22137  // the error.
 22138  //
 22139  // See the AWS API reference guide for AWS IoT's
 22140  // API operation StopThingRegistrationTask for usage and error information.
 22141  //
 22142  // Returned Error Types:
 22143  //   * InvalidRequestException
 22144  //   The request is not valid.
 22145  //
 22146  //   * ThrottlingException
 22147  //   The rate exceeds the limit.
 22148  //
 22149  //   * UnauthorizedException
 22150  //   You are not authorized to perform this operation.
 22151  //
 22152  //   * InternalFailureException
 22153  //   An unexpected error has occurred.
 22154  //
 22155  //   * ResourceNotFoundException
 22156  //   The specified resource does not exist.
 22157  //
 22158  func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
 22159  	req, out := c.StopThingRegistrationTaskRequest(input)
 22160  	return out, req.Send()
 22161  }
 22162  
 22163  // StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
 22164  // the ability to pass a context and additional request options.
 22165  //
 22166  // See StopThingRegistrationTask for details on how to use this API operation.
 22167  //
 22168  // The context must be non-nil and will be used for request cancellation. If
 22169  // the context is nil a panic will occur. In the future the SDK may create
 22170  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22171  // for more information on using Contexts.
 22172  func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
 22173  	req, out := c.StopThingRegistrationTaskRequest(input)
 22174  	req.SetContext(ctx)
 22175  	req.ApplyOptions(opts...)
 22176  	return out, req.Send()
 22177  }
 22178  
 22179  const opTagResource = "TagResource"
 22180  
 22181  // TagResourceRequest generates a "aws/request.Request" representing the
 22182  // client's request for the TagResource operation. The "output" return
 22183  // value will be populated with the request's response once the request completes
 22184  // successfully.
 22185  //
 22186  // Use "Send" method on the returned Request to send the API call to the service.
 22187  // the "output" return value is not valid until after Send returns without error.
 22188  //
 22189  // See TagResource for more information on using the TagResource
 22190  // API call, and error handling.
 22191  //
 22192  // This method is useful when you want to inject custom logic or configuration
 22193  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22194  //
 22195  //
 22196  //    // Example sending a request using the TagResourceRequest method.
 22197  //    req, resp := client.TagResourceRequest(params)
 22198  //
 22199  //    err := req.Send()
 22200  //    if err == nil { // resp is now filled
 22201  //        fmt.Println(resp)
 22202  //    }
 22203  func (c *IoT) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
 22204  	op := &request.Operation{
 22205  		Name:       opTagResource,
 22206  		HTTPMethod: "POST",
 22207  		HTTPPath:   "/tags",
 22208  	}
 22209  
 22210  	if input == nil {
 22211  		input = &TagResourceInput{}
 22212  	}
 22213  
 22214  	output = &TagResourceOutput{}
 22215  	req = c.newRequest(op, input, output)
 22216  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 22217  	return
 22218  }
 22219  
 22220  // TagResource API operation for AWS IoT.
 22221  //
 22222  // Adds to or modifies the tags of the given resource. Tags are metadata which
 22223  // can be used to manage a resource.
 22224  //
 22225  // Requires permission to access the TagResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22226  // action.
 22227  //
 22228  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22229  // with awserr.Error's Code and Message methods to get detailed information about
 22230  // the error.
 22231  //
 22232  // See the AWS API reference guide for AWS IoT's
 22233  // API operation TagResource for usage and error information.
 22234  //
 22235  // Returned Error Types:
 22236  //   * InvalidRequestException
 22237  //   The request is not valid.
 22238  //
 22239  //   * InternalFailureException
 22240  //   An unexpected error has occurred.
 22241  //
 22242  //   * ResourceNotFoundException
 22243  //   The specified resource does not exist.
 22244  //
 22245  //   * ThrottlingException
 22246  //   The rate exceeds the limit.
 22247  //
 22248  //   * LimitExceededException
 22249  //   A limit has been exceeded.
 22250  //
 22251  func (c *IoT) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
 22252  	req, out := c.TagResourceRequest(input)
 22253  	return out, req.Send()
 22254  }
 22255  
 22256  // TagResourceWithContext is the same as TagResource with the addition of
 22257  // the ability to pass a context and additional request options.
 22258  //
 22259  // See TagResource for details on how to use this API operation.
 22260  //
 22261  // The context must be non-nil and will be used for request cancellation. If
 22262  // the context is nil a panic will occur. In the future the SDK may create
 22263  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22264  // for more information on using Contexts.
 22265  func (c *IoT) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
 22266  	req, out := c.TagResourceRequest(input)
 22267  	req.SetContext(ctx)
 22268  	req.ApplyOptions(opts...)
 22269  	return out, req.Send()
 22270  }
 22271  
 22272  const opTestAuthorization = "TestAuthorization"
 22273  
 22274  // TestAuthorizationRequest generates a "aws/request.Request" representing the
 22275  // client's request for the TestAuthorization operation. The "output" return
 22276  // value will be populated with the request's response once the request completes
 22277  // successfully.
 22278  //
 22279  // Use "Send" method on the returned Request to send the API call to the service.
 22280  // the "output" return value is not valid until after Send returns without error.
 22281  //
 22282  // See TestAuthorization for more information on using the TestAuthorization
 22283  // API call, and error handling.
 22284  //
 22285  // This method is useful when you want to inject custom logic or configuration
 22286  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22287  //
 22288  //
 22289  //    // Example sending a request using the TestAuthorizationRequest method.
 22290  //    req, resp := client.TestAuthorizationRequest(params)
 22291  //
 22292  //    err := req.Send()
 22293  //    if err == nil { // resp is now filled
 22294  //        fmt.Println(resp)
 22295  //    }
 22296  func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
 22297  	op := &request.Operation{
 22298  		Name:       opTestAuthorization,
 22299  		HTTPMethod: "POST",
 22300  		HTTPPath:   "/test-authorization",
 22301  	}
 22302  
 22303  	if input == nil {
 22304  		input = &TestAuthorizationInput{}
 22305  	}
 22306  
 22307  	output = &TestAuthorizationOutput{}
 22308  	req = c.newRequest(op, input, output)
 22309  	return
 22310  }
 22311  
 22312  // TestAuthorization API operation for AWS IoT.
 22313  //
 22314  // Tests if a specified principal is authorized to perform an IoT action on
 22315  // a specified resource. Use this to test and debug the authorization behavior
 22316  // of devices that connect to the IoT device gateway.
 22317  //
 22318  // Requires permission to access the TestAuthorization (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22319  // action.
 22320  //
 22321  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22322  // with awserr.Error's Code and Message methods to get detailed information about
 22323  // the error.
 22324  //
 22325  // See the AWS API reference guide for AWS IoT's
 22326  // API operation TestAuthorization for usage and error information.
 22327  //
 22328  // Returned Error Types:
 22329  //   * ResourceNotFoundException
 22330  //   The specified resource does not exist.
 22331  //
 22332  //   * InvalidRequestException
 22333  //   The request is not valid.
 22334  //
 22335  //   * ThrottlingException
 22336  //   The rate exceeds the limit.
 22337  //
 22338  //   * UnauthorizedException
 22339  //   You are not authorized to perform this operation.
 22340  //
 22341  //   * ServiceUnavailableException
 22342  //   The service is temporarily unavailable.
 22343  //
 22344  //   * InternalFailureException
 22345  //   An unexpected error has occurred.
 22346  //
 22347  //   * LimitExceededException
 22348  //   A limit has been exceeded.
 22349  //
 22350  func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
 22351  	req, out := c.TestAuthorizationRequest(input)
 22352  	return out, req.Send()
 22353  }
 22354  
 22355  // TestAuthorizationWithContext is the same as TestAuthorization with the addition of
 22356  // the ability to pass a context and additional request options.
 22357  //
 22358  // See TestAuthorization for details on how to use this API operation.
 22359  //
 22360  // The context must be non-nil and will be used for request cancellation. If
 22361  // the context is nil a panic will occur. In the future the SDK may create
 22362  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22363  // for more information on using Contexts.
 22364  func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
 22365  	req, out := c.TestAuthorizationRequest(input)
 22366  	req.SetContext(ctx)
 22367  	req.ApplyOptions(opts...)
 22368  	return out, req.Send()
 22369  }
 22370  
 22371  const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
 22372  
 22373  // TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
 22374  // client's request for the TestInvokeAuthorizer operation. The "output" return
 22375  // value will be populated with the request's response once the request completes
 22376  // successfully.
 22377  //
 22378  // Use "Send" method on the returned Request to send the API call to the service.
 22379  // the "output" return value is not valid until after Send returns without error.
 22380  //
 22381  // See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
 22382  // API call, and error handling.
 22383  //
 22384  // This method is useful when you want to inject custom logic or configuration
 22385  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22386  //
 22387  //
 22388  //    // Example sending a request using the TestInvokeAuthorizerRequest method.
 22389  //    req, resp := client.TestInvokeAuthorizerRequest(params)
 22390  //
 22391  //    err := req.Send()
 22392  //    if err == nil { // resp is now filled
 22393  //        fmt.Println(resp)
 22394  //    }
 22395  func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
 22396  	op := &request.Operation{
 22397  		Name:       opTestInvokeAuthorizer,
 22398  		HTTPMethod: "POST",
 22399  		HTTPPath:   "/authorizer/{authorizerName}/test",
 22400  	}
 22401  
 22402  	if input == nil {
 22403  		input = &TestInvokeAuthorizerInput{}
 22404  	}
 22405  
 22406  	output = &TestInvokeAuthorizerOutput{}
 22407  	req = c.newRequest(op, input, output)
 22408  	return
 22409  }
 22410  
 22411  // TestInvokeAuthorizer API operation for AWS IoT.
 22412  //
 22413  // Tests a custom authorization behavior by invoking a specified custom authorizer.
 22414  // Use this to test and debug the custom authorization behavior of devices that
 22415  // connect to the IoT device gateway.
 22416  //
 22417  // Requires permission to access the TestInvokeAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22418  // action.
 22419  //
 22420  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22421  // with awserr.Error's Code and Message methods to get detailed information about
 22422  // the error.
 22423  //
 22424  // See the AWS API reference guide for AWS IoT's
 22425  // API operation TestInvokeAuthorizer for usage and error information.
 22426  //
 22427  // Returned Error Types:
 22428  //   * ResourceNotFoundException
 22429  //   The specified resource does not exist.
 22430  //
 22431  //   * InvalidRequestException
 22432  //   The request is not valid.
 22433  //
 22434  //   * ThrottlingException
 22435  //   The rate exceeds the limit.
 22436  //
 22437  //   * UnauthorizedException
 22438  //   You are not authorized to perform this operation.
 22439  //
 22440  //   * ServiceUnavailableException
 22441  //   The service is temporarily unavailable.
 22442  //
 22443  //   * InternalFailureException
 22444  //   An unexpected error has occurred.
 22445  //
 22446  //   * InvalidResponseException
 22447  //   The response is invalid.
 22448  //
 22449  func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
 22450  	req, out := c.TestInvokeAuthorizerRequest(input)
 22451  	return out, req.Send()
 22452  }
 22453  
 22454  // TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
 22455  // the ability to pass a context and additional request options.
 22456  //
 22457  // See TestInvokeAuthorizer for details on how to use this API operation.
 22458  //
 22459  // The context must be non-nil and will be used for request cancellation. If
 22460  // the context is nil a panic will occur. In the future the SDK may create
 22461  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22462  // for more information on using Contexts.
 22463  func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
 22464  	req, out := c.TestInvokeAuthorizerRequest(input)
 22465  	req.SetContext(ctx)
 22466  	req.ApplyOptions(opts...)
 22467  	return out, req.Send()
 22468  }
 22469  
 22470  const opTransferCertificate = "TransferCertificate"
 22471  
 22472  // TransferCertificateRequest generates a "aws/request.Request" representing the
 22473  // client's request for the TransferCertificate operation. The "output" return
 22474  // value will be populated with the request's response once the request completes
 22475  // successfully.
 22476  //
 22477  // Use "Send" method on the returned Request to send the API call to the service.
 22478  // the "output" return value is not valid until after Send returns without error.
 22479  //
 22480  // See TransferCertificate for more information on using the TransferCertificate
 22481  // API call, and error handling.
 22482  //
 22483  // This method is useful when you want to inject custom logic or configuration
 22484  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22485  //
 22486  //
 22487  //    // Example sending a request using the TransferCertificateRequest method.
 22488  //    req, resp := client.TransferCertificateRequest(params)
 22489  //
 22490  //    err := req.Send()
 22491  //    if err == nil { // resp is now filled
 22492  //        fmt.Println(resp)
 22493  //    }
 22494  func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
 22495  	op := &request.Operation{
 22496  		Name:       opTransferCertificate,
 22497  		HTTPMethod: "PATCH",
 22498  		HTTPPath:   "/transfer-certificate/{certificateId}",
 22499  	}
 22500  
 22501  	if input == nil {
 22502  		input = &TransferCertificateInput{}
 22503  	}
 22504  
 22505  	output = &TransferCertificateOutput{}
 22506  	req = c.newRequest(op, input, output)
 22507  	return
 22508  }
 22509  
 22510  // TransferCertificate API operation for AWS IoT.
 22511  //
 22512  // Transfers the specified certificate to the specified Amazon Web Services
 22513  // account.
 22514  //
 22515  // Requires permission to access the TransferCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22516  // action.
 22517  //
 22518  // You can cancel the transfer until it is acknowledged by the recipient.
 22519  //
 22520  // No notification is sent to the transfer destination's account. It is up to
 22521  // the caller to notify the transfer target.
 22522  //
 22523  // The certificate being transferred must not be in the ACTIVE state. You can
 22524  // use the UpdateCertificate action to deactivate it.
 22525  //
 22526  // The certificate must not have any policies attached to it. You can use the
 22527  // DetachPolicy action to detach them.
 22528  //
 22529  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22530  // with awserr.Error's Code and Message methods to get detailed information about
 22531  // the error.
 22532  //
 22533  // See the AWS API reference guide for AWS IoT's
 22534  // API operation TransferCertificate for usage and error information.
 22535  //
 22536  // Returned Error Types:
 22537  //   * InvalidRequestException
 22538  //   The request is not valid.
 22539  //
 22540  //   * ResourceNotFoundException
 22541  //   The specified resource does not exist.
 22542  //
 22543  //   * CertificateStateException
 22544  //   The certificate operation is not allowed.
 22545  //
 22546  //   * TransferConflictException
 22547  //   You can't transfer the certificate because authorization policies are still
 22548  //   attached.
 22549  //
 22550  //   * ThrottlingException
 22551  //   The rate exceeds the limit.
 22552  //
 22553  //   * UnauthorizedException
 22554  //   You are not authorized to perform this operation.
 22555  //
 22556  //   * ServiceUnavailableException
 22557  //   The service is temporarily unavailable.
 22558  //
 22559  //   * InternalFailureException
 22560  //   An unexpected error has occurred.
 22561  //
 22562  func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
 22563  	req, out := c.TransferCertificateRequest(input)
 22564  	return out, req.Send()
 22565  }
 22566  
 22567  // TransferCertificateWithContext is the same as TransferCertificate with the addition of
 22568  // the ability to pass a context and additional request options.
 22569  //
 22570  // See TransferCertificate for details on how to use this API operation.
 22571  //
 22572  // The context must be non-nil and will be used for request cancellation. If
 22573  // the context is nil a panic will occur. In the future the SDK may create
 22574  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22575  // for more information on using Contexts.
 22576  func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
 22577  	req, out := c.TransferCertificateRequest(input)
 22578  	req.SetContext(ctx)
 22579  	req.ApplyOptions(opts...)
 22580  	return out, req.Send()
 22581  }
 22582  
 22583  const opUntagResource = "UntagResource"
 22584  
 22585  // UntagResourceRequest generates a "aws/request.Request" representing the
 22586  // client's request for the UntagResource operation. The "output" return
 22587  // value will be populated with the request's response once the request completes
 22588  // successfully.
 22589  //
 22590  // Use "Send" method on the returned Request to send the API call to the service.
 22591  // the "output" return value is not valid until after Send returns without error.
 22592  //
 22593  // See UntagResource for more information on using the UntagResource
 22594  // API call, and error handling.
 22595  //
 22596  // This method is useful when you want to inject custom logic or configuration
 22597  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22598  //
 22599  //
 22600  //    // Example sending a request using the UntagResourceRequest method.
 22601  //    req, resp := client.UntagResourceRequest(params)
 22602  //
 22603  //    err := req.Send()
 22604  //    if err == nil { // resp is now filled
 22605  //        fmt.Println(resp)
 22606  //    }
 22607  func (c *IoT) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
 22608  	op := &request.Operation{
 22609  		Name:       opUntagResource,
 22610  		HTTPMethod: "POST",
 22611  		HTTPPath:   "/untag",
 22612  	}
 22613  
 22614  	if input == nil {
 22615  		input = &UntagResourceInput{}
 22616  	}
 22617  
 22618  	output = &UntagResourceOutput{}
 22619  	req = c.newRequest(op, input, output)
 22620  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 22621  	return
 22622  }
 22623  
 22624  // UntagResource API operation for AWS IoT.
 22625  //
 22626  // Removes the given tags (metadata) from the resource.
 22627  //
 22628  // Requires permission to access the UntagResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22629  // action.
 22630  //
 22631  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22632  // with awserr.Error's Code and Message methods to get detailed information about
 22633  // the error.
 22634  //
 22635  // See the AWS API reference guide for AWS IoT's
 22636  // API operation UntagResource for usage and error information.
 22637  //
 22638  // Returned Error Types:
 22639  //   * InvalidRequestException
 22640  //   The request is not valid.
 22641  //
 22642  //   * InternalFailureException
 22643  //   An unexpected error has occurred.
 22644  //
 22645  //   * ResourceNotFoundException
 22646  //   The specified resource does not exist.
 22647  //
 22648  //   * ThrottlingException
 22649  //   The rate exceeds the limit.
 22650  //
 22651  func (c *IoT) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
 22652  	req, out := c.UntagResourceRequest(input)
 22653  	return out, req.Send()
 22654  }
 22655  
 22656  // UntagResourceWithContext is the same as UntagResource with the addition of
 22657  // the ability to pass a context and additional request options.
 22658  //
 22659  // See UntagResource for details on how to use this API operation.
 22660  //
 22661  // The context must be non-nil and will be used for request cancellation. If
 22662  // the context is nil a panic will occur. In the future the SDK may create
 22663  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22664  // for more information on using Contexts.
 22665  func (c *IoT) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
 22666  	req, out := c.UntagResourceRequest(input)
 22667  	req.SetContext(ctx)
 22668  	req.ApplyOptions(opts...)
 22669  	return out, req.Send()
 22670  }
 22671  
 22672  const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
 22673  
 22674  // UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
 22675  // client's request for the UpdateAccountAuditConfiguration operation. The "output" return
 22676  // value will be populated with the request's response once the request completes
 22677  // successfully.
 22678  //
 22679  // Use "Send" method on the returned Request to send the API call to the service.
 22680  // the "output" return value is not valid until after Send returns without error.
 22681  //
 22682  // See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
 22683  // API call, and error handling.
 22684  //
 22685  // This method is useful when you want to inject custom logic or configuration
 22686  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22687  //
 22688  //
 22689  //    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
 22690  //    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
 22691  //
 22692  //    err := req.Send()
 22693  //    if err == nil { // resp is now filled
 22694  //        fmt.Println(resp)
 22695  //    }
 22696  func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
 22697  	op := &request.Operation{
 22698  		Name:       opUpdateAccountAuditConfiguration,
 22699  		HTTPMethod: "PATCH",
 22700  		HTTPPath:   "/audit/configuration",
 22701  	}
 22702  
 22703  	if input == nil {
 22704  		input = &UpdateAccountAuditConfigurationInput{}
 22705  	}
 22706  
 22707  	output = &UpdateAccountAuditConfigurationOutput{}
 22708  	req = c.newRequest(op, input, output)
 22709  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 22710  	return
 22711  }
 22712  
 22713  // UpdateAccountAuditConfiguration API operation for AWS IoT.
 22714  //
 22715  // Configures or reconfigures the Device Defender audit settings for this account.
 22716  // Settings include how audit notifications are sent and which audit checks
 22717  // are enabled or disabled.
 22718  //
 22719  // Requires permission to access the UpdateAccountAuditConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22720  // action.
 22721  //
 22722  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22723  // with awserr.Error's Code and Message methods to get detailed information about
 22724  // the error.
 22725  //
 22726  // See the AWS API reference guide for AWS IoT's
 22727  // API operation UpdateAccountAuditConfiguration for usage and error information.
 22728  //
 22729  // Returned Error Types:
 22730  //   * InvalidRequestException
 22731  //   The request is not valid.
 22732  //
 22733  //   * ThrottlingException
 22734  //   The rate exceeds the limit.
 22735  //
 22736  //   * InternalFailureException
 22737  //   An unexpected error has occurred.
 22738  //
 22739  func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
 22740  	req, out := c.UpdateAccountAuditConfigurationRequest(input)
 22741  	return out, req.Send()
 22742  }
 22743  
 22744  // UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
 22745  // the ability to pass a context and additional request options.
 22746  //
 22747  // See UpdateAccountAuditConfiguration for details on how to use this API operation.
 22748  //
 22749  // The context must be non-nil and will be used for request cancellation. If
 22750  // the context is nil a panic will occur. In the future the SDK may create
 22751  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22752  // for more information on using Contexts.
 22753  func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
 22754  	req, out := c.UpdateAccountAuditConfigurationRequest(input)
 22755  	req.SetContext(ctx)
 22756  	req.ApplyOptions(opts...)
 22757  	return out, req.Send()
 22758  }
 22759  
 22760  const opUpdateAuditSuppression = "UpdateAuditSuppression"
 22761  
 22762  // UpdateAuditSuppressionRequest generates a "aws/request.Request" representing the
 22763  // client's request for the UpdateAuditSuppression operation. The "output" return
 22764  // value will be populated with the request's response once the request completes
 22765  // successfully.
 22766  //
 22767  // Use "Send" method on the returned Request to send the API call to the service.
 22768  // the "output" return value is not valid until after Send returns without error.
 22769  //
 22770  // See UpdateAuditSuppression for more information on using the UpdateAuditSuppression
 22771  // API call, and error handling.
 22772  //
 22773  // This method is useful when you want to inject custom logic or configuration
 22774  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22775  //
 22776  //
 22777  //    // Example sending a request using the UpdateAuditSuppressionRequest method.
 22778  //    req, resp := client.UpdateAuditSuppressionRequest(params)
 22779  //
 22780  //    err := req.Send()
 22781  //    if err == nil { // resp is now filled
 22782  //        fmt.Println(resp)
 22783  //    }
 22784  func (c *IoT) UpdateAuditSuppressionRequest(input *UpdateAuditSuppressionInput) (req *request.Request, output *UpdateAuditSuppressionOutput) {
 22785  	op := &request.Operation{
 22786  		Name:       opUpdateAuditSuppression,
 22787  		HTTPMethod: "PATCH",
 22788  		HTTPPath:   "/audit/suppressions/update",
 22789  	}
 22790  
 22791  	if input == nil {
 22792  		input = &UpdateAuditSuppressionInput{}
 22793  	}
 22794  
 22795  	output = &UpdateAuditSuppressionOutput{}
 22796  	req = c.newRequest(op, input, output)
 22797  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 22798  	return
 22799  }
 22800  
 22801  // UpdateAuditSuppression API operation for AWS IoT.
 22802  //
 22803  // Updates a Device Defender audit suppression.
 22804  //
 22805  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22806  // with awserr.Error's Code and Message methods to get detailed information about
 22807  // the error.
 22808  //
 22809  // See the AWS API reference guide for AWS IoT's
 22810  // API operation UpdateAuditSuppression for usage and error information.
 22811  //
 22812  // Returned Error Types:
 22813  //   * InvalidRequestException
 22814  //   The request is not valid.
 22815  //
 22816  //   * ResourceNotFoundException
 22817  //   The specified resource does not exist.
 22818  //
 22819  //   * ThrottlingException
 22820  //   The rate exceeds the limit.
 22821  //
 22822  //   * InternalFailureException
 22823  //   An unexpected error has occurred.
 22824  //
 22825  func (c *IoT) UpdateAuditSuppression(input *UpdateAuditSuppressionInput) (*UpdateAuditSuppressionOutput, error) {
 22826  	req, out := c.UpdateAuditSuppressionRequest(input)
 22827  	return out, req.Send()
 22828  }
 22829  
 22830  // UpdateAuditSuppressionWithContext is the same as UpdateAuditSuppression with the addition of
 22831  // the ability to pass a context and additional request options.
 22832  //
 22833  // See UpdateAuditSuppression for details on how to use this API operation.
 22834  //
 22835  // The context must be non-nil and will be used for request cancellation. If
 22836  // the context is nil a panic will occur. In the future the SDK may create
 22837  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22838  // for more information on using Contexts.
 22839  func (c *IoT) UpdateAuditSuppressionWithContext(ctx aws.Context, input *UpdateAuditSuppressionInput, opts ...request.Option) (*UpdateAuditSuppressionOutput, error) {
 22840  	req, out := c.UpdateAuditSuppressionRequest(input)
 22841  	req.SetContext(ctx)
 22842  	req.ApplyOptions(opts...)
 22843  	return out, req.Send()
 22844  }
 22845  
 22846  const opUpdateAuthorizer = "UpdateAuthorizer"
 22847  
 22848  // UpdateAuthorizerRequest generates a "aws/request.Request" representing the
 22849  // client's request for the UpdateAuthorizer operation. The "output" return
 22850  // value will be populated with the request's response once the request completes
 22851  // successfully.
 22852  //
 22853  // Use "Send" method on the returned Request to send the API call to the service.
 22854  // the "output" return value is not valid until after Send returns without error.
 22855  //
 22856  // See UpdateAuthorizer for more information on using the UpdateAuthorizer
 22857  // API call, and error handling.
 22858  //
 22859  // This method is useful when you want to inject custom logic or configuration
 22860  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22861  //
 22862  //
 22863  //    // Example sending a request using the UpdateAuthorizerRequest method.
 22864  //    req, resp := client.UpdateAuthorizerRequest(params)
 22865  //
 22866  //    err := req.Send()
 22867  //    if err == nil { // resp is now filled
 22868  //        fmt.Println(resp)
 22869  //    }
 22870  func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
 22871  	op := &request.Operation{
 22872  		Name:       opUpdateAuthorizer,
 22873  		HTTPMethod: "PUT",
 22874  		HTTPPath:   "/authorizer/{authorizerName}",
 22875  	}
 22876  
 22877  	if input == nil {
 22878  		input = &UpdateAuthorizerInput{}
 22879  	}
 22880  
 22881  	output = &UpdateAuthorizerOutput{}
 22882  	req = c.newRequest(op, input, output)
 22883  	return
 22884  }
 22885  
 22886  // UpdateAuthorizer API operation for AWS IoT.
 22887  //
 22888  // Updates an authorizer.
 22889  //
 22890  // Requires permission to access the UpdateAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22891  // action.
 22892  //
 22893  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22894  // with awserr.Error's Code and Message methods to get detailed information about
 22895  // the error.
 22896  //
 22897  // See the AWS API reference guide for AWS IoT's
 22898  // API operation UpdateAuthorizer for usage and error information.
 22899  //
 22900  // Returned Error Types:
 22901  //   * ResourceNotFoundException
 22902  //   The specified resource does not exist.
 22903  //
 22904  //   * InvalidRequestException
 22905  //   The request is not valid.
 22906  //
 22907  //   * LimitExceededException
 22908  //   A limit has been exceeded.
 22909  //
 22910  //   * ThrottlingException
 22911  //   The rate exceeds the limit.
 22912  //
 22913  //   * UnauthorizedException
 22914  //   You are not authorized to perform this operation.
 22915  //
 22916  //   * ServiceUnavailableException
 22917  //   The service is temporarily unavailable.
 22918  //
 22919  //   * InternalFailureException
 22920  //   An unexpected error has occurred.
 22921  //
 22922  func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
 22923  	req, out := c.UpdateAuthorizerRequest(input)
 22924  	return out, req.Send()
 22925  }
 22926  
 22927  // UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
 22928  // the ability to pass a context and additional request options.
 22929  //
 22930  // See UpdateAuthorizer for details on how to use this API operation.
 22931  //
 22932  // The context must be non-nil and will be used for request cancellation. If
 22933  // the context is nil a panic will occur. In the future the SDK may create
 22934  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 22935  // for more information on using Contexts.
 22936  func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
 22937  	req, out := c.UpdateAuthorizerRequest(input)
 22938  	req.SetContext(ctx)
 22939  	req.ApplyOptions(opts...)
 22940  	return out, req.Send()
 22941  }
 22942  
 22943  const opUpdateBillingGroup = "UpdateBillingGroup"
 22944  
 22945  // UpdateBillingGroupRequest generates a "aws/request.Request" representing the
 22946  // client's request for the UpdateBillingGroup operation. The "output" return
 22947  // value will be populated with the request's response once the request completes
 22948  // successfully.
 22949  //
 22950  // Use "Send" method on the returned Request to send the API call to the service.
 22951  // the "output" return value is not valid until after Send returns without error.
 22952  //
 22953  // See UpdateBillingGroup for more information on using the UpdateBillingGroup
 22954  // API call, and error handling.
 22955  //
 22956  // This method is useful when you want to inject custom logic or configuration
 22957  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 22958  //
 22959  //
 22960  //    // Example sending a request using the UpdateBillingGroupRequest method.
 22961  //    req, resp := client.UpdateBillingGroupRequest(params)
 22962  //
 22963  //    err := req.Send()
 22964  //    if err == nil { // resp is now filled
 22965  //        fmt.Println(resp)
 22966  //    }
 22967  func (c *IoT) UpdateBillingGroupRequest(input *UpdateBillingGroupInput) (req *request.Request, output *UpdateBillingGroupOutput) {
 22968  	op := &request.Operation{
 22969  		Name:       opUpdateBillingGroup,
 22970  		HTTPMethod: "PATCH",
 22971  		HTTPPath:   "/billing-groups/{billingGroupName}",
 22972  	}
 22973  
 22974  	if input == nil {
 22975  		input = &UpdateBillingGroupInput{}
 22976  	}
 22977  
 22978  	output = &UpdateBillingGroupOutput{}
 22979  	req = c.newRequest(op, input, output)
 22980  	return
 22981  }
 22982  
 22983  // UpdateBillingGroup API operation for AWS IoT.
 22984  //
 22985  // Updates information about the billing group.
 22986  //
 22987  // Requires permission to access the UpdateBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 22988  // action.
 22989  //
 22990  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 22991  // with awserr.Error's Code and Message methods to get detailed information about
 22992  // the error.
 22993  //
 22994  // See the AWS API reference guide for AWS IoT's
 22995  // API operation UpdateBillingGroup for usage and error information.
 22996  //
 22997  // Returned Error Types:
 22998  //   * InvalidRequestException
 22999  //   The request is not valid.
 23000  //
 23001  //   * VersionConflictException
 23002  //   An exception thrown when the version of an entity specified with the expectedVersion
 23003  //   parameter does not match the latest version in the system.
 23004  //
 23005  //   * ThrottlingException
 23006  //   The rate exceeds the limit.
 23007  //
 23008  //   * InternalFailureException
 23009  //   An unexpected error has occurred.
 23010  //
 23011  //   * ResourceNotFoundException
 23012  //   The specified resource does not exist.
 23013  //
 23014  func (c *IoT) UpdateBillingGroup(input *UpdateBillingGroupInput) (*UpdateBillingGroupOutput, error) {
 23015  	req, out := c.UpdateBillingGroupRequest(input)
 23016  	return out, req.Send()
 23017  }
 23018  
 23019  // UpdateBillingGroupWithContext is the same as UpdateBillingGroup with the addition of
 23020  // the ability to pass a context and additional request options.
 23021  //
 23022  // See UpdateBillingGroup for details on how to use this API operation.
 23023  //
 23024  // The context must be non-nil and will be used for request cancellation. If
 23025  // the context is nil a panic will occur. In the future the SDK may create
 23026  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23027  // for more information on using Contexts.
 23028  func (c *IoT) UpdateBillingGroupWithContext(ctx aws.Context, input *UpdateBillingGroupInput, opts ...request.Option) (*UpdateBillingGroupOutput, error) {
 23029  	req, out := c.UpdateBillingGroupRequest(input)
 23030  	req.SetContext(ctx)
 23031  	req.ApplyOptions(opts...)
 23032  	return out, req.Send()
 23033  }
 23034  
 23035  const opUpdateCACertificate = "UpdateCACertificate"
 23036  
 23037  // UpdateCACertificateRequest generates a "aws/request.Request" representing the
 23038  // client's request for the UpdateCACertificate operation. The "output" return
 23039  // value will be populated with the request's response once the request completes
 23040  // successfully.
 23041  //
 23042  // Use "Send" method on the returned Request to send the API call to the service.
 23043  // the "output" return value is not valid until after Send returns without error.
 23044  //
 23045  // See UpdateCACertificate for more information on using the UpdateCACertificate
 23046  // API call, and error handling.
 23047  //
 23048  // This method is useful when you want to inject custom logic or configuration
 23049  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23050  //
 23051  //
 23052  //    // Example sending a request using the UpdateCACertificateRequest method.
 23053  //    req, resp := client.UpdateCACertificateRequest(params)
 23054  //
 23055  //    err := req.Send()
 23056  //    if err == nil { // resp is now filled
 23057  //        fmt.Println(resp)
 23058  //    }
 23059  func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
 23060  	op := &request.Operation{
 23061  		Name:       opUpdateCACertificate,
 23062  		HTTPMethod: "PUT",
 23063  		HTTPPath:   "/cacertificate/{caCertificateId}",
 23064  	}
 23065  
 23066  	if input == nil {
 23067  		input = &UpdateCACertificateInput{}
 23068  	}
 23069  
 23070  	output = &UpdateCACertificateOutput{}
 23071  	req = c.newRequest(op, input, output)
 23072  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 23073  	return
 23074  }
 23075  
 23076  // UpdateCACertificate API operation for AWS IoT.
 23077  //
 23078  // Updates a registered CA certificate.
 23079  //
 23080  // Requires permission to access the UpdateCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23081  // action.
 23082  //
 23083  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23084  // with awserr.Error's Code and Message methods to get detailed information about
 23085  // the error.
 23086  //
 23087  // See the AWS API reference guide for AWS IoT's
 23088  // API operation UpdateCACertificate for usage and error information.
 23089  //
 23090  // Returned Error Types:
 23091  //   * ResourceNotFoundException
 23092  //   The specified resource does not exist.
 23093  //
 23094  //   * InvalidRequestException
 23095  //   The request is not valid.
 23096  //
 23097  //   * ThrottlingException
 23098  //   The rate exceeds the limit.
 23099  //
 23100  //   * UnauthorizedException
 23101  //   You are not authorized to perform this operation.
 23102  //
 23103  //   * ServiceUnavailableException
 23104  //   The service is temporarily unavailable.
 23105  //
 23106  //   * InternalFailureException
 23107  //   An unexpected error has occurred.
 23108  //
 23109  func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
 23110  	req, out := c.UpdateCACertificateRequest(input)
 23111  	return out, req.Send()
 23112  }
 23113  
 23114  // UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
 23115  // the ability to pass a context and additional request options.
 23116  //
 23117  // See UpdateCACertificate for details on how to use this API operation.
 23118  //
 23119  // The context must be non-nil and will be used for request cancellation. If
 23120  // the context is nil a panic will occur. In the future the SDK may create
 23121  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23122  // for more information on using Contexts.
 23123  func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
 23124  	req, out := c.UpdateCACertificateRequest(input)
 23125  	req.SetContext(ctx)
 23126  	req.ApplyOptions(opts...)
 23127  	return out, req.Send()
 23128  }
 23129  
 23130  const opUpdateCertificate = "UpdateCertificate"
 23131  
 23132  // UpdateCertificateRequest generates a "aws/request.Request" representing the
 23133  // client's request for the UpdateCertificate operation. The "output" return
 23134  // value will be populated with the request's response once the request completes
 23135  // successfully.
 23136  //
 23137  // Use "Send" method on the returned Request to send the API call to the service.
 23138  // the "output" return value is not valid until after Send returns without error.
 23139  //
 23140  // See UpdateCertificate for more information on using the UpdateCertificate
 23141  // API call, and error handling.
 23142  //
 23143  // This method is useful when you want to inject custom logic or configuration
 23144  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23145  //
 23146  //
 23147  //    // Example sending a request using the UpdateCertificateRequest method.
 23148  //    req, resp := client.UpdateCertificateRequest(params)
 23149  //
 23150  //    err := req.Send()
 23151  //    if err == nil { // resp is now filled
 23152  //        fmt.Println(resp)
 23153  //    }
 23154  func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
 23155  	op := &request.Operation{
 23156  		Name:       opUpdateCertificate,
 23157  		HTTPMethod: "PUT",
 23158  		HTTPPath:   "/certificates/{certificateId}",
 23159  	}
 23160  
 23161  	if input == nil {
 23162  		input = &UpdateCertificateInput{}
 23163  	}
 23164  
 23165  	output = &UpdateCertificateOutput{}
 23166  	req = c.newRequest(op, input, output)
 23167  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 23168  	return
 23169  }
 23170  
 23171  // UpdateCertificate API operation for AWS IoT.
 23172  //
 23173  // Updates the status of the specified certificate. This operation is idempotent.
 23174  //
 23175  // Requires permission to access the UpdateCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23176  // action.
 23177  //
 23178  // Certificates must be in the ACTIVE state to authenticate devices that use
 23179  // a certificate to connect to IoT.
 23180  //
 23181  // Within a few minutes of updating a certificate from the ACTIVE state to any
 23182  // other state, IoT disconnects all devices that used that certificate to connect.
 23183  // Devices cannot use a certificate that is not in the ACTIVE state to reconnect.
 23184  //
 23185  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23186  // with awserr.Error's Code and Message methods to get detailed information about
 23187  // the error.
 23188  //
 23189  // See the AWS API reference guide for AWS IoT's
 23190  // API operation UpdateCertificate for usage and error information.
 23191  //
 23192  // Returned Error Types:
 23193  //   * ResourceNotFoundException
 23194  //   The specified resource does not exist.
 23195  //
 23196  //   * CertificateStateException
 23197  //   The certificate operation is not allowed.
 23198  //
 23199  //   * InvalidRequestException
 23200  //   The request is not valid.
 23201  //
 23202  //   * ThrottlingException
 23203  //   The rate exceeds the limit.
 23204  //
 23205  //   * UnauthorizedException
 23206  //   You are not authorized to perform this operation.
 23207  //
 23208  //   * ServiceUnavailableException
 23209  //   The service is temporarily unavailable.
 23210  //
 23211  //   * InternalFailureException
 23212  //   An unexpected error has occurred.
 23213  //
 23214  func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
 23215  	req, out := c.UpdateCertificateRequest(input)
 23216  	return out, req.Send()
 23217  }
 23218  
 23219  // UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
 23220  // the ability to pass a context and additional request options.
 23221  //
 23222  // See UpdateCertificate for details on how to use this API operation.
 23223  //
 23224  // The context must be non-nil and will be used for request cancellation. If
 23225  // the context is nil a panic will occur. In the future the SDK may create
 23226  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23227  // for more information on using Contexts.
 23228  func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
 23229  	req, out := c.UpdateCertificateRequest(input)
 23230  	req.SetContext(ctx)
 23231  	req.ApplyOptions(opts...)
 23232  	return out, req.Send()
 23233  }
 23234  
 23235  const opUpdateCustomMetric = "UpdateCustomMetric"
 23236  
 23237  // UpdateCustomMetricRequest generates a "aws/request.Request" representing the
 23238  // client's request for the UpdateCustomMetric operation. The "output" return
 23239  // value will be populated with the request's response once the request completes
 23240  // successfully.
 23241  //
 23242  // Use "Send" method on the returned Request to send the API call to the service.
 23243  // the "output" return value is not valid until after Send returns without error.
 23244  //
 23245  // See UpdateCustomMetric for more information on using the UpdateCustomMetric
 23246  // API call, and error handling.
 23247  //
 23248  // This method is useful when you want to inject custom logic or configuration
 23249  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23250  //
 23251  //
 23252  //    // Example sending a request using the UpdateCustomMetricRequest method.
 23253  //    req, resp := client.UpdateCustomMetricRequest(params)
 23254  //
 23255  //    err := req.Send()
 23256  //    if err == nil { // resp is now filled
 23257  //        fmt.Println(resp)
 23258  //    }
 23259  func (c *IoT) UpdateCustomMetricRequest(input *UpdateCustomMetricInput) (req *request.Request, output *UpdateCustomMetricOutput) {
 23260  	op := &request.Operation{
 23261  		Name:       opUpdateCustomMetric,
 23262  		HTTPMethod: "PATCH",
 23263  		HTTPPath:   "/custom-metric/{metricName}",
 23264  	}
 23265  
 23266  	if input == nil {
 23267  		input = &UpdateCustomMetricInput{}
 23268  	}
 23269  
 23270  	output = &UpdateCustomMetricOutput{}
 23271  	req = c.newRequest(op, input, output)
 23272  	return
 23273  }
 23274  
 23275  // UpdateCustomMetric API operation for AWS IoT.
 23276  //
 23277  // Updates a Device Defender detect custom metric.
 23278  //
 23279  // Requires permission to access the UpdateCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23280  // action.
 23281  //
 23282  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23283  // with awserr.Error's Code and Message methods to get detailed information about
 23284  // the error.
 23285  //
 23286  // See the AWS API reference guide for AWS IoT's
 23287  // API operation UpdateCustomMetric for usage and error information.
 23288  //
 23289  // Returned Error Types:
 23290  //   * InvalidRequestException
 23291  //   The request is not valid.
 23292  //
 23293  //   * ResourceNotFoundException
 23294  //   The specified resource does not exist.
 23295  //
 23296  //   * ThrottlingException
 23297  //   The rate exceeds the limit.
 23298  //
 23299  //   * InternalFailureException
 23300  //   An unexpected error has occurred.
 23301  //
 23302  func (c *IoT) UpdateCustomMetric(input *UpdateCustomMetricInput) (*UpdateCustomMetricOutput, error) {
 23303  	req, out := c.UpdateCustomMetricRequest(input)
 23304  	return out, req.Send()
 23305  }
 23306  
 23307  // UpdateCustomMetricWithContext is the same as UpdateCustomMetric with the addition of
 23308  // the ability to pass a context and additional request options.
 23309  //
 23310  // See UpdateCustomMetric for details on how to use this API operation.
 23311  //
 23312  // The context must be non-nil and will be used for request cancellation. If
 23313  // the context is nil a panic will occur. In the future the SDK may create
 23314  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23315  // for more information on using Contexts.
 23316  func (c *IoT) UpdateCustomMetricWithContext(ctx aws.Context, input *UpdateCustomMetricInput, opts ...request.Option) (*UpdateCustomMetricOutput, error) {
 23317  	req, out := c.UpdateCustomMetricRequest(input)
 23318  	req.SetContext(ctx)
 23319  	req.ApplyOptions(opts...)
 23320  	return out, req.Send()
 23321  }
 23322  
 23323  const opUpdateDimension = "UpdateDimension"
 23324  
 23325  // UpdateDimensionRequest generates a "aws/request.Request" representing the
 23326  // client's request for the UpdateDimension operation. The "output" return
 23327  // value will be populated with the request's response once the request completes
 23328  // successfully.
 23329  //
 23330  // Use "Send" method on the returned Request to send the API call to the service.
 23331  // the "output" return value is not valid until after Send returns without error.
 23332  //
 23333  // See UpdateDimension for more information on using the UpdateDimension
 23334  // API call, and error handling.
 23335  //
 23336  // This method is useful when you want to inject custom logic or configuration
 23337  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23338  //
 23339  //
 23340  //    // Example sending a request using the UpdateDimensionRequest method.
 23341  //    req, resp := client.UpdateDimensionRequest(params)
 23342  //
 23343  //    err := req.Send()
 23344  //    if err == nil { // resp is now filled
 23345  //        fmt.Println(resp)
 23346  //    }
 23347  func (c *IoT) UpdateDimensionRequest(input *UpdateDimensionInput) (req *request.Request, output *UpdateDimensionOutput) {
 23348  	op := &request.Operation{
 23349  		Name:       opUpdateDimension,
 23350  		HTTPMethod: "PATCH",
 23351  		HTTPPath:   "/dimensions/{name}",
 23352  	}
 23353  
 23354  	if input == nil {
 23355  		input = &UpdateDimensionInput{}
 23356  	}
 23357  
 23358  	output = &UpdateDimensionOutput{}
 23359  	req = c.newRequest(op, input, output)
 23360  	return
 23361  }
 23362  
 23363  // UpdateDimension API operation for AWS IoT.
 23364  //
 23365  // Updates the definition for a dimension. You cannot change the type of a dimension
 23366  // after it is created (you can delete it and recreate it).
 23367  //
 23368  // Requires permission to access the UpdateDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23369  // action.
 23370  //
 23371  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23372  // with awserr.Error's Code and Message methods to get detailed information about
 23373  // the error.
 23374  //
 23375  // See the AWS API reference guide for AWS IoT's
 23376  // API operation UpdateDimension for usage and error information.
 23377  //
 23378  // Returned Error Types:
 23379  //   * InternalFailureException
 23380  //   An unexpected error has occurred.
 23381  //
 23382  //   * InvalidRequestException
 23383  //   The request is not valid.
 23384  //
 23385  //   * ResourceNotFoundException
 23386  //   The specified resource does not exist.
 23387  //
 23388  //   * ThrottlingException
 23389  //   The rate exceeds the limit.
 23390  //
 23391  func (c *IoT) UpdateDimension(input *UpdateDimensionInput) (*UpdateDimensionOutput, error) {
 23392  	req, out := c.UpdateDimensionRequest(input)
 23393  	return out, req.Send()
 23394  }
 23395  
 23396  // UpdateDimensionWithContext is the same as UpdateDimension with the addition of
 23397  // the ability to pass a context and additional request options.
 23398  //
 23399  // See UpdateDimension for details on how to use this API operation.
 23400  //
 23401  // The context must be non-nil and will be used for request cancellation. If
 23402  // the context is nil a panic will occur. In the future the SDK may create
 23403  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23404  // for more information on using Contexts.
 23405  func (c *IoT) UpdateDimensionWithContext(ctx aws.Context, input *UpdateDimensionInput, opts ...request.Option) (*UpdateDimensionOutput, error) {
 23406  	req, out := c.UpdateDimensionRequest(input)
 23407  	req.SetContext(ctx)
 23408  	req.ApplyOptions(opts...)
 23409  	return out, req.Send()
 23410  }
 23411  
 23412  const opUpdateDomainConfiguration = "UpdateDomainConfiguration"
 23413  
 23414  // UpdateDomainConfigurationRequest generates a "aws/request.Request" representing the
 23415  // client's request for the UpdateDomainConfiguration operation. The "output" return
 23416  // value will be populated with the request's response once the request completes
 23417  // successfully.
 23418  //
 23419  // Use "Send" method on the returned Request to send the API call to the service.
 23420  // the "output" return value is not valid until after Send returns without error.
 23421  //
 23422  // See UpdateDomainConfiguration for more information on using the UpdateDomainConfiguration
 23423  // API call, and error handling.
 23424  //
 23425  // This method is useful when you want to inject custom logic or configuration
 23426  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23427  //
 23428  //
 23429  //    // Example sending a request using the UpdateDomainConfigurationRequest method.
 23430  //    req, resp := client.UpdateDomainConfigurationRequest(params)
 23431  //
 23432  //    err := req.Send()
 23433  //    if err == nil { // resp is now filled
 23434  //        fmt.Println(resp)
 23435  //    }
 23436  func (c *IoT) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) (req *request.Request, output *UpdateDomainConfigurationOutput) {
 23437  	op := &request.Operation{
 23438  		Name:       opUpdateDomainConfiguration,
 23439  		HTTPMethod: "PUT",
 23440  		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
 23441  	}
 23442  
 23443  	if input == nil {
 23444  		input = &UpdateDomainConfigurationInput{}
 23445  	}
 23446  
 23447  	output = &UpdateDomainConfigurationOutput{}
 23448  	req = c.newRequest(op, input, output)
 23449  	return
 23450  }
 23451  
 23452  // UpdateDomainConfiguration API operation for AWS IoT.
 23453  //
 23454  // Updates values stored in the domain configuration. Domain configurations
 23455  // for default endpoints can't be updated.
 23456  //
 23457  // Requires permission to access the UpdateDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23458  // action.
 23459  //
 23460  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23461  // with awserr.Error's Code and Message methods to get detailed information about
 23462  // the error.
 23463  //
 23464  // See the AWS API reference guide for AWS IoT's
 23465  // API operation UpdateDomainConfiguration for usage and error information.
 23466  //
 23467  // Returned Error Types:
 23468  //   * ResourceNotFoundException
 23469  //   The specified resource does not exist.
 23470  //
 23471  //   * CertificateValidationException
 23472  //   The certificate is invalid.
 23473  //
 23474  //   * InvalidRequestException
 23475  //   The request is not valid.
 23476  //
 23477  //   * ThrottlingException
 23478  //   The rate exceeds the limit.
 23479  //
 23480  //   * UnauthorizedException
 23481  //   You are not authorized to perform this operation.
 23482  //
 23483  //   * ServiceUnavailableException
 23484  //   The service is temporarily unavailable.
 23485  //
 23486  //   * InternalFailureException
 23487  //   An unexpected error has occurred.
 23488  //
 23489  func (c *IoT) UpdateDomainConfiguration(input *UpdateDomainConfigurationInput) (*UpdateDomainConfigurationOutput, error) {
 23490  	req, out := c.UpdateDomainConfigurationRequest(input)
 23491  	return out, req.Send()
 23492  }
 23493  
 23494  // UpdateDomainConfigurationWithContext is the same as UpdateDomainConfiguration with the addition of
 23495  // the ability to pass a context and additional request options.
 23496  //
 23497  // See UpdateDomainConfiguration for details on how to use this API operation.
 23498  //
 23499  // The context must be non-nil and will be used for request cancellation. If
 23500  // the context is nil a panic will occur. In the future the SDK may create
 23501  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23502  // for more information on using Contexts.
 23503  func (c *IoT) UpdateDomainConfigurationWithContext(ctx aws.Context, input *UpdateDomainConfigurationInput, opts ...request.Option) (*UpdateDomainConfigurationOutput, error) {
 23504  	req, out := c.UpdateDomainConfigurationRequest(input)
 23505  	req.SetContext(ctx)
 23506  	req.ApplyOptions(opts...)
 23507  	return out, req.Send()
 23508  }
 23509  
 23510  const opUpdateDynamicThingGroup = "UpdateDynamicThingGroup"
 23511  
 23512  // UpdateDynamicThingGroupRequest generates a "aws/request.Request" representing the
 23513  // client's request for the UpdateDynamicThingGroup operation. The "output" return
 23514  // value will be populated with the request's response once the request completes
 23515  // successfully.
 23516  //
 23517  // Use "Send" method on the returned Request to send the API call to the service.
 23518  // the "output" return value is not valid until after Send returns without error.
 23519  //
 23520  // See UpdateDynamicThingGroup for more information on using the UpdateDynamicThingGroup
 23521  // API call, and error handling.
 23522  //
 23523  // This method is useful when you want to inject custom logic or configuration
 23524  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23525  //
 23526  //
 23527  //    // Example sending a request using the UpdateDynamicThingGroupRequest method.
 23528  //    req, resp := client.UpdateDynamicThingGroupRequest(params)
 23529  //
 23530  //    err := req.Send()
 23531  //    if err == nil { // resp is now filled
 23532  //        fmt.Println(resp)
 23533  //    }
 23534  func (c *IoT) UpdateDynamicThingGroupRequest(input *UpdateDynamicThingGroupInput) (req *request.Request, output *UpdateDynamicThingGroupOutput) {
 23535  	op := &request.Operation{
 23536  		Name:       opUpdateDynamicThingGroup,
 23537  		HTTPMethod: "PATCH",
 23538  		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
 23539  	}
 23540  
 23541  	if input == nil {
 23542  		input = &UpdateDynamicThingGroupInput{}
 23543  	}
 23544  
 23545  	output = &UpdateDynamicThingGroupOutput{}
 23546  	req = c.newRequest(op, input, output)
 23547  	return
 23548  }
 23549  
 23550  // UpdateDynamicThingGroup API operation for AWS IoT.
 23551  //
 23552  // Updates a dynamic thing group.
 23553  //
 23554  // Requires permission to access the UpdateDynamicThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23555  // action.
 23556  //
 23557  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23558  // with awserr.Error's Code and Message methods to get detailed information about
 23559  // the error.
 23560  //
 23561  // See the AWS API reference guide for AWS IoT's
 23562  // API operation UpdateDynamicThingGroup for usage and error information.
 23563  //
 23564  // Returned Error Types:
 23565  //   * InvalidRequestException
 23566  //   The request is not valid.
 23567  //
 23568  //   * VersionConflictException
 23569  //   An exception thrown when the version of an entity specified with the expectedVersion
 23570  //   parameter does not match the latest version in the system.
 23571  //
 23572  //   * ThrottlingException
 23573  //   The rate exceeds the limit.
 23574  //
 23575  //   * InternalFailureException
 23576  //   An unexpected error has occurred.
 23577  //
 23578  //   * ResourceNotFoundException
 23579  //   The specified resource does not exist.
 23580  //
 23581  //   * InvalidQueryException
 23582  //   The query is invalid.
 23583  //
 23584  func (c *IoT) UpdateDynamicThingGroup(input *UpdateDynamicThingGroupInput) (*UpdateDynamicThingGroupOutput, error) {
 23585  	req, out := c.UpdateDynamicThingGroupRequest(input)
 23586  	return out, req.Send()
 23587  }
 23588  
 23589  // UpdateDynamicThingGroupWithContext is the same as UpdateDynamicThingGroup with the addition of
 23590  // the ability to pass a context and additional request options.
 23591  //
 23592  // See UpdateDynamicThingGroup for details on how to use this API operation.
 23593  //
 23594  // The context must be non-nil and will be used for request cancellation. If
 23595  // the context is nil a panic will occur. In the future the SDK may create
 23596  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23597  // for more information on using Contexts.
 23598  func (c *IoT) UpdateDynamicThingGroupWithContext(ctx aws.Context, input *UpdateDynamicThingGroupInput, opts ...request.Option) (*UpdateDynamicThingGroupOutput, error) {
 23599  	req, out := c.UpdateDynamicThingGroupRequest(input)
 23600  	req.SetContext(ctx)
 23601  	req.ApplyOptions(opts...)
 23602  	return out, req.Send()
 23603  }
 23604  
 23605  const opUpdateEventConfigurations = "UpdateEventConfigurations"
 23606  
 23607  // UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
 23608  // client's request for the UpdateEventConfigurations operation. The "output" return
 23609  // value will be populated with the request's response once the request completes
 23610  // successfully.
 23611  //
 23612  // Use "Send" method on the returned Request to send the API call to the service.
 23613  // the "output" return value is not valid until after Send returns without error.
 23614  //
 23615  // See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
 23616  // API call, and error handling.
 23617  //
 23618  // This method is useful when you want to inject custom logic or configuration
 23619  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23620  //
 23621  //
 23622  //    // Example sending a request using the UpdateEventConfigurationsRequest method.
 23623  //    req, resp := client.UpdateEventConfigurationsRequest(params)
 23624  //
 23625  //    err := req.Send()
 23626  //    if err == nil { // resp is now filled
 23627  //        fmt.Println(resp)
 23628  //    }
 23629  func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
 23630  	op := &request.Operation{
 23631  		Name:       opUpdateEventConfigurations,
 23632  		HTTPMethod: "PATCH",
 23633  		HTTPPath:   "/event-configurations",
 23634  	}
 23635  
 23636  	if input == nil {
 23637  		input = &UpdateEventConfigurationsInput{}
 23638  	}
 23639  
 23640  	output = &UpdateEventConfigurationsOutput{}
 23641  	req = c.newRequest(op, input, output)
 23642  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 23643  	return
 23644  }
 23645  
 23646  // UpdateEventConfigurations API operation for AWS IoT.
 23647  //
 23648  // Updates the event configurations.
 23649  //
 23650  // Requires permission to access the UpdateEventConfigurations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23651  // action.
 23652  //
 23653  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23654  // with awserr.Error's Code and Message methods to get detailed information about
 23655  // the error.
 23656  //
 23657  // See the AWS API reference guide for AWS IoT's
 23658  // API operation UpdateEventConfigurations for usage and error information.
 23659  //
 23660  // Returned Error Types:
 23661  //   * InvalidRequestException
 23662  //   The request is not valid.
 23663  //
 23664  //   * InternalFailureException
 23665  //   An unexpected error has occurred.
 23666  //
 23667  //   * ThrottlingException
 23668  //   The rate exceeds the limit.
 23669  //
 23670  func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
 23671  	req, out := c.UpdateEventConfigurationsRequest(input)
 23672  	return out, req.Send()
 23673  }
 23674  
 23675  // UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
 23676  // the ability to pass a context and additional request options.
 23677  //
 23678  // See UpdateEventConfigurations for details on how to use this API operation.
 23679  //
 23680  // The context must be non-nil and will be used for request cancellation. If
 23681  // the context is nil a panic will occur. In the future the SDK may create
 23682  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23683  // for more information on using Contexts.
 23684  func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
 23685  	req, out := c.UpdateEventConfigurationsRequest(input)
 23686  	req.SetContext(ctx)
 23687  	req.ApplyOptions(opts...)
 23688  	return out, req.Send()
 23689  }
 23690  
 23691  const opUpdateFleetMetric = "UpdateFleetMetric"
 23692  
 23693  // UpdateFleetMetricRequest generates a "aws/request.Request" representing the
 23694  // client's request for the UpdateFleetMetric operation. The "output" return
 23695  // value will be populated with the request's response once the request completes
 23696  // successfully.
 23697  //
 23698  // Use "Send" method on the returned Request to send the API call to the service.
 23699  // the "output" return value is not valid until after Send returns without error.
 23700  //
 23701  // See UpdateFleetMetric for more information on using the UpdateFleetMetric
 23702  // API call, and error handling.
 23703  //
 23704  // This method is useful when you want to inject custom logic or configuration
 23705  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23706  //
 23707  //
 23708  //    // Example sending a request using the UpdateFleetMetricRequest method.
 23709  //    req, resp := client.UpdateFleetMetricRequest(params)
 23710  //
 23711  //    err := req.Send()
 23712  //    if err == nil { // resp is now filled
 23713  //        fmt.Println(resp)
 23714  //    }
 23715  func (c *IoT) UpdateFleetMetricRequest(input *UpdateFleetMetricInput) (req *request.Request, output *UpdateFleetMetricOutput) {
 23716  	op := &request.Operation{
 23717  		Name:       opUpdateFleetMetric,
 23718  		HTTPMethod: "PATCH",
 23719  		HTTPPath:   "/fleet-metric/{metricName}",
 23720  	}
 23721  
 23722  	if input == nil {
 23723  		input = &UpdateFleetMetricInput{}
 23724  	}
 23725  
 23726  	output = &UpdateFleetMetricOutput{}
 23727  	req = c.newRequest(op, input, output)
 23728  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 23729  	return
 23730  }
 23731  
 23732  // UpdateFleetMetric API operation for AWS IoT.
 23733  //
 23734  // Updates the data for a fleet metric.
 23735  //
 23736  // Requires permission to access the UpdateFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23737  // action.
 23738  //
 23739  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23740  // with awserr.Error's Code and Message methods to get detailed information about
 23741  // the error.
 23742  //
 23743  // See the AWS API reference guide for AWS IoT's
 23744  // API operation UpdateFleetMetric for usage and error information.
 23745  //
 23746  // Returned Error Types:
 23747  //   * InvalidRequestException
 23748  //   The request is not valid.
 23749  //
 23750  //   * ThrottlingException
 23751  //   The rate exceeds the limit.
 23752  //
 23753  //   * UnauthorizedException
 23754  //   You are not authorized to perform this operation.
 23755  //
 23756  //   * ServiceUnavailableException
 23757  //   The service is temporarily unavailable.
 23758  //
 23759  //   * InternalFailureException
 23760  //   An unexpected error has occurred.
 23761  //
 23762  //   * ResourceNotFoundException
 23763  //   The specified resource does not exist.
 23764  //
 23765  //   * InvalidQueryException
 23766  //   The query is invalid.
 23767  //
 23768  //   * InvalidAggregationException
 23769  //   The aggregation is invalid.
 23770  //
 23771  //   * VersionConflictException
 23772  //   An exception thrown when the version of an entity specified with the expectedVersion
 23773  //   parameter does not match the latest version in the system.
 23774  //
 23775  //   * IndexNotReadyException
 23776  //   The index is not ready.
 23777  //
 23778  func (c *IoT) UpdateFleetMetric(input *UpdateFleetMetricInput) (*UpdateFleetMetricOutput, error) {
 23779  	req, out := c.UpdateFleetMetricRequest(input)
 23780  	return out, req.Send()
 23781  }
 23782  
 23783  // UpdateFleetMetricWithContext is the same as UpdateFleetMetric with the addition of
 23784  // the ability to pass a context and additional request options.
 23785  //
 23786  // See UpdateFleetMetric for details on how to use this API operation.
 23787  //
 23788  // The context must be non-nil and will be used for request cancellation. If
 23789  // the context is nil a panic will occur. In the future the SDK may create
 23790  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23791  // for more information on using Contexts.
 23792  func (c *IoT) UpdateFleetMetricWithContext(ctx aws.Context, input *UpdateFleetMetricInput, opts ...request.Option) (*UpdateFleetMetricOutput, error) {
 23793  	req, out := c.UpdateFleetMetricRequest(input)
 23794  	req.SetContext(ctx)
 23795  	req.ApplyOptions(opts...)
 23796  	return out, req.Send()
 23797  }
 23798  
 23799  const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
 23800  
 23801  // UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
 23802  // client's request for the UpdateIndexingConfiguration operation. The "output" return
 23803  // value will be populated with the request's response once the request completes
 23804  // successfully.
 23805  //
 23806  // Use "Send" method on the returned Request to send the API call to the service.
 23807  // the "output" return value is not valid until after Send returns without error.
 23808  //
 23809  // See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
 23810  // API call, and error handling.
 23811  //
 23812  // This method is useful when you want to inject custom logic or configuration
 23813  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23814  //
 23815  //
 23816  //    // Example sending a request using the UpdateIndexingConfigurationRequest method.
 23817  //    req, resp := client.UpdateIndexingConfigurationRequest(params)
 23818  //
 23819  //    err := req.Send()
 23820  //    if err == nil { // resp is now filled
 23821  //        fmt.Println(resp)
 23822  //    }
 23823  func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
 23824  	op := &request.Operation{
 23825  		Name:       opUpdateIndexingConfiguration,
 23826  		HTTPMethod: "POST",
 23827  		HTTPPath:   "/indexing/config",
 23828  	}
 23829  
 23830  	if input == nil {
 23831  		input = &UpdateIndexingConfigurationInput{}
 23832  	}
 23833  
 23834  	output = &UpdateIndexingConfigurationOutput{}
 23835  	req = c.newRequest(op, input, output)
 23836  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 23837  	return
 23838  }
 23839  
 23840  // UpdateIndexingConfiguration API operation for AWS IoT.
 23841  //
 23842  // Updates the search configuration.
 23843  //
 23844  // Requires permission to access the UpdateIndexingConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23845  // action.
 23846  //
 23847  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23848  // with awserr.Error's Code and Message methods to get detailed information about
 23849  // the error.
 23850  //
 23851  // See the AWS API reference guide for AWS IoT's
 23852  // API operation UpdateIndexingConfiguration for usage and error information.
 23853  //
 23854  // Returned Error Types:
 23855  //   * InvalidRequestException
 23856  //   The request is not valid.
 23857  //
 23858  //   * ThrottlingException
 23859  //   The rate exceeds the limit.
 23860  //
 23861  //   * UnauthorizedException
 23862  //   You are not authorized to perform this operation.
 23863  //
 23864  //   * ServiceUnavailableException
 23865  //   The service is temporarily unavailable.
 23866  //
 23867  //   * InternalFailureException
 23868  //   An unexpected error has occurred.
 23869  //
 23870  func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
 23871  	req, out := c.UpdateIndexingConfigurationRequest(input)
 23872  	return out, req.Send()
 23873  }
 23874  
 23875  // UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
 23876  // the ability to pass a context and additional request options.
 23877  //
 23878  // See UpdateIndexingConfiguration for details on how to use this API operation.
 23879  //
 23880  // The context must be non-nil and will be used for request cancellation. If
 23881  // the context is nil a panic will occur. In the future the SDK may create
 23882  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23883  // for more information on using Contexts.
 23884  func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
 23885  	req, out := c.UpdateIndexingConfigurationRequest(input)
 23886  	req.SetContext(ctx)
 23887  	req.ApplyOptions(opts...)
 23888  	return out, req.Send()
 23889  }
 23890  
 23891  const opUpdateJob = "UpdateJob"
 23892  
 23893  // UpdateJobRequest generates a "aws/request.Request" representing the
 23894  // client's request for the UpdateJob operation. The "output" return
 23895  // value will be populated with the request's response once the request completes
 23896  // successfully.
 23897  //
 23898  // Use "Send" method on the returned Request to send the API call to the service.
 23899  // the "output" return value is not valid until after Send returns without error.
 23900  //
 23901  // See UpdateJob for more information on using the UpdateJob
 23902  // API call, and error handling.
 23903  //
 23904  // This method is useful when you want to inject custom logic or configuration
 23905  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23906  //
 23907  //
 23908  //    // Example sending a request using the UpdateJobRequest method.
 23909  //    req, resp := client.UpdateJobRequest(params)
 23910  //
 23911  //    err := req.Send()
 23912  //    if err == nil { // resp is now filled
 23913  //        fmt.Println(resp)
 23914  //    }
 23915  func (c *IoT) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
 23916  	op := &request.Operation{
 23917  		Name:       opUpdateJob,
 23918  		HTTPMethod: "PATCH",
 23919  		HTTPPath:   "/jobs/{jobId}",
 23920  	}
 23921  
 23922  	if input == nil {
 23923  		input = &UpdateJobInput{}
 23924  	}
 23925  
 23926  	output = &UpdateJobOutput{}
 23927  	req = c.newRequest(op, input, output)
 23928  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 23929  	return
 23930  }
 23931  
 23932  // UpdateJob API operation for AWS IoT.
 23933  //
 23934  // Updates supported fields of the specified job.
 23935  //
 23936  // Requires permission to access the UpdateJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 23937  // action.
 23938  //
 23939  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 23940  // with awserr.Error's Code and Message methods to get detailed information about
 23941  // the error.
 23942  //
 23943  // See the AWS API reference guide for AWS IoT's
 23944  // API operation UpdateJob for usage and error information.
 23945  //
 23946  // Returned Error Types:
 23947  //   * InvalidRequestException
 23948  //   The request is not valid.
 23949  //
 23950  //   * ResourceNotFoundException
 23951  //   The specified resource does not exist.
 23952  //
 23953  //   * ThrottlingException
 23954  //   The rate exceeds the limit.
 23955  //
 23956  //   * ServiceUnavailableException
 23957  //   The service is temporarily unavailable.
 23958  //
 23959  func (c *IoT) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
 23960  	req, out := c.UpdateJobRequest(input)
 23961  	return out, req.Send()
 23962  }
 23963  
 23964  // UpdateJobWithContext is the same as UpdateJob with the addition of
 23965  // the ability to pass a context and additional request options.
 23966  //
 23967  // See UpdateJob for details on how to use this API operation.
 23968  //
 23969  // The context must be non-nil and will be used for request cancellation. If
 23970  // the context is nil a panic will occur. In the future the SDK may create
 23971  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 23972  // for more information on using Contexts.
 23973  func (c *IoT) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
 23974  	req, out := c.UpdateJobRequest(input)
 23975  	req.SetContext(ctx)
 23976  	req.ApplyOptions(opts...)
 23977  	return out, req.Send()
 23978  }
 23979  
 23980  const opUpdateMitigationAction = "UpdateMitigationAction"
 23981  
 23982  // UpdateMitigationActionRequest generates a "aws/request.Request" representing the
 23983  // client's request for the UpdateMitigationAction operation. The "output" return
 23984  // value will be populated with the request's response once the request completes
 23985  // successfully.
 23986  //
 23987  // Use "Send" method on the returned Request to send the API call to the service.
 23988  // the "output" return value is not valid until after Send returns without error.
 23989  //
 23990  // See UpdateMitigationAction for more information on using the UpdateMitigationAction
 23991  // API call, and error handling.
 23992  //
 23993  // This method is useful when you want to inject custom logic or configuration
 23994  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 23995  //
 23996  //
 23997  //    // Example sending a request using the UpdateMitigationActionRequest method.
 23998  //    req, resp := client.UpdateMitigationActionRequest(params)
 23999  //
 24000  //    err := req.Send()
 24001  //    if err == nil { // resp is now filled
 24002  //        fmt.Println(resp)
 24003  //    }
 24004  func (c *IoT) UpdateMitigationActionRequest(input *UpdateMitigationActionInput) (req *request.Request, output *UpdateMitigationActionOutput) {
 24005  	op := &request.Operation{
 24006  		Name:       opUpdateMitigationAction,
 24007  		HTTPMethod: "PATCH",
 24008  		HTTPPath:   "/mitigationactions/actions/{actionName}",
 24009  	}
 24010  
 24011  	if input == nil {
 24012  		input = &UpdateMitigationActionInput{}
 24013  	}
 24014  
 24015  	output = &UpdateMitigationActionOutput{}
 24016  	req = c.newRequest(op, input, output)
 24017  	return
 24018  }
 24019  
 24020  // UpdateMitigationAction API operation for AWS IoT.
 24021  //
 24022  // Updates the definition for the specified mitigation action.
 24023  //
 24024  // Requires permission to access the UpdateMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24025  // action.
 24026  //
 24027  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24028  // with awserr.Error's Code and Message methods to get detailed information about
 24029  // the error.
 24030  //
 24031  // See the AWS API reference guide for AWS IoT's
 24032  // API operation UpdateMitigationAction for usage and error information.
 24033  //
 24034  // Returned Error Types:
 24035  //   * InvalidRequestException
 24036  //   The request is not valid.
 24037  //
 24038  //   * ResourceNotFoundException
 24039  //   The specified resource does not exist.
 24040  //
 24041  //   * ThrottlingException
 24042  //   The rate exceeds the limit.
 24043  //
 24044  //   * InternalFailureException
 24045  //   An unexpected error has occurred.
 24046  //
 24047  func (c *IoT) UpdateMitigationAction(input *UpdateMitigationActionInput) (*UpdateMitigationActionOutput, error) {
 24048  	req, out := c.UpdateMitigationActionRequest(input)
 24049  	return out, req.Send()
 24050  }
 24051  
 24052  // UpdateMitigationActionWithContext is the same as UpdateMitigationAction with the addition of
 24053  // the ability to pass a context and additional request options.
 24054  //
 24055  // See UpdateMitigationAction for details on how to use this API operation.
 24056  //
 24057  // The context must be non-nil and will be used for request cancellation. If
 24058  // the context is nil a panic will occur. In the future the SDK may create
 24059  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24060  // for more information on using Contexts.
 24061  func (c *IoT) UpdateMitigationActionWithContext(ctx aws.Context, input *UpdateMitigationActionInput, opts ...request.Option) (*UpdateMitigationActionOutput, error) {
 24062  	req, out := c.UpdateMitigationActionRequest(input)
 24063  	req.SetContext(ctx)
 24064  	req.ApplyOptions(opts...)
 24065  	return out, req.Send()
 24066  }
 24067  
 24068  const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate"
 24069  
 24070  // UpdateProvisioningTemplateRequest generates a "aws/request.Request" representing the
 24071  // client's request for the UpdateProvisioningTemplate operation. The "output" return
 24072  // value will be populated with the request's response once the request completes
 24073  // successfully.
 24074  //
 24075  // Use "Send" method on the returned Request to send the API call to the service.
 24076  // the "output" return value is not valid until after Send returns without error.
 24077  //
 24078  // See UpdateProvisioningTemplate for more information on using the UpdateProvisioningTemplate
 24079  // API call, and error handling.
 24080  //
 24081  // This method is useful when you want to inject custom logic or configuration
 24082  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24083  //
 24084  //
 24085  //    // Example sending a request using the UpdateProvisioningTemplateRequest method.
 24086  //    req, resp := client.UpdateProvisioningTemplateRequest(params)
 24087  //
 24088  //    err := req.Send()
 24089  //    if err == nil { // resp is now filled
 24090  //        fmt.Println(resp)
 24091  //    }
 24092  func (c *IoT) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) (req *request.Request, output *UpdateProvisioningTemplateOutput) {
 24093  	op := &request.Operation{
 24094  		Name:       opUpdateProvisioningTemplate,
 24095  		HTTPMethod: "PATCH",
 24096  		HTTPPath:   "/provisioning-templates/{templateName}",
 24097  	}
 24098  
 24099  	if input == nil {
 24100  		input = &UpdateProvisioningTemplateInput{}
 24101  	}
 24102  
 24103  	output = &UpdateProvisioningTemplateOutput{}
 24104  	req = c.newRequest(op, input, output)
 24105  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 24106  	return
 24107  }
 24108  
 24109  // UpdateProvisioningTemplate API operation for AWS IoT.
 24110  //
 24111  // Updates a fleet provisioning template.
 24112  //
 24113  // Requires permission to access the UpdateProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24114  // action.
 24115  //
 24116  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24117  // with awserr.Error's Code and Message methods to get detailed information about
 24118  // the error.
 24119  //
 24120  // See the AWS API reference guide for AWS IoT's
 24121  // API operation UpdateProvisioningTemplate for usage and error information.
 24122  //
 24123  // Returned Error Types:
 24124  //   * InternalFailureException
 24125  //   An unexpected error has occurred.
 24126  //
 24127  //   * InvalidRequestException
 24128  //   The request is not valid.
 24129  //
 24130  //   * ResourceNotFoundException
 24131  //   The specified resource does not exist.
 24132  //
 24133  //   * UnauthorizedException
 24134  //   You are not authorized to perform this operation.
 24135  //
 24136  //   * ConflictingResourceUpdateException
 24137  //   A conflicting resource update exception. This exception is thrown when two
 24138  //   pending updates cause a conflict.
 24139  //
 24140  func (c *IoT) UpdateProvisioningTemplate(input *UpdateProvisioningTemplateInput) (*UpdateProvisioningTemplateOutput, error) {
 24141  	req, out := c.UpdateProvisioningTemplateRequest(input)
 24142  	return out, req.Send()
 24143  }
 24144  
 24145  // UpdateProvisioningTemplateWithContext is the same as UpdateProvisioningTemplate with the addition of
 24146  // the ability to pass a context and additional request options.
 24147  //
 24148  // See UpdateProvisioningTemplate for details on how to use this API operation.
 24149  //
 24150  // The context must be non-nil and will be used for request cancellation. If
 24151  // the context is nil a panic will occur. In the future the SDK may create
 24152  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24153  // for more information on using Contexts.
 24154  func (c *IoT) UpdateProvisioningTemplateWithContext(ctx aws.Context, input *UpdateProvisioningTemplateInput, opts ...request.Option) (*UpdateProvisioningTemplateOutput, error) {
 24155  	req, out := c.UpdateProvisioningTemplateRequest(input)
 24156  	req.SetContext(ctx)
 24157  	req.ApplyOptions(opts...)
 24158  	return out, req.Send()
 24159  }
 24160  
 24161  const opUpdateRoleAlias = "UpdateRoleAlias"
 24162  
 24163  // UpdateRoleAliasRequest generates a "aws/request.Request" representing the
 24164  // client's request for the UpdateRoleAlias operation. The "output" return
 24165  // value will be populated with the request's response once the request completes
 24166  // successfully.
 24167  //
 24168  // Use "Send" method on the returned Request to send the API call to the service.
 24169  // the "output" return value is not valid until after Send returns without error.
 24170  //
 24171  // See UpdateRoleAlias for more information on using the UpdateRoleAlias
 24172  // API call, and error handling.
 24173  //
 24174  // This method is useful when you want to inject custom logic or configuration
 24175  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24176  //
 24177  //
 24178  //    // Example sending a request using the UpdateRoleAliasRequest method.
 24179  //    req, resp := client.UpdateRoleAliasRequest(params)
 24180  //
 24181  //    err := req.Send()
 24182  //    if err == nil { // resp is now filled
 24183  //        fmt.Println(resp)
 24184  //    }
 24185  func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
 24186  	op := &request.Operation{
 24187  		Name:       opUpdateRoleAlias,
 24188  		HTTPMethod: "PUT",
 24189  		HTTPPath:   "/role-aliases/{roleAlias}",
 24190  	}
 24191  
 24192  	if input == nil {
 24193  		input = &UpdateRoleAliasInput{}
 24194  	}
 24195  
 24196  	output = &UpdateRoleAliasOutput{}
 24197  	req = c.newRequest(op, input, output)
 24198  	return
 24199  }
 24200  
 24201  // UpdateRoleAlias API operation for AWS IoT.
 24202  //
 24203  // Updates a role alias.
 24204  //
 24205  // Requires permission to access the UpdateRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24206  // action.
 24207  //
 24208  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24209  // with awserr.Error's Code and Message methods to get detailed information about
 24210  // the error.
 24211  //
 24212  // See the AWS API reference guide for AWS IoT's
 24213  // API operation UpdateRoleAlias for usage and error information.
 24214  //
 24215  // Returned Error Types:
 24216  //   * ResourceNotFoundException
 24217  //   The specified resource does not exist.
 24218  //
 24219  //   * InvalidRequestException
 24220  //   The request is not valid.
 24221  //
 24222  //   * ThrottlingException
 24223  //   The rate exceeds the limit.
 24224  //
 24225  //   * UnauthorizedException
 24226  //   You are not authorized to perform this operation.
 24227  //
 24228  //   * ServiceUnavailableException
 24229  //   The service is temporarily unavailable.
 24230  //
 24231  //   * InternalFailureException
 24232  //   An unexpected error has occurred.
 24233  //
 24234  func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
 24235  	req, out := c.UpdateRoleAliasRequest(input)
 24236  	return out, req.Send()
 24237  }
 24238  
 24239  // UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
 24240  // the ability to pass a context and additional request options.
 24241  //
 24242  // See UpdateRoleAlias for details on how to use this API operation.
 24243  //
 24244  // The context must be non-nil and will be used for request cancellation. If
 24245  // the context is nil a panic will occur. In the future the SDK may create
 24246  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24247  // for more information on using Contexts.
 24248  func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
 24249  	req, out := c.UpdateRoleAliasRequest(input)
 24250  	req.SetContext(ctx)
 24251  	req.ApplyOptions(opts...)
 24252  	return out, req.Send()
 24253  }
 24254  
 24255  const opUpdateScheduledAudit = "UpdateScheduledAudit"
 24256  
 24257  // UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
 24258  // client's request for the UpdateScheduledAudit operation. The "output" return
 24259  // value will be populated with the request's response once the request completes
 24260  // successfully.
 24261  //
 24262  // Use "Send" method on the returned Request to send the API call to the service.
 24263  // the "output" return value is not valid until after Send returns without error.
 24264  //
 24265  // See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
 24266  // API call, and error handling.
 24267  //
 24268  // This method is useful when you want to inject custom logic or configuration
 24269  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24270  //
 24271  //
 24272  //    // Example sending a request using the UpdateScheduledAuditRequest method.
 24273  //    req, resp := client.UpdateScheduledAuditRequest(params)
 24274  //
 24275  //    err := req.Send()
 24276  //    if err == nil { // resp is now filled
 24277  //        fmt.Println(resp)
 24278  //    }
 24279  func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
 24280  	op := &request.Operation{
 24281  		Name:       opUpdateScheduledAudit,
 24282  		HTTPMethod: "PATCH",
 24283  		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
 24284  	}
 24285  
 24286  	if input == nil {
 24287  		input = &UpdateScheduledAuditInput{}
 24288  	}
 24289  
 24290  	output = &UpdateScheduledAuditOutput{}
 24291  	req = c.newRequest(op, input, output)
 24292  	return
 24293  }
 24294  
 24295  // UpdateScheduledAudit API operation for AWS IoT.
 24296  //
 24297  // Updates a scheduled audit, including which checks are performed and how often
 24298  // the audit takes place.
 24299  //
 24300  // Requires permission to access the UpdateScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24301  // action.
 24302  //
 24303  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24304  // with awserr.Error's Code and Message methods to get detailed information about
 24305  // the error.
 24306  //
 24307  // See the AWS API reference guide for AWS IoT's
 24308  // API operation UpdateScheduledAudit for usage and error information.
 24309  //
 24310  // Returned Error Types:
 24311  //   * InvalidRequestException
 24312  //   The request is not valid.
 24313  //
 24314  //   * ResourceNotFoundException
 24315  //   The specified resource does not exist.
 24316  //
 24317  //   * ThrottlingException
 24318  //   The rate exceeds the limit.
 24319  //
 24320  //   * InternalFailureException
 24321  //   An unexpected error has occurred.
 24322  //
 24323  func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
 24324  	req, out := c.UpdateScheduledAuditRequest(input)
 24325  	return out, req.Send()
 24326  }
 24327  
 24328  // UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
 24329  // the ability to pass a context and additional request options.
 24330  //
 24331  // See UpdateScheduledAudit for details on how to use this API operation.
 24332  //
 24333  // The context must be non-nil and will be used for request cancellation. If
 24334  // the context is nil a panic will occur. In the future the SDK may create
 24335  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24336  // for more information on using Contexts.
 24337  func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
 24338  	req, out := c.UpdateScheduledAuditRequest(input)
 24339  	req.SetContext(ctx)
 24340  	req.ApplyOptions(opts...)
 24341  	return out, req.Send()
 24342  }
 24343  
 24344  const opUpdateSecurityProfile = "UpdateSecurityProfile"
 24345  
 24346  // UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
 24347  // client's request for the UpdateSecurityProfile operation. The "output" return
 24348  // value will be populated with the request's response once the request completes
 24349  // successfully.
 24350  //
 24351  // Use "Send" method on the returned Request to send the API call to the service.
 24352  // the "output" return value is not valid until after Send returns without error.
 24353  //
 24354  // See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
 24355  // API call, and error handling.
 24356  //
 24357  // This method is useful when you want to inject custom logic or configuration
 24358  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24359  //
 24360  //
 24361  //    // Example sending a request using the UpdateSecurityProfileRequest method.
 24362  //    req, resp := client.UpdateSecurityProfileRequest(params)
 24363  //
 24364  //    err := req.Send()
 24365  //    if err == nil { // resp is now filled
 24366  //        fmt.Println(resp)
 24367  //    }
 24368  func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
 24369  	op := &request.Operation{
 24370  		Name:       opUpdateSecurityProfile,
 24371  		HTTPMethod: "PATCH",
 24372  		HTTPPath:   "/security-profiles/{securityProfileName}",
 24373  	}
 24374  
 24375  	if input == nil {
 24376  		input = &UpdateSecurityProfileInput{}
 24377  	}
 24378  
 24379  	output = &UpdateSecurityProfileOutput{}
 24380  	req = c.newRequest(op, input, output)
 24381  	return
 24382  }
 24383  
 24384  // UpdateSecurityProfile API operation for AWS IoT.
 24385  //
 24386  // Updates a Device Defender security profile.
 24387  //
 24388  // Requires permission to access the UpdateSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24389  // action.
 24390  //
 24391  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24392  // with awserr.Error's Code and Message methods to get detailed information about
 24393  // the error.
 24394  //
 24395  // See the AWS API reference guide for AWS IoT's
 24396  // API operation UpdateSecurityProfile for usage and error information.
 24397  //
 24398  // Returned Error Types:
 24399  //   * InvalidRequestException
 24400  //   The request is not valid.
 24401  //
 24402  //   * ResourceNotFoundException
 24403  //   The specified resource does not exist.
 24404  //
 24405  //   * VersionConflictException
 24406  //   An exception thrown when the version of an entity specified with the expectedVersion
 24407  //   parameter does not match the latest version in the system.
 24408  //
 24409  //   * ThrottlingException
 24410  //   The rate exceeds the limit.
 24411  //
 24412  //   * InternalFailureException
 24413  //   An unexpected error has occurred.
 24414  //
 24415  func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
 24416  	req, out := c.UpdateSecurityProfileRequest(input)
 24417  	return out, req.Send()
 24418  }
 24419  
 24420  // UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
 24421  // the ability to pass a context and additional request options.
 24422  //
 24423  // See UpdateSecurityProfile for details on how to use this API operation.
 24424  //
 24425  // The context must be non-nil and will be used for request cancellation. If
 24426  // the context is nil a panic will occur. In the future the SDK may create
 24427  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24428  // for more information on using Contexts.
 24429  func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
 24430  	req, out := c.UpdateSecurityProfileRequest(input)
 24431  	req.SetContext(ctx)
 24432  	req.ApplyOptions(opts...)
 24433  	return out, req.Send()
 24434  }
 24435  
 24436  const opUpdateStream = "UpdateStream"
 24437  
 24438  // UpdateStreamRequest generates a "aws/request.Request" representing the
 24439  // client's request for the UpdateStream operation. The "output" return
 24440  // value will be populated with the request's response once the request completes
 24441  // successfully.
 24442  //
 24443  // Use "Send" method on the returned Request to send the API call to the service.
 24444  // the "output" return value is not valid until after Send returns without error.
 24445  //
 24446  // See UpdateStream for more information on using the UpdateStream
 24447  // API call, and error handling.
 24448  //
 24449  // This method is useful when you want to inject custom logic or configuration
 24450  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24451  //
 24452  //
 24453  //    // Example sending a request using the UpdateStreamRequest method.
 24454  //    req, resp := client.UpdateStreamRequest(params)
 24455  //
 24456  //    err := req.Send()
 24457  //    if err == nil { // resp is now filled
 24458  //        fmt.Println(resp)
 24459  //    }
 24460  func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
 24461  	op := &request.Operation{
 24462  		Name:       opUpdateStream,
 24463  		HTTPMethod: "PUT",
 24464  		HTTPPath:   "/streams/{streamId}",
 24465  	}
 24466  
 24467  	if input == nil {
 24468  		input = &UpdateStreamInput{}
 24469  	}
 24470  
 24471  	output = &UpdateStreamOutput{}
 24472  	req = c.newRequest(op, input, output)
 24473  	return
 24474  }
 24475  
 24476  // UpdateStream API operation for AWS IoT.
 24477  //
 24478  // Updates an existing stream. The stream version will be incremented by one.
 24479  //
 24480  // Requires permission to access the UpdateStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24481  // action.
 24482  //
 24483  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24484  // with awserr.Error's Code and Message methods to get detailed information about
 24485  // the error.
 24486  //
 24487  // See the AWS API reference guide for AWS IoT's
 24488  // API operation UpdateStream for usage and error information.
 24489  //
 24490  // Returned Error Types:
 24491  //   * InvalidRequestException
 24492  //   The request is not valid.
 24493  //
 24494  //   * ResourceNotFoundException
 24495  //   The specified resource does not exist.
 24496  //
 24497  //   * ThrottlingException
 24498  //   The rate exceeds the limit.
 24499  //
 24500  //   * UnauthorizedException
 24501  //   You are not authorized to perform this operation.
 24502  //
 24503  //   * ServiceUnavailableException
 24504  //   The service is temporarily unavailable.
 24505  //
 24506  //   * InternalFailureException
 24507  //   An unexpected error has occurred.
 24508  //
 24509  func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
 24510  	req, out := c.UpdateStreamRequest(input)
 24511  	return out, req.Send()
 24512  }
 24513  
 24514  // UpdateStreamWithContext is the same as UpdateStream with the addition of
 24515  // the ability to pass a context and additional request options.
 24516  //
 24517  // See UpdateStream for details on how to use this API operation.
 24518  //
 24519  // The context must be non-nil and will be used for request cancellation. If
 24520  // the context is nil a panic will occur. In the future the SDK may create
 24521  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24522  // for more information on using Contexts.
 24523  func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
 24524  	req, out := c.UpdateStreamRequest(input)
 24525  	req.SetContext(ctx)
 24526  	req.ApplyOptions(opts...)
 24527  	return out, req.Send()
 24528  }
 24529  
 24530  const opUpdateThing = "UpdateThing"
 24531  
 24532  // UpdateThingRequest generates a "aws/request.Request" representing the
 24533  // client's request for the UpdateThing operation. The "output" return
 24534  // value will be populated with the request's response once the request completes
 24535  // successfully.
 24536  //
 24537  // Use "Send" method on the returned Request to send the API call to the service.
 24538  // the "output" return value is not valid until after Send returns without error.
 24539  //
 24540  // See UpdateThing for more information on using the UpdateThing
 24541  // API call, and error handling.
 24542  //
 24543  // This method is useful when you want to inject custom logic or configuration
 24544  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24545  //
 24546  //
 24547  //    // Example sending a request using the UpdateThingRequest method.
 24548  //    req, resp := client.UpdateThingRequest(params)
 24549  //
 24550  //    err := req.Send()
 24551  //    if err == nil { // resp is now filled
 24552  //        fmt.Println(resp)
 24553  //    }
 24554  func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
 24555  	op := &request.Operation{
 24556  		Name:       opUpdateThing,
 24557  		HTTPMethod: "PATCH",
 24558  		HTTPPath:   "/things/{thingName}",
 24559  	}
 24560  
 24561  	if input == nil {
 24562  		input = &UpdateThingInput{}
 24563  	}
 24564  
 24565  	output = &UpdateThingOutput{}
 24566  	req = c.newRequest(op, input, output)
 24567  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 24568  	return
 24569  }
 24570  
 24571  // UpdateThing API operation for AWS IoT.
 24572  //
 24573  // Updates the data for a thing.
 24574  //
 24575  // Requires permission to access the UpdateThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24576  // action.
 24577  //
 24578  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24579  // with awserr.Error's Code and Message methods to get detailed information about
 24580  // the error.
 24581  //
 24582  // See the AWS API reference guide for AWS IoT's
 24583  // API operation UpdateThing for usage and error information.
 24584  //
 24585  // Returned Error Types:
 24586  //   * InvalidRequestException
 24587  //   The request is not valid.
 24588  //
 24589  //   * VersionConflictException
 24590  //   An exception thrown when the version of an entity specified with the expectedVersion
 24591  //   parameter does not match the latest version in the system.
 24592  //
 24593  //   * ThrottlingException
 24594  //   The rate exceeds the limit.
 24595  //
 24596  //   * UnauthorizedException
 24597  //   You are not authorized to perform this operation.
 24598  //
 24599  //   * ServiceUnavailableException
 24600  //   The service is temporarily unavailable.
 24601  //
 24602  //   * InternalFailureException
 24603  //   An unexpected error has occurred.
 24604  //
 24605  //   * ResourceNotFoundException
 24606  //   The specified resource does not exist.
 24607  //
 24608  func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
 24609  	req, out := c.UpdateThingRequest(input)
 24610  	return out, req.Send()
 24611  }
 24612  
 24613  // UpdateThingWithContext is the same as UpdateThing with the addition of
 24614  // the ability to pass a context and additional request options.
 24615  //
 24616  // See UpdateThing for details on how to use this API operation.
 24617  //
 24618  // The context must be non-nil and will be used for request cancellation. If
 24619  // the context is nil a panic will occur. In the future the SDK may create
 24620  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24621  // for more information on using Contexts.
 24622  func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
 24623  	req, out := c.UpdateThingRequest(input)
 24624  	req.SetContext(ctx)
 24625  	req.ApplyOptions(opts...)
 24626  	return out, req.Send()
 24627  }
 24628  
 24629  const opUpdateThingGroup = "UpdateThingGroup"
 24630  
 24631  // UpdateThingGroupRequest generates a "aws/request.Request" representing the
 24632  // client's request for the UpdateThingGroup operation. The "output" return
 24633  // value will be populated with the request's response once the request completes
 24634  // successfully.
 24635  //
 24636  // Use "Send" method on the returned Request to send the API call to the service.
 24637  // the "output" return value is not valid until after Send returns without error.
 24638  //
 24639  // See UpdateThingGroup for more information on using the UpdateThingGroup
 24640  // API call, and error handling.
 24641  //
 24642  // This method is useful when you want to inject custom logic or configuration
 24643  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24644  //
 24645  //
 24646  //    // Example sending a request using the UpdateThingGroupRequest method.
 24647  //    req, resp := client.UpdateThingGroupRequest(params)
 24648  //
 24649  //    err := req.Send()
 24650  //    if err == nil { // resp is now filled
 24651  //        fmt.Println(resp)
 24652  //    }
 24653  func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
 24654  	op := &request.Operation{
 24655  		Name:       opUpdateThingGroup,
 24656  		HTTPMethod: "PATCH",
 24657  		HTTPPath:   "/thing-groups/{thingGroupName}",
 24658  	}
 24659  
 24660  	if input == nil {
 24661  		input = &UpdateThingGroupInput{}
 24662  	}
 24663  
 24664  	output = &UpdateThingGroupOutput{}
 24665  	req = c.newRequest(op, input, output)
 24666  	return
 24667  }
 24668  
 24669  // UpdateThingGroup API operation for AWS IoT.
 24670  //
 24671  // Update a thing group.
 24672  //
 24673  // Requires permission to access the UpdateThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24674  // action.
 24675  //
 24676  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24677  // with awserr.Error's Code and Message methods to get detailed information about
 24678  // the error.
 24679  //
 24680  // See the AWS API reference guide for AWS IoT's
 24681  // API operation UpdateThingGroup for usage and error information.
 24682  //
 24683  // Returned Error Types:
 24684  //   * InvalidRequestException
 24685  //   The request is not valid.
 24686  //
 24687  //   * VersionConflictException
 24688  //   An exception thrown when the version of an entity specified with the expectedVersion
 24689  //   parameter does not match the latest version in the system.
 24690  //
 24691  //   * ThrottlingException
 24692  //   The rate exceeds the limit.
 24693  //
 24694  //   * InternalFailureException
 24695  //   An unexpected error has occurred.
 24696  //
 24697  //   * ResourceNotFoundException
 24698  //   The specified resource does not exist.
 24699  //
 24700  func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
 24701  	req, out := c.UpdateThingGroupRequest(input)
 24702  	return out, req.Send()
 24703  }
 24704  
 24705  // UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
 24706  // the ability to pass a context and additional request options.
 24707  //
 24708  // See UpdateThingGroup for details on how to use this API operation.
 24709  //
 24710  // The context must be non-nil and will be used for request cancellation. If
 24711  // the context is nil a panic will occur. In the future the SDK may create
 24712  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24713  // for more information on using Contexts.
 24714  func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
 24715  	req, out := c.UpdateThingGroupRequest(input)
 24716  	req.SetContext(ctx)
 24717  	req.ApplyOptions(opts...)
 24718  	return out, req.Send()
 24719  }
 24720  
 24721  const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
 24722  
 24723  // UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
 24724  // client's request for the UpdateThingGroupsForThing operation. The "output" return
 24725  // value will be populated with the request's response once the request completes
 24726  // successfully.
 24727  //
 24728  // Use "Send" method on the returned Request to send the API call to the service.
 24729  // the "output" return value is not valid until after Send returns without error.
 24730  //
 24731  // See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
 24732  // API call, and error handling.
 24733  //
 24734  // This method is useful when you want to inject custom logic or configuration
 24735  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24736  //
 24737  //
 24738  //    // Example sending a request using the UpdateThingGroupsForThingRequest method.
 24739  //    req, resp := client.UpdateThingGroupsForThingRequest(params)
 24740  //
 24741  //    err := req.Send()
 24742  //    if err == nil { // resp is now filled
 24743  //        fmt.Println(resp)
 24744  //    }
 24745  func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
 24746  	op := &request.Operation{
 24747  		Name:       opUpdateThingGroupsForThing,
 24748  		HTTPMethod: "PUT",
 24749  		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
 24750  	}
 24751  
 24752  	if input == nil {
 24753  		input = &UpdateThingGroupsForThingInput{}
 24754  	}
 24755  
 24756  	output = &UpdateThingGroupsForThingOutput{}
 24757  	req = c.newRequest(op, input, output)
 24758  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 24759  	return
 24760  }
 24761  
 24762  // UpdateThingGroupsForThing API operation for AWS IoT.
 24763  //
 24764  // Updates the groups to which the thing belongs.
 24765  //
 24766  // Requires permission to access the UpdateThingGroupsForThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24767  // action.
 24768  //
 24769  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24770  // with awserr.Error's Code and Message methods to get detailed information about
 24771  // the error.
 24772  //
 24773  // See the AWS API reference guide for AWS IoT's
 24774  // API operation UpdateThingGroupsForThing for usage and error information.
 24775  //
 24776  // Returned Error Types:
 24777  //   * InvalidRequestException
 24778  //   The request is not valid.
 24779  //
 24780  //   * ThrottlingException
 24781  //   The rate exceeds the limit.
 24782  //
 24783  //   * InternalFailureException
 24784  //   An unexpected error has occurred.
 24785  //
 24786  //   * ResourceNotFoundException
 24787  //   The specified resource does not exist.
 24788  //
 24789  func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
 24790  	req, out := c.UpdateThingGroupsForThingRequest(input)
 24791  	return out, req.Send()
 24792  }
 24793  
 24794  // UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
 24795  // the ability to pass a context and additional request options.
 24796  //
 24797  // See UpdateThingGroupsForThing for details on how to use this API operation.
 24798  //
 24799  // The context must be non-nil and will be used for request cancellation. If
 24800  // the context is nil a panic will occur. In the future the SDK may create
 24801  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24802  // for more information on using Contexts.
 24803  func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
 24804  	req, out := c.UpdateThingGroupsForThingRequest(input)
 24805  	req.SetContext(ctx)
 24806  	req.ApplyOptions(opts...)
 24807  	return out, req.Send()
 24808  }
 24809  
 24810  const opUpdateTopicRuleDestination = "UpdateTopicRuleDestination"
 24811  
 24812  // UpdateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
 24813  // client's request for the UpdateTopicRuleDestination operation. The "output" return
 24814  // value will be populated with the request's response once the request completes
 24815  // successfully.
 24816  //
 24817  // Use "Send" method on the returned Request to send the API call to the service.
 24818  // the "output" return value is not valid until after Send returns without error.
 24819  //
 24820  // See UpdateTopicRuleDestination for more information on using the UpdateTopicRuleDestination
 24821  // API call, and error handling.
 24822  //
 24823  // This method is useful when you want to inject custom logic or configuration
 24824  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24825  //
 24826  //
 24827  //    // Example sending a request using the UpdateTopicRuleDestinationRequest method.
 24828  //    req, resp := client.UpdateTopicRuleDestinationRequest(params)
 24829  //
 24830  //    err := req.Send()
 24831  //    if err == nil { // resp is now filled
 24832  //        fmt.Println(resp)
 24833  //    }
 24834  func (c *IoT) UpdateTopicRuleDestinationRequest(input *UpdateTopicRuleDestinationInput) (req *request.Request, output *UpdateTopicRuleDestinationOutput) {
 24835  	op := &request.Operation{
 24836  		Name:       opUpdateTopicRuleDestination,
 24837  		HTTPMethod: "PATCH",
 24838  		HTTPPath:   "/destinations",
 24839  	}
 24840  
 24841  	if input == nil {
 24842  		input = &UpdateTopicRuleDestinationInput{}
 24843  	}
 24844  
 24845  	output = &UpdateTopicRuleDestinationOutput{}
 24846  	req = c.newRequest(op, input, output)
 24847  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
 24848  	return
 24849  }
 24850  
 24851  // UpdateTopicRuleDestination API operation for AWS IoT.
 24852  //
 24853  // Updates a topic rule destination. You use this to change the status, endpoint
 24854  // URL, or confirmation URL of the destination.
 24855  //
 24856  // Requires permission to access the UpdateTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24857  // action.
 24858  //
 24859  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24860  // with awserr.Error's Code and Message methods to get detailed information about
 24861  // the error.
 24862  //
 24863  // See the AWS API reference guide for AWS IoT's
 24864  // API operation UpdateTopicRuleDestination for usage and error information.
 24865  //
 24866  // Returned Error Types:
 24867  //   * InternalException
 24868  //   An unexpected error has occurred.
 24869  //
 24870  //   * InvalidRequestException
 24871  //   The request is not valid.
 24872  //
 24873  //   * ServiceUnavailableException
 24874  //   The service is temporarily unavailable.
 24875  //
 24876  //   * UnauthorizedException
 24877  //   You are not authorized to perform this operation.
 24878  //
 24879  //   * ConflictingResourceUpdateException
 24880  //   A conflicting resource update exception. This exception is thrown when two
 24881  //   pending updates cause a conflict.
 24882  //
 24883  func (c *IoT) UpdateTopicRuleDestination(input *UpdateTopicRuleDestinationInput) (*UpdateTopicRuleDestinationOutput, error) {
 24884  	req, out := c.UpdateTopicRuleDestinationRequest(input)
 24885  	return out, req.Send()
 24886  }
 24887  
 24888  // UpdateTopicRuleDestinationWithContext is the same as UpdateTopicRuleDestination with the addition of
 24889  // the ability to pass a context and additional request options.
 24890  //
 24891  // See UpdateTopicRuleDestination for details on how to use this API operation.
 24892  //
 24893  // The context must be non-nil and will be used for request cancellation. If
 24894  // the context is nil a panic will occur. In the future the SDK may create
 24895  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24896  // for more information on using Contexts.
 24897  func (c *IoT) UpdateTopicRuleDestinationWithContext(ctx aws.Context, input *UpdateTopicRuleDestinationInput, opts ...request.Option) (*UpdateTopicRuleDestinationOutput, error) {
 24898  	req, out := c.UpdateTopicRuleDestinationRequest(input)
 24899  	req.SetContext(ctx)
 24900  	req.ApplyOptions(opts...)
 24901  	return out, req.Send()
 24902  }
 24903  
 24904  const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
 24905  
 24906  // ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
 24907  // client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
 24908  // value will be populated with the request's response once the request completes
 24909  // successfully.
 24910  //
 24911  // Use "Send" method on the returned Request to send the API call to the service.
 24912  // the "output" return value is not valid until after Send returns without error.
 24913  //
 24914  // See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
 24915  // API call, and error handling.
 24916  //
 24917  // This method is useful when you want to inject custom logic or configuration
 24918  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 24919  //
 24920  //
 24921  //    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
 24922  //    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
 24923  //
 24924  //    err := req.Send()
 24925  //    if err == nil { // resp is now filled
 24926  //        fmt.Println(resp)
 24927  //    }
 24928  func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
 24929  	op := &request.Operation{
 24930  		Name:       opValidateSecurityProfileBehaviors,
 24931  		HTTPMethod: "POST",
 24932  		HTTPPath:   "/security-profile-behaviors/validate",
 24933  	}
 24934  
 24935  	if input == nil {
 24936  		input = &ValidateSecurityProfileBehaviorsInput{}
 24937  	}
 24938  
 24939  	output = &ValidateSecurityProfileBehaviorsOutput{}
 24940  	req = c.newRequest(op, input, output)
 24941  	return
 24942  }
 24943  
 24944  // ValidateSecurityProfileBehaviors API operation for AWS IoT.
 24945  //
 24946  // Validates a Device Defender security profile behaviors specification.
 24947  //
 24948  // Requires permission to access the ValidateSecurityProfileBehaviors (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 24949  // action.
 24950  //
 24951  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 24952  // with awserr.Error's Code and Message methods to get detailed information about
 24953  // the error.
 24954  //
 24955  // See the AWS API reference guide for AWS IoT's
 24956  // API operation ValidateSecurityProfileBehaviors for usage and error information.
 24957  //
 24958  // Returned Error Types:
 24959  //   * InvalidRequestException
 24960  //   The request is not valid.
 24961  //
 24962  //   * ThrottlingException
 24963  //   The rate exceeds the limit.
 24964  //
 24965  //   * InternalFailureException
 24966  //   An unexpected error has occurred.
 24967  //
 24968  func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
 24969  	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
 24970  	return out, req.Send()
 24971  }
 24972  
 24973  // ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
 24974  // the ability to pass a context and additional request options.
 24975  //
 24976  // See ValidateSecurityProfileBehaviors for details on how to use this API operation.
 24977  //
 24978  // The context must be non-nil and will be used for request cancellation. If
 24979  // the context is nil a panic will occur. In the future the SDK may create
 24980  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 24981  // for more information on using Contexts.
 24982  func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
 24983  	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
 24984  	req.SetContext(ctx)
 24985  	req.ApplyOptions(opts...)
 24986  	return out, req.Send()
 24987  }
 24988  
 24989  // The criteria that determine when and how a job abort takes place.
 24990  type AbortConfig struct {
 24991  	_ struct{} `type:"structure"`
 24992  
 24993  	// The list of criteria that determine when and how to abort the job.
 24994  	//
 24995  	// CriteriaList is a required field
 24996  	CriteriaList []*AbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
 24997  }
 24998  
 24999  // String returns the string representation.
 25000  //
 25001  // API parameter values that are decorated as "sensitive" in the API will not
 25002  // be included in the string output. The member name will be present, but the
 25003  // value will be replaced with "sensitive".
 25004  func (s AbortConfig) String() string {
 25005  	return awsutil.Prettify(s)
 25006  }
 25007  
 25008  // GoString returns the string representation.
 25009  //
 25010  // API parameter values that are decorated as "sensitive" in the API will not
 25011  // be included in the string output. The member name will be present, but the
 25012  // value will be replaced with "sensitive".
 25013  func (s AbortConfig) GoString() string {
 25014  	return s.String()
 25015  }
 25016  
 25017  // Validate inspects the fields of the type to determine if they are valid.
 25018  func (s *AbortConfig) Validate() error {
 25019  	invalidParams := request.ErrInvalidParams{Context: "AbortConfig"}
 25020  	if s.CriteriaList == nil {
 25021  		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
 25022  	}
 25023  	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
 25024  		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
 25025  	}
 25026  	if s.CriteriaList != nil {
 25027  		for i, v := range s.CriteriaList {
 25028  			if v == nil {
 25029  				continue
 25030  			}
 25031  			if err := v.Validate(); err != nil {
 25032  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
 25033  			}
 25034  		}
 25035  	}
 25036  
 25037  	if invalidParams.Len() > 0 {
 25038  		return invalidParams
 25039  	}
 25040  	return nil
 25041  }
 25042  
 25043  // SetCriteriaList sets the CriteriaList field's value.
 25044  func (s *AbortConfig) SetCriteriaList(v []*AbortCriteria) *AbortConfig {
 25045  	s.CriteriaList = v
 25046  	return s
 25047  }
 25048  
 25049  // The criteria that determine when and how a job abort takes place.
 25050  type AbortCriteria struct {
 25051  	_ struct{} `type:"structure"`
 25052  
 25053  	// The type of job action to take to initiate the job abort.
 25054  	//
 25055  	// Action is a required field
 25056  	Action *string `locationName:"action" type:"string" required:"true" enum:"AbortAction"`
 25057  
 25058  	// The type of job execution failures that can initiate a job abort.
 25059  	//
 25060  	// FailureType is a required field
 25061  	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"JobExecutionFailureType"`
 25062  
 25063  	// The minimum number of things which must receive job execution notifications
 25064  	// before the job can be aborted.
 25065  	//
 25066  	// MinNumberOfExecutedThings is a required field
 25067  	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
 25068  
 25069  	// The minimum percentage of job execution failures that must occur to initiate
 25070  	// the job abort.
 25071  	//
 25072  	// Amazon Web Services IoT Core supports up to two digits after the decimal
 25073  	// (for example, 10.9 and 10.99, but not 10.999).
 25074  	//
 25075  	// ThresholdPercentage is a required field
 25076  	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
 25077  }
 25078  
 25079  // String returns the string representation.
 25080  //
 25081  // API parameter values that are decorated as "sensitive" in the API will not
 25082  // be included in the string output. The member name will be present, but the
 25083  // value will be replaced with "sensitive".
 25084  func (s AbortCriteria) String() string {
 25085  	return awsutil.Prettify(s)
 25086  }
 25087  
 25088  // GoString returns the string representation.
 25089  //
 25090  // API parameter values that are decorated as "sensitive" in the API will not
 25091  // be included in the string output. The member name will be present, but the
 25092  // value will be replaced with "sensitive".
 25093  func (s AbortCriteria) GoString() string {
 25094  	return s.String()
 25095  }
 25096  
 25097  // Validate inspects the fields of the type to determine if they are valid.
 25098  func (s *AbortCriteria) Validate() error {
 25099  	invalidParams := request.ErrInvalidParams{Context: "AbortCriteria"}
 25100  	if s.Action == nil {
 25101  		invalidParams.Add(request.NewErrParamRequired("Action"))
 25102  	}
 25103  	if s.FailureType == nil {
 25104  		invalidParams.Add(request.NewErrParamRequired("FailureType"))
 25105  	}
 25106  	if s.MinNumberOfExecutedThings == nil {
 25107  		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
 25108  	}
 25109  	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
 25110  		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
 25111  	}
 25112  	if s.ThresholdPercentage == nil {
 25113  		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
 25114  	}
 25115  
 25116  	if invalidParams.Len() > 0 {
 25117  		return invalidParams
 25118  	}
 25119  	return nil
 25120  }
 25121  
 25122  // SetAction sets the Action field's value.
 25123  func (s *AbortCriteria) SetAction(v string) *AbortCriteria {
 25124  	s.Action = &v
 25125  	return s
 25126  }
 25127  
 25128  // SetFailureType sets the FailureType field's value.
 25129  func (s *AbortCriteria) SetFailureType(v string) *AbortCriteria {
 25130  	s.FailureType = &v
 25131  	return s
 25132  }
 25133  
 25134  // SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
 25135  func (s *AbortCriteria) SetMinNumberOfExecutedThings(v int64) *AbortCriteria {
 25136  	s.MinNumberOfExecutedThings = &v
 25137  	return s
 25138  }
 25139  
 25140  // SetThresholdPercentage sets the ThresholdPercentage field's value.
 25141  func (s *AbortCriteria) SetThresholdPercentage(v float64) *AbortCriteria {
 25142  	s.ThresholdPercentage = &v
 25143  	return s
 25144  }
 25145  
 25146  // The input for the AcceptCertificateTransfer operation.
 25147  type AcceptCertificateTransferInput struct {
 25148  	_ struct{} `type:"structure" nopayload:"true"`
 25149  
 25150  	// The ID of the certificate. (The last part of the certificate ARN contains
 25151  	// the certificate ID.)
 25152  	//
 25153  	// CertificateId is a required field
 25154  	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
 25155  
 25156  	// Specifies whether the certificate is active.
 25157  	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
 25158  }
 25159  
 25160  // String returns the string representation.
 25161  //
 25162  // API parameter values that are decorated as "sensitive" in the API will not
 25163  // be included in the string output. The member name will be present, but the
 25164  // value will be replaced with "sensitive".
 25165  func (s AcceptCertificateTransferInput) String() string {
 25166  	return awsutil.Prettify(s)
 25167  }
 25168  
 25169  // GoString returns the string representation.
 25170  //
 25171  // API parameter values that are decorated as "sensitive" in the API will not
 25172  // be included in the string output. The member name will be present, but the
 25173  // value will be replaced with "sensitive".
 25174  func (s AcceptCertificateTransferInput) GoString() string {
 25175  	return s.String()
 25176  }
 25177  
 25178  // Validate inspects the fields of the type to determine if they are valid.
 25179  func (s *AcceptCertificateTransferInput) Validate() error {
 25180  	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
 25181  	if s.CertificateId == nil {
 25182  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 25183  	}
 25184  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 25185  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 25186  	}
 25187  
 25188  	if invalidParams.Len() > 0 {
 25189  		return invalidParams
 25190  	}
 25191  	return nil
 25192  }
 25193  
 25194  // SetCertificateId sets the CertificateId field's value.
 25195  func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
 25196  	s.CertificateId = &v
 25197  	return s
 25198  }
 25199  
 25200  // SetSetAsActive sets the SetAsActive field's value.
 25201  func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
 25202  	s.SetAsActive = &v
 25203  	return s
 25204  }
 25205  
 25206  type AcceptCertificateTransferOutput struct {
 25207  	_ struct{} `type:"structure" nopayload:"true"`
 25208  }
 25209  
 25210  // String returns the string representation.
 25211  //
 25212  // API parameter values that are decorated as "sensitive" in the API will not
 25213  // be included in the string output. The member name will be present, but the
 25214  // value will be replaced with "sensitive".
 25215  func (s AcceptCertificateTransferOutput) String() string {
 25216  	return awsutil.Prettify(s)
 25217  }
 25218  
 25219  // GoString returns the string representation.
 25220  //
 25221  // API parameter values that are decorated as "sensitive" in the API will not
 25222  // be included in the string output. The member name will be present, but the
 25223  // value will be replaced with "sensitive".
 25224  func (s AcceptCertificateTransferOutput) GoString() string {
 25225  	return s.String()
 25226  }
 25227  
 25228  // Describes the actions associated with a rule.
 25229  type Action struct {
 25230  	_ struct{} `type:"structure"`
 25231  
 25232  	// Change the state of a CloudWatch alarm.
 25233  	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
 25234  
 25235  	// Send data to CloudWatch Logs.
 25236  	CloudwatchLogs *CloudwatchLogsAction `locationName:"cloudwatchLogs" type:"structure"`
 25237  
 25238  	// Capture a CloudWatch metric.
 25239  	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
 25240  
 25241  	// Write to a DynamoDB table.
 25242  	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
 25243  
 25244  	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
 25245  	// It allows you to write each attribute in an MQTT message payload into a separate
 25246  	// DynamoDB column.
 25247  	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
 25248  
 25249  	// Write data to an Amazon OpenSearch Service domain.
 25250  	//
 25251  	// The Elasticsearch action can only be used by existing rule actions. To create
 25252  	// a new rule action or to update an existing rule action, use the OpenSearch
 25253  	// rule action instead. For more information, see OpenSearchAction (https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html).
 25254  	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
 25255  
 25256  	// Write to an Amazon Kinesis Firehose stream.
 25257  	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
 25258  
 25259  	// Send data to an HTTPS endpoint.
 25260  	Http *HttpAction `locationName:"http" type:"structure"`
 25261  
 25262  	// Sends message data to an IoT Analytics channel.
 25263  	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
 25264  
 25265  	// Sends an input to an IoT Events detector.
 25266  	IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"`
 25267  
 25268  	// Sends data from the MQTT message that triggered the rule to IoT SiteWise
 25269  	// asset properties.
 25270  	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
 25271  
 25272  	// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
 25273  	// or self-managed Apache Kafka cluster.
 25274  	Kafka *KafkaAction `locationName:"kafka" type:"structure"`
 25275  
 25276  	// Write data to an Amazon Kinesis stream.
 25277  	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
 25278  
 25279  	// Invoke a Lambda function.
 25280  	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
 25281  
 25282  	// Write data to an Amazon OpenSearch Service domain.
 25283  	OpenSearch *OpenSearchAction `locationName:"openSearch" type:"structure"`
 25284  
 25285  	// Publish to another MQTT topic.
 25286  	Republish *RepublishAction `locationName:"republish" type:"structure"`
 25287  
 25288  	// Write to an Amazon S3 bucket.
 25289  	S3 *S3Action `locationName:"s3" type:"structure"`
 25290  
 25291  	// Send a message to a Salesforce IoT Cloud Input Stream.
 25292  	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
 25293  
 25294  	// Publish to an Amazon SNS topic.
 25295  	Sns *SnsAction `locationName:"sns" type:"structure"`
 25296  
 25297  	// Publish to an Amazon SQS queue.
 25298  	Sqs *SqsAction `locationName:"sqs" type:"structure"`
 25299  
 25300  	// Starts execution of a Step Functions state machine.
 25301  	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
 25302  
 25303  	// The Timestream rule action writes attributes (measures) from an MQTT message
 25304  	// into an Amazon Timestream table. For more information, see the Timestream
 25305  	// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
 25306  	// topic rule action documentation.
 25307  	Timestream *TimestreamAction `locationName:"timestream" type:"structure"`
 25308  }
 25309  
 25310  // String returns the string representation.
 25311  //
 25312  // API parameter values that are decorated as "sensitive" in the API will not
 25313  // be included in the string output. The member name will be present, but the
 25314  // value will be replaced with "sensitive".
 25315  func (s Action) String() string {
 25316  	return awsutil.Prettify(s)
 25317  }
 25318  
 25319  // GoString returns the string representation.
 25320  //
 25321  // API parameter values that are decorated as "sensitive" in the API will not
 25322  // be included in the string output. The member name will be present, but the
 25323  // value will be replaced with "sensitive".
 25324  func (s Action) GoString() string {
 25325  	return s.String()
 25326  }
 25327  
 25328  // Validate inspects the fields of the type to determine if they are valid.
 25329  func (s *Action) Validate() error {
 25330  	invalidParams := request.ErrInvalidParams{Context: "Action"}
 25331  	if s.CloudwatchAlarm != nil {
 25332  		if err := s.CloudwatchAlarm.Validate(); err != nil {
 25333  			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
 25334  		}
 25335  	}
 25336  	if s.CloudwatchLogs != nil {
 25337  		if err := s.CloudwatchLogs.Validate(); err != nil {
 25338  			invalidParams.AddNested("CloudwatchLogs", err.(request.ErrInvalidParams))
 25339  		}
 25340  	}
 25341  	if s.CloudwatchMetric != nil {
 25342  		if err := s.CloudwatchMetric.Validate(); err != nil {
 25343  			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
 25344  		}
 25345  	}
 25346  	if s.DynamoDB != nil {
 25347  		if err := s.DynamoDB.Validate(); err != nil {
 25348  			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
 25349  		}
 25350  	}
 25351  	if s.DynamoDBv2 != nil {
 25352  		if err := s.DynamoDBv2.Validate(); err != nil {
 25353  			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
 25354  		}
 25355  	}
 25356  	if s.Elasticsearch != nil {
 25357  		if err := s.Elasticsearch.Validate(); err != nil {
 25358  			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
 25359  		}
 25360  	}
 25361  	if s.Firehose != nil {
 25362  		if err := s.Firehose.Validate(); err != nil {
 25363  			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
 25364  		}
 25365  	}
 25366  	if s.Http != nil {
 25367  		if err := s.Http.Validate(); err != nil {
 25368  			invalidParams.AddNested("Http", err.(request.ErrInvalidParams))
 25369  		}
 25370  	}
 25371  	if s.IotEvents != nil {
 25372  		if err := s.IotEvents.Validate(); err != nil {
 25373  			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
 25374  		}
 25375  	}
 25376  	if s.IotSiteWise != nil {
 25377  		if err := s.IotSiteWise.Validate(); err != nil {
 25378  			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
 25379  		}
 25380  	}
 25381  	if s.Kafka != nil {
 25382  		if err := s.Kafka.Validate(); err != nil {
 25383  			invalidParams.AddNested("Kafka", err.(request.ErrInvalidParams))
 25384  		}
 25385  	}
 25386  	if s.Kinesis != nil {
 25387  		if err := s.Kinesis.Validate(); err != nil {
 25388  			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
 25389  		}
 25390  	}
 25391  	if s.Lambda != nil {
 25392  		if err := s.Lambda.Validate(); err != nil {
 25393  			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
 25394  		}
 25395  	}
 25396  	if s.OpenSearch != nil {
 25397  		if err := s.OpenSearch.Validate(); err != nil {
 25398  			invalidParams.AddNested("OpenSearch", err.(request.ErrInvalidParams))
 25399  		}
 25400  	}
 25401  	if s.Republish != nil {
 25402  		if err := s.Republish.Validate(); err != nil {
 25403  			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
 25404  		}
 25405  	}
 25406  	if s.S3 != nil {
 25407  		if err := s.S3.Validate(); err != nil {
 25408  			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
 25409  		}
 25410  	}
 25411  	if s.Salesforce != nil {
 25412  		if err := s.Salesforce.Validate(); err != nil {
 25413  			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
 25414  		}
 25415  	}
 25416  	if s.Sns != nil {
 25417  		if err := s.Sns.Validate(); err != nil {
 25418  			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
 25419  		}
 25420  	}
 25421  	if s.Sqs != nil {
 25422  		if err := s.Sqs.Validate(); err != nil {
 25423  			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
 25424  		}
 25425  	}
 25426  	if s.StepFunctions != nil {
 25427  		if err := s.StepFunctions.Validate(); err != nil {
 25428  			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
 25429  		}
 25430  	}
 25431  	if s.Timestream != nil {
 25432  		if err := s.Timestream.Validate(); err != nil {
 25433  			invalidParams.AddNested("Timestream", err.(request.ErrInvalidParams))
 25434  		}
 25435  	}
 25436  
 25437  	if invalidParams.Len() > 0 {
 25438  		return invalidParams
 25439  	}
 25440  	return nil
 25441  }
 25442  
 25443  // SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
 25444  func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
 25445  	s.CloudwatchAlarm = v
 25446  	return s
 25447  }
 25448  
 25449  // SetCloudwatchLogs sets the CloudwatchLogs field's value.
 25450  func (s *Action) SetCloudwatchLogs(v *CloudwatchLogsAction) *Action {
 25451  	s.CloudwatchLogs = v
 25452  	return s
 25453  }
 25454  
 25455  // SetCloudwatchMetric sets the CloudwatchMetric field's value.
 25456  func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
 25457  	s.CloudwatchMetric = v
 25458  	return s
 25459  }
 25460  
 25461  // SetDynamoDB sets the DynamoDB field's value.
 25462  func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
 25463  	s.DynamoDB = v
 25464  	return s
 25465  }
 25466  
 25467  // SetDynamoDBv2 sets the DynamoDBv2 field's value.
 25468  func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
 25469  	s.DynamoDBv2 = v
 25470  	return s
 25471  }
 25472  
 25473  // SetElasticsearch sets the Elasticsearch field's value.
 25474  func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
 25475  	s.Elasticsearch = v
 25476  	return s
 25477  }
 25478  
 25479  // SetFirehose sets the Firehose field's value.
 25480  func (s *Action) SetFirehose(v *FirehoseAction) *Action {
 25481  	s.Firehose = v
 25482  	return s
 25483  }
 25484  
 25485  // SetHttp sets the Http field's value.
 25486  func (s *Action) SetHttp(v *HttpAction) *Action {
 25487  	s.Http = v
 25488  	return s
 25489  }
 25490  
 25491  // SetIotAnalytics sets the IotAnalytics field's value.
 25492  func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
 25493  	s.IotAnalytics = v
 25494  	return s
 25495  }
 25496  
 25497  // SetIotEvents sets the IotEvents field's value.
 25498  func (s *Action) SetIotEvents(v *IotEventsAction) *Action {
 25499  	s.IotEvents = v
 25500  	return s
 25501  }
 25502  
 25503  // SetIotSiteWise sets the IotSiteWise field's value.
 25504  func (s *Action) SetIotSiteWise(v *IotSiteWiseAction) *Action {
 25505  	s.IotSiteWise = v
 25506  	return s
 25507  }
 25508  
 25509  // SetKafka sets the Kafka field's value.
 25510  func (s *Action) SetKafka(v *KafkaAction) *Action {
 25511  	s.Kafka = v
 25512  	return s
 25513  }
 25514  
 25515  // SetKinesis sets the Kinesis field's value.
 25516  func (s *Action) SetKinesis(v *KinesisAction) *Action {
 25517  	s.Kinesis = v
 25518  	return s
 25519  }
 25520  
 25521  // SetLambda sets the Lambda field's value.
 25522  func (s *Action) SetLambda(v *LambdaAction) *Action {
 25523  	s.Lambda = v
 25524  	return s
 25525  }
 25526  
 25527  // SetOpenSearch sets the OpenSearch field's value.
 25528  func (s *Action) SetOpenSearch(v *OpenSearchAction) *Action {
 25529  	s.OpenSearch = v
 25530  	return s
 25531  }
 25532  
 25533  // SetRepublish sets the Republish field's value.
 25534  func (s *Action) SetRepublish(v *RepublishAction) *Action {
 25535  	s.Republish = v
 25536  	return s
 25537  }
 25538  
 25539  // SetS3 sets the S3 field's value.
 25540  func (s *Action) SetS3(v *S3Action) *Action {
 25541  	s.S3 = v
 25542  	return s
 25543  }
 25544  
 25545  // SetSalesforce sets the Salesforce field's value.
 25546  func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
 25547  	s.Salesforce = v
 25548  	return s
 25549  }
 25550  
 25551  // SetSns sets the Sns field's value.
 25552  func (s *Action) SetSns(v *SnsAction) *Action {
 25553  	s.Sns = v
 25554  	return s
 25555  }
 25556  
 25557  // SetSqs sets the Sqs field's value.
 25558  func (s *Action) SetSqs(v *SqsAction) *Action {
 25559  	s.Sqs = v
 25560  	return s
 25561  }
 25562  
 25563  // SetStepFunctions sets the StepFunctions field's value.
 25564  func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
 25565  	s.StepFunctions = v
 25566  	return s
 25567  }
 25568  
 25569  // SetTimestream sets the Timestream field's value.
 25570  func (s *Action) SetTimestream(v *TimestreamAction) *Action {
 25571  	s.Timestream = v
 25572  	return s
 25573  }
 25574  
 25575  // Information about an active Device Defender security profile behavior violation.
 25576  type ActiveViolation struct {
 25577  	_ struct{} `type:"structure"`
 25578  
 25579  	// The behavior that is being violated.
 25580  	Behavior *Behavior `locationName:"behavior" type:"structure"`
 25581  
 25582  	// The time the most recent violation occurred.
 25583  	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
 25584  
 25585  	// The value of the metric (the measurement) that caused the most recent violation.
 25586  	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
 25587  
 25588  	// The security profile with the behavior is in violation.
 25589  	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
 25590  
 25591  	// The name of the thing responsible for the active violation.
 25592  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 25593  
 25594  	// The verification state of the violation (detect alarm).
 25595  	VerificationState *string `locationName:"verificationState" type:"string" enum:"VerificationState"`
 25596  
 25597  	// The description of the verification state of the violation.
 25598  	VerificationStateDescription *string `locationName:"verificationStateDescription" type:"string"`
 25599  
 25600  	// The details of a violation event.
 25601  	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
 25602  
 25603  	// The ID of the active violation.
 25604  	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
 25605  
 25606  	// The time the violation started.
 25607  	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
 25608  }
 25609  
 25610  // String returns the string representation.
 25611  //
 25612  // API parameter values that are decorated as "sensitive" in the API will not
 25613  // be included in the string output. The member name will be present, but the
 25614  // value will be replaced with "sensitive".
 25615  func (s ActiveViolation) String() string {
 25616  	return awsutil.Prettify(s)
 25617  }
 25618  
 25619  // GoString returns the string representation.
 25620  //
 25621  // API parameter values that are decorated as "sensitive" in the API will not
 25622  // be included in the string output. The member name will be present, but the
 25623  // value will be replaced with "sensitive".
 25624  func (s ActiveViolation) GoString() string {
 25625  	return s.String()
 25626  }
 25627  
 25628  // SetBehavior sets the Behavior field's value.
 25629  func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
 25630  	s.Behavior = v
 25631  	return s
 25632  }
 25633  
 25634  // SetLastViolationTime sets the LastViolationTime field's value.
 25635  func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
 25636  	s.LastViolationTime = &v
 25637  	return s
 25638  }
 25639  
 25640  // SetLastViolationValue sets the LastViolationValue field's value.
 25641  func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
 25642  	s.LastViolationValue = v
 25643  	return s
 25644  }
 25645  
 25646  // SetSecurityProfileName sets the SecurityProfileName field's value.
 25647  func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
 25648  	s.SecurityProfileName = &v
 25649  	return s
 25650  }
 25651  
 25652  // SetThingName sets the ThingName field's value.
 25653  func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
 25654  	s.ThingName = &v
 25655  	return s
 25656  }
 25657  
 25658  // SetVerificationState sets the VerificationState field's value.
 25659  func (s *ActiveViolation) SetVerificationState(v string) *ActiveViolation {
 25660  	s.VerificationState = &v
 25661  	return s
 25662  }
 25663  
 25664  // SetVerificationStateDescription sets the VerificationStateDescription field's value.
 25665  func (s *ActiveViolation) SetVerificationStateDescription(v string) *ActiveViolation {
 25666  	s.VerificationStateDescription = &v
 25667  	return s
 25668  }
 25669  
 25670  // SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
 25671  func (s *ActiveViolation) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ActiveViolation {
 25672  	s.ViolationEventAdditionalInfo = v
 25673  	return s
 25674  }
 25675  
 25676  // SetViolationId sets the ViolationId field's value.
 25677  func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
 25678  	s.ViolationId = &v
 25679  	return s
 25680  }
 25681  
 25682  // SetViolationStartTime sets the ViolationStartTime field's value.
 25683  func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
 25684  	s.ViolationStartTime = &v
 25685  	return s
 25686  }
 25687  
 25688  type AddThingToBillingGroupInput struct {
 25689  	_ struct{} `type:"structure"`
 25690  
 25691  	// The ARN of the billing group.
 25692  	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
 25693  
 25694  	// The name of the billing group.
 25695  	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
 25696  
 25697  	// The ARN of the thing to be added to the billing group.
 25698  	ThingArn *string `locationName:"thingArn" type:"string"`
 25699  
 25700  	// The name of the thing to be added to the billing group.
 25701  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 25702  }
 25703  
 25704  // String returns the string representation.
 25705  //
 25706  // API parameter values that are decorated as "sensitive" in the API will not
 25707  // be included in the string output. The member name will be present, but the
 25708  // value will be replaced with "sensitive".
 25709  func (s AddThingToBillingGroupInput) String() string {
 25710  	return awsutil.Prettify(s)
 25711  }
 25712  
 25713  // GoString returns the string representation.
 25714  //
 25715  // API parameter values that are decorated as "sensitive" in the API will not
 25716  // be included in the string output. The member name will be present, but the
 25717  // value will be replaced with "sensitive".
 25718  func (s AddThingToBillingGroupInput) GoString() string {
 25719  	return s.String()
 25720  }
 25721  
 25722  // Validate inspects the fields of the type to determine if they are valid.
 25723  func (s *AddThingToBillingGroupInput) Validate() error {
 25724  	invalidParams := request.ErrInvalidParams{Context: "AddThingToBillingGroupInput"}
 25725  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 25726  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 25727  	}
 25728  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 25729  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 25730  	}
 25731  
 25732  	if invalidParams.Len() > 0 {
 25733  		return invalidParams
 25734  	}
 25735  	return nil
 25736  }
 25737  
 25738  // SetBillingGroupArn sets the BillingGroupArn field's value.
 25739  func (s *AddThingToBillingGroupInput) SetBillingGroupArn(v string) *AddThingToBillingGroupInput {
 25740  	s.BillingGroupArn = &v
 25741  	return s
 25742  }
 25743  
 25744  // SetBillingGroupName sets the BillingGroupName field's value.
 25745  func (s *AddThingToBillingGroupInput) SetBillingGroupName(v string) *AddThingToBillingGroupInput {
 25746  	s.BillingGroupName = &v
 25747  	return s
 25748  }
 25749  
 25750  // SetThingArn sets the ThingArn field's value.
 25751  func (s *AddThingToBillingGroupInput) SetThingArn(v string) *AddThingToBillingGroupInput {
 25752  	s.ThingArn = &v
 25753  	return s
 25754  }
 25755  
 25756  // SetThingName sets the ThingName field's value.
 25757  func (s *AddThingToBillingGroupInput) SetThingName(v string) *AddThingToBillingGroupInput {
 25758  	s.ThingName = &v
 25759  	return s
 25760  }
 25761  
 25762  type AddThingToBillingGroupOutput struct {
 25763  	_ struct{} `type:"structure" nopayload:"true"`
 25764  }
 25765  
 25766  // String returns the string representation.
 25767  //
 25768  // API parameter values that are decorated as "sensitive" in the API will not
 25769  // be included in the string output. The member name will be present, but the
 25770  // value will be replaced with "sensitive".
 25771  func (s AddThingToBillingGroupOutput) String() string {
 25772  	return awsutil.Prettify(s)
 25773  }
 25774  
 25775  // GoString returns the string representation.
 25776  //
 25777  // API parameter values that are decorated as "sensitive" in the API will not
 25778  // be included in the string output. The member name will be present, but the
 25779  // value will be replaced with "sensitive".
 25780  func (s AddThingToBillingGroupOutput) GoString() string {
 25781  	return s.String()
 25782  }
 25783  
 25784  type AddThingToThingGroupInput struct {
 25785  	_ struct{} `type:"structure"`
 25786  
 25787  	// Override dynamic thing groups with static thing groups when 10-group limit
 25788  	// is reached. If a thing belongs to 10 thing groups, and one or more of those
 25789  	// groups are dynamic thing groups, adding a thing to a static group removes
 25790  	// the thing from the last dynamic group.
 25791  	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
 25792  
 25793  	// The ARN of the thing to add to a group.
 25794  	ThingArn *string `locationName:"thingArn" type:"string"`
 25795  
 25796  	// The ARN of the group to which you are adding a thing.
 25797  	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
 25798  
 25799  	// The name of the group to which you are adding a thing.
 25800  	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
 25801  
 25802  	// The name of the thing to add to a group.
 25803  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 25804  }
 25805  
 25806  // String returns the string representation.
 25807  //
 25808  // API parameter values that are decorated as "sensitive" in the API will not
 25809  // be included in the string output. The member name will be present, but the
 25810  // value will be replaced with "sensitive".
 25811  func (s AddThingToThingGroupInput) String() string {
 25812  	return awsutil.Prettify(s)
 25813  }
 25814  
 25815  // GoString returns the string representation.
 25816  //
 25817  // API parameter values that are decorated as "sensitive" in the API will not
 25818  // be included in the string output. The member name will be present, but the
 25819  // value will be replaced with "sensitive".
 25820  func (s AddThingToThingGroupInput) GoString() string {
 25821  	return s.String()
 25822  }
 25823  
 25824  // Validate inspects the fields of the type to determine if they are valid.
 25825  func (s *AddThingToThingGroupInput) Validate() error {
 25826  	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
 25827  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 25828  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 25829  	}
 25830  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 25831  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 25832  	}
 25833  
 25834  	if invalidParams.Len() > 0 {
 25835  		return invalidParams
 25836  	}
 25837  	return nil
 25838  }
 25839  
 25840  // SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
 25841  func (s *AddThingToThingGroupInput) SetOverrideDynamicGroups(v bool) *AddThingToThingGroupInput {
 25842  	s.OverrideDynamicGroups = &v
 25843  	return s
 25844  }
 25845  
 25846  // SetThingArn sets the ThingArn field's value.
 25847  func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
 25848  	s.ThingArn = &v
 25849  	return s
 25850  }
 25851  
 25852  // SetThingGroupArn sets the ThingGroupArn field's value.
 25853  func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
 25854  	s.ThingGroupArn = &v
 25855  	return s
 25856  }
 25857  
 25858  // SetThingGroupName sets the ThingGroupName field's value.
 25859  func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
 25860  	s.ThingGroupName = &v
 25861  	return s
 25862  }
 25863  
 25864  // SetThingName sets the ThingName field's value.
 25865  func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
 25866  	s.ThingName = &v
 25867  	return s
 25868  }
 25869  
 25870  type AddThingToThingGroupOutput struct {
 25871  	_ struct{} `type:"structure" nopayload:"true"`
 25872  }
 25873  
 25874  // String returns the string representation.
 25875  //
 25876  // API parameter values that are decorated as "sensitive" in the API will not
 25877  // be included in the string output. The member name will be present, but the
 25878  // value will be replaced with "sensitive".
 25879  func (s AddThingToThingGroupOutput) String() string {
 25880  	return awsutil.Prettify(s)
 25881  }
 25882  
 25883  // GoString returns the string representation.
 25884  //
 25885  // API parameter values that are decorated as "sensitive" in the API will not
 25886  // be included in the string output. The member name will be present, but the
 25887  // value will be replaced with "sensitive".
 25888  func (s AddThingToThingGroupOutput) GoString() string {
 25889  	return s.String()
 25890  }
 25891  
 25892  // Parameters used when defining a mitigation action that move a set of things
 25893  // to a thing group.
 25894  type AddThingsToThingGroupParams struct {
 25895  	_ struct{} `type:"structure"`
 25896  
 25897  	// Specifies if this mitigation action can move the things that triggered the
 25898  	// mitigation action even if they are part of one or more dynamic thing groups.
 25899  	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
 25900  
 25901  	// The list of groups to which you want to add the things that triggered the
 25902  	// mitigation action. You can add a thing to a maximum of 10 groups, but you
 25903  	// can't add a thing to more than one group in the same hierarchy.
 25904  	//
 25905  	// ThingGroupNames is a required field
 25906  	ThingGroupNames []*string `locationName:"thingGroupNames" min:"1" type:"list" required:"true"`
 25907  }
 25908  
 25909  // String returns the string representation.
 25910  //
 25911  // API parameter values that are decorated as "sensitive" in the API will not
 25912  // be included in the string output. The member name will be present, but the
 25913  // value will be replaced with "sensitive".
 25914  func (s AddThingsToThingGroupParams) String() string {
 25915  	return awsutil.Prettify(s)
 25916  }
 25917  
 25918  // GoString returns the string representation.
 25919  //
 25920  // API parameter values that are decorated as "sensitive" in the API will not
 25921  // be included in the string output. The member name will be present, but the
 25922  // value will be replaced with "sensitive".
 25923  func (s AddThingsToThingGroupParams) GoString() string {
 25924  	return s.String()
 25925  }
 25926  
 25927  // Validate inspects the fields of the type to determine if they are valid.
 25928  func (s *AddThingsToThingGroupParams) Validate() error {
 25929  	invalidParams := request.ErrInvalidParams{Context: "AddThingsToThingGroupParams"}
 25930  	if s.ThingGroupNames == nil {
 25931  		invalidParams.Add(request.NewErrParamRequired("ThingGroupNames"))
 25932  	}
 25933  	if s.ThingGroupNames != nil && len(s.ThingGroupNames) < 1 {
 25934  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupNames", 1))
 25935  	}
 25936  
 25937  	if invalidParams.Len() > 0 {
 25938  		return invalidParams
 25939  	}
 25940  	return nil
 25941  }
 25942  
 25943  // SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
 25944  func (s *AddThingsToThingGroupParams) SetOverrideDynamicGroups(v bool) *AddThingsToThingGroupParams {
 25945  	s.OverrideDynamicGroups = &v
 25946  	return s
 25947  }
 25948  
 25949  // SetThingGroupNames sets the ThingGroupNames field's value.
 25950  func (s *AddThingsToThingGroupParams) SetThingGroupNames(v []*string) *AddThingsToThingGroupParams {
 25951  	s.ThingGroupNames = v
 25952  	return s
 25953  }
 25954  
 25955  // The type of aggregation queries.
 25956  type AggregationType struct {
 25957  	_ struct{} `type:"structure"`
 25958  
 25959  	// The name of the aggregation type.
 25960  	//
 25961  	// Name is a required field
 25962  	Name *string `locationName:"name" type:"string" required:"true" enum:"AggregationTypeName"`
 25963  
 25964  	// A list of the values of aggregation types.
 25965  	Values []*string `locationName:"values" type:"list"`
 25966  }
 25967  
 25968  // String returns the string representation.
 25969  //
 25970  // API parameter values that are decorated as "sensitive" in the API will not
 25971  // be included in the string output. The member name will be present, but the
 25972  // value will be replaced with "sensitive".
 25973  func (s AggregationType) String() string {
 25974  	return awsutil.Prettify(s)
 25975  }
 25976  
 25977  // GoString returns the string representation.
 25978  //
 25979  // API parameter values that are decorated as "sensitive" in the API will not
 25980  // be included in the string output. The member name will be present, but the
 25981  // value will be replaced with "sensitive".
 25982  func (s AggregationType) GoString() string {
 25983  	return s.String()
 25984  }
 25985  
 25986  // Validate inspects the fields of the type to determine if they are valid.
 25987  func (s *AggregationType) Validate() error {
 25988  	invalidParams := request.ErrInvalidParams{Context: "AggregationType"}
 25989  	if s.Name == nil {
 25990  		invalidParams.Add(request.NewErrParamRequired("Name"))
 25991  	}
 25992  
 25993  	if invalidParams.Len() > 0 {
 25994  		return invalidParams
 25995  	}
 25996  	return nil
 25997  }
 25998  
 25999  // SetName sets the Name field's value.
 26000  func (s *AggregationType) SetName(v string) *AggregationType {
 26001  	s.Name = &v
 26002  	return s
 26003  }
 26004  
 26005  // SetValues sets the Values field's value.
 26006  func (s *AggregationType) SetValues(v []*string) *AggregationType {
 26007  	s.Values = v
 26008  	return s
 26009  }
 26010  
 26011  // A structure containing the alert target ARN and the role ARN.
 26012  type AlertTarget struct {
 26013  	_ struct{} `type:"structure"`
 26014  
 26015  	// The Amazon Resource Name (ARN) of the notification target to which alerts
 26016  	// are sent.
 26017  	//
 26018  	// AlertTargetArn is a required field
 26019  	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
 26020  
 26021  	// The ARN of the role that grants permission to send alerts to the notification
 26022  	// target.
 26023  	//
 26024  	// RoleArn is a required field
 26025  	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
 26026  }
 26027  
 26028  // String returns the string representation.
 26029  //
 26030  // API parameter values that are decorated as "sensitive" in the API will not
 26031  // be included in the string output. The member name will be present, but the
 26032  // value will be replaced with "sensitive".
 26033  func (s AlertTarget) String() string {
 26034  	return awsutil.Prettify(s)
 26035  }
 26036  
 26037  // GoString returns the string representation.
 26038  //
 26039  // API parameter values that are decorated as "sensitive" in the API will not
 26040  // be included in the string output. The member name will be present, but the
 26041  // value will be replaced with "sensitive".
 26042  func (s AlertTarget) GoString() string {
 26043  	return s.String()
 26044  }
 26045  
 26046  // Validate inspects the fields of the type to determine if they are valid.
 26047  func (s *AlertTarget) Validate() error {
 26048  	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
 26049  	if s.AlertTargetArn == nil {
 26050  		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
 26051  	}
 26052  	if s.RoleArn == nil {
 26053  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 26054  	}
 26055  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 26056  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 26057  	}
 26058  
 26059  	if invalidParams.Len() > 0 {
 26060  		return invalidParams
 26061  	}
 26062  	return nil
 26063  }
 26064  
 26065  // SetAlertTargetArn sets the AlertTargetArn field's value.
 26066  func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
 26067  	s.AlertTargetArn = &v
 26068  	return s
 26069  }
 26070  
 26071  // SetRoleArn sets the RoleArn field's value.
 26072  func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
 26073  	s.RoleArn = &v
 26074  	return s
 26075  }
 26076  
 26077  // Contains information that allowed the authorization.
 26078  type Allowed struct {
 26079  	_ struct{} `type:"structure"`
 26080  
 26081  	// A list of policies that allowed the authentication.
 26082  	Policies []*Policy `locationName:"policies" type:"list"`
 26083  }
 26084  
 26085  // String returns the string representation.
 26086  //
 26087  // API parameter values that are decorated as "sensitive" in the API will not
 26088  // be included in the string output. The member name will be present, but the
 26089  // value will be replaced with "sensitive".
 26090  func (s Allowed) String() string {
 26091  	return awsutil.Prettify(s)
 26092  }
 26093  
 26094  // GoString returns the string representation.
 26095  //
 26096  // API parameter values that are decorated as "sensitive" in the API will not
 26097  // be included in the string output. The member name will be present, but the
 26098  // value will be replaced with "sensitive".
 26099  func (s Allowed) GoString() string {
 26100  	return s.String()
 26101  }
 26102  
 26103  // SetPolicies sets the Policies field's value.
 26104  func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
 26105  	s.Policies = v
 26106  	return s
 26107  }
 26108  
 26109  // An asset property timestamp entry containing the following information.
 26110  type AssetPropertyTimestamp struct {
 26111  	_ struct{} `type:"structure"`
 26112  
 26113  	// Optional. A string that contains the nanosecond time offset. Accepts substitution
 26114  	// templates.
 26115  	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
 26116  
 26117  	// A string that contains the time in seconds since epoch. Accepts substitution
 26118  	// templates.
 26119  	//
 26120  	// TimeInSeconds is a required field
 26121  	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
 26122  }
 26123  
 26124  // String returns the string representation.
 26125  //
 26126  // API parameter values that are decorated as "sensitive" in the API will not
 26127  // be included in the string output. The member name will be present, but the
 26128  // value will be replaced with "sensitive".
 26129  func (s AssetPropertyTimestamp) String() string {
 26130  	return awsutil.Prettify(s)
 26131  }
 26132  
 26133  // GoString returns the string representation.
 26134  //
 26135  // API parameter values that are decorated as "sensitive" in the API will not
 26136  // be included in the string output. The member name will be present, but the
 26137  // value will be replaced with "sensitive".
 26138  func (s AssetPropertyTimestamp) GoString() string {
 26139  	return s.String()
 26140  }
 26141  
 26142  // Validate inspects the fields of the type to determine if they are valid.
 26143  func (s *AssetPropertyTimestamp) Validate() error {
 26144  	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
 26145  	if s.TimeInSeconds == nil {
 26146  		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
 26147  	}
 26148  
 26149  	if invalidParams.Len() > 0 {
 26150  		return invalidParams
 26151  	}
 26152  	return nil
 26153  }
 26154  
 26155  // SetOffsetInNanos sets the OffsetInNanos field's value.
 26156  func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
 26157  	s.OffsetInNanos = &v
 26158  	return s
 26159  }
 26160  
 26161  // SetTimeInSeconds sets the TimeInSeconds field's value.
 26162  func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
 26163  	s.TimeInSeconds = &v
 26164  	return s
 26165  }
 26166  
 26167  // An asset property value entry containing the following information.
 26168  type AssetPropertyValue struct {
 26169  	_ struct{} `type:"structure"`
 26170  
 26171  	// Optional. A string that describes the quality of the value. Accepts substitution
 26172  	// templates. Must be GOOD, BAD, or UNCERTAIN.
 26173  	Quality *string `locationName:"quality" type:"string"`
 26174  
 26175  	// The asset property value timestamp.
 26176  	//
 26177  	// Timestamp is a required field
 26178  	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"`
 26179  
 26180  	// The value of the asset property.
 26181  	//
 26182  	// Value is a required field
 26183  	Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"`
 26184  }
 26185  
 26186  // String returns the string representation.
 26187  //
 26188  // API parameter values that are decorated as "sensitive" in the API will not
 26189  // be included in the string output. The member name will be present, but the
 26190  // value will be replaced with "sensitive".
 26191  func (s AssetPropertyValue) String() string {
 26192  	return awsutil.Prettify(s)
 26193  }
 26194  
 26195  // GoString returns the string representation.
 26196  //
 26197  // API parameter values that are decorated as "sensitive" in the API will not
 26198  // be included in the string output. The member name will be present, but the
 26199  // value will be replaced with "sensitive".
 26200  func (s AssetPropertyValue) GoString() string {
 26201  	return s.String()
 26202  }
 26203  
 26204  // Validate inspects the fields of the type to determine if they are valid.
 26205  func (s *AssetPropertyValue) Validate() error {
 26206  	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
 26207  	if s.Timestamp == nil {
 26208  		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
 26209  	}
 26210  	if s.Value == nil {
 26211  		invalidParams.Add(request.NewErrParamRequired("Value"))
 26212  	}
 26213  	if s.Timestamp != nil {
 26214  		if err := s.Timestamp.Validate(); err != nil {
 26215  			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
 26216  		}
 26217  	}
 26218  	if s.Value != nil {
 26219  		if err := s.Value.Validate(); err != nil {
 26220  			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
 26221  		}
 26222  	}
 26223  
 26224  	if invalidParams.Len() > 0 {
 26225  		return invalidParams
 26226  	}
 26227  	return nil
 26228  }
 26229  
 26230  // SetQuality sets the Quality field's value.
 26231  func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
 26232  	s.Quality = &v
 26233  	return s
 26234  }
 26235  
 26236  // SetTimestamp sets the Timestamp field's value.
 26237  func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
 26238  	s.Timestamp = v
 26239  	return s
 26240  }
 26241  
 26242  // SetValue sets the Value field's value.
 26243  func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
 26244  	s.Value = v
 26245  	return s
 26246  }
 26247  
 26248  // Contains an asset property value (of a single type).
 26249  type AssetPropertyVariant struct {
 26250  	_ struct{} `type:"structure"`
 26251  
 26252  	// Optional. A string that contains the boolean value (true or false) of the
 26253  	// value entry. Accepts substitution templates.
 26254  	BooleanValue *string `locationName:"booleanValue" type:"string"`
 26255  
 26256  	// Optional. A string that contains the double value of the value entry. Accepts
 26257  	// substitution templates.
 26258  	DoubleValue *string `locationName:"doubleValue" type:"string"`
 26259  
 26260  	// Optional. A string that contains the integer value of the value entry. Accepts
 26261  	// substitution templates.
 26262  	IntegerValue *string `locationName:"integerValue" type:"string"`
 26263  
 26264  	// Optional. The string value of the value entry. Accepts substitution templates.
 26265  	StringValue *string `locationName:"stringValue" min:"1" type:"string"`
 26266  }
 26267  
 26268  // String returns the string representation.
 26269  //
 26270  // API parameter values that are decorated as "sensitive" in the API will not
 26271  // be included in the string output. The member name will be present, but the
 26272  // value will be replaced with "sensitive".
 26273  func (s AssetPropertyVariant) String() string {
 26274  	return awsutil.Prettify(s)
 26275  }
 26276  
 26277  // GoString returns the string representation.
 26278  //
 26279  // API parameter values that are decorated as "sensitive" in the API will not
 26280  // be included in the string output. The member name will be present, but the
 26281  // value will be replaced with "sensitive".
 26282  func (s AssetPropertyVariant) GoString() string {
 26283  	return s.String()
 26284  }
 26285  
 26286  // Validate inspects the fields of the type to determine if they are valid.
 26287  func (s *AssetPropertyVariant) Validate() error {
 26288  	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyVariant"}
 26289  	if s.StringValue != nil && len(*s.StringValue) < 1 {
 26290  		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
 26291  	}
 26292  
 26293  	if invalidParams.Len() > 0 {
 26294  		return invalidParams
 26295  	}
 26296  	return nil
 26297  }
 26298  
 26299  // SetBooleanValue sets the BooleanValue field's value.
 26300  func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
 26301  	s.BooleanValue = &v
 26302  	return s
 26303  }
 26304  
 26305  // SetDoubleValue sets the DoubleValue field's value.
 26306  func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
 26307  	s.DoubleValue = &v
 26308  	return s
 26309  }
 26310  
 26311  // SetIntegerValue sets the IntegerValue field's value.
 26312  func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
 26313  	s.IntegerValue = &v
 26314  	return s
 26315  }
 26316  
 26317  // SetStringValue sets the StringValue field's value.
 26318  func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
 26319  	s.StringValue = &v
 26320  	return s
 26321  }
 26322  
 26323  type AssociateTargetsWithJobInput struct {
 26324  	_ struct{} `type:"structure"`
 26325  
 26326  	// An optional comment string describing why the job was associated with the
 26327  	// targets.
 26328  	Comment *string `locationName:"comment" type:"string"`
 26329  
 26330  	// The unique identifier you assigned to this job when it was created.
 26331  	//
 26332  	// JobId is a required field
 26333  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 26334  
 26335  	// The namespace used to indicate that a job is a customer-managed job.
 26336  	//
 26337  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 26338  	// sends jobs notifications to MQTT topics that contain the value in the following
 26339  	// format.
 26340  	//
 26341  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 26342  	//
 26343  	// The namespaceId feature is in public preview.
 26344  	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
 26345  
 26346  	// A list of thing group ARNs that define the targets of the job.
 26347  	//
 26348  	// Targets is a required field
 26349  	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
 26350  }
 26351  
 26352  // String returns the string representation.
 26353  //
 26354  // API parameter values that are decorated as "sensitive" in the API will not
 26355  // be included in the string output. The member name will be present, but the
 26356  // value will be replaced with "sensitive".
 26357  func (s AssociateTargetsWithJobInput) String() string {
 26358  	return awsutil.Prettify(s)
 26359  }
 26360  
 26361  // GoString returns the string representation.
 26362  //
 26363  // API parameter values that are decorated as "sensitive" in the API will not
 26364  // be included in the string output. The member name will be present, but the
 26365  // value will be replaced with "sensitive".
 26366  func (s AssociateTargetsWithJobInput) GoString() string {
 26367  	return s.String()
 26368  }
 26369  
 26370  // Validate inspects the fields of the type to determine if they are valid.
 26371  func (s *AssociateTargetsWithJobInput) Validate() error {
 26372  	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
 26373  	if s.JobId == nil {
 26374  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 26375  	}
 26376  	if s.JobId != nil && len(*s.JobId) < 1 {
 26377  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 26378  	}
 26379  	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
 26380  		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
 26381  	}
 26382  	if s.Targets == nil {
 26383  		invalidParams.Add(request.NewErrParamRequired("Targets"))
 26384  	}
 26385  	if s.Targets != nil && len(s.Targets) < 1 {
 26386  		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
 26387  	}
 26388  
 26389  	if invalidParams.Len() > 0 {
 26390  		return invalidParams
 26391  	}
 26392  	return nil
 26393  }
 26394  
 26395  // SetComment sets the Comment field's value.
 26396  func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
 26397  	s.Comment = &v
 26398  	return s
 26399  }
 26400  
 26401  // SetJobId sets the JobId field's value.
 26402  func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
 26403  	s.JobId = &v
 26404  	return s
 26405  }
 26406  
 26407  // SetNamespaceId sets the NamespaceId field's value.
 26408  func (s *AssociateTargetsWithJobInput) SetNamespaceId(v string) *AssociateTargetsWithJobInput {
 26409  	s.NamespaceId = &v
 26410  	return s
 26411  }
 26412  
 26413  // SetTargets sets the Targets field's value.
 26414  func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
 26415  	s.Targets = v
 26416  	return s
 26417  }
 26418  
 26419  type AssociateTargetsWithJobOutput struct {
 26420  	_ struct{} `type:"structure"`
 26421  
 26422  	// A short text description of the job.
 26423  	Description *string `locationName:"description" type:"string"`
 26424  
 26425  	// An ARN identifying the job.
 26426  	JobArn *string `locationName:"jobArn" type:"string"`
 26427  
 26428  	// The unique identifier you assigned to this job when it was created.
 26429  	JobId *string `locationName:"jobId" min:"1" type:"string"`
 26430  }
 26431  
 26432  // String returns the string representation.
 26433  //
 26434  // API parameter values that are decorated as "sensitive" in the API will not
 26435  // be included in the string output. The member name will be present, but the
 26436  // value will be replaced with "sensitive".
 26437  func (s AssociateTargetsWithJobOutput) String() string {
 26438  	return awsutil.Prettify(s)
 26439  }
 26440  
 26441  // GoString returns the string representation.
 26442  //
 26443  // API parameter values that are decorated as "sensitive" in the API will not
 26444  // be included in the string output. The member name will be present, but the
 26445  // value will be replaced with "sensitive".
 26446  func (s AssociateTargetsWithJobOutput) GoString() string {
 26447  	return s.String()
 26448  }
 26449  
 26450  // SetDescription sets the Description field's value.
 26451  func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
 26452  	s.Description = &v
 26453  	return s
 26454  }
 26455  
 26456  // SetJobArn sets the JobArn field's value.
 26457  func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
 26458  	s.JobArn = &v
 26459  	return s
 26460  }
 26461  
 26462  // SetJobId sets the JobId field's value.
 26463  func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
 26464  	s.JobId = &v
 26465  	return s
 26466  }
 26467  
 26468  type AttachPolicyInput struct {
 26469  	_ struct{} `type:"structure"`
 26470  
 26471  	// The name of the policy to attach.
 26472  	//
 26473  	// PolicyName is a required field
 26474  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 26475  
 26476  	// The identity (https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html)
 26477  	// to which the policy is attached. For example, a thing group or a certificate.
 26478  	//
 26479  	// Target is a required field
 26480  	Target *string `locationName:"target" type:"string" required:"true"`
 26481  }
 26482  
 26483  // String returns the string representation.
 26484  //
 26485  // API parameter values that are decorated as "sensitive" in the API will not
 26486  // be included in the string output. The member name will be present, but the
 26487  // value will be replaced with "sensitive".
 26488  func (s AttachPolicyInput) String() string {
 26489  	return awsutil.Prettify(s)
 26490  }
 26491  
 26492  // GoString returns the string representation.
 26493  //
 26494  // API parameter values that are decorated as "sensitive" in the API will not
 26495  // be included in the string output. The member name will be present, but the
 26496  // value will be replaced with "sensitive".
 26497  func (s AttachPolicyInput) GoString() string {
 26498  	return s.String()
 26499  }
 26500  
 26501  // Validate inspects the fields of the type to determine if they are valid.
 26502  func (s *AttachPolicyInput) Validate() error {
 26503  	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
 26504  	if s.PolicyName == nil {
 26505  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 26506  	}
 26507  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 26508  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 26509  	}
 26510  	if s.Target == nil {
 26511  		invalidParams.Add(request.NewErrParamRequired("Target"))
 26512  	}
 26513  
 26514  	if invalidParams.Len() > 0 {
 26515  		return invalidParams
 26516  	}
 26517  	return nil
 26518  }
 26519  
 26520  // SetPolicyName sets the PolicyName field's value.
 26521  func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
 26522  	s.PolicyName = &v
 26523  	return s
 26524  }
 26525  
 26526  // SetTarget sets the Target field's value.
 26527  func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
 26528  	s.Target = &v
 26529  	return s
 26530  }
 26531  
 26532  type AttachPolicyOutput struct {
 26533  	_ struct{} `type:"structure" nopayload:"true"`
 26534  }
 26535  
 26536  // String returns the string representation.
 26537  //
 26538  // API parameter values that are decorated as "sensitive" in the API will not
 26539  // be included in the string output. The member name will be present, but the
 26540  // value will be replaced with "sensitive".
 26541  func (s AttachPolicyOutput) String() string {
 26542  	return awsutil.Prettify(s)
 26543  }
 26544  
 26545  // GoString returns the string representation.
 26546  //
 26547  // API parameter values that are decorated as "sensitive" in the API will not
 26548  // be included in the string output. The member name will be present, but the
 26549  // value will be replaced with "sensitive".
 26550  func (s AttachPolicyOutput) GoString() string {
 26551  	return s.String()
 26552  }
 26553  
 26554  // The input for the AttachPrincipalPolicy operation.
 26555  type AttachPrincipalPolicyInput struct {
 26556  	_ struct{} `type:"structure" nopayload:"true"`
 26557  
 26558  	// The policy name.
 26559  	//
 26560  	// PolicyName is a required field
 26561  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 26562  
 26563  	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
 26564  	// operation) or an Amazon Cognito ID.
 26565  	//
 26566  	// Principal is a required field
 26567  	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
 26568  }
 26569  
 26570  // String returns the string representation.
 26571  //
 26572  // API parameter values that are decorated as "sensitive" in the API will not
 26573  // be included in the string output. The member name will be present, but the
 26574  // value will be replaced with "sensitive".
 26575  func (s AttachPrincipalPolicyInput) String() string {
 26576  	return awsutil.Prettify(s)
 26577  }
 26578  
 26579  // GoString returns the string representation.
 26580  //
 26581  // API parameter values that are decorated as "sensitive" in the API will not
 26582  // be included in the string output. The member name will be present, but the
 26583  // value will be replaced with "sensitive".
 26584  func (s AttachPrincipalPolicyInput) GoString() string {
 26585  	return s.String()
 26586  }
 26587  
 26588  // Validate inspects the fields of the type to determine if they are valid.
 26589  func (s *AttachPrincipalPolicyInput) Validate() error {
 26590  	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
 26591  	if s.PolicyName == nil {
 26592  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 26593  	}
 26594  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 26595  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 26596  	}
 26597  	if s.Principal == nil {
 26598  		invalidParams.Add(request.NewErrParamRequired("Principal"))
 26599  	}
 26600  
 26601  	if invalidParams.Len() > 0 {
 26602  		return invalidParams
 26603  	}
 26604  	return nil
 26605  }
 26606  
 26607  // SetPolicyName sets the PolicyName field's value.
 26608  func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
 26609  	s.PolicyName = &v
 26610  	return s
 26611  }
 26612  
 26613  // SetPrincipal sets the Principal field's value.
 26614  func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
 26615  	s.Principal = &v
 26616  	return s
 26617  }
 26618  
 26619  type AttachPrincipalPolicyOutput struct {
 26620  	_ struct{} `type:"structure" nopayload:"true"`
 26621  }
 26622  
 26623  // String returns the string representation.
 26624  //
 26625  // API parameter values that are decorated as "sensitive" in the API will not
 26626  // be included in the string output. The member name will be present, but the
 26627  // value will be replaced with "sensitive".
 26628  func (s AttachPrincipalPolicyOutput) String() string {
 26629  	return awsutil.Prettify(s)
 26630  }
 26631  
 26632  // GoString returns the string representation.
 26633  //
 26634  // API parameter values that are decorated as "sensitive" in the API will not
 26635  // be included in the string output. The member name will be present, but the
 26636  // value will be replaced with "sensitive".
 26637  func (s AttachPrincipalPolicyOutput) GoString() string {
 26638  	return s.String()
 26639  }
 26640  
 26641  type AttachSecurityProfileInput struct {
 26642  	_ struct{} `type:"structure" nopayload:"true"`
 26643  
 26644  	// The security profile that is attached.
 26645  	//
 26646  	// SecurityProfileName is a required field
 26647  	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
 26648  
 26649  	// The ARN of the target (thing group) to which the security profile is attached.
 26650  	//
 26651  	// SecurityProfileTargetArn is a required field
 26652  	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
 26653  }
 26654  
 26655  // String returns the string representation.
 26656  //
 26657  // API parameter values that are decorated as "sensitive" in the API will not
 26658  // be included in the string output. The member name will be present, but the
 26659  // value will be replaced with "sensitive".
 26660  func (s AttachSecurityProfileInput) String() string {
 26661  	return awsutil.Prettify(s)
 26662  }
 26663  
 26664  // GoString returns the string representation.
 26665  //
 26666  // API parameter values that are decorated as "sensitive" in the API will not
 26667  // be included in the string output. The member name will be present, but the
 26668  // value will be replaced with "sensitive".
 26669  func (s AttachSecurityProfileInput) GoString() string {
 26670  	return s.String()
 26671  }
 26672  
 26673  // Validate inspects the fields of the type to determine if they are valid.
 26674  func (s *AttachSecurityProfileInput) Validate() error {
 26675  	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
 26676  	if s.SecurityProfileName == nil {
 26677  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
 26678  	}
 26679  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 26680  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 26681  	}
 26682  	if s.SecurityProfileTargetArn == nil {
 26683  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
 26684  	}
 26685  
 26686  	if invalidParams.Len() > 0 {
 26687  		return invalidParams
 26688  	}
 26689  	return nil
 26690  }
 26691  
 26692  // SetSecurityProfileName sets the SecurityProfileName field's value.
 26693  func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
 26694  	s.SecurityProfileName = &v
 26695  	return s
 26696  }
 26697  
 26698  // SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
 26699  func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
 26700  	s.SecurityProfileTargetArn = &v
 26701  	return s
 26702  }
 26703  
 26704  type AttachSecurityProfileOutput struct {
 26705  	_ struct{} `type:"structure" nopayload:"true"`
 26706  }
 26707  
 26708  // String returns the string representation.
 26709  //
 26710  // API parameter values that are decorated as "sensitive" in the API will not
 26711  // be included in the string output. The member name will be present, but the
 26712  // value will be replaced with "sensitive".
 26713  func (s AttachSecurityProfileOutput) String() string {
 26714  	return awsutil.Prettify(s)
 26715  }
 26716  
 26717  // GoString returns the string representation.
 26718  //
 26719  // API parameter values that are decorated as "sensitive" in the API will not
 26720  // be included in the string output. The member name will be present, but the
 26721  // value will be replaced with "sensitive".
 26722  func (s AttachSecurityProfileOutput) GoString() string {
 26723  	return s.String()
 26724  }
 26725  
 26726  // The input for the AttachThingPrincipal operation.
 26727  type AttachThingPrincipalInput struct {
 26728  	_ struct{} `type:"structure" nopayload:"true"`
 26729  
 26730  	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
 26731  	// operation) or an Amazon Cognito ID.
 26732  	//
 26733  	// Principal is a required field
 26734  	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
 26735  
 26736  	// The name of the thing.
 26737  	//
 26738  	// ThingName is a required field
 26739  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 26740  }
 26741  
 26742  // String returns the string representation.
 26743  //
 26744  // API parameter values that are decorated as "sensitive" in the API will not
 26745  // be included in the string output. The member name will be present, but the
 26746  // value will be replaced with "sensitive".
 26747  func (s AttachThingPrincipalInput) String() string {
 26748  	return awsutil.Prettify(s)
 26749  }
 26750  
 26751  // GoString returns the string representation.
 26752  //
 26753  // API parameter values that are decorated as "sensitive" in the API will not
 26754  // be included in the string output. The member name will be present, but the
 26755  // value will be replaced with "sensitive".
 26756  func (s AttachThingPrincipalInput) GoString() string {
 26757  	return s.String()
 26758  }
 26759  
 26760  // Validate inspects the fields of the type to determine if they are valid.
 26761  func (s *AttachThingPrincipalInput) Validate() error {
 26762  	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
 26763  	if s.Principal == nil {
 26764  		invalidParams.Add(request.NewErrParamRequired("Principal"))
 26765  	}
 26766  	if s.ThingName == nil {
 26767  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 26768  	}
 26769  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 26770  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 26771  	}
 26772  
 26773  	if invalidParams.Len() > 0 {
 26774  		return invalidParams
 26775  	}
 26776  	return nil
 26777  }
 26778  
 26779  // SetPrincipal sets the Principal field's value.
 26780  func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
 26781  	s.Principal = &v
 26782  	return s
 26783  }
 26784  
 26785  // SetThingName sets the ThingName field's value.
 26786  func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
 26787  	s.ThingName = &v
 26788  	return s
 26789  }
 26790  
 26791  // The output from the AttachThingPrincipal operation.
 26792  type AttachThingPrincipalOutput struct {
 26793  	_ struct{} `type:"structure" nopayload:"true"`
 26794  }
 26795  
 26796  // String returns the string representation.
 26797  //
 26798  // API parameter values that are decorated as "sensitive" in the API will not
 26799  // be included in the string output. The member name will be present, but the
 26800  // value will be replaced with "sensitive".
 26801  func (s AttachThingPrincipalOutput) String() string {
 26802  	return awsutil.Prettify(s)
 26803  }
 26804  
 26805  // GoString returns the string representation.
 26806  //
 26807  // API parameter values that are decorated as "sensitive" in the API will not
 26808  // be included in the string output. The member name will be present, but the
 26809  // value will be replaced with "sensitive".
 26810  func (s AttachThingPrincipalOutput) GoString() string {
 26811  	return s.String()
 26812  }
 26813  
 26814  // The attribute payload.
 26815  type AttributePayload struct {
 26816  	_ struct{} `type:"structure"`
 26817  
 26818  	// A JSON string containing up to three key-value pair in JSON format. For example:
 26819  	//
 26820  	// {\"attributes\":{\"string1\":\"string2\"}}
 26821  	Attributes map[string]*string `locationName:"attributes" type:"map"`
 26822  
 26823  	// Specifies whether the list of attributes provided in the AttributePayload
 26824  	// is merged with the attributes stored in the registry, instead of overwriting
 26825  	// them.
 26826  	//
 26827  	// To remove an attribute, call UpdateThing with an empty attribute value.
 26828  	//
 26829  	// The merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
 26830  	Merge *bool `locationName:"merge" type:"boolean"`
 26831  }
 26832  
 26833  // String returns the string representation.
 26834  //
 26835  // API parameter values that are decorated as "sensitive" in the API will not
 26836  // be included in the string output. The member name will be present, but the
 26837  // value will be replaced with "sensitive".
 26838  func (s AttributePayload) String() string {
 26839  	return awsutil.Prettify(s)
 26840  }
 26841  
 26842  // GoString returns the string representation.
 26843  //
 26844  // API parameter values that are decorated as "sensitive" in the API will not
 26845  // be included in the string output. The member name will be present, but the
 26846  // value will be replaced with "sensitive".
 26847  func (s AttributePayload) GoString() string {
 26848  	return s.String()
 26849  }
 26850  
 26851  // SetAttributes sets the Attributes field's value.
 26852  func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
 26853  	s.Attributes = v
 26854  	return s
 26855  }
 26856  
 26857  // SetMerge sets the Merge field's value.
 26858  func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
 26859  	s.Merge = &v
 26860  	return s
 26861  }
 26862  
 26863  // Which audit checks are enabled and disabled for this account.
 26864  type AuditCheckConfiguration struct {
 26865  	_ struct{} `type:"structure"`
 26866  
 26867  	// True if this audit check is enabled for this account.
 26868  	Enabled *bool `locationName:"enabled" type:"boolean"`
 26869  }
 26870  
 26871  // String returns the string representation.
 26872  //
 26873  // API parameter values that are decorated as "sensitive" in the API will not
 26874  // be included in the string output. The member name will be present, but the
 26875  // value will be replaced with "sensitive".
 26876  func (s AuditCheckConfiguration) String() string {
 26877  	return awsutil.Prettify(s)
 26878  }
 26879  
 26880  // GoString returns the string representation.
 26881  //
 26882  // API parameter values that are decorated as "sensitive" in the API will not
 26883  // be included in the string output. The member name will be present, but the
 26884  // value will be replaced with "sensitive".
 26885  func (s AuditCheckConfiguration) GoString() string {
 26886  	return s.String()
 26887  }
 26888  
 26889  // SetEnabled sets the Enabled field's value.
 26890  func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
 26891  	s.Enabled = &v
 26892  	return s
 26893  }
 26894  
 26895  // Information about the audit check.
 26896  type AuditCheckDetails struct {
 26897  	_ struct{} `type:"structure"`
 26898  
 26899  	// True if the check is complete and found all resources compliant.
 26900  	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
 26901  
 26902  	// The completion status of this check. One of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
 26903  	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
 26904  	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
 26905  
 26906  	// The code of any error encountered when this check is performed during this
 26907  	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
 26908  	ErrorCode *string `locationName:"errorCode" type:"string"`
 26909  
 26910  	// The message associated with any error encountered when this check is performed
 26911  	// during this audit.
 26912  	Message *string `locationName:"message" type:"string"`
 26913  
 26914  	// The number of resources that were found noncompliant during the check.
 26915  	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
 26916  
 26917  	// Describes how many of the non-compliant resources created during the evaluation
 26918  	// of an audit check were marked as suppressed.
 26919  	SuppressedNonCompliantResourcesCount *int64 `locationName:"suppressedNonCompliantResourcesCount" type:"long"`
 26920  
 26921  	// The number of resources on which the check was performed.
 26922  	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
 26923  }
 26924  
 26925  // String returns the string representation.
 26926  //
 26927  // API parameter values that are decorated as "sensitive" in the API will not
 26928  // be included in the string output. The member name will be present, but the
 26929  // value will be replaced with "sensitive".
 26930  func (s AuditCheckDetails) String() string {
 26931  	return awsutil.Prettify(s)
 26932  }
 26933  
 26934  // GoString returns the string representation.
 26935  //
 26936  // API parameter values that are decorated as "sensitive" in the API will not
 26937  // be included in the string output. The member name will be present, but the
 26938  // value will be replaced with "sensitive".
 26939  func (s AuditCheckDetails) GoString() string {
 26940  	return s.String()
 26941  }
 26942  
 26943  // SetCheckCompliant sets the CheckCompliant field's value.
 26944  func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
 26945  	s.CheckCompliant = &v
 26946  	return s
 26947  }
 26948  
 26949  // SetCheckRunStatus sets the CheckRunStatus field's value.
 26950  func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
 26951  	s.CheckRunStatus = &v
 26952  	return s
 26953  }
 26954  
 26955  // SetErrorCode sets the ErrorCode field's value.
 26956  func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
 26957  	s.ErrorCode = &v
 26958  	return s
 26959  }
 26960  
 26961  // SetMessage sets the Message field's value.
 26962  func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
 26963  	s.Message = &v
 26964  	return s
 26965  }
 26966  
 26967  // SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
 26968  func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
 26969  	s.NonCompliantResourcesCount = &v
 26970  	return s
 26971  }
 26972  
 26973  // SetSuppressedNonCompliantResourcesCount sets the SuppressedNonCompliantResourcesCount field's value.
 26974  func (s *AuditCheckDetails) SetSuppressedNonCompliantResourcesCount(v int64) *AuditCheckDetails {
 26975  	s.SuppressedNonCompliantResourcesCount = &v
 26976  	return s
 26977  }
 26978  
 26979  // SetTotalResourcesCount sets the TotalResourcesCount field's value.
 26980  func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
 26981  	s.TotalResourcesCount = &v
 26982  	return s
 26983  }
 26984  
 26985  // The findings (results) of the audit.
 26986  type AuditFinding struct {
 26987  	_ struct{} `type:"structure"`
 26988  
 26989  	// The audit check that generated this result.
 26990  	CheckName *string `locationName:"checkName" type:"string"`
 26991  
 26992  	// A unique identifier for this set of audit findings. This identifier is used
 26993  	// to apply mitigation tasks to one or more sets of findings.
 26994  	FindingId *string `locationName:"findingId" min:"1" type:"string"`
 26995  
 26996  	// The time the result (finding) was discovered.
 26997  	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
 26998  
 26999  	// Indicates whether the audit finding was suppressed or not during reporting.
 27000  	IsSuppressed *bool `locationName:"isSuppressed" type:"boolean"`
 27001  
 27002  	// The resource that was found to be noncompliant with the audit check.
 27003  	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
 27004  
 27005  	// The reason the resource was noncompliant.
 27006  	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
 27007  
 27008  	// A code that indicates the reason that the resource was noncompliant.
 27009  	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
 27010  
 27011  	// The list of related resources.
 27012  	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
 27013  
 27014  	// The severity of the result (finding).
 27015  	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
 27016  
 27017  	// The ID of the audit that generated this result (finding).
 27018  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 27019  
 27020  	// The time the audit started.
 27021  	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
 27022  }
 27023  
 27024  // String returns the string representation.
 27025  //
 27026  // API parameter values that are decorated as "sensitive" in the API will not
 27027  // be included in the string output. The member name will be present, but the
 27028  // value will be replaced with "sensitive".
 27029  func (s AuditFinding) String() string {
 27030  	return awsutil.Prettify(s)
 27031  }
 27032  
 27033  // GoString returns the string representation.
 27034  //
 27035  // API parameter values that are decorated as "sensitive" in the API will not
 27036  // be included in the string output. The member name will be present, but the
 27037  // value will be replaced with "sensitive".
 27038  func (s AuditFinding) GoString() string {
 27039  	return s.String()
 27040  }
 27041  
 27042  // SetCheckName sets the CheckName field's value.
 27043  func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
 27044  	s.CheckName = &v
 27045  	return s
 27046  }
 27047  
 27048  // SetFindingId sets the FindingId field's value.
 27049  func (s *AuditFinding) SetFindingId(v string) *AuditFinding {
 27050  	s.FindingId = &v
 27051  	return s
 27052  }
 27053  
 27054  // SetFindingTime sets the FindingTime field's value.
 27055  func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
 27056  	s.FindingTime = &v
 27057  	return s
 27058  }
 27059  
 27060  // SetIsSuppressed sets the IsSuppressed field's value.
 27061  func (s *AuditFinding) SetIsSuppressed(v bool) *AuditFinding {
 27062  	s.IsSuppressed = &v
 27063  	return s
 27064  }
 27065  
 27066  // SetNonCompliantResource sets the NonCompliantResource field's value.
 27067  func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
 27068  	s.NonCompliantResource = v
 27069  	return s
 27070  }
 27071  
 27072  // SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
 27073  func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
 27074  	s.ReasonForNonCompliance = &v
 27075  	return s
 27076  }
 27077  
 27078  // SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
 27079  func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
 27080  	s.ReasonForNonComplianceCode = &v
 27081  	return s
 27082  }
 27083  
 27084  // SetRelatedResources sets the RelatedResources field's value.
 27085  func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
 27086  	s.RelatedResources = v
 27087  	return s
 27088  }
 27089  
 27090  // SetSeverity sets the Severity field's value.
 27091  func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
 27092  	s.Severity = &v
 27093  	return s
 27094  }
 27095  
 27096  // SetTaskId sets the TaskId field's value.
 27097  func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
 27098  	s.TaskId = &v
 27099  	return s
 27100  }
 27101  
 27102  // SetTaskStartTime sets the TaskStartTime field's value.
 27103  func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
 27104  	s.TaskStartTime = &v
 27105  	return s
 27106  }
 27107  
 27108  // Returned by ListAuditMitigationActionsTask, this object contains information
 27109  // that describes a mitigation action that has been started.
 27110  type AuditMitigationActionExecutionMetadata struct {
 27111  	_ struct{} `type:"structure"`
 27112  
 27113  	// The unique identifier for the mitigation action being applied by the task.
 27114  	ActionId *string `locationName:"actionId" type:"string"`
 27115  
 27116  	// The friendly name of the mitigation action being applied by the task.
 27117  	ActionName *string `locationName:"actionName" type:"string"`
 27118  
 27119  	// The date and time when the task was completed or canceled. Blank if the task
 27120  	// is still running.
 27121  	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
 27122  
 27123  	// If an error occurred, the code that indicates which type of error occurred.
 27124  	ErrorCode *string `locationName:"errorCode" type:"string"`
 27125  
 27126  	// The unique identifier for the findings to which the task and associated mitigation
 27127  	// action are applied.
 27128  	FindingId *string `locationName:"findingId" min:"1" type:"string"`
 27129  
 27130  	// If an error occurred, a message that describes the error.
 27131  	Message *string `locationName:"message" type:"string"`
 27132  
 27133  	// The date and time when the task was started.
 27134  	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
 27135  
 27136  	// The current status of the task being executed.
 27137  	Status *string `locationName:"status" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
 27138  
 27139  	// The unique identifier for the task that applies the mitigation action.
 27140  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 27141  }
 27142  
 27143  // String returns the string representation.
 27144  //
 27145  // API parameter values that are decorated as "sensitive" in the API will not
 27146  // be included in the string output. The member name will be present, but the
 27147  // value will be replaced with "sensitive".
 27148  func (s AuditMitigationActionExecutionMetadata) String() string {
 27149  	return awsutil.Prettify(s)
 27150  }
 27151  
 27152  // GoString returns the string representation.
 27153  //
 27154  // API parameter values that are decorated as "sensitive" in the API will not
 27155  // be included in the string output. The member name will be present, but the
 27156  // value will be replaced with "sensitive".
 27157  func (s AuditMitigationActionExecutionMetadata) GoString() string {
 27158  	return s.String()
 27159  }
 27160  
 27161  // SetActionId sets the ActionId field's value.
 27162  func (s *AuditMitigationActionExecutionMetadata) SetActionId(v string) *AuditMitigationActionExecutionMetadata {
 27163  	s.ActionId = &v
 27164  	return s
 27165  }
 27166  
 27167  // SetActionName sets the ActionName field's value.
 27168  func (s *AuditMitigationActionExecutionMetadata) SetActionName(v string) *AuditMitigationActionExecutionMetadata {
 27169  	s.ActionName = &v
 27170  	return s
 27171  }
 27172  
 27173  // SetEndTime sets the EndTime field's value.
 27174  func (s *AuditMitigationActionExecutionMetadata) SetEndTime(v time.Time) *AuditMitigationActionExecutionMetadata {
 27175  	s.EndTime = &v
 27176  	return s
 27177  }
 27178  
 27179  // SetErrorCode sets the ErrorCode field's value.
 27180  func (s *AuditMitigationActionExecutionMetadata) SetErrorCode(v string) *AuditMitigationActionExecutionMetadata {
 27181  	s.ErrorCode = &v
 27182  	return s
 27183  }
 27184  
 27185  // SetFindingId sets the FindingId field's value.
 27186  func (s *AuditMitigationActionExecutionMetadata) SetFindingId(v string) *AuditMitigationActionExecutionMetadata {
 27187  	s.FindingId = &v
 27188  	return s
 27189  }
 27190  
 27191  // SetMessage sets the Message field's value.
 27192  func (s *AuditMitigationActionExecutionMetadata) SetMessage(v string) *AuditMitigationActionExecutionMetadata {
 27193  	s.Message = &v
 27194  	return s
 27195  }
 27196  
 27197  // SetStartTime sets the StartTime field's value.
 27198  func (s *AuditMitigationActionExecutionMetadata) SetStartTime(v time.Time) *AuditMitigationActionExecutionMetadata {
 27199  	s.StartTime = &v
 27200  	return s
 27201  }
 27202  
 27203  // SetStatus sets the Status field's value.
 27204  func (s *AuditMitigationActionExecutionMetadata) SetStatus(v string) *AuditMitigationActionExecutionMetadata {
 27205  	s.Status = &v
 27206  	return s
 27207  }
 27208  
 27209  // SetTaskId sets the TaskId field's value.
 27210  func (s *AuditMitigationActionExecutionMetadata) SetTaskId(v string) *AuditMitigationActionExecutionMetadata {
 27211  	s.TaskId = &v
 27212  	return s
 27213  }
 27214  
 27215  // Information about an audit mitigation actions task that is returned by ListAuditMitigationActionsTasks.
 27216  type AuditMitigationActionsTaskMetadata struct {
 27217  	_ struct{} `type:"structure"`
 27218  
 27219  	// The time at which the audit mitigation actions task was started.
 27220  	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
 27221  
 27222  	// The unique identifier for the task.
 27223  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 27224  
 27225  	// The current state of the audit mitigation actions task.
 27226  	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
 27227  }
 27228  
 27229  // String returns the string representation.
 27230  //
 27231  // API parameter values that are decorated as "sensitive" in the API will not
 27232  // be included in the string output. The member name will be present, but the
 27233  // value will be replaced with "sensitive".
 27234  func (s AuditMitigationActionsTaskMetadata) String() string {
 27235  	return awsutil.Prettify(s)
 27236  }
 27237  
 27238  // GoString returns the string representation.
 27239  //
 27240  // API parameter values that are decorated as "sensitive" in the API will not
 27241  // be included in the string output. The member name will be present, but the
 27242  // value will be replaced with "sensitive".
 27243  func (s AuditMitigationActionsTaskMetadata) GoString() string {
 27244  	return s.String()
 27245  }
 27246  
 27247  // SetStartTime sets the StartTime field's value.
 27248  func (s *AuditMitigationActionsTaskMetadata) SetStartTime(v time.Time) *AuditMitigationActionsTaskMetadata {
 27249  	s.StartTime = &v
 27250  	return s
 27251  }
 27252  
 27253  // SetTaskId sets the TaskId field's value.
 27254  func (s *AuditMitigationActionsTaskMetadata) SetTaskId(v string) *AuditMitigationActionsTaskMetadata {
 27255  	s.TaskId = &v
 27256  	return s
 27257  }
 27258  
 27259  // SetTaskStatus sets the TaskStatus field's value.
 27260  func (s *AuditMitigationActionsTaskMetadata) SetTaskStatus(v string) *AuditMitigationActionsTaskMetadata {
 27261  	s.TaskStatus = &v
 27262  	return s
 27263  }
 27264  
 27265  // Used in MitigationActionParams, this information identifies the target findings
 27266  // to which the mitigation actions are applied. Only one entry appears.
 27267  type AuditMitigationActionsTaskTarget struct {
 27268  	_ struct{} `type:"structure"`
 27269  
 27270  	// Specifies a filter in the form of an audit check and set of reason codes
 27271  	// that identify the findings from the audit to which the audit mitigation actions
 27272  	// task apply.
 27273  	AuditCheckToReasonCodeFilter map[string][]*string `locationName:"auditCheckToReasonCodeFilter" type:"map"`
 27274  
 27275  	// If the task will apply a mitigation action to findings from a specific audit,
 27276  	// this value uniquely identifies the audit.
 27277  	AuditTaskId *string `locationName:"auditTaskId" min:"1" type:"string"`
 27278  
 27279  	// If the task will apply a mitigation action to one or more listed findings,
 27280  	// this value uniquely identifies those findings.
 27281  	FindingIds []*string `locationName:"findingIds" min:"1" type:"list"`
 27282  }
 27283  
 27284  // String returns the string representation.
 27285  //
 27286  // API parameter values that are decorated as "sensitive" in the API will not
 27287  // be included in the string output. The member name will be present, but the
 27288  // value will be replaced with "sensitive".
 27289  func (s AuditMitigationActionsTaskTarget) String() string {
 27290  	return awsutil.Prettify(s)
 27291  }
 27292  
 27293  // GoString returns the string representation.
 27294  //
 27295  // API parameter values that are decorated as "sensitive" in the API will not
 27296  // be included in the string output. The member name will be present, but the
 27297  // value will be replaced with "sensitive".
 27298  func (s AuditMitigationActionsTaskTarget) GoString() string {
 27299  	return s.String()
 27300  }
 27301  
 27302  // Validate inspects the fields of the type to determine if they are valid.
 27303  func (s *AuditMitigationActionsTaskTarget) Validate() error {
 27304  	invalidParams := request.ErrInvalidParams{Context: "AuditMitigationActionsTaskTarget"}
 27305  	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
 27306  		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
 27307  	}
 27308  	if s.FindingIds != nil && len(s.FindingIds) < 1 {
 27309  		invalidParams.Add(request.NewErrParamMinLen("FindingIds", 1))
 27310  	}
 27311  
 27312  	if invalidParams.Len() > 0 {
 27313  		return invalidParams
 27314  	}
 27315  	return nil
 27316  }
 27317  
 27318  // SetAuditCheckToReasonCodeFilter sets the AuditCheckToReasonCodeFilter field's value.
 27319  func (s *AuditMitigationActionsTaskTarget) SetAuditCheckToReasonCodeFilter(v map[string][]*string) *AuditMitigationActionsTaskTarget {
 27320  	s.AuditCheckToReasonCodeFilter = v
 27321  	return s
 27322  }
 27323  
 27324  // SetAuditTaskId sets the AuditTaskId field's value.
 27325  func (s *AuditMitigationActionsTaskTarget) SetAuditTaskId(v string) *AuditMitigationActionsTaskTarget {
 27326  	s.AuditTaskId = &v
 27327  	return s
 27328  }
 27329  
 27330  // SetFindingIds sets the FindingIds field's value.
 27331  func (s *AuditMitigationActionsTaskTarget) SetFindingIds(v []*string) *AuditMitigationActionsTaskTarget {
 27332  	s.FindingIds = v
 27333  	return s
 27334  }
 27335  
 27336  // Information about the targets to which audit notifications are sent.
 27337  type AuditNotificationTarget struct {
 27338  	_ struct{} `type:"structure"`
 27339  
 27340  	// True if notifications to the target are enabled.
 27341  	Enabled *bool `locationName:"enabled" type:"boolean"`
 27342  
 27343  	// The ARN of the role that grants permission to send notifications to the target.
 27344  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 27345  
 27346  	// The ARN of the target (SNS topic) to which audit notifications are sent.
 27347  	TargetArn *string `locationName:"targetArn" type:"string"`
 27348  }
 27349  
 27350  // String returns the string representation.
 27351  //
 27352  // API parameter values that are decorated as "sensitive" in the API will not
 27353  // be included in the string output. The member name will be present, but the
 27354  // value will be replaced with "sensitive".
 27355  func (s AuditNotificationTarget) String() string {
 27356  	return awsutil.Prettify(s)
 27357  }
 27358  
 27359  // GoString returns the string representation.
 27360  //
 27361  // API parameter values that are decorated as "sensitive" in the API will not
 27362  // be included in the string output. The member name will be present, but the
 27363  // value will be replaced with "sensitive".
 27364  func (s AuditNotificationTarget) GoString() string {
 27365  	return s.String()
 27366  }
 27367  
 27368  // Validate inspects the fields of the type to determine if they are valid.
 27369  func (s *AuditNotificationTarget) Validate() error {
 27370  	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
 27371  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 27372  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 27373  	}
 27374  
 27375  	if invalidParams.Len() > 0 {
 27376  		return invalidParams
 27377  	}
 27378  	return nil
 27379  }
 27380  
 27381  // SetEnabled sets the Enabled field's value.
 27382  func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
 27383  	s.Enabled = &v
 27384  	return s
 27385  }
 27386  
 27387  // SetRoleArn sets the RoleArn field's value.
 27388  func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
 27389  	s.RoleArn = &v
 27390  	return s
 27391  }
 27392  
 27393  // SetTargetArn sets the TargetArn field's value.
 27394  func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
 27395  	s.TargetArn = &v
 27396  	return s
 27397  }
 27398  
 27399  // Filters out specific findings of a Device Defender audit.
 27400  type AuditSuppression struct {
 27401  	_ struct{} `type:"structure"`
 27402  
 27403  	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
 27404  	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 27405  	// to select which checks are enabled.)
 27406  	//
 27407  	// CheckName is a required field
 27408  	CheckName *string `locationName:"checkName" type:"string" required:"true"`
 27409  
 27410  	// The description of the audit suppression.
 27411  	Description *string `locationName:"description" type:"string"`
 27412  
 27413  	// The expiration date (epoch timestamp in seconds) that you want the suppression
 27414  	// to adhere to.
 27415  	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
 27416  
 27417  	// Information that identifies the noncompliant resource.
 27418  	//
 27419  	// ResourceIdentifier is a required field
 27420  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
 27421  
 27422  	// Indicates whether a suppression should exist indefinitely or not.
 27423  	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
 27424  }
 27425  
 27426  // String returns the string representation.
 27427  //
 27428  // API parameter values that are decorated as "sensitive" in the API will not
 27429  // be included in the string output. The member name will be present, but the
 27430  // value will be replaced with "sensitive".
 27431  func (s AuditSuppression) String() string {
 27432  	return awsutil.Prettify(s)
 27433  }
 27434  
 27435  // GoString returns the string representation.
 27436  //
 27437  // API parameter values that are decorated as "sensitive" in the API will not
 27438  // be included in the string output. The member name will be present, but the
 27439  // value will be replaced with "sensitive".
 27440  func (s AuditSuppression) GoString() string {
 27441  	return s.String()
 27442  }
 27443  
 27444  // SetCheckName sets the CheckName field's value.
 27445  func (s *AuditSuppression) SetCheckName(v string) *AuditSuppression {
 27446  	s.CheckName = &v
 27447  	return s
 27448  }
 27449  
 27450  // SetDescription sets the Description field's value.
 27451  func (s *AuditSuppression) SetDescription(v string) *AuditSuppression {
 27452  	s.Description = &v
 27453  	return s
 27454  }
 27455  
 27456  // SetExpirationDate sets the ExpirationDate field's value.
 27457  func (s *AuditSuppression) SetExpirationDate(v time.Time) *AuditSuppression {
 27458  	s.ExpirationDate = &v
 27459  	return s
 27460  }
 27461  
 27462  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 27463  func (s *AuditSuppression) SetResourceIdentifier(v *ResourceIdentifier) *AuditSuppression {
 27464  	s.ResourceIdentifier = v
 27465  	return s
 27466  }
 27467  
 27468  // SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
 27469  func (s *AuditSuppression) SetSuppressIndefinitely(v bool) *AuditSuppression {
 27470  	s.SuppressIndefinitely = &v
 27471  	return s
 27472  }
 27473  
 27474  // The audits that were performed.
 27475  type AuditTaskMetadata struct {
 27476  	_ struct{} `type:"structure"`
 27477  
 27478  	// The ID of this audit.
 27479  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 27480  
 27481  	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
 27482  	// "CANCELED".
 27483  	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
 27484  
 27485  	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
 27486  	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
 27487  }
 27488  
 27489  // String returns the string representation.
 27490  //
 27491  // API parameter values that are decorated as "sensitive" in the API will not
 27492  // be included in the string output. The member name will be present, but the
 27493  // value will be replaced with "sensitive".
 27494  func (s AuditTaskMetadata) String() string {
 27495  	return awsutil.Prettify(s)
 27496  }
 27497  
 27498  // GoString returns the string representation.
 27499  //
 27500  // API parameter values that are decorated as "sensitive" in the API will not
 27501  // be included in the string output. The member name will be present, but the
 27502  // value will be replaced with "sensitive".
 27503  func (s AuditTaskMetadata) GoString() string {
 27504  	return s.String()
 27505  }
 27506  
 27507  // SetTaskId sets the TaskId field's value.
 27508  func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
 27509  	s.TaskId = &v
 27510  	return s
 27511  }
 27512  
 27513  // SetTaskStatus sets the TaskStatus field's value.
 27514  func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
 27515  	s.TaskStatus = &v
 27516  	return s
 27517  }
 27518  
 27519  // SetTaskType sets the TaskType field's value.
 27520  func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
 27521  	s.TaskType = &v
 27522  	return s
 27523  }
 27524  
 27525  // A collection of authorization information.
 27526  type AuthInfo struct {
 27527  	_ struct{} `type:"structure"`
 27528  
 27529  	// The type of action for which the principal is being authorized.
 27530  	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
 27531  
 27532  	// The resources for which the principal is being authorized to perform the
 27533  	// specified action.
 27534  	//
 27535  	// Resources is a required field
 27536  	Resources []*string `locationName:"resources" type:"list" required:"true"`
 27537  }
 27538  
 27539  // String returns the string representation.
 27540  //
 27541  // API parameter values that are decorated as "sensitive" in the API will not
 27542  // be included in the string output. The member name will be present, but the
 27543  // value will be replaced with "sensitive".
 27544  func (s AuthInfo) String() string {
 27545  	return awsutil.Prettify(s)
 27546  }
 27547  
 27548  // GoString returns the string representation.
 27549  //
 27550  // API parameter values that are decorated as "sensitive" in the API will not
 27551  // be included in the string output. The member name will be present, but the
 27552  // value will be replaced with "sensitive".
 27553  func (s AuthInfo) GoString() string {
 27554  	return s.String()
 27555  }
 27556  
 27557  // Validate inspects the fields of the type to determine if they are valid.
 27558  func (s *AuthInfo) Validate() error {
 27559  	invalidParams := request.ErrInvalidParams{Context: "AuthInfo"}
 27560  	if s.Resources == nil {
 27561  		invalidParams.Add(request.NewErrParamRequired("Resources"))
 27562  	}
 27563  
 27564  	if invalidParams.Len() > 0 {
 27565  		return invalidParams
 27566  	}
 27567  	return nil
 27568  }
 27569  
 27570  // SetActionType sets the ActionType field's value.
 27571  func (s *AuthInfo) SetActionType(v string) *AuthInfo {
 27572  	s.ActionType = &v
 27573  	return s
 27574  }
 27575  
 27576  // SetResources sets the Resources field's value.
 27577  func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
 27578  	s.Resources = v
 27579  	return s
 27580  }
 27581  
 27582  // The authorizer result.
 27583  type AuthResult struct {
 27584  	_ struct{} `type:"structure"`
 27585  
 27586  	// The policies and statements that allowed the specified action.
 27587  	Allowed *Allowed `locationName:"allowed" type:"structure"`
 27588  
 27589  	// The final authorization decision of this scenario. Multiple statements are
 27590  	// taken into account when determining the authorization decision. An explicit
 27591  	// deny statement can override multiple allow statements.
 27592  	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
 27593  
 27594  	// Authorization information.
 27595  	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
 27596  
 27597  	// The policies and statements that denied the specified action.
 27598  	Denied *Denied `locationName:"denied" type:"structure"`
 27599  
 27600  	// Contains any missing context values found while evaluating policy.
 27601  	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
 27602  }
 27603  
 27604  // String returns the string representation.
 27605  //
 27606  // API parameter values that are decorated as "sensitive" in the API will not
 27607  // be included in the string output. The member name will be present, but the
 27608  // value will be replaced with "sensitive".
 27609  func (s AuthResult) String() string {
 27610  	return awsutil.Prettify(s)
 27611  }
 27612  
 27613  // GoString returns the string representation.
 27614  //
 27615  // API parameter values that are decorated as "sensitive" in the API will not
 27616  // be included in the string output. The member name will be present, but the
 27617  // value will be replaced with "sensitive".
 27618  func (s AuthResult) GoString() string {
 27619  	return s.String()
 27620  }
 27621  
 27622  // SetAllowed sets the Allowed field's value.
 27623  func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
 27624  	s.Allowed = v
 27625  	return s
 27626  }
 27627  
 27628  // SetAuthDecision sets the AuthDecision field's value.
 27629  func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
 27630  	s.AuthDecision = &v
 27631  	return s
 27632  }
 27633  
 27634  // SetAuthInfo sets the AuthInfo field's value.
 27635  func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
 27636  	s.AuthInfo = v
 27637  	return s
 27638  }
 27639  
 27640  // SetDenied sets the Denied field's value.
 27641  func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
 27642  	s.Denied = v
 27643  	return s
 27644  }
 27645  
 27646  // SetMissingContextValues sets the MissingContextValues field's value.
 27647  func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
 27648  	s.MissingContextValues = v
 27649  	return s
 27650  }
 27651  
 27652  // An object that specifies the authorization service for a domain.
 27653  type AuthorizerConfig struct {
 27654  	_ struct{} `type:"structure"`
 27655  
 27656  	// A Boolean that specifies whether the domain configuration's authorization
 27657  	// service can be overridden.
 27658  	AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"`
 27659  
 27660  	// The name of the authorization service for a domain configuration.
 27661  	DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"`
 27662  }
 27663  
 27664  // String returns the string representation.
 27665  //
 27666  // API parameter values that are decorated as "sensitive" in the API will not
 27667  // be included in the string output. The member name will be present, but the
 27668  // value will be replaced with "sensitive".
 27669  func (s AuthorizerConfig) String() string {
 27670  	return awsutil.Prettify(s)
 27671  }
 27672  
 27673  // GoString returns the string representation.
 27674  //
 27675  // API parameter values that are decorated as "sensitive" in the API will not
 27676  // be included in the string output. The member name will be present, but the
 27677  // value will be replaced with "sensitive".
 27678  func (s AuthorizerConfig) GoString() string {
 27679  	return s.String()
 27680  }
 27681  
 27682  // Validate inspects the fields of the type to determine if they are valid.
 27683  func (s *AuthorizerConfig) Validate() error {
 27684  	invalidParams := request.ErrInvalidParams{Context: "AuthorizerConfig"}
 27685  	if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 {
 27686  		invalidParams.Add(request.NewErrParamMinLen("DefaultAuthorizerName", 1))
 27687  	}
 27688  
 27689  	if invalidParams.Len() > 0 {
 27690  		return invalidParams
 27691  	}
 27692  	return nil
 27693  }
 27694  
 27695  // SetAllowAuthorizerOverride sets the AllowAuthorizerOverride field's value.
 27696  func (s *AuthorizerConfig) SetAllowAuthorizerOverride(v bool) *AuthorizerConfig {
 27697  	s.AllowAuthorizerOverride = &v
 27698  	return s
 27699  }
 27700  
 27701  // SetDefaultAuthorizerName sets the DefaultAuthorizerName field's value.
 27702  func (s *AuthorizerConfig) SetDefaultAuthorizerName(v string) *AuthorizerConfig {
 27703  	s.DefaultAuthorizerName = &v
 27704  	return s
 27705  }
 27706  
 27707  // The authorizer description.
 27708  type AuthorizerDescription struct {
 27709  	_ struct{} `type:"structure"`
 27710  
 27711  	// The authorizer ARN.
 27712  	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
 27713  
 27714  	// The authorizer's Lambda function ARN.
 27715  	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
 27716  
 27717  	// The authorizer name.
 27718  	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
 27719  
 27720  	// The UNIX timestamp of when the authorizer was created.
 27721  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 27722  
 27723  	// The UNIX timestamp of when the authorizer was last updated.
 27724  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 27725  
 27726  	// Specifies whether IoT validates the token signature in an authorization request.
 27727  	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
 27728  
 27729  	// The status of the authorizer.
 27730  	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
 27731  
 27732  	// The key used to extract the token from the HTTP headers.
 27733  	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
 27734  
 27735  	// The public keys used to validate the token signature returned by your custom
 27736  	// authentication service.
 27737  	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
 27738  }
 27739  
 27740  // String returns the string representation.
 27741  //
 27742  // API parameter values that are decorated as "sensitive" in the API will not
 27743  // be included in the string output. The member name will be present, but the
 27744  // value will be replaced with "sensitive".
 27745  func (s AuthorizerDescription) String() string {
 27746  	return awsutil.Prettify(s)
 27747  }
 27748  
 27749  // GoString returns the string representation.
 27750  //
 27751  // API parameter values that are decorated as "sensitive" in the API will not
 27752  // be included in the string output. The member name will be present, but the
 27753  // value will be replaced with "sensitive".
 27754  func (s AuthorizerDescription) GoString() string {
 27755  	return s.String()
 27756  }
 27757  
 27758  // SetAuthorizerArn sets the AuthorizerArn field's value.
 27759  func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
 27760  	s.AuthorizerArn = &v
 27761  	return s
 27762  }
 27763  
 27764  // SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
 27765  func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
 27766  	s.AuthorizerFunctionArn = &v
 27767  	return s
 27768  }
 27769  
 27770  // SetAuthorizerName sets the AuthorizerName field's value.
 27771  func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
 27772  	s.AuthorizerName = &v
 27773  	return s
 27774  }
 27775  
 27776  // SetCreationDate sets the CreationDate field's value.
 27777  func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
 27778  	s.CreationDate = &v
 27779  	return s
 27780  }
 27781  
 27782  // SetLastModifiedDate sets the LastModifiedDate field's value.
 27783  func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
 27784  	s.LastModifiedDate = &v
 27785  	return s
 27786  }
 27787  
 27788  // SetSigningDisabled sets the SigningDisabled field's value.
 27789  func (s *AuthorizerDescription) SetSigningDisabled(v bool) *AuthorizerDescription {
 27790  	s.SigningDisabled = &v
 27791  	return s
 27792  }
 27793  
 27794  // SetStatus sets the Status field's value.
 27795  func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
 27796  	s.Status = &v
 27797  	return s
 27798  }
 27799  
 27800  // SetTokenKeyName sets the TokenKeyName field's value.
 27801  func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
 27802  	s.TokenKeyName = &v
 27803  	return s
 27804  }
 27805  
 27806  // SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
 27807  func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
 27808  	s.TokenSigningPublicKeys = v
 27809  	return s
 27810  }
 27811  
 27812  // The authorizer summary.
 27813  type AuthorizerSummary struct {
 27814  	_ struct{} `type:"structure"`
 27815  
 27816  	// The authorizer ARN.
 27817  	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
 27818  
 27819  	// The authorizer name.
 27820  	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
 27821  }
 27822  
 27823  // String returns the string representation.
 27824  //
 27825  // API parameter values that are decorated as "sensitive" in the API will not
 27826  // be included in the string output. The member name will be present, but the
 27827  // value will be replaced with "sensitive".
 27828  func (s AuthorizerSummary) String() string {
 27829  	return awsutil.Prettify(s)
 27830  }
 27831  
 27832  // GoString returns the string representation.
 27833  //
 27834  // API parameter values that are decorated as "sensitive" in the API will not
 27835  // be included in the string output. The member name will be present, but the
 27836  // value will be replaced with "sensitive".
 27837  func (s AuthorizerSummary) GoString() string {
 27838  	return s.String()
 27839  }
 27840  
 27841  // SetAuthorizerArn sets the AuthorizerArn field's value.
 27842  func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
 27843  	s.AuthorizerArn = &v
 27844  	return s
 27845  }
 27846  
 27847  // SetAuthorizerName sets the AuthorizerName field's value.
 27848  func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
 27849  	s.AuthorizerName = &v
 27850  	return s
 27851  }
 27852  
 27853  // The criteria that determine when and how a job abort takes place.
 27854  type AwsJobAbortConfig struct {
 27855  	_ struct{} `type:"structure"`
 27856  
 27857  	// The list of criteria that determine when and how to abort the job.
 27858  	//
 27859  	// AbortCriteriaList is a required field
 27860  	AbortCriteriaList []*AwsJobAbortCriteria `locationName:"abortCriteriaList" min:"1" type:"list" required:"true"`
 27861  }
 27862  
 27863  // String returns the string representation.
 27864  //
 27865  // API parameter values that are decorated as "sensitive" in the API will not
 27866  // be included in the string output. The member name will be present, but the
 27867  // value will be replaced with "sensitive".
 27868  func (s AwsJobAbortConfig) String() string {
 27869  	return awsutil.Prettify(s)
 27870  }
 27871  
 27872  // GoString returns the string representation.
 27873  //
 27874  // API parameter values that are decorated as "sensitive" in the API will not
 27875  // be included in the string output. The member name will be present, but the
 27876  // value will be replaced with "sensitive".
 27877  func (s AwsJobAbortConfig) GoString() string {
 27878  	return s.String()
 27879  }
 27880  
 27881  // Validate inspects the fields of the type to determine if they are valid.
 27882  func (s *AwsJobAbortConfig) Validate() error {
 27883  	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortConfig"}
 27884  	if s.AbortCriteriaList == nil {
 27885  		invalidParams.Add(request.NewErrParamRequired("AbortCriteriaList"))
 27886  	}
 27887  	if s.AbortCriteriaList != nil && len(s.AbortCriteriaList) < 1 {
 27888  		invalidParams.Add(request.NewErrParamMinLen("AbortCriteriaList", 1))
 27889  	}
 27890  	if s.AbortCriteriaList != nil {
 27891  		for i, v := range s.AbortCriteriaList {
 27892  			if v == nil {
 27893  				continue
 27894  			}
 27895  			if err := v.Validate(); err != nil {
 27896  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AbortCriteriaList", i), err.(request.ErrInvalidParams))
 27897  			}
 27898  		}
 27899  	}
 27900  
 27901  	if invalidParams.Len() > 0 {
 27902  		return invalidParams
 27903  	}
 27904  	return nil
 27905  }
 27906  
 27907  // SetAbortCriteriaList sets the AbortCriteriaList field's value.
 27908  func (s *AwsJobAbortConfig) SetAbortCriteriaList(v []*AwsJobAbortCriteria) *AwsJobAbortConfig {
 27909  	s.AbortCriteriaList = v
 27910  	return s
 27911  }
 27912  
 27913  // The criteria that determine when and how a job abort takes place.
 27914  type AwsJobAbortCriteria struct {
 27915  	_ struct{} `type:"structure"`
 27916  
 27917  	// The type of job action to take to initiate the job abort.
 27918  	//
 27919  	// Action is a required field
 27920  	Action *string `locationName:"action" type:"string" required:"true" enum:"AwsJobAbortCriteriaAbortAction"`
 27921  
 27922  	// The type of job execution failures that can initiate a job abort.
 27923  	//
 27924  	// FailureType is a required field
 27925  	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"AwsJobAbortCriteriaFailureType"`
 27926  
 27927  	// The minimum number of things which must receive job execution notifications
 27928  	// before the job can be aborted.
 27929  	//
 27930  	// MinNumberOfExecutedThings is a required field
 27931  	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
 27932  
 27933  	// The minimum percentage of job execution failures that must occur to initiate
 27934  	// the job abort.
 27935  	//
 27936  	// Amazon Web Services IoT Core supports up to two digits after the decimal
 27937  	// (for example, 10.9 and 10.99, but not 10.999).
 27938  	//
 27939  	// ThresholdPercentage is a required field
 27940  	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
 27941  }
 27942  
 27943  // String returns the string representation.
 27944  //
 27945  // API parameter values that are decorated as "sensitive" in the API will not
 27946  // be included in the string output. The member name will be present, but the
 27947  // value will be replaced with "sensitive".
 27948  func (s AwsJobAbortCriteria) String() string {
 27949  	return awsutil.Prettify(s)
 27950  }
 27951  
 27952  // GoString returns the string representation.
 27953  //
 27954  // API parameter values that are decorated as "sensitive" in the API will not
 27955  // be included in the string output. The member name will be present, but the
 27956  // value will be replaced with "sensitive".
 27957  func (s AwsJobAbortCriteria) GoString() string {
 27958  	return s.String()
 27959  }
 27960  
 27961  // Validate inspects the fields of the type to determine if they are valid.
 27962  func (s *AwsJobAbortCriteria) Validate() error {
 27963  	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortCriteria"}
 27964  	if s.Action == nil {
 27965  		invalidParams.Add(request.NewErrParamRequired("Action"))
 27966  	}
 27967  	if s.FailureType == nil {
 27968  		invalidParams.Add(request.NewErrParamRequired("FailureType"))
 27969  	}
 27970  	if s.MinNumberOfExecutedThings == nil {
 27971  		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
 27972  	}
 27973  	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
 27974  		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
 27975  	}
 27976  	if s.ThresholdPercentage == nil {
 27977  		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
 27978  	}
 27979  
 27980  	if invalidParams.Len() > 0 {
 27981  		return invalidParams
 27982  	}
 27983  	return nil
 27984  }
 27985  
 27986  // SetAction sets the Action field's value.
 27987  func (s *AwsJobAbortCriteria) SetAction(v string) *AwsJobAbortCriteria {
 27988  	s.Action = &v
 27989  	return s
 27990  }
 27991  
 27992  // SetFailureType sets the FailureType field's value.
 27993  func (s *AwsJobAbortCriteria) SetFailureType(v string) *AwsJobAbortCriteria {
 27994  	s.FailureType = &v
 27995  	return s
 27996  }
 27997  
 27998  // SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
 27999  func (s *AwsJobAbortCriteria) SetMinNumberOfExecutedThings(v int64) *AwsJobAbortCriteria {
 28000  	s.MinNumberOfExecutedThings = &v
 28001  	return s
 28002  }
 28003  
 28004  // SetThresholdPercentage sets the ThresholdPercentage field's value.
 28005  func (s *AwsJobAbortCriteria) SetThresholdPercentage(v float64) *AwsJobAbortCriteria {
 28006  	s.ThresholdPercentage = &v
 28007  	return s
 28008  }
 28009  
 28010  // Configuration for the rollout of OTA updates.
 28011  type AwsJobExecutionsRolloutConfig struct {
 28012  	_ struct{} `type:"structure"`
 28013  
 28014  	// The rate of increase for a job rollout. This parameter allows you to define
 28015  	// an exponential rate increase for a job rollout.
 28016  	ExponentialRate *AwsJobExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
 28017  
 28018  	// The maximum number of OTA update job executions started per minute.
 28019  	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
 28020  }
 28021  
 28022  // String returns the string representation.
 28023  //
 28024  // API parameter values that are decorated as "sensitive" in the API will not
 28025  // be included in the string output. The member name will be present, but the
 28026  // value will be replaced with "sensitive".
 28027  func (s AwsJobExecutionsRolloutConfig) String() string {
 28028  	return awsutil.Prettify(s)
 28029  }
 28030  
 28031  // GoString returns the string representation.
 28032  //
 28033  // API parameter values that are decorated as "sensitive" in the API will not
 28034  // be included in the string output. The member name will be present, but the
 28035  // value will be replaced with "sensitive".
 28036  func (s AwsJobExecutionsRolloutConfig) GoString() string {
 28037  	return s.String()
 28038  }
 28039  
 28040  // Validate inspects the fields of the type to determine if they are valid.
 28041  func (s *AwsJobExecutionsRolloutConfig) Validate() error {
 28042  	invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"}
 28043  	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
 28044  		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
 28045  	}
 28046  	if s.ExponentialRate != nil {
 28047  		if err := s.ExponentialRate.Validate(); err != nil {
 28048  			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
 28049  		}
 28050  	}
 28051  
 28052  	if invalidParams.Len() > 0 {
 28053  		return invalidParams
 28054  	}
 28055  	return nil
 28056  }
 28057  
 28058  // SetExponentialRate sets the ExponentialRate field's value.
 28059  func (s *AwsJobExecutionsRolloutConfig) SetExponentialRate(v *AwsJobExponentialRolloutRate) *AwsJobExecutionsRolloutConfig {
 28060  	s.ExponentialRate = v
 28061  	return s
 28062  }
 28063  
 28064  // SetMaximumPerMinute sets the MaximumPerMinute field's value.
 28065  func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig {
 28066  	s.MaximumPerMinute = &v
 28067  	return s
 28068  }
 28069  
 28070  // The rate of increase for a job rollout. This parameter allows you to define
 28071  // an exponential rate increase for a job rollout.
 28072  type AwsJobExponentialRolloutRate struct {
 28073  	_ struct{} `type:"structure"`
 28074  
 28075  	// The minimum number of things that will be notified of a pending job, per
 28076  	// minute, at the start of the job rollout. This is the initial rate of the
 28077  	// rollout.
 28078  	//
 28079  	// BaseRatePerMinute is a required field
 28080  	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
 28081  
 28082  	// The rate of increase for a job rollout. The number of things notified is
 28083  	// multiplied by this factor.
 28084  	//
 28085  	// IncrementFactor is a required field
 28086  	IncrementFactor *float64 `locationName:"incrementFactor" type:"double" required:"true"`
 28087  
 28088  	// The criteria to initiate the increase in rate of rollout for a job.
 28089  	//
 28090  	// Amazon Web Services IoT Core supports up to one digit after the decimal (for
 28091  	// example, 1.5, but not 1.55).
 28092  	//
 28093  	// RateIncreaseCriteria is a required field
 28094  	RateIncreaseCriteria *AwsJobRateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
 28095  }
 28096  
 28097  // String returns the string representation.
 28098  //
 28099  // API parameter values that are decorated as "sensitive" in the API will not
 28100  // be included in the string output. The member name will be present, but the
 28101  // value will be replaced with "sensitive".
 28102  func (s AwsJobExponentialRolloutRate) String() string {
 28103  	return awsutil.Prettify(s)
 28104  }
 28105  
 28106  // GoString returns the string representation.
 28107  //
 28108  // API parameter values that are decorated as "sensitive" in the API will not
 28109  // be included in the string output. The member name will be present, but the
 28110  // value will be replaced with "sensitive".
 28111  func (s AwsJobExponentialRolloutRate) GoString() string {
 28112  	return s.String()
 28113  }
 28114  
 28115  // Validate inspects the fields of the type to determine if they are valid.
 28116  func (s *AwsJobExponentialRolloutRate) Validate() error {
 28117  	invalidParams := request.ErrInvalidParams{Context: "AwsJobExponentialRolloutRate"}
 28118  	if s.BaseRatePerMinute == nil {
 28119  		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
 28120  	}
 28121  	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
 28122  		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
 28123  	}
 28124  	if s.IncrementFactor == nil {
 28125  		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
 28126  	}
 28127  	if s.RateIncreaseCriteria == nil {
 28128  		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
 28129  	}
 28130  	if s.RateIncreaseCriteria != nil {
 28131  		if err := s.RateIncreaseCriteria.Validate(); err != nil {
 28132  			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
 28133  		}
 28134  	}
 28135  
 28136  	if invalidParams.Len() > 0 {
 28137  		return invalidParams
 28138  	}
 28139  	return nil
 28140  }
 28141  
 28142  // SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
 28143  func (s *AwsJobExponentialRolloutRate) SetBaseRatePerMinute(v int64) *AwsJobExponentialRolloutRate {
 28144  	s.BaseRatePerMinute = &v
 28145  	return s
 28146  }
 28147  
 28148  // SetIncrementFactor sets the IncrementFactor field's value.
 28149  func (s *AwsJobExponentialRolloutRate) SetIncrementFactor(v float64) *AwsJobExponentialRolloutRate {
 28150  	s.IncrementFactor = &v
 28151  	return s
 28152  }
 28153  
 28154  // SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
 28155  func (s *AwsJobExponentialRolloutRate) SetRateIncreaseCriteria(v *AwsJobRateIncreaseCriteria) *AwsJobExponentialRolloutRate {
 28156  	s.RateIncreaseCriteria = v
 28157  	return s
 28158  }
 28159  
 28160  // Configuration information for pre-signed URLs. Valid when protocols contains
 28161  // HTTP.
 28162  type AwsJobPresignedUrlConfig struct {
 28163  	_ struct{} `type:"structure"`
 28164  
 28165  	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
 28166  	// the default value is 1800 seconds. Pre-signed URLs are generated when a request
 28167  	// for the job document is received.
 28168  	ExpiresInSec *int64 `locationName:"expiresInSec" type:"long"`
 28169  }
 28170  
 28171  // String returns the string representation.
 28172  //
 28173  // API parameter values that are decorated as "sensitive" in the API will not
 28174  // be included in the string output. The member name will be present, but the
 28175  // value will be replaced with "sensitive".
 28176  func (s AwsJobPresignedUrlConfig) String() string {
 28177  	return awsutil.Prettify(s)
 28178  }
 28179  
 28180  // GoString returns the string representation.
 28181  //
 28182  // API parameter values that are decorated as "sensitive" in the API will not
 28183  // be included in the string output. The member name will be present, but the
 28184  // value will be replaced with "sensitive".
 28185  func (s AwsJobPresignedUrlConfig) GoString() string {
 28186  	return s.String()
 28187  }
 28188  
 28189  // SetExpiresInSec sets the ExpiresInSec field's value.
 28190  func (s *AwsJobPresignedUrlConfig) SetExpiresInSec(v int64) *AwsJobPresignedUrlConfig {
 28191  	s.ExpiresInSec = &v
 28192  	return s
 28193  }
 28194  
 28195  // The criteria to initiate the increase in rate of rollout for a job.
 28196  type AwsJobRateIncreaseCriteria struct {
 28197  	_ struct{} `type:"structure"`
 28198  
 28199  	// When this number of things have been notified, it will initiate an increase
 28200  	// in the rollout rate.
 28201  	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
 28202  
 28203  	// When this number of things have succeeded in their job execution, it will
 28204  	// initiate an increase in the rollout rate.
 28205  	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
 28206  }
 28207  
 28208  // String returns the string representation.
 28209  //
 28210  // API parameter values that are decorated as "sensitive" in the API will not
 28211  // be included in the string output. The member name will be present, but the
 28212  // value will be replaced with "sensitive".
 28213  func (s AwsJobRateIncreaseCriteria) String() string {
 28214  	return awsutil.Prettify(s)
 28215  }
 28216  
 28217  // GoString returns the string representation.
 28218  //
 28219  // API parameter values that are decorated as "sensitive" in the API will not
 28220  // be included in the string output. The member name will be present, but the
 28221  // value will be replaced with "sensitive".
 28222  func (s AwsJobRateIncreaseCriteria) GoString() string {
 28223  	return s.String()
 28224  }
 28225  
 28226  // Validate inspects the fields of the type to determine if they are valid.
 28227  func (s *AwsJobRateIncreaseCriteria) Validate() error {
 28228  	invalidParams := request.ErrInvalidParams{Context: "AwsJobRateIncreaseCriteria"}
 28229  	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
 28230  		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
 28231  	}
 28232  	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
 28233  		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
 28234  	}
 28235  
 28236  	if invalidParams.Len() > 0 {
 28237  		return invalidParams
 28238  	}
 28239  	return nil
 28240  }
 28241  
 28242  // SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
 28243  func (s *AwsJobRateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *AwsJobRateIncreaseCriteria {
 28244  	s.NumberOfNotifiedThings = &v
 28245  	return s
 28246  }
 28247  
 28248  // SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
 28249  func (s *AwsJobRateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *AwsJobRateIncreaseCriteria {
 28250  	s.NumberOfSucceededThings = &v
 28251  	return s
 28252  }
 28253  
 28254  // Specifies the amount of time each device has to finish its execution of the
 28255  // job. A timer is started when the job execution status is set to IN_PROGRESS.
 28256  // If the job execution status is not set to another terminal state before the
 28257  // timer expires, it will be automatically set to TIMED_OUT.
 28258  type AwsJobTimeoutConfig struct {
 28259  	_ struct{} `type:"structure"`
 28260  
 28261  	// Specifies the amount of time, in minutes, this device has to finish execution
 28262  	// of this job. The timeout interval can be anywhere between 1 minute and 7
 28263  	// days (1 to 10080 minutes). The in progress timer can't be updated and will
 28264  	// apply to all job executions for the job. Whenever a job execution remains
 28265  	// in the IN_PROGRESS status for longer than this interval, the job execution
 28266  	// will fail and switch to the terminal TIMED_OUT status.
 28267  	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
 28268  }
 28269  
 28270  // String returns the string representation.
 28271  //
 28272  // API parameter values that are decorated as "sensitive" in the API will not
 28273  // be included in the string output. The member name will be present, but the
 28274  // value will be replaced with "sensitive".
 28275  func (s AwsJobTimeoutConfig) String() string {
 28276  	return awsutil.Prettify(s)
 28277  }
 28278  
 28279  // GoString returns the string representation.
 28280  //
 28281  // API parameter values that are decorated as "sensitive" in the API will not
 28282  // be included in the string output. The member name will be present, but the
 28283  // value will be replaced with "sensitive".
 28284  func (s AwsJobTimeoutConfig) GoString() string {
 28285  	return s.String()
 28286  }
 28287  
 28288  // SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
 28289  func (s *AwsJobTimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *AwsJobTimeoutConfig {
 28290  	s.InProgressTimeoutInMinutes = &v
 28291  	return s
 28292  }
 28293  
 28294  // A Device Defender security profile behavior.
 28295  type Behavior struct {
 28296  	_ struct{} `type:"structure"`
 28297  
 28298  	// The criteria that determine if a device is behaving normally in regard to
 28299  	// the metric.
 28300  	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
 28301  
 28302  	// What is measured by the behavior.
 28303  	Metric *string `locationName:"metric" type:"string"`
 28304  
 28305  	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
 28306  	// dimension, you can narrow down the scope of the metric to only MQTT topics
 28307  	// where the name matches the pattern specified in the dimension. This can't
 28308  	// be used with custom metrics.
 28309  	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
 28310  
 28311  	// The name you've given to the behavior.
 28312  	//
 28313  	// Name is a required field
 28314  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
 28315  
 28316  	// Suppresses alerts.
 28317  	SuppressAlerts *bool `locationName:"suppressAlerts" type:"boolean"`
 28318  }
 28319  
 28320  // String returns the string representation.
 28321  //
 28322  // API parameter values that are decorated as "sensitive" in the API will not
 28323  // be included in the string output. The member name will be present, but the
 28324  // value will be replaced with "sensitive".
 28325  func (s Behavior) String() string {
 28326  	return awsutil.Prettify(s)
 28327  }
 28328  
 28329  // GoString returns the string representation.
 28330  //
 28331  // API parameter values that are decorated as "sensitive" in the API will not
 28332  // be included in the string output. The member name will be present, but the
 28333  // value will be replaced with "sensitive".
 28334  func (s Behavior) GoString() string {
 28335  	return s.String()
 28336  }
 28337  
 28338  // Validate inspects the fields of the type to determine if they are valid.
 28339  func (s *Behavior) Validate() error {
 28340  	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
 28341  	if s.Name == nil {
 28342  		invalidParams.Add(request.NewErrParamRequired("Name"))
 28343  	}
 28344  	if s.Name != nil && len(*s.Name) < 1 {
 28345  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 28346  	}
 28347  	if s.Criteria != nil {
 28348  		if err := s.Criteria.Validate(); err != nil {
 28349  			invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
 28350  		}
 28351  	}
 28352  	if s.MetricDimension != nil {
 28353  		if err := s.MetricDimension.Validate(); err != nil {
 28354  			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
 28355  		}
 28356  	}
 28357  
 28358  	if invalidParams.Len() > 0 {
 28359  		return invalidParams
 28360  	}
 28361  	return nil
 28362  }
 28363  
 28364  // SetCriteria sets the Criteria field's value.
 28365  func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
 28366  	s.Criteria = v
 28367  	return s
 28368  }
 28369  
 28370  // SetMetric sets the Metric field's value.
 28371  func (s *Behavior) SetMetric(v string) *Behavior {
 28372  	s.Metric = &v
 28373  	return s
 28374  }
 28375  
 28376  // SetMetricDimension sets the MetricDimension field's value.
 28377  func (s *Behavior) SetMetricDimension(v *MetricDimension) *Behavior {
 28378  	s.MetricDimension = v
 28379  	return s
 28380  }
 28381  
 28382  // SetName sets the Name field's value.
 28383  func (s *Behavior) SetName(v string) *Behavior {
 28384  	s.Name = &v
 28385  	return s
 28386  }
 28387  
 28388  // SetSuppressAlerts sets the SuppressAlerts field's value.
 28389  func (s *Behavior) SetSuppressAlerts(v bool) *Behavior {
 28390  	s.SuppressAlerts = &v
 28391  	return s
 28392  }
 28393  
 28394  // The criteria by which the behavior is determined to be normal.
 28395  type BehaviorCriteria struct {
 28396  	_ struct{} `type:"structure"`
 28397  
 28398  	// The operator that relates the thing measured (metric) to the criteria (containing
 28399  	// a value or statisticalThreshold). Valid operators include:
 28400  	//
 28401  	//    * string-list: in-set and not-in-set
 28402  	//
 28403  	//    * number-list: in-set and not-in-set
 28404  	//
 28405  	//    * ip-address-list: in-cidr-set and not-in-cidr-set
 28406  	//
 28407  	//    * number: less-than, less-than-equals, greater-than, and greater-than-equals
 28408  	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
 28409  
 28410  	// If a device is in violation of the behavior for the specified number of consecutive
 28411  	// datapoints, an alarm occurs. If not specified, the default is 1.
 28412  	ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
 28413  
 28414  	// If an alarm has occurred and the offending device is no longer in violation
 28415  	// of the behavior for the specified number of consecutive datapoints, the alarm
 28416  	// is cleared. If not specified, the default is 1.
 28417  	ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
 28418  
 28419  	// Use this to specify the time duration over which the behavior is evaluated,
 28420  	// for those criteria that have a time dimension (for example, NUM_MESSAGES_SENT).
 28421  	// For a statisticalThreshhold metric comparison, measurements from all devices
 28422  	// are accumulated over this time duration before being used to calculate percentiles,
 28423  	// and later, measurements from an individual device are also accumulated over
 28424  	// this time duration before being given a percentile rank. Cannot be used with
 28425  	// list-based metric datatypes.
 28426  	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
 28427  
 28428  	// The configuration of an ML Detect
 28429  	MlDetectionConfig *MachineLearningDetectionConfig `locationName:"mlDetectionConfig" type:"structure"`
 28430  
 28431  	// A statistical ranking (percentile)that indicates a threshold value by which
 28432  	// a behavior is determined to be in compliance or in violation of the behavior.
 28433  	StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
 28434  
 28435  	// The value to be compared with the metric.
 28436  	Value *MetricValue `locationName:"value" type:"structure"`
 28437  }
 28438  
 28439  // String returns the string representation.
 28440  //
 28441  // API parameter values that are decorated as "sensitive" in the API will not
 28442  // be included in the string output. The member name will be present, but the
 28443  // value will be replaced with "sensitive".
 28444  func (s BehaviorCriteria) String() string {
 28445  	return awsutil.Prettify(s)
 28446  }
 28447  
 28448  // GoString returns the string representation.
 28449  //
 28450  // API parameter values that are decorated as "sensitive" in the API will not
 28451  // be included in the string output. The member name will be present, but the
 28452  // value will be replaced with "sensitive".
 28453  func (s BehaviorCriteria) GoString() string {
 28454  	return s.String()
 28455  }
 28456  
 28457  // Validate inspects the fields of the type to determine if they are valid.
 28458  func (s *BehaviorCriteria) Validate() error {
 28459  	invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
 28460  	if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
 28461  		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
 28462  	}
 28463  	if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
 28464  		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
 28465  	}
 28466  	if s.MlDetectionConfig != nil {
 28467  		if err := s.MlDetectionConfig.Validate(); err != nil {
 28468  			invalidParams.AddNested("MlDetectionConfig", err.(request.ErrInvalidParams))
 28469  		}
 28470  	}
 28471  
 28472  	if invalidParams.Len() > 0 {
 28473  		return invalidParams
 28474  	}
 28475  	return nil
 28476  }
 28477  
 28478  // SetComparisonOperator sets the ComparisonOperator field's value.
 28479  func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
 28480  	s.ComparisonOperator = &v
 28481  	return s
 28482  }
 28483  
 28484  // SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
 28485  func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
 28486  	s.ConsecutiveDatapointsToAlarm = &v
 28487  	return s
 28488  }
 28489  
 28490  // SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
 28491  func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
 28492  	s.ConsecutiveDatapointsToClear = &v
 28493  	return s
 28494  }
 28495  
 28496  // SetDurationSeconds sets the DurationSeconds field's value.
 28497  func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
 28498  	s.DurationSeconds = &v
 28499  	return s
 28500  }
 28501  
 28502  // SetMlDetectionConfig sets the MlDetectionConfig field's value.
 28503  func (s *BehaviorCriteria) SetMlDetectionConfig(v *MachineLearningDetectionConfig) *BehaviorCriteria {
 28504  	s.MlDetectionConfig = v
 28505  	return s
 28506  }
 28507  
 28508  // SetStatisticalThreshold sets the StatisticalThreshold field's value.
 28509  func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
 28510  	s.StatisticalThreshold = v
 28511  	return s
 28512  }
 28513  
 28514  // SetValue sets the Value field's value.
 28515  func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
 28516  	s.Value = v
 28517  	return s
 28518  }
 28519  
 28520  // The summary of an ML Detect behavior model.
 28521  type BehaviorModelTrainingSummary struct {
 28522  	_ struct{} `type:"structure"`
 28523  
 28524  	// The name of the behavior.
 28525  	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
 28526  
 28527  	// The percentage of datapoints collected.
 28528  	DatapointsCollectionPercentage *float64 `locationName:"datapointsCollectionPercentage" type:"double"`
 28529  
 28530  	// The date the model was last refreshed.
 28531  	LastModelRefreshDate *time.Time `locationName:"lastModelRefreshDate" type:"timestamp"`
 28532  
 28533  	// The status of the behavior model.
 28534  	ModelStatus *string `locationName:"modelStatus" type:"string" enum:"ModelStatus"`
 28535  
 28536  	// The name of the security profile.
 28537  	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
 28538  
 28539  	// The date a training model started collecting data.
 28540  	TrainingDataCollectionStartDate *time.Time `locationName:"trainingDataCollectionStartDate" type:"timestamp"`
 28541  }
 28542  
 28543  // String returns the string representation.
 28544  //
 28545  // API parameter values that are decorated as "sensitive" in the API will not
 28546  // be included in the string output. The member name will be present, but the
 28547  // value will be replaced with "sensitive".
 28548  func (s BehaviorModelTrainingSummary) String() string {
 28549  	return awsutil.Prettify(s)
 28550  }
 28551  
 28552  // GoString returns the string representation.
 28553  //
 28554  // API parameter values that are decorated as "sensitive" in the API will not
 28555  // be included in the string output. The member name will be present, but the
 28556  // value will be replaced with "sensitive".
 28557  func (s BehaviorModelTrainingSummary) GoString() string {
 28558  	return s.String()
 28559  }
 28560  
 28561  // SetBehaviorName sets the BehaviorName field's value.
 28562  func (s *BehaviorModelTrainingSummary) SetBehaviorName(v string) *BehaviorModelTrainingSummary {
 28563  	s.BehaviorName = &v
 28564  	return s
 28565  }
 28566  
 28567  // SetDatapointsCollectionPercentage sets the DatapointsCollectionPercentage field's value.
 28568  func (s *BehaviorModelTrainingSummary) SetDatapointsCollectionPercentage(v float64) *BehaviorModelTrainingSummary {
 28569  	s.DatapointsCollectionPercentage = &v
 28570  	return s
 28571  }
 28572  
 28573  // SetLastModelRefreshDate sets the LastModelRefreshDate field's value.
 28574  func (s *BehaviorModelTrainingSummary) SetLastModelRefreshDate(v time.Time) *BehaviorModelTrainingSummary {
 28575  	s.LastModelRefreshDate = &v
 28576  	return s
 28577  }
 28578  
 28579  // SetModelStatus sets the ModelStatus field's value.
 28580  func (s *BehaviorModelTrainingSummary) SetModelStatus(v string) *BehaviorModelTrainingSummary {
 28581  	s.ModelStatus = &v
 28582  	return s
 28583  }
 28584  
 28585  // SetSecurityProfileName sets the SecurityProfileName field's value.
 28586  func (s *BehaviorModelTrainingSummary) SetSecurityProfileName(v string) *BehaviorModelTrainingSummary {
 28587  	s.SecurityProfileName = &v
 28588  	return s
 28589  }
 28590  
 28591  // SetTrainingDataCollectionStartDate sets the TrainingDataCollectionStartDate field's value.
 28592  func (s *BehaviorModelTrainingSummary) SetTrainingDataCollectionStartDate(v time.Time) *BehaviorModelTrainingSummary {
 28593  	s.TrainingDataCollectionStartDate = &v
 28594  	return s
 28595  }
 28596  
 28597  // Additional information about the billing group.
 28598  type BillingGroupMetadata struct {
 28599  	_ struct{} `type:"structure"`
 28600  
 28601  	// The date the billing group was created.
 28602  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 28603  }
 28604  
 28605  // String returns the string representation.
 28606  //
 28607  // API parameter values that are decorated as "sensitive" in the API will not
 28608  // be included in the string output. The member name will be present, but the
 28609  // value will be replaced with "sensitive".
 28610  func (s BillingGroupMetadata) String() string {
 28611  	return awsutil.Prettify(s)
 28612  }
 28613  
 28614  // GoString returns the string representation.
 28615  //
 28616  // API parameter values that are decorated as "sensitive" in the API will not
 28617  // be included in the string output. The member name will be present, but the
 28618  // value will be replaced with "sensitive".
 28619  func (s BillingGroupMetadata) GoString() string {
 28620  	return s.String()
 28621  }
 28622  
 28623  // SetCreationDate sets the CreationDate field's value.
 28624  func (s *BillingGroupMetadata) SetCreationDate(v time.Time) *BillingGroupMetadata {
 28625  	s.CreationDate = &v
 28626  	return s
 28627  }
 28628  
 28629  // The properties of a billing group.
 28630  type BillingGroupProperties struct {
 28631  	_ struct{} `type:"structure"`
 28632  
 28633  	// The description of the billing group.
 28634  	BillingGroupDescription *string `locationName:"billingGroupDescription" type:"string"`
 28635  }
 28636  
 28637  // String returns the string representation.
 28638  //
 28639  // API parameter values that are decorated as "sensitive" in the API will not
 28640  // be included in the string output. The member name will be present, but the
 28641  // value will be replaced with "sensitive".
 28642  func (s BillingGroupProperties) String() string {
 28643  	return awsutil.Prettify(s)
 28644  }
 28645  
 28646  // GoString returns the string representation.
 28647  //
 28648  // API parameter values that are decorated as "sensitive" in the API will not
 28649  // be included in the string output. The member name will be present, but the
 28650  // value will be replaced with "sensitive".
 28651  func (s BillingGroupProperties) GoString() string {
 28652  	return s.String()
 28653  }
 28654  
 28655  // SetBillingGroupDescription sets the BillingGroupDescription field's value.
 28656  func (s *BillingGroupProperties) SetBillingGroupDescription(v string) *BillingGroupProperties {
 28657  	s.BillingGroupDescription = &v
 28658  	return s
 28659  }
 28660  
 28661  // A count of documents that meets a specific aggregation criteria.
 28662  type Bucket struct {
 28663  	_ struct{} `type:"structure"`
 28664  
 28665  	// The number of documents that have the value counted for the particular bucket.
 28666  	Count *int64 `locationName:"count" type:"integer"`
 28667  
 28668  	// The value counted for the particular bucket.
 28669  	KeyValue *string `locationName:"keyValue" type:"string"`
 28670  }
 28671  
 28672  // String returns the string representation.
 28673  //
 28674  // API parameter values that are decorated as "sensitive" in the API will not
 28675  // be included in the string output. The member name will be present, but the
 28676  // value will be replaced with "sensitive".
 28677  func (s Bucket) String() string {
 28678  	return awsutil.Prettify(s)
 28679  }
 28680  
 28681  // GoString returns the string representation.
 28682  //
 28683  // API parameter values that are decorated as "sensitive" in the API will not
 28684  // be included in the string output. The member name will be present, but the
 28685  // value will be replaced with "sensitive".
 28686  func (s Bucket) GoString() string {
 28687  	return s.String()
 28688  }
 28689  
 28690  // SetCount sets the Count field's value.
 28691  func (s *Bucket) SetCount(v int64) *Bucket {
 28692  	s.Count = &v
 28693  	return s
 28694  }
 28695  
 28696  // SetKeyValue sets the KeyValue field's value.
 28697  func (s *Bucket) SetKeyValue(v string) *Bucket {
 28698  	s.KeyValue = &v
 28699  	return s
 28700  }
 28701  
 28702  // The type of bucketed aggregation performed.
 28703  type BucketsAggregationType struct {
 28704  	_ struct{} `type:"structure"`
 28705  
 28706  	// Performs an aggregation that will return a list of buckets. The list of buckets
 28707  	// is a ranked list of the number of occurrences of an aggregation field value.
 28708  	TermsAggregation *TermsAggregation `locationName:"termsAggregation" type:"structure"`
 28709  }
 28710  
 28711  // String returns the string representation.
 28712  //
 28713  // API parameter values that are decorated as "sensitive" in the API will not
 28714  // be included in the string output. The member name will be present, but the
 28715  // value will be replaced with "sensitive".
 28716  func (s BucketsAggregationType) String() string {
 28717  	return awsutil.Prettify(s)
 28718  }
 28719  
 28720  // GoString returns the string representation.
 28721  //
 28722  // API parameter values that are decorated as "sensitive" in the API will not
 28723  // be included in the string output. The member name will be present, but the
 28724  // value will be replaced with "sensitive".
 28725  func (s BucketsAggregationType) GoString() string {
 28726  	return s.String()
 28727  }
 28728  
 28729  // Validate inspects the fields of the type to determine if they are valid.
 28730  func (s *BucketsAggregationType) Validate() error {
 28731  	invalidParams := request.ErrInvalidParams{Context: "BucketsAggregationType"}
 28732  	if s.TermsAggregation != nil {
 28733  		if err := s.TermsAggregation.Validate(); err != nil {
 28734  			invalidParams.AddNested("TermsAggregation", err.(request.ErrInvalidParams))
 28735  		}
 28736  	}
 28737  
 28738  	if invalidParams.Len() > 0 {
 28739  		return invalidParams
 28740  	}
 28741  	return nil
 28742  }
 28743  
 28744  // SetTermsAggregation sets the TermsAggregation field's value.
 28745  func (s *BucketsAggregationType) SetTermsAggregation(v *TermsAggregation) *BucketsAggregationType {
 28746  	s.TermsAggregation = v
 28747  	return s
 28748  }
 28749  
 28750  // A CA certificate.
 28751  type CACertificate struct {
 28752  	_ struct{} `type:"structure"`
 28753  
 28754  	// The ARN of the CA certificate.
 28755  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 28756  
 28757  	// The ID of the CA certificate.
 28758  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 28759  
 28760  	// The date the CA certificate was created.
 28761  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 28762  
 28763  	// The status of the CA certificate.
 28764  	//
 28765  	// The status value REGISTER_INACTIVE is deprecated and should not be used.
 28766  	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
 28767  }
 28768  
 28769  // String returns the string representation.
 28770  //
 28771  // API parameter values that are decorated as "sensitive" in the API will not
 28772  // be included in the string output. The member name will be present, but the
 28773  // value will be replaced with "sensitive".
 28774  func (s CACertificate) String() string {
 28775  	return awsutil.Prettify(s)
 28776  }
 28777  
 28778  // GoString returns the string representation.
 28779  //
 28780  // API parameter values that are decorated as "sensitive" in the API will not
 28781  // be included in the string output. The member name will be present, but the
 28782  // value will be replaced with "sensitive".
 28783  func (s CACertificate) GoString() string {
 28784  	return s.String()
 28785  }
 28786  
 28787  // SetCertificateArn sets the CertificateArn field's value.
 28788  func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
 28789  	s.CertificateArn = &v
 28790  	return s
 28791  }
 28792  
 28793  // SetCertificateId sets the CertificateId field's value.
 28794  func (s *CACertificate) SetCertificateId(v string) *CACertificate {
 28795  	s.CertificateId = &v
 28796  	return s
 28797  }
 28798  
 28799  // SetCreationDate sets the CreationDate field's value.
 28800  func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
 28801  	s.CreationDate = &v
 28802  	return s
 28803  }
 28804  
 28805  // SetStatus sets the Status field's value.
 28806  func (s *CACertificate) SetStatus(v string) *CACertificate {
 28807  	s.Status = &v
 28808  	return s
 28809  }
 28810  
 28811  // Describes a CA certificate.
 28812  type CACertificateDescription struct {
 28813  	_ struct{} `type:"structure"`
 28814  
 28815  	// Whether the CA certificate configured for auto registration of device certificates.
 28816  	// Valid values are "ENABLE" and "DISABLE"
 28817  	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
 28818  
 28819  	// The CA certificate ARN.
 28820  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 28821  
 28822  	// The CA certificate ID.
 28823  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 28824  
 28825  	// The CA certificate data, in PEM format.
 28826  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
 28827  
 28828  	// The date the CA certificate was created.
 28829  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 28830  
 28831  	// The customer version of the CA certificate.
 28832  	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
 28833  
 28834  	// The generation ID of the CA certificate.
 28835  	GenerationId *string `locationName:"generationId" type:"string"`
 28836  
 28837  	// The date the CA certificate was last modified.
 28838  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 28839  
 28840  	// The owner of the CA certificate.
 28841  	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
 28842  
 28843  	// The status of a CA certificate.
 28844  	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
 28845  
 28846  	// When the CA certificate is valid.
 28847  	Validity *CertificateValidity `locationName:"validity" type:"structure"`
 28848  }
 28849  
 28850  // String returns the string representation.
 28851  //
 28852  // API parameter values that are decorated as "sensitive" in the API will not
 28853  // be included in the string output. The member name will be present, but the
 28854  // value will be replaced with "sensitive".
 28855  func (s CACertificateDescription) String() string {
 28856  	return awsutil.Prettify(s)
 28857  }
 28858  
 28859  // GoString returns the string representation.
 28860  //
 28861  // API parameter values that are decorated as "sensitive" in the API will not
 28862  // be included in the string output. The member name will be present, but the
 28863  // value will be replaced with "sensitive".
 28864  func (s CACertificateDescription) GoString() string {
 28865  	return s.String()
 28866  }
 28867  
 28868  // SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
 28869  func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
 28870  	s.AutoRegistrationStatus = &v
 28871  	return s
 28872  }
 28873  
 28874  // SetCertificateArn sets the CertificateArn field's value.
 28875  func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
 28876  	s.CertificateArn = &v
 28877  	return s
 28878  }
 28879  
 28880  // SetCertificateId sets the CertificateId field's value.
 28881  func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
 28882  	s.CertificateId = &v
 28883  	return s
 28884  }
 28885  
 28886  // SetCertificatePem sets the CertificatePem field's value.
 28887  func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
 28888  	s.CertificatePem = &v
 28889  	return s
 28890  }
 28891  
 28892  // SetCreationDate sets the CreationDate field's value.
 28893  func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
 28894  	s.CreationDate = &v
 28895  	return s
 28896  }
 28897  
 28898  // SetCustomerVersion sets the CustomerVersion field's value.
 28899  func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
 28900  	s.CustomerVersion = &v
 28901  	return s
 28902  }
 28903  
 28904  // SetGenerationId sets the GenerationId field's value.
 28905  func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
 28906  	s.GenerationId = &v
 28907  	return s
 28908  }
 28909  
 28910  // SetLastModifiedDate sets the LastModifiedDate field's value.
 28911  func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
 28912  	s.LastModifiedDate = &v
 28913  	return s
 28914  }
 28915  
 28916  // SetOwnedBy sets the OwnedBy field's value.
 28917  func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
 28918  	s.OwnedBy = &v
 28919  	return s
 28920  }
 28921  
 28922  // SetStatus sets the Status field's value.
 28923  func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
 28924  	s.Status = &v
 28925  	return s
 28926  }
 28927  
 28928  // SetValidity sets the Validity field's value.
 28929  func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
 28930  	s.Validity = v
 28931  	return s
 28932  }
 28933  
 28934  type CancelAuditMitigationActionsTaskInput struct {
 28935  	_ struct{} `type:"structure" nopayload:"true"`
 28936  
 28937  	// The unique identifier for the task that you want to cancel.
 28938  	//
 28939  	// TaskId is a required field
 28940  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 28941  }
 28942  
 28943  // String returns the string representation.
 28944  //
 28945  // API parameter values that are decorated as "sensitive" in the API will not
 28946  // be included in the string output. The member name will be present, but the
 28947  // value will be replaced with "sensitive".
 28948  func (s CancelAuditMitigationActionsTaskInput) String() string {
 28949  	return awsutil.Prettify(s)
 28950  }
 28951  
 28952  // GoString returns the string representation.
 28953  //
 28954  // API parameter values that are decorated as "sensitive" in the API will not
 28955  // be included in the string output. The member name will be present, but the
 28956  // value will be replaced with "sensitive".
 28957  func (s CancelAuditMitigationActionsTaskInput) GoString() string {
 28958  	return s.String()
 28959  }
 28960  
 28961  // Validate inspects the fields of the type to determine if they are valid.
 28962  func (s *CancelAuditMitigationActionsTaskInput) Validate() error {
 28963  	invalidParams := request.ErrInvalidParams{Context: "CancelAuditMitigationActionsTaskInput"}
 28964  	if s.TaskId == nil {
 28965  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 28966  	}
 28967  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 28968  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 28969  	}
 28970  
 28971  	if invalidParams.Len() > 0 {
 28972  		return invalidParams
 28973  	}
 28974  	return nil
 28975  }
 28976  
 28977  // SetTaskId sets the TaskId field's value.
 28978  func (s *CancelAuditMitigationActionsTaskInput) SetTaskId(v string) *CancelAuditMitigationActionsTaskInput {
 28979  	s.TaskId = &v
 28980  	return s
 28981  }
 28982  
 28983  type CancelAuditMitigationActionsTaskOutput struct {
 28984  	_ struct{} `type:"structure" nopayload:"true"`
 28985  }
 28986  
 28987  // String returns the string representation.
 28988  //
 28989  // API parameter values that are decorated as "sensitive" in the API will not
 28990  // be included in the string output. The member name will be present, but the
 28991  // value will be replaced with "sensitive".
 28992  func (s CancelAuditMitigationActionsTaskOutput) String() string {
 28993  	return awsutil.Prettify(s)
 28994  }
 28995  
 28996  // GoString returns the string representation.
 28997  //
 28998  // API parameter values that are decorated as "sensitive" in the API will not
 28999  // be included in the string output. The member name will be present, but the
 29000  // value will be replaced with "sensitive".
 29001  func (s CancelAuditMitigationActionsTaskOutput) GoString() string {
 29002  	return s.String()
 29003  }
 29004  
 29005  type CancelAuditTaskInput struct {
 29006  	_ struct{} `type:"structure" nopayload:"true"`
 29007  
 29008  	// The ID of the audit you want to cancel. You can only cancel an audit that
 29009  	// is "IN_PROGRESS".
 29010  	//
 29011  	// TaskId is a required field
 29012  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 29013  }
 29014  
 29015  // String returns the string representation.
 29016  //
 29017  // API parameter values that are decorated as "sensitive" in the API will not
 29018  // be included in the string output. The member name will be present, but the
 29019  // value will be replaced with "sensitive".
 29020  func (s CancelAuditTaskInput) String() string {
 29021  	return awsutil.Prettify(s)
 29022  }
 29023  
 29024  // GoString returns the string representation.
 29025  //
 29026  // API parameter values that are decorated as "sensitive" in the API will not
 29027  // be included in the string output. The member name will be present, but the
 29028  // value will be replaced with "sensitive".
 29029  func (s CancelAuditTaskInput) GoString() string {
 29030  	return s.String()
 29031  }
 29032  
 29033  // Validate inspects the fields of the type to determine if they are valid.
 29034  func (s *CancelAuditTaskInput) Validate() error {
 29035  	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
 29036  	if s.TaskId == nil {
 29037  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 29038  	}
 29039  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 29040  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 29041  	}
 29042  
 29043  	if invalidParams.Len() > 0 {
 29044  		return invalidParams
 29045  	}
 29046  	return nil
 29047  }
 29048  
 29049  // SetTaskId sets the TaskId field's value.
 29050  func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
 29051  	s.TaskId = &v
 29052  	return s
 29053  }
 29054  
 29055  type CancelAuditTaskOutput struct {
 29056  	_ struct{} `type:"structure" nopayload:"true"`
 29057  }
 29058  
 29059  // String returns the string representation.
 29060  //
 29061  // API parameter values that are decorated as "sensitive" in the API will not
 29062  // be included in the string output. The member name will be present, but the
 29063  // value will be replaced with "sensitive".
 29064  func (s CancelAuditTaskOutput) String() string {
 29065  	return awsutil.Prettify(s)
 29066  }
 29067  
 29068  // GoString returns the string representation.
 29069  //
 29070  // API parameter values that are decorated as "sensitive" in the API will not
 29071  // be included in the string output. The member name will be present, but the
 29072  // value will be replaced with "sensitive".
 29073  func (s CancelAuditTaskOutput) GoString() string {
 29074  	return s.String()
 29075  }
 29076  
 29077  // The input for the CancelCertificateTransfer operation.
 29078  type CancelCertificateTransferInput struct {
 29079  	_ struct{} `type:"structure" nopayload:"true"`
 29080  
 29081  	// The ID of the certificate. (The last part of the certificate ARN contains
 29082  	// the certificate ID.)
 29083  	//
 29084  	// CertificateId is a required field
 29085  	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
 29086  }
 29087  
 29088  // String returns the string representation.
 29089  //
 29090  // API parameter values that are decorated as "sensitive" in the API will not
 29091  // be included in the string output. The member name will be present, but the
 29092  // value will be replaced with "sensitive".
 29093  func (s CancelCertificateTransferInput) String() string {
 29094  	return awsutil.Prettify(s)
 29095  }
 29096  
 29097  // GoString returns the string representation.
 29098  //
 29099  // API parameter values that are decorated as "sensitive" in the API will not
 29100  // be included in the string output. The member name will be present, but the
 29101  // value will be replaced with "sensitive".
 29102  func (s CancelCertificateTransferInput) GoString() string {
 29103  	return s.String()
 29104  }
 29105  
 29106  // Validate inspects the fields of the type to determine if they are valid.
 29107  func (s *CancelCertificateTransferInput) Validate() error {
 29108  	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
 29109  	if s.CertificateId == nil {
 29110  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 29111  	}
 29112  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 29113  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 29114  	}
 29115  
 29116  	if invalidParams.Len() > 0 {
 29117  		return invalidParams
 29118  	}
 29119  	return nil
 29120  }
 29121  
 29122  // SetCertificateId sets the CertificateId field's value.
 29123  func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
 29124  	s.CertificateId = &v
 29125  	return s
 29126  }
 29127  
 29128  type CancelCertificateTransferOutput struct {
 29129  	_ struct{} `type:"structure" nopayload:"true"`
 29130  }
 29131  
 29132  // String returns the string representation.
 29133  //
 29134  // API parameter values that are decorated as "sensitive" in the API will not
 29135  // be included in the string output. The member name will be present, but the
 29136  // value will be replaced with "sensitive".
 29137  func (s CancelCertificateTransferOutput) String() string {
 29138  	return awsutil.Prettify(s)
 29139  }
 29140  
 29141  // GoString returns the string representation.
 29142  //
 29143  // API parameter values that are decorated as "sensitive" in the API will not
 29144  // be included in the string output. The member name will be present, but the
 29145  // value will be replaced with "sensitive".
 29146  func (s CancelCertificateTransferOutput) GoString() string {
 29147  	return s.String()
 29148  }
 29149  
 29150  type CancelDetectMitigationActionsTaskInput struct {
 29151  	_ struct{} `type:"structure" nopayload:"true"`
 29152  
 29153  	// The unique identifier of the task.
 29154  	//
 29155  	// TaskId is a required field
 29156  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 29157  }
 29158  
 29159  // String returns the string representation.
 29160  //
 29161  // API parameter values that are decorated as "sensitive" in the API will not
 29162  // be included in the string output. The member name will be present, but the
 29163  // value will be replaced with "sensitive".
 29164  func (s CancelDetectMitigationActionsTaskInput) String() string {
 29165  	return awsutil.Prettify(s)
 29166  }
 29167  
 29168  // GoString returns the string representation.
 29169  //
 29170  // API parameter values that are decorated as "sensitive" in the API will not
 29171  // be included in the string output. The member name will be present, but the
 29172  // value will be replaced with "sensitive".
 29173  func (s CancelDetectMitigationActionsTaskInput) GoString() string {
 29174  	return s.String()
 29175  }
 29176  
 29177  // Validate inspects the fields of the type to determine if they are valid.
 29178  func (s *CancelDetectMitigationActionsTaskInput) Validate() error {
 29179  	invalidParams := request.ErrInvalidParams{Context: "CancelDetectMitigationActionsTaskInput"}
 29180  	if s.TaskId == nil {
 29181  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 29182  	}
 29183  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 29184  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 29185  	}
 29186  
 29187  	if invalidParams.Len() > 0 {
 29188  		return invalidParams
 29189  	}
 29190  	return nil
 29191  }
 29192  
 29193  // SetTaskId sets the TaskId field's value.
 29194  func (s *CancelDetectMitigationActionsTaskInput) SetTaskId(v string) *CancelDetectMitigationActionsTaskInput {
 29195  	s.TaskId = &v
 29196  	return s
 29197  }
 29198  
 29199  type CancelDetectMitigationActionsTaskOutput struct {
 29200  	_ struct{} `type:"structure" nopayload:"true"`
 29201  }
 29202  
 29203  // String returns the string representation.
 29204  //
 29205  // API parameter values that are decorated as "sensitive" in the API will not
 29206  // be included in the string output. The member name will be present, but the
 29207  // value will be replaced with "sensitive".
 29208  func (s CancelDetectMitigationActionsTaskOutput) String() string {
 29209  	return awsutil.Prettify(s)
 29210  }
 29211  
 29212  // GoString returns the string representation.
 29213  //
 29214  // API parameter values that are decorated as "sensitive" in the API will not
 29215  // be included in the string output. The member name will be present, but the
 29216  // value will be replaced with "sensitive".
 29217  func (s CancelDetectMitigationActionsTaskOutput) GoString() string {
 29218  	return s.String()
 29219  }
 29220  
 29221  type CancelJobExecutionInput struct {
 29222  	_ struct{} `type:"structure"`
 29223  
 29224  	// (Optional) The expected current version of the job execution. Each time you
 29225  	// update the job execution, its version is incremented. If the version of the
 29226  	// job execution stored in Jobs does not match, the update is rejected with
 29227  	// a VersionMismatch error, and an ErrorResponse that contains the current job
 29228  	// execution status data is returned. (This makes it unnecessary to perform
 29229  	// a separate DescribeJobExecution request in order to obtain the job execution
 29230  	// status data.)
 29231  	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
 29232  
 29233  	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
 29234  	// or QUEUED, otherwise the job execution will be canceled only if it has status
 29235  	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
 29236  	// you do not set force to true, then an InvalidStateTransitionException will
 29237  	// be thrown. The default is false.
 29238  	//
 29239  	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
 29240  	// be unable to update the job execution status. Use caution and ensure that
 29241  	// the device is able to recover to a valid state.
 29242  	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
 29243  
 29244  	// The ID of the job to be canceled.
 29245  	//
 29246  	// JobId is a required field
 29247  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 29248  
 29249  	// A collection of name/value pairs that describe the status of the job execution.
 29250  	// If not specified, the statusDetails are unchanged. You can specify at most
 29251  	// 10 name/value pairs.
 29252  	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
 29253  
 29254  	// The name of the thing whose execution of the job will be canceled.
 29255  	//
 29256  	// ThingName is a required field
 29257  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 29258  }
 29259  
 29260  // String returns the string representation.
 29261  //
 29262  // API parameter values that are decorated as "sensitive" in the API will not
 29263  // be included in the string output. The member name will be present, but the
 29264  // value will be replaced with "sensitive".
 29265  func (s CancelJobExecutionInput) String() string {
 29266  	return awsutil.Prettify(s)
 29267  }
 29268  
 29269  // GoString returns the string representation.
 29270  //
 29271  // API parameter values that are decorated as "sensitive" in the API will not
 29272  // be included in the string output. The member name will be present, but the
 29273  // value will be replaced with "sensitive".
 29274  func (s CancelJobExecutionInput) GoString() string {
 29275  	return s.String()
 29276  }
 29277  
 29278  // Validate inspects the fields of the type to determine if they are valid.
 29279  func (s *CancelJobExecutionInput) Validate() error {
 29280  	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
 29281  	if s.JobId == nil {
 29282  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 29283  	}
 29284  	if s.JobId != nil && len(*s.JobId) < 1 {
 29285  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 29286  	}
 29287  	if s.ThingName == nil {
 29288  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 29289  	}
 29290  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 29291  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 29292  	}
 29293  
 29294  	if invalidParams.Len() > 0 {
 29295  		return invalidParams
 29296  	}
 29297  	return nil
 29298  }
 29299  
 29300  // SetExpectedVersion sets the ExpectedVersion field's value.
 29301  func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
 29302  	s.ExpectedVersion = &v
 29303  	return s
 29304  }
 29305  
 29306  // SetForce sets the Force field's value.
 29307  func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
 29308  	s.Force = &v
 29309  	return s
 29310  }
 29311  
 29312  // SetJobId sets the JobId field's value.
 29313  func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
 29314  	s.JobId = &v
 29315  	return s
 29316  }
 29317  
 29318  // SetStatusDetails sets the StatusDetails field's value.
 29319  func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
 29320  	s.StatusDetails = v
 29321  	return s
 29322  }
 29323  
 29324  // SetThingName sets the ThingName field's value.
 29325  func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
 29326  	s.ThingName = &v
 29327  	return s
 29328  }
 29329  
 29330  type CancelJobExecutionOutput struct {
 29331  	_ struct{} `type:"structure" nopayload:"true"`
 29332  }
 29333  
 29334  // String returns the string representation.
 29335  //
 29336  // API parameter values that are decorated as "sensitive" in the API will not
 29337  // be included in the string output. The member name will be present, but the
 29338  // value will be replaced with "sensitive".
 29339  func (s CancelJobExecutionOutput) String() string {
 29340  	return awsutil.Prettify(s)
 29341  }
 29342  
 29343  // GoString returns the string representation.
 29344  //
 29345  // API parameter values that are decorated as "sensitive" in the API will not
 29346  // be included in the string output. The member name will be present, but the
 29347  // value will be replaced with "sensitive".
 29348  func (s CancelJobExecutionOutput) GoString() string {
 29349  	return s.String()
 29350  }
 29351  
 29352  type CancelJobInput struct {
 29353  	_ struct{} `type:"structure"`
 29354  
 29355  	// An optional comment string describing why the job was canceled.
 29356  	Comment *string `locationName:"comment" type:"string"`
 29357  
 29358  	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
 29359  	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
 29360  	// The default is false.
 29361  	//
 29362  	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
 29363  	// the job to be unable to update the job execution status. Use caution and
 29364  	// ensure that each device executing a job which is canceled is able to recover
 29365  	// to a valid state.
 29366  	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
 29367  
 29368  	// The unique identifier you assigned to this job when it was created.
 29369  	//
 29370  	// JobId is a required field
 29371  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 29372  
 29373  	// (Optional)A reason code string that explains why the job was canceled.
 29374  	ReasonCode *string `locationName:"reasonCode" type:"string"`
 29375  }
 29376  
 29377  // String returns the string representation.
 29378  //
 29379  // API parameter values that are decorated as "sensitive" in the API will not
 29380  // be included in the string output. The member name will be present, but the
 29381  // value will be replaced with "sensitive".
 29382  func (s CancelJobInput) String() string {
 29383  	return awsutil.Prettify(s)
 29384  }
 29385  
 29386  // GoString returns the string representation.
 29387  //
 29388  // API parameter values that are decorated as "sensitive" in the API will not
 29389  // be included in the string output. The member name will be present, but the
 29390  // value will be replaced with "sensitive".
 29391  func (s CancelJobInput) GoString() string {
 29392  	return s.String()
 29393  }
 29394  
 29395  // Validate inspects the fields of the type to determine if they are valid.
 29396  func (s *CancelJobInput) Validate() error {
 29397  	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
 29398  	if s.JobId == nil {
 29399  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 29400  	}
 29401  	if s.JobId != nil && len(*s.JobId) < 1 {
 29402  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 29403  	}
 29404  
 29405  	if invalidParams.Len() > 0 {
 29406  		return invalidParams
 29407  	}
 29408  	return nil
 29409  }
 29410  
 29411  // SetComment sets the Comment field's value.
 29412  func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
 29413  	s.Comment = &v
 29414  	return s
 29415  }
 29416  
 29417  // SetForce sets the Force field's value.
 29418  func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
 29419  	s.Force = &v
 29420  	return s
 29421  }
 29422  
 29423  // SetJobId sets the JobId field's value.
 29424  func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
 29425  	s.JobId = &v
 29426  	return s
 29427  }
 29428  
 29429  // SetReasonCode sets the ReasonCode field's value.
 29430  func (s *CancelJobInput) SetReasonCode(v string) *CancelJobInput {
 29431  	s.ReasonCode = &v
 29432  	return s
 29433  }
 29434  
 29435  type CancelJobOutput struct {
 29436  	_ struct{} `type:"structure"`
 29437  
 29438  	// A short text description of the job.
 29439  	Description *string `locationName:"description" type:"string"`
 29440  
 29441  	// The job ARN.
 29442  	JobArn *string `locationName:"jobArn" type:"string"`
 29443  
 29444  	// The unique identifier you assigned to this job when it was created.
 29445  	JobId *string `locationName:"jobId" min:"1" type:"string"`
 29446  }
 29447  
 29448  // String returns the string representation.
 29449  //
 29450  // API parameter values that are decorated as "sensitive" in the API will not
 29451  // be included in the string output. The member name will be present, but the
 29452  // value will be replaced with "sensitive".
 29453  func (s CancelJobOutput) String() string {
 29454  	return awsutil.Prettify(s)
 29455  }
 29456  
 29457  // GoString returns the string representation.
 29458  //
 29459  // API parameter values that are decorated as "sensitive" in the API will not
 29460  // be included in the string output. The member name will be present, but the
 29461  // value will be replaced with "sensitive".
 29462  func (s CancelJobOutput) GoString() string {
 29463  	return s.String()
 29464  }
 29465  
 29466  // SetDescription sets the Description field's value.
 29467  func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
 29468  	s.Description = &v
 29469  	return s
 29470  }
 29471  
 29472  // SetJobArn sets the JobArn field's value.
 29473  func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
 29474  	s.JobArn = &v
 29475  	return s
 29476  }
 29477  
 29478  // SetJobId sets the JobId field's value.
 29479  func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
 29480  	s.JobId = &v
 29481  	return s
 29482  }
 29483  
 29484  // Information about a certificate.
 29485  type Certificate struct {
 29486  	_ struct{} `type:"structure"`
 29487  
 29488  	// The ARN of the certificate.
 29489  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 29490  
 29491  	// The ID of the certificate. (The last part of the certificate ARN contains
 29492  	// the certificate ID.)
 29493  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 29494  
 29495  	// The mode of the certificate.
 29496  	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
 29497  
 29498  	// The date and time the certificate was created.
 29499  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 29500  
 29501  	// The status of the certificate.
 29502  	//
 29503  	// The status value REGISTER_INACTIVE is deprecated and should not be used.
 29504  	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
 29505  }
 29506  
 29507  // String returns the string representation.
 29508  //
 29509  // API parameter values that are decorated as "sensitive" in the API will not
 29510  // be included in the string output. The member name will be present, but the
 29511  // value will be replaced with "sensitive".
 29512  func (s Certificate) String() string {
 29513  	return awsutil.Prettify(s)
 29514  }
 29515  
 29516  // GoString returns the string representation.
 29517  //
 29518  // API parameter values that are decorated as "sensitive" in the API will not
 29519  // be included in the string output. The member name will be present, but the
 29520  // value will be replaced with "sensitive".
 29521  func (s Certificate) GoString() string {
 29522  	return s.String()
 29523  }
 29524  
 29525  // SetCertificateArn sets the CertificateArn field's value.
 29526  func (s *Certificate) SetCertificateArn(v string) *Certificate {
 29527  	s.CertificateArn = &v
 29528  	return s
 29529  }
 29530  
 29531  // SetCertificateId sets the CertificateId field's value.
 29532  func (s *Certificate) SetCertificateId(v string) *Certificate {
 29533  	s.CertificateId = &v
 29534  	return s
 29535  }
 29536  
 29537  // SetCertificateMode sets the CertificateMode field's value.
 29538  func (s *Certificate) SetCertificateMode(v string) *Certificate {
 29539  	s.CertificateMode = &v
 29540  	return s
 29541  }
 29542  
 29543  // SetCreationDate sets the CreationDate field's value.
 29544  func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
 29545  	s.CreationDate = &v
 29546  	return s
 29547  }
 29548  
 29549  // SetStatus sets the Status field's value.
 29550  func (s *Certificate) SetStatus(v string) *Certificate {
 29551  	s.Status = &v
 29552  	return s
 29553  }
 29554  
 29555  // Unable to verify the CA certificate used to sign the device certificate you
 29556  // are attempting to register. This is happens when you have registered more
 29557  // than one CA certificate that has the same subject field and public key.
 29558  type CertificateConflictException struct {
 29559  	_            struct{}                  `type:"structure"`
 29560  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 29561  
 29562  	// The message for the exception.
 29563  	Message_ *string `locationName:"message" type:"string"`
 29564  }
 29565  
 29566  // String returns the string representation.
 29567  //
 29568  // API parameter values that are decorated as "sensitive" in the API will not
 29569  // be included in the string output. The member name will be present, but the
 29570  // value will be replaced with "sensitive".
 29571  func (s CertificateConflictException) String() string {
 29572  	return awsutil.Prettify(s)
 29573  }
 29574  
 29575  // GoString returns the string representation.
 29576  //
 29577  // API parameter values that are decorated as "sensitive" in the API will not
 29578  // be included in the string output. The member name will be present, but the
 29579  // value will be replaced with "sensitive".
 29580  func (s CertificateConflictException) GoString() string {
 29581  	return s.String()
 29582  }
 29583  
 29584  func newErrorCertificateConflictException(v protocol.ResponseMetadata) error {
 29585  	return &CertificateConflictException{
 29586  		RespMetadata: v,
 29587  	}
 29588  }
 29589  
 29590  // Code returns the exception type name.
 29591  func (s *CertificateConflictException) Code() string {
 29592  	return "CertificateConflictException"
 29593  }
 29594  
 29595  // Message returns the exception's message.
 29596  func (s *CertificateConflictException) Message() string {
 29597  	if s.Message_ != nil {
 29598  		return *s.Message_
 29599  	}
 29600  	return ""
 29601  }
 29602  
 29603  // OrigErr always returns nil, satisfies awserr.Error interface.
 29604  func (s *CertificateConflictException) OrigErr() error {
 29605  	return nil
 29606  }
 29607  
 29608  func (s *CertificateConflictException) Error() string {
 29609  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 29610  }
 29611  
 29612  // Status code returns the HTTP status code for the request's response error.
 29613  func (s *CertificateConflictException) StatusCode() int {
 29614  	return s.RespMetadata.StatusCode
 29615  }
 29616  
 29617  // RequestID returns the service's response RequestID for request.
 29618  func (s *CertificateConflictException) RequestID() string {
 29619  	return s.RespMetadata.RequestID
 29620  }
 29621  
 29622  // Describes a certificate.
 29623  type CertificateDescription struct {
 29624  	_ struct{} `type:"structure"`
 29625  
 29626  	// The certificate ID of the CA certificate used to sign this certificate.
 29627  	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
 29628  
 29629  	// The ARN of the certificate.
 29630  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 29631  
 29632  	// The ID of the certificate.
 29633  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 29634  
 29635  	// The mode of the certificate.
 29636  	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
 29637  
 29638  	// The certificate data, in PEM format.
 29639  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
 29640  
 29641  	// The date and time the certificate was created.
 29642  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 29643  
 29644  	// The customer version of the certificate.
 29645  	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
 29646  
 29647  	// The generation ID of the certificate.
 29648  	GenerationId *string `locationName:"generationId" type:"string"`
 29649  
 29650  	// The date and time the certificate was last modified.
 29651  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 29652  
 29653  	// The ID of the Amazon Web Services account that owns the certificate.
 29654  	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
 29655  
 29656  	// The ID of the Amazon Web Services account of the previous owner of the certificate.
 29657  	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
 29658  
 29659  	// The status of the certificate.
 29660  	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
 29661  
 29662  	// The transfer data.
 29663  	TransferData *TransferData `locationName:"transferData" type:"structure"`
 29664  
 29665  	// When the certificate is valid.
 29666  	Validity *CertificateValidity `locationName:"validity" type:"structure"`
 29667  }
 29668  
 29669  // String returns the string representation.
 29670  //
 29671  // API parameter values that are decorated as "sensitive" in the API will not
 29672  // be included in the string output. The member name will be present, but the
 29673  // value will be replaced with "sensitive".
 29674  func (s CertificateDescription) String() string {
 29675  	return awsutil.Prettify(s)
 29676  }
 29677  
 29678  // GoString returns the string representation.
 29679  //
 29680  // API parameter values that are decorated as "sensitive" in the API will not
 29681  // be included in the string output. The member name will be present, but the
 29682  // value will be replaced with "sensitive".
 29683  func (s CertificateDescription) GoString() string {
 29684  	return s.String()
 29685  }
 29686  
 29687  // SetCaCertificateId sets the CaCertificateId field's value.
 29688  func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
 29689  	s.CaCertificateId = &v
 29690  	return s
 29691  }
 29692  
 29693  // SetCertificateArn sets the CertificateArn field's value.
 29694  func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
 29695  	s.CertificateArn = &v
 29696  	return s
 29697  }
 29698  
 29699  // SetCertificateId sets the CertificateId field's value.
 29700  func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
 29701  	s.CertificateId = &v
 29702  	return s
 29703  }
 29704  
 29705  // SetCertificateMode sets the CertificateMode field's value.
 29706  func (s *CertificateDescription) SetCertificateMode(v string) *CertificateDescription {
 29707  	s.CertificateMode = &v
 29708  	return s
 29709  }
 29710  
 29711  // SetCertificatePem sets the CertificatePem field's value.
 29712  func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
 29713  	s.CertificatePem = &v
 29714  	return s
 29715  }
 29716  
 29717  // SetCreationDate sets the CreationDate field's value.
 29718  func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
 29719  	s.CreationDate = &v
 29720  	return s
 29721  }
 29722  
 29723  // SetCustomerVersion sets the CustomerVersion field's value.
 29724  func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
 29725  	s.CustomerVersion = &v
 29726  	return s
 29727  }
 29728  
 29729  // SetGenerationId sets the GenerationId field's value.
 29730  func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
 29731  	s.GenerationId = &v
 29732  	return s
 29733  }
 29734  
 29735  // SetLastModifiedDate sets the LastModifiedDate field's value.
 29736  func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
 29737  	s.LastModifiedDate = &v
 29738  	return s
 29739  }
 29740  
 29741  // SetOwnedBy sets the OwnedBy field's value.
 29742  func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
 29743  	s.OwnedBy = &v
 29744  	return s
 29745  }
 29746  
 29747  // SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
 29748  func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
 29749  	s.PreviousOwnedBy = &v
 29750  	return s
 29751  }
 29752  
 29753  // SetStatus sets the Status field's value.
 29754  func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
 29755  	s.Status = &v
 29756  	return s
 29757  }
 29758  
 29759  // SetTransferData sets the TransferData field's value.
 29760  func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
 29761  	s.TransferData = v
 29762  	return s
 29763  }
 29764  
 29765  // SetValidity sets the Validity field's value.
 29766  func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
 29767  	s.Validity = v
 29768  	return s
 29769  }
 29770  
 29771  // The certificate operation is not allowed.
 29772  type CertificateStateException struct {
 29773  	_            struct{}                  `type:"structure"`
 29774  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 29775  
 29776  	// The message for the exception.
 29777  	Message_ *string `locationName:"message" type:"string"`
 29778  }
 29779  
 29780  // String returns the string representation.
 29781  //
 29782  // API parameter values that are decorated as "sensitive" in the API will not
 29783  // be included in the string output. The member name will be present, but the
 29784  // value will be replaced with "sensitive".
 29785  func (s CertificateStateException) String() string {
 29786  	return awsutil.Prettify(s)
 29787  }
 29788  
 29789  // GoString returns the string representation.
 29790  //
 29791  // API parameter values that are decorated as "sensitive" in the API will not
 29792  // be included in the string output. The member name will be present, but the
 29793  // value will be replaced with "sensitive".
 29794  func (s CertificateStateException) GoString() string {
 29795  	return s.String()
 29796  }
 29797  
 29798  func newErrorCertificateStateException(v protocol.ResponseMetadata) error {
 29799  	return &CertificateStateException{
 29800  		RespMetadata: v,
 29801  	}
 29802  }
 29803  
 29804  // Code returns the exception type name.
 29805  func (s *CertificateStateException) Code() string {
 29806  	return "CertificateStateException"
 29807  }
 29808  
 29809  // Message returns the exception's message.
 29810  func (s *CertificateStateException) Message() string {
 29811  	if s.Message_ != nil {
 29812  		return *s.Message_
 29813  	}
 29814  	return ""
 29815  }
 29816  
 29817  // OrigErr always returns nil, satisfies awserr.Error interface.
 29818  func (s *CertificateStateException) OrigErr() error {
 29819  	return nil
 29820  }
 29821  
 29822  func (s *CertificateStateException) Error() string {
 29823  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 29824  }
 29825  
 29826  // Status code returns the HTTP status code for the request's response error.
 29827  func (s *CertificateStateException) StatusCode() int {
 29828  	return s.RespMetadata.StatusCode
 29829  }
 29830  
 29831  // RequestID returns the service's response RequestID for request.
 29832  func (s *CertificateStateException) RequestID() string {
 29833  	return s.RespMetadata.RequestID
 29834  }
 29835  
 29836  // The certificate is invalid.
 29837  type CertificateValidationException struct {
 29838  	_            struct{}                  `type:"structure"`
 29839  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 29840  
 29841  	// Additional information about the exception.
 29842  	Message_ *string `locationName:"message" type:"string"`
 29843  }
 29844  
 29845  // String returns the string representation.
 29846  //
 29847  // API parameter values that are decorated as "sensitive" in the API will not
 29848  // be included in the string output. The member name will be present, but the
 29849  // value will be replaced with "sensitive".
 29850  func (s CertificateValidationException) String() string {
 29851  	return awsutil.Prettify(s)
 29852  }
 29853  
 29854  // GoString returns the string representation.
 29855  //
 29856  // API parameter values that are decorated as "sensitive" in the API will not
 29857  // be included in the string output. The member name will be present, but the
 29858  // value will be replaced with "sensitive".
 29859  func (s CertificateValidationException) GoString() string {
 29860  	return s.String()
 29861  }
 29862  
 29863  func newErrorCertificateValidationException(v protocol.ResponseMetadata) error {
 29864  	return &CertificateValidationException{
 29865  		RespMetadata: v,
 29866  	}
 29867  }
 29868  
 29869  // Code returns the exception type name.
 29870  func (s *CertificateValidationException) Code() string {
 29871  	return "CertificateValidationException"
 29872  }
 29873  
 29874  // Message returns the exception's message.
 29875  func (s *CertificateValidationException) Message() string {
 29876  	if s.Message_ != nil {
 29877  		return *s.Message_
 29878  	}
 29879  	return ""
 29880  }
 29881  
 29882  // OrigErr always returns nil, satisfies awserr.Error interface.
 29883  func (s *CertificateValidationException) OrigErr() error {
 29884  	return nil
 29885  }
 29886  
 29887  func (s *CertificateValidationException) Error() string {
 29888  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 29889  }
 29890  
 29891  // Status code returns the HTTP status code for the request's response error.
 29892  func (s *CertificateValidationException) StatusCode() int {
 29893  	return s.RespMetadata.StatusCode
 29894  }
 29895  
 29896  // RequestID returns the service's response RequestID for request.
 29897  func (s *CertificateValidationException) RequestID() string {
 29898  	return s.RespMetadata.RequestID
 29899  }
 29900  
 29901  // When the certificate is valid.
 29902  type CertificateValidity struct {
 29903  	_ struct{} `type:"structure"`
 29904  
 29905  	// The certificate is not valid after this date.
 29906  	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
 29907  
 29908  	// The certificate is not valid before this date.
 29909  	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
 29910  }
 29911  
 29912  // String returns the string representation.
 29913  //
 29914  // API parameter values that are decorated as "sensitive" in the API will not
 29915  // be included in the string output. The member name will be present, but the
 29916  // value will be replaced with "sensitive".
 29917  func (s CertificateValidity) String() string {
 29918  	return awsutil.Prettify(s)
 29919  }
 29920  
 29921  // GoString returns the string representation.
 29922  //
 29923  // API parameter values that are decorated as "sensitive" in the API will not
 29924  // be included in the string output. The member name will be present, but the
 29925  // value will be replaced with "sensitive".
 29926  func (s CertificateValidity) GoString() string {
 29927  	return s.String()
 29928  }
 29929  
 29930  // SetNotAfter sets the NotAfter field's value.
 29931  func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
 29932  	s.NotAfter = &v
 29933  	return s
 29934  }
 29935  
 29936  // SetNotBefore sets the NotBefore field's value.
 29937  func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
 29938  	s.NotBefore = &v
 29939  	return s
 29940  }
 29941  
 29942  type ClearDefaultAuthorizerInput struct {
 29943  	_ struct{} `type:"structure" nopayload:"true"`
 29944  }
 29945  
 29946  // String returns the string representation.
 29947  //
 29948  // API parameter values that are decorated as "sensitive" in the API will not
 29949  // be included in the string output. The member name will be present, but the
 29950  // value will be replaced with "sensitive".
 29951  func (s ClearDefaultAuthorizerInput) String() string {
 29952  	return awsutil.Prettify(s)
 29953  }
 29954  
 29955  // GoString returns the string representation.
 29956  //
 29957  // API parameter values that are decorated as "sensitive" in the API will not
 29958  // be included in the string output. The member name will be present, but the
 29959  // value will be replaced with "sensitive".
 29960  func (s ClearDefaultAuthorizerInput) GoString() string {
 29961  	return s.String()
 29962  }
 29963  
 29964  type ClearDefaultAuthorizerOutput struct {
 29965  	_ struct{} `type:"structure" nopayload:"true"`
 29966  }
 29967  
 29968  // String returns the string representation.
 29969  //
 29970  // API parameter values that are decorated as "sensitive" in the API will not
 29971  // be included in the string output. The member name will be present, but the
 29972  // value will be replaced with "sensitive".
 29973  func (s ClearDefaultAuthorizerOutput) String() string {
 29974  	return awsutil.Prettify(s)
 29975  }
 29976  
 29977  // GoString returns the string representation.
 29978  //
 29979  // API parameter values that are decorated as "sensitive" in the API will not
 29980  // be included in the string output. The member name will be present, but the
 29981  // value will be replaced with "sensitive".
 29982  func (s ClearDefaultAuthorizerOutput) GoString() string {
 29983  	return s.String()
 29984  }
 29985  
 29986  // Describes an action that updates a CloudWatch alarm.
 29987  type CloudwatchAlarmAction struct {
 29988  	_ struct{} `type:"structure"`
 29989  
 29990  	// The CloudWatch alarm name.
 29991  	//
 29992  	// AlarmName is a required field
 29993  	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
 29994  
 29995  	// The IAM role that allows access to the CloudWatch alarm.
 29996  	//
 29997  	// RoleArn is a required field
 29998  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 29999  
 30000  	// The reason for the alarm change.
 30001  	//
 30002  	// StateReason is a required field
 30003  	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
 30004  
 30005  	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
 30006  	//
 30007  	// StateValue is a required field
 30008  	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
 30009  }
 30010  
 30011  // String returns the string representation.
 30012  //
 30013  // API parameter values that are decorated as "sensitive" in the API will not
 30014  // be included in the string output. The member name will be present, but the
 30015  // value will be replaced with "sensitive".
 30016  func (s CloudwatchAlarmAction) String() string {
 30017  	return awsutil.Prettify(s)
 30018  }
 30019  
 30020  // GoString returns the string representation.
 30021  //
 30022  // API parameter values that are decorated as "sensitive" in the API will not
 30023  // be included in the string output. The member name will be present, but the
 30024  // value will be replaced with "sensitive".
 30025  func (s CloudwatchAlarmAction) GoString() string {
 30026  	return s.String()
 30027  }
 30028  
 30029  // Validate inspects the fields of the type to determine if they are valid.
 30030  func (s *CloudwatchAlarmAction) Validate() error {
 30031  	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
 30032  	if s.AlarmName == nil {
 30033  		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
 30034  	}
 30035  	if s.RoleArn == nil {
 30036  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 30037  	}
 30038  	if s.StateReason == nil {
 30039  		invalidParams.Add(request.NewErrParamRequired("StateReason"))
 30040  	}
 30041  	if s.StateValue == nil {
 30042  		invalidParams.Add(request.NewErrParamRequired("StateValue"))
 30043  	}
 30044  
 30045  	if invalidParams.Len() > 0 {
 30046  		return invalidParams
 30047  	}
 30048  	return nil
 30049  }
 30050  
 30051  // SetAlarmName sets the AlarmName field's value.
 30052  func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
 30053  	s.AlarmName = &v
 30054  	return s
 30055  }
 30056  
 30057  // SetRoleArn sets the RoleArn field's value.
 30058  func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
 30059  	s.RoleArn = &v
 30060  	return s
 30061  }
 30062  
 30063  // SetStateReason sets the StateReason field's value.
 30064  func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
 30065  	s.StateReason = &v
 30066  	return s
 30067  }
 30068  
 30069  // SetStateValue sets the StateValue field's value.
 30070  func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
 30071  	s.StateValue = &v
 30072  	return s
 30073  }
 30074  
 30075  // Describes an action that sends data to CloudWatch Logs.
 30076  type CloudwatchLogsAction struct {
 30077  	_ struct{} `type:"structure"`
 30078  
 30079  	// The CloudWatch log group to which the action sends data.
 30080  	//
 30081  	// LogGroupName is a required field
 30082  	LogGroupName *string `locationName:"logGroupName" type:"string" required:"true"`
 30083  
 30084  	// The IAM role that allows access to the CloudWatch log.
 30085  	//
 30086  	// RoleArn is a required field
 30087  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 30088  }
 30089  
 30090  // String returns the string representation.
 30091  //
 30092  // API parameter values that are decorated as "sensitive" in the API will not
 30093  // be included in the string output. The member name will be present, but the
 30094  // value will be replaced with "sensitive".
 30095  func (s CloudwatchLogsAction) String() string {
 30096  	return awsutil.Prettify(s)
 30097  }
 30098  
 30099  // GoString returns the string representation.
 30100  //
 30101  // API parameter values that are decorated as "sensitive" in the API will not
 30102  // be included in the string output. The member name will be present, but the
 30103  // value will be replaced with "sensitive".
 30104  func (s CloudwatchLogsAction) GoString() string {
 30105  	return s.String()
 30106  }
 30107  
 30108  // Validate inspects the fields of the type to determine if they are valid.
 30109  func (s *CloudwatchLogsAction) Validate() error {
 30110  	invalidParams := request.ErrInvalidParams{Context: "CloudwatchLogsAction"}
 30111  	if s.LogGroupName == nil {
 30112  		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
 30113  	}
 30114  	if s.RoleArn == nil {
 30115  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 30116  	}
 30117  
 30118  	if invalidParams.Len() > 0 {
 30119  		return invalidParams
 30120  	}
 30121  	return nil
 30122  }
 30123  
 30124  // SetLogGroupName sets the LogGroupName field's value.
 30125  func (s *CloudwatchLogsAction) SetLogGroupName(v string) *CloudwatchLogsAction {
 30126  	s.LogGroupName = &v
 30127  	return s
 30128  }
 30129  
 30130  // SetRoleArn sets the RoleArn field's value.
 30131  func (s *CloudwatchLogsAction) SetRoleArn(v string) *CloudwatchLogsAction {
 30132  	s.RoleArn = &v
 30133  	return s
 30134  }
 30135  
 30136  // Describes an action that captures a CloudWatch metric.
 30137  type CloudwatchMetricAction struct {
 30138  	_ struct{} `type:"structure"`
 30139  
 30140  	// The CloudWatch metric name.
 30141  	//
 30142  	// MetricName is a required field
 30143  	MetricName *string `locationName:"metricName" type:"string" required:"true"`
 30144  
 30145  	// The CloudWatch metric namespace name.
 30146  	//
 30147  	// MetricNamespace is a required field
 30148  	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
 30149  
 30150  	// An optional Unix timestamp (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
 30151  	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
 30152  
 30153  	// The metric unit (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
 30154  	// supported by CloudWatch.
 30155  	//
 30156  	// MetricUnit is a required field
 30157  	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
 30158  
 30159  	// The CloudWatch metric value.
 30160  	//
 30161  	// MetricValue is a required field
 30162  	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
 30163  
 30164  	// The IAM role that allows access to the CloudWatch metric.
 30165  	//
 30166  	// RoleArn is a required field
 30167  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 30168  }
 30169  
 30170  // String returns the string representation.
 30171  //
 30172  // API parameter values that are decorated as "sensitive" in the API will not
 30173  // be included in the string output. The member name will be present, but the
 30174  // value will be replaced with "sensitive".
 30175  func (s CloudwatchMetricAction) String() string {
 30176  	return awsutil.Prettify(s)
 30177  }
 30178  
 30179  // GoString returns the string representation.
 30180  //
 30181  // API parameter values that are decorated as "sensitive" in the API will not
 30182  // be included in the string output. The member name will be present, but the
 30183  // value will be replaced with "sensitive".
 30184  func (s CloudwatchMetricAction) GoString() string {
 30185  	return s.String()
 30186  }
 30187  
 30188  // Validate inspects the fields of the type to determine if they are valid.
 30189  func (s *CloudwatchMetricAction) Validate() error {
 30190  	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
 30191  	if s.MetricName == nil {
 30192  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 30193  	}
 30194  	if s.MetricNamespace == nil {
 30195  		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
 30196  	}
 30197  	if s.MetricUnit == nil {
 30198  		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
 30199  	}
 30200  	if s.MetricValue == nil {
 30201  		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
 30202  	}
 30203  	if s.RoleArn == nil {
 30204  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 30205  	}
 30206  
 30207  	if invalidParams.Len() > 0 {
 30208  		return invalidParams
 30209  	}
 30210  	return nil
 30211  }
 30212  
 30213  // SetMetricName sets the MetricName field's value.
 30214  func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
 30215  	s.MetricName = &v
 30216  	return s
 30217  }
 30218  
 30219  // SetMetricNamespace sets the MetricNamespace field's value.
 30220  func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
 30221  	s.MetricNamespace = &v
 30222  	return s
 30223  }
 30224  
 30225  // SetMetricTimestamp sets the MetricTimestamp field's value.
 30226  func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
 30227  	s.MetricTimestamp = &v
 30228  	return s
 30229  }
 30230  
 30231  // SetMetricUnit sets the MetricUnit field's value.
 30232  func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
 30233  	s.MetricUnit = &v
 30234  	return s
 30235  }
 30236  
 30237  // SetMetricValue sets the MetricValue field's value.
 30238  func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
 30239  	s.MetricValue = &v
 30240  	return s
 30241  }
 30242  
 30243  // SetRoleArn sets the RoleArn field's value.
 30244  func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
 30245  	s.RoleArn = &v
 30246  	return s
 30247  }
 30248  
 30249  // Describes the method to use when code signing a file.
 30250  type CodeSigning struct {
 30251  	_ struct{} `type:"structure"`
 30252  
 30253  	// The ID of the AWSSignerJob which was created to sign the file.
 30254  	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
 30255  
 30256  	// A custom method for code signing a file.
 30257  	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
 30258  
 30259  	// Describes the code-signing job.
 30260  	StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"`
 30261  }
 30262  
 30263  // String returns the string representation.
 30264  //
 30265  // API parameter values that are decorated as "sensitive" in the API will not
 30266  // be included in the string output. The member name will be present, but the
 30267  // value will be replaced with "sensitive".
 30268  func (s CodeSigning) String() string {
 30269  	return awsutil.Prettify(s)
 30270  }
 30271  
 30272  // GoString returns the string representation.
 30273  //
 30274  // API parameter values that are decorated as "sensitive" in the API will not
 30275  // be included in the string output. The member name will be present, but the
 30276  // value will be replaced with "sensitive".
 30277  func (s CodeSigning) GoString() string {
 30278  	return s.String()
 30279  }
 30280  
 30281  // Validate inspects the fields of the type to determine if they are valid.
 30282  func (s *CodeSigning) Validate() error {
 30283  	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
 30284  	if s.StartSigningJobParameter != nil {
 30285  		if err := s.StartSigningJobParameter.Validate(); err != nil {
 30286  			invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams))
 30287  		}
 30288  	}
 30289  
 30290  	if invalidParams.Len() > 0 {
 30291  		return invalidParams
 30292  	}
 30293  	return nil
 30294  }
 30295  
 30296  // SetAwsSignerJobId sets the AwsSignerJobId field's value.
 30297  func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
 30298  	s.AwsSignerJobId = &v
 30299  	return s
 30300  }
 30301  
 30302  // SetCustomCodeSigning sets the CustomCodeSigning field's value.
 30303  func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
 30304  	s.CustomCodeSigning = v
 30305  	return s
 30306  }
 30307  
 30308  // SetStartSigningJobParameter sets the StartSigningJobParameter field's value.
 30309  func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning {
 30310  	s.StartSigningJobParameter = v
 30311  	return s
 30312  }
 30313  
 30314  // Describes the certificate chain being used when code signing a file.
 30315  type CodeSigningCertificateChain struct {
 30316  	_ struct{} `type:"structure"`
 30317  
 30318  	// The name of the certificate.
 30319  	CertificateName *string `locationName:"certificateName" type:"string"`
 30320  
 30321  	// A base64 encoded binary representation of the code signing certificate chain.
 30322  	InlineDocument *string `locationName:"inlineDocument" type:"string"`
 30323  }
 30324  
 30325  // String returns the string representation.
 30326  //
 30327  // API parameter values that are decorated as "sensitive" in the API will not
 30328  // be included in the string output. The member name will be present, but the
 30329  // value will be replaced with "sensitive".
 30330  func (s CodeSigningCertificateChain) String() string {
 30331  	return awsutil.Prettify(s)
 30332  }
 30333  
 30334  // GoString returns the string representation.
 30335  //
 30336  // API parameter values that are decorated as "sensitive" in the API will not
 30337  // be included in the string output. The member name will be present, but the
 30338  // value will be replaced with "sensitive".
 30339  func (s CodeSigningCertificateChain) GoString() string {
 30340  	return s.String()
 30341  }
 30342  
 30343  // SetCertificateName sets the CertificateName field's value.
 30344  func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
 30345  	s.CertificateName = &v
 30346  	return s
 30347  }
 30348  
 30349  // SetInlineDocument sets the InlineDocument field's value.
 30350  func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
 30351  	s.InlineDocument = &v
 30352  	return s
 30353  }
 30354  
 30355  // Describes the signature for a file.
 30356  type CodeSigningSignature struct {
 30357  	_ struct{} `type:"structure"`
 30358  
 30359  	// A base64 encoded binary representation of the code signing signature.
 30360  	// InlineDocument is automatically base64 encoded/decoded by the SDK.
 30361  	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
 30362  }
 30363  
 30364  // String returns the string representation.
 30365  //
 30366  // API parameter values that are decorated as "sensitive" in the API will not
 30367  // be included in the string output. The member name will be present, but the
 30368  // value will be replaced with "sensitive".
 30369  func (s CodeSigningSignature) String() string {
 30370  	return awsutil.Prettify(s)
 30371  }
 30372  
 30373  // GoString returns the string representation.
 30374  //
 30375  // API parameter values that are decorated as "sensitive" in the API will not
 30376  // be included in the string output. The member name will be present, but the
 30377  // value will be replaced with "sensitive".
 30378  func (s CodeSigningSignature) GoString() string {
 30379  	return s.String()
 30380  }
 30381  
 30382  // SetInlineDocument sets the InlineDocument field's value.
 30383  func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
 30384  	s.InlineDocument = v
 30385  	return s
 30386  }
 30387  
 30388  // Configuration.
 30389  type Configuration struct {
 30390  	_ struct{} `type:"structure"`
 30391  
 30392  	// True to enable the configuration.
 30393  	Enabled *bool `type:"boolean"`
 30394  }
 30395  
 30396  // String returns the string representation.
 30397  //
 30398  // API parameter values that are decorated as "sensitive" in the API will not
 30399  // be included in the string output. The member name will be present, but the
 30400  // value will be replaced with "sensitive".
 30401  func (s Configuration) String() string {
 30402  	return awsutil.Prettify(s)
 30403  }
 30404  
 30405  // GoString returns the string representation.
 30406  //
 30407  // API parameter values that are decorated as "sensitive" in the API will not
 30408  // be included in the string output. The member name will be present, but the
 30409  // value will be replaced with "sensitive".
 30410  func (s Configuration) GoString() string {
 30411  	return s.String()
 30412  }
 30413  
 30414  // SetEnabled sets the Enabled field's value.
 30415  func (s *Configuration) SetEnabled(v bool) *Configuration {
 30416  	s.Enabled = &v
 30417  	return s
 30418  }
 30419  
 30420  type ConfirmTopicRuleDestinationInput struct {
 30421  	_ struct{} `type:"structure" nopayload:"true"`
 30422  
 30423  	// The token used to confirm ownership or access to the topic rule confirmation
 30424  	// URL.
 30425  	//
 30426  	// ConfirmationToken is a required field
 30427  	ConfirmationToken *string `location:"uri" locationName:"confirmationToken" min:"1" type:"string" required:"true"`
 30428  }
 30429  
 30430  // String returns the string representation.
 30431  //
 30432  // API parameter values that are decorated as "sensitive" in the API will not
 30433  // be included in the string output. The member name will be present, but the
 30434  // value will be replaced with "sensitive".
 30435  func (s ConfirmTopicRuleDestinationInput) String() string {
 30436  	return awsutil.Prettify(s)
 30437  }
 30438  
 30439  // GoString returns the string representation.
 30440  //
 30441  // API parameter values that are decorated as "sensitive" in the API will not
 30442  // be included in the string output. The member name will be present, but the
 30443  // value will be replaced with "sensitive".
 30444  func (s ConfirmTopicRuleDestinationInput) GoString() string {
 30445  	return s.String()
 30446  }
 30447  
 30448  // Validate inspects the fields of the type to determine if they are valid.
 30449  func (s *ConfirmTopicRuleDestinationInput) Validate() error {
 30450  	invalidParams := request.ErrInvalidParams{Context: "ConfirmTopicRuleDestinationInput"}
 30451  	if s.ConfirmationToken == nil {
 30452  		invalidParams.Add(request.NewErrParamRequired("ConfirmationToken"))
 30453  	}
 30454  	if s.ConfirmationToken != nil && len(*s.ConfirmationToken) < 1 {
 30455  		invalidParams.Add(request.NewErrParamMinLen("ConfirmationToken", 1))
 30456  	}
 30457  
 30458  	if invalidParams.Len() > 0 {
 30459  		return invalidParams
 30460  	}
 30461  	return nil
 30462  }
 30463  
 30464  // SetConfirmationToken sets the ConfirmationToken field's value.
 30465  func (s *ConfirmTopicRuleDestinationInput) SetConfirmationToken(v string) *ConfirmTopicRuleDestinationInput {
 30466  	s.ConfirmationToken = &v
 30467  	return s
 30468  }
 30469  
 30470  type ConfirmTopicRuleDestinationOutput struct {
 30471  	_ struct{} `type:"structure" nopayload:"true"`
 30472  }
 30473  
 30474  // String returns the string representation.
 30475  //
 30476  // API parameter values that are decorated as "sensitive" in the API will not
 30477  // be included in the string output. The member name will be present, but the
 30478  // value will be replaced with "sensitive".
 30479  func (s ConfirmTopicRuleDestinationOutput) String() string {
 30480  	return awsutil.Prettify(s)
 30481  }
 30482  
 30483  // GoString returns the string representation.
 30484  //
 30485  // API parameter values that are decorated as "sensitive" in the API will not
 30486  // be included in the string output. The member name will be present, but the
 30487  // value will be replaced with "sensitive".
 30488  func (s ConfirmTopicRuleDestinationOutput) GoString() string {
 30489  	return s.String()
 30490  }
 30491  
 30492  // A resource with the same name already exists.
 30493  type ConflictException struct {
 30494  	_            struct{}                  `type:"structure"`
 30495  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 30496  
 30497  	Message_ *string `locationName:"message" type:"string"`
 30498  }
 30499  
 30500  // String returns the string representation.
 30501  //
 30502  // API parameter values that are decorated as "sensitive" in the API will not
 30503  // be included in the string output. The member name will be present, but the
 30504  // value will be replaced with "sensitive".
 30505  func (s ConflictException) String() string {
 30506  	return awsutil.Prettify(s)
 30507  }
 30508  
 30509  // GoString returns the string representation.
 30510  //
 30511  // API parameter values that are decorated as "sensitive" in the API will not
 30512  // be included in the string output. The member name will be present, but the
 30513  // value will be replaced with "sensitive".
 30514  func (s ConflictException) GoString() string {
 30515  	return s.String()
 30516  }
 30517  
 30518  func newErrorConflictException(v protocol.ResponseMetadata) error {
 30519  	return &ConflictException{
 30520  		RespMetadata: v,
 30521  	}
 30522  }
 30523  
 30524  // Code returns the exception type name.
 30525  func (s *ConflictException) Code() string {
 30526  	return "ConflictException"
 30527  }
 30528  
 30529  // Message returns the exception's message.
 30530  func (s *ConflictException) Message() string {
 30531  	if s.Message_ != nil {
 30532  		return *s.Message_
 30533  	}
 30534  	return ""
 30535  }
 30536  
 30537  // OrigErr always returns nil, satisfies awserr.Error interface.
 30538  func (s *ConflictException) OrigErr() error {
 30539  	return nil
 30540  }
 30541  
 30542  func (s *ConflictException) Error() string {
 30543  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 30544  }
 30545  
 30546  // Status code returns the HTTP status code for the request's response error.
 30547  func (s *ConflictException) StatusCode() int {
 30548  	return s.RespMetadata.StatusCode
 30549  }
 30550  
 30551  // RequestID returns the service's response RequestID for request.
 30552  func (s *ConflictException) RequestID() string {
 30553  	return s.RespMetadata.RequestID
 30554  }
 30555  
 30556  // A conflicting resource update exception. This exception is thrown when two
 30557  // pending updates cause a conflict.
 30558  type ConflictingResourceUpdateException struct {
 30559  	_            struct{}                  `type:"structure"`
 30560  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 30561  
 30562  	// The message for the exception.
 30563  	Message_ *string `locationName:"message" type:"string"`
 30564  }
 30565  
 30566  // String returns the string representation.
 30567  //
 30568  // API parameter values that are decorated as "sensitive" in the API will not
 30569  // be included in the string output. The member name will be present, but the
 30570  // value will be replaced with "sensitive".
 30571  func (s ConflictingResourceUpdateException) String() string {
 30572  	return awsutil.Prettify(s)
 30573  }
 30574  
 30575  // GoString returns the string representation.
 30576  //
 30577  // API parameter values that are decorated as "sensitive" in the API will not
 30578  // be included in the string output. The member name will be present, but the
 30579  // value will be replaced with "sensitive".
 30580  func (s ConflictingResourceUpdateException) GoString() string {
 30581  	return s.String()
 30582  }
 30583  
 30584  func newErrorConflictingResourceUpdateException(v protocol.ResponseMetadata) error {
 30585  	return &ConflictingResourceUpdateException{
 30586  		RespMetadata: v,
 30587  	}
 30588  }
 30589  
 30590  // Code returns the exception type name.
 30591  func (s *ConflictingResourceUpdateException) Code() string {
 30592  	return "ConflictingResourceUpdateException"
 30593  }
 30594  
 30595  // Message returns the exception's message.
 30596  func (s *ConflictingResourceUpdateException) Message() string {
 30597  	if s.Message_ != nil {
 30598  		return *s.Message_
 30599  	}
 30600  	return ""
 30601  }
 30602  
 30603  // OrigErr always returns nil, satisfies awserr.Error interface.
 30604  func (s *ConflictingResourceUpdateException) OrigErr() error {
 30605  	return nil
 30606  }
 30607  
 30608  func (s *ConflictingResourceUpdateException) Error() string {
 30609  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 30610  }
 30611  
 30612  // Status code returns the HTTP status code for the request's response error.
 30613  func (s *ConflictingResourceUpdateException) StatusCode() int {
 30614  	return s.RespMetadata.StatusCode
 30615  }
 30616  
 30617  // RequestID returns the service's response RequestID for request.
 30618  func (s *ConflictingResourceUpdateException) RequestID() string {
 30619  	return s.RespMetadata.RequestID
 30620  }
 30621  
 30622  type CreateAuditSuppressionInput struct {
 30623  	_ struct{} `type:"structure"`
 30624  
 30625  	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
 30626  	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 30627  	// to select which checks are enabled.)
 30628  	//
 30629  	// CheckName is a required field
 30630  	CheckName *string `locationName:"checkName" type:"string" required:"true"`
 30631  
 30632  	// Each audit supression must have a unique client request token. If you try
 30633  	// to create a new audit suppression with the same token as one that already
 30634  	// exists, an exception occurs. If you omit this value, Amazon Web Services
 30635  	// SDKs will automatically generate a unique client request.
 30636  	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
 30637  
 30638  	// The description of the audit suppression.
 30639  	Description *string `locationName:"description" type:"string"`
 30640  
 30641  	// The epoch timestamp in seconds at which this suppression expires.
 30642  	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
 30643  
 30644  	// Information that identifies the noncompliant resource.
 30645  	//
 30646  	// ResourceIdentifier is a required field
 30647  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
 30648  
 30649  	// Indicates whether a suppression should exist indefinitely or not.
 30650  	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
 30651  }
 30652  
 30653  // String returns the string representation.
 30654  //
 30655  // API parameter values that are decorated as "sensitive" in the API will not
 30656  // be included in the string output. The member name will be present, but the
 30657  // value will be replaced with "sensitive".
 30658  func (s CreateAuditSuppressionInput) String() string {
 30659  	return awsutil.Prettify(s)
 30660  }
 30661  
 30662  // GoString returns the string representation.
 30663  //
 30664  // API parameter values that are decorated as "sensitive" in the API will not
 30665  // be included in the string output. The member name will be present, but the
 30666  // value will be replaced with "sensitive".
 30667  func (s CreateAuditSuppressionInput) GoString() string {
 30668  	return s.String()
 30669  }
 30670  
 30671  // Validate inspects the fields of the type to determine if they are valid.
 30672  func (s *CreateAuditSuppressionInput) Validate() error {
 30673  	invalidParams := request.ErrInvalidParams{Context: "CreateAuditSuppressionInput"}
 30674  	if s.CheckName == nil {
 30675  		invalidParams.Add(request.NewErrParamRequired("CheckName"))
 30676  	}
 30677  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 30678  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 30679  	}
 30680  	if s.ResourceIdentifier == nil {
 30681  		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
 30682  	}
 30683  	if s.ResourceIdentifier != nil {
 30684  		if err := s.ResourceIdentifier.Validate(); err != nil {
 30685  			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
 30686  		}
 30687  	}
 30688  
 30689  	if invalidParams.Len() > 0 {
 30690  		return invalidParams
 30691  	}
 30692  	return nil
 30693  }
 30694  
 30695  // SetCheckName sets the CheckName field's value.
 30696  func (s *CreateAuditSuppressionInput) SetCheckName(v string) *CreateAuditSuppressionInput {
 30697  	s.CheckName = &v
 30698  	return s
 30699  }
 30700  
 30701  // SetClientRequestToken sets the ClientRequestToken field's value.
 30702  func (s *CreateAuditSuppressionInput) SetClientRequestToken(v string) *CreateAuditSuppressionInput {
 30703  	s.ClientRequestToken = &v
 30704  	return s
 30705  }
 30706  
 30707  // SetDescription sets the Description field's value.
 30708  func (s *CreateAuditSuppressionInput) SetDescription(v string) *CreateAuditSuppressionInput {
 30709  	s.Description = &v
 30710  	return s
 30711  }
 30712  
 30713  // SetExpirationDate sets the ExpirationDate field's value.
 30714  func (s *CreateAuditSuppressionInput) SetExpirationDate(v time.Time) *CreateAuditSuppressionInput {
 30715  	s.ExpirationDate = &v
 30716  	return s
 30717  }
 30718  
 30719  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 30720  func (s *CreateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *CreateAuditSuppressionInput {
 30721  	s.ResourceIdentifier = v
 30722  	return s
 30723  }
 30724  
 30725  // SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
 30726  func (s *CreateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *CreateAuditSuppressionInput {
 30727  	s.SuppressIndefinitely = &v
 30728  	return s
 30729  }
 30730  
 30731  type CreateAuditSuppressionOutput struct {
 30732  	_ struct{} `type:"structure" nopayload:"true"`
 30733  }
 30734  
 30735  // String returns the string representation.
 30736  //
 30737  // API parameter values that are decorated as "sensitive" in the API will not
 30738  // be included in the string output. The member name will be present, but the
 30739  // value will be replaced with "sensitive".
 30740  func (s CreateAuditSuppressionOutput) String() string {
 30741  	return awsutil.Prettify(s)
 30742  }
 30743  
 30744  // GoString returns the string representation.
 30745  //
 30746  // API parameter values that are decorated as "sensitive" in the API will not
 30747  // be included in the string output. The member name will be present, but the
 30748  // value will be replaced with "sensitive".
 30749  func (s CreateAuditSuppressionOutput) GoString() string {
 30750  	return s.String()
 30751  }
 30752  
 30753  type CreateAuthorizerInput struct {
 30754  	_ struct{} `type:"structure"`
 30755  
 30756  	// The ARN of the authorizer's Lambda function.
 30757  	//
 30758  	// AuthorizerFunctionArn is a required field
 30759  	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
 30760  
 30761  	// The authorizer name.
 30762  	//
 30763  	// AuthorizerName is a required field
 30764  	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
 30765  
 30766  	// Specifies whether IoT validates the token signature in an authorization request.
 30767  	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
 30768  
 30769  	// The status of the create authorizer request.
 30770  	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
 30771  
 30772  	// Metadata which can be used to manage the custom authorizer.
 30773  	//
 30774  	// For URI Request parameters use format: ...key1=value1&key2=value2...
 30775  	//
 30776  	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
 30777  	//
 30778  	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
 30779  	Tags []*Tag `locationName:"tags" type:"list"`
 30780  
 30781  	// The name of the token key used to extract the token from the HTTP headers.
 30782  	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
 30783  
 30784  	// The public keys used to verify the digital signature returned by your custom
 30785  	// authentication service.
 30786  	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
 30787  }
 30788  
 30789  // String returns the string representation.
 30790  //
 30791  // API parameter values that are decorated as "sensitive" in the API will not
 30792  // be included in the string output. The member name will be present, but the
 30793  // value will be replaced with "sensitive".
 30794  func (s CreateAuthorizerInput) String() string {
 30795  	return awsutil.Prettify(s)
 30796  }
 30797  
 30798  // GoString returns the string representation.
 30799  //
 30800  // API parameter values that are decorated as "sensitive" in the API will not
 30801  // be included in the string output. The member name will be present, but the
 30802  // value will be replaced with "sensitive".
 30803  func (s CreateAuthorizerInput) GoString() string {
 30804  	return s.String()
 30805  }
 30806  
 30807  // Validate inspects the fields of the type to determine if they are valid.
 30808  func (s *CreateAuthorizerInput) Validate() error {
 30809  	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
 30810  	if s.AuthorizerFunctionArn == nil {
 30811  		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
 30812  	}
 30813  	if s.AuthorizerName == nil {
 30814  		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
 30815  	}
 30816  	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
 30817  		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
 30818  	}
 30819  	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
 30820  		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
 30821  	}
 30822  	if s.Tags != nil {
 30823  		for i, v := range s.Tags {
 30824  			if v == nil {
 30825  				continue
 30826  			}
 30827  			if err := v.Validate(); err != nil {
 30828  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 30829  			}
 30830  		}
 30831  	}
 30832  
 30833  	if invalidParams.Len() > 0 {
 30834  		return invalidParams
 30835  	}
 30836  	return nil
 30837  }
 30838  
 30839  // SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
 30840  func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
 30841  	s.AuthorizerFunctionArn = &v
 30842  	return s
 30843  }
 30844  
 30845  // SetAuthorizerName sets the AuthorizerName field's value.
 30846  func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
 30847  	s.AuthorizerName = &v
 30848  	return s
 30849  }
 30850  
 30851  // SetSigningDisabled sets the SigningDisabled field's value.
 30852  func (s *CreateAuthorizerInput) SetSigningDisabled(v bool) *CreateAuthorizerInput {
 30853  	s.SigningDisabled = &v
 30854  	return s
 30855  }
 30856  
 30857  // SetStatus sets the Status field's value.
 30858  func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
 30859  	s.Status = &v
 30860  	return s
 30861  }
 30862  
 30863  // SetTags sets the Tags field's value.
 30864  func (s *CreateAuthorizerInput) SetTags(v []*Tag) *CreateAuthorizerInput {
 30865  	s.Tags = v
 30866  	return s
 30867  }
 30868  
 30869  // SetTokenKeyName sets the TokenKeyName field's value.
 30870  func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
 30871  	s.TokenKeyName = &v
 30872  	return s
 30873  }
 30874  
 30875  // SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
 30876  func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
 30877  	s.TokenSigningPublicKeys = v
 30878  	return s
 30879  }
 30880  
 30881  type CreateAuthorizerOutput struct {
 30882  	_ struct{} `type:"structure"`
 30883  
 30884  	// The authorizer ARN.
 30885  	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
 30886  
 30887  	// The authorizer's name.
 30888  	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
 30889  }
 30890  
 30891  // String returns the string representation.
 30892  //
 30893  // API parameter values that are decorated as "sensitive" in the API will not
 30894  // be included in the string output. The member name will be present, but the
 30895  // value will be replaced with "sensitive".
 30896  func (s CreateAuthorizerOutput) String() string {
 30897  	return awsutil.Prettify(s)
 30898  }
 30899  
 30900  // GoString returns the string representation.
 30901  //
 30902  // API parameter values that are decorated as "sensitive" in the API will not
 30903  // be included in the string output. The member name will be present, but the
 30904  // value will be replaced with "sensitive".
 30905  func (s CreateAuthorizerOutput) GoString() string {
 30906  	return s.String()
 30907  }
 30908  
 30909  // SetAuthorizerArn sets the AuthorizerArn field's value.
 30910  func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
 30911  	s.AuthorizerArn = &v
 30912  	return s
 30913  }
 30914  
 30915  // SetAuthorizerName sets the AuthorizerName field's value.
 30916  func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
 30917  	s.AuthorizerName = &v
 30918  	return s
 30919  }
 30920  
 30921  type CreateBillingGroupInput struct {
 30922  	_ struct{} `type:"structure"`
 30923  
 30924  	// The name you wish to give to the billing group.
 30925  	//
 30926  	// BillingGroupName is a required field
 30927  	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
 30928  
 30929  	// The properties of the billing group.
 30930  	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
 30931  
 30932  	// Metadata which can be used to manage the billing group.
 30933  	Tags []*Tag `locationName:"tags" type:"list"`
 30934  }
 30935  
 30936  // String returns the string representation.
 30937  //
 30938  // API parameter values that are decorated as "sensitive" in the API will not
 30939  // be included in the string output. The member name will be present, but the
 30940  // value will be replaced with "sensitive".
 30941  func (s CreateBillingGroupInput) String() string {
 30942  	return awsutil.Prettify(s)
 30943  }
 30944  
 30945  // GoString returns the string representation.
 30946  //
 30947  // API parameter values that are decorated as "sensitive" in the API will not
 30948  // be included in the string output. The member name will be present, but the
 30949  // value will be replaced with "sensitive".
 30950  func (s CreateBillingGroupInput) GoString() string {
 30951  	return s.String()
 30952  }
 30953  
 30954  // Validate inspects the fields of the type to determine if they are valid.
 30955  func (s *CreateBillingGroupInput) Validate() error {
 30956  	invalidParams := request.ErrInvalidParams{Context: "CreateBillingGroupInput"}
 30957  	if s.BillingGroupName == nil {
 30958  		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
 30959  	}
 30960  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 30961  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 30962  	}
 30963  	if s.Tags != nil {
 30964  		for i, v := range s.Tags {
 30965  			if v == nil {
 30966  				continue
 30967  			}
 30968  			if err := v.Validate(); err != nil {
 30969  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 30970  			}
 30971  		}
 30972  	}
 30973  
 30974  	if invalidParams.Len() > 0 {
 30975  		return invalidParams
 30976  	}
 30977  	return nil
 30978  }
 30979  
 30980  // SetBillingGroupName sets the BillingGroupName field's value.
 30981  func (s *CreateBillingGroupInput) SetBillingGroupName(v string) *CreateBillingGroupInput {
 30982  	s.BillingGroupName = &v
 30983  	return s
 30984  }
 30985  
 30986  // SetBillingGroupProperties sets the BillingGroupProperties field's value.
 30987  func (s *CreateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *CreateBillingGroupInput {
 30988  	s.BillingGroupProperties = v
 30989  	return s
 30990  }
 30991  
 30992  // SetTags sets the Tags field's value.
 30993  func (s *CreateBillingGroupInput) SetTags(v []*Tag) *CreateBillingGroupInput {
 30994  	s.Tags = v
 30995  	return s
 30996  }
 30997  
 30998  type CreateBillingGroupOutput struct {
 30999  	_ struct{} `type:"structure"`
 31000  
 31001  	// The ARN of the billing group.
 31002  	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
 31003  
 31004  	// The ID of the billing group.
 31005  	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
 31006  
 31007  	// The name you gave to the billing group.
 31008  	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
 31009  }
 31010  
 31011  // String returns the string representation.
 31012  //
 31013  // API parameter values that are decorated as "sensitive" in the API will not
 31014  // be included in the string output. The member name will be present, but the
 31015  // value will be replaced with "sensitive".
 31016  func (s CreateBillingGroupOutput) String() string {
 31017  	return awsutil.Prettify(s)
 31018  }
 31019  
 31020  // GoString returns the string representation.
 31021  //
 31022  // API parameter values that are decorated as "sensitive" in the API will not
 31023  // be included in the string output. The member name will be present, but the
 31024  // value will be replaced with "sensitive".
 31025  func (s CreateBillingGroupOutput) GoString() string {
 31026  	return s.String()
 31027  }
 31028  
 31029  // SetBillingGroupArn sets the BillingGroupArn field's value.
 31030  func (s *CreateBillingGroupOutput) SetBillingGroupArn(v string) *CreateBillingGroupOutput {
 31031  	s.BillingGroupArn = &v
 31032  	return s
 31033  }
 31034  
 31035  // SetBillingGroupId sets the BillingGroupId field's value.
 31036  func (s *CreateBillingGroupOutput) SetBillingGroupId(v string) *CreateBillingGroupOutput {
 31037  	s.BillingGroupId = &v
 31038  	return s
 31039  }
 31040  
 31041  // SetBillingGroupName sets the BillingGroupName field's value.
 31042  func (s *CreateBillingGroupOutput) SetBillingGroupName(v string) *CreateBillingGroupOutput {
 31043  	s.BillingGroupName = &v
 31044  	return s
 31045  }
 31046  
 31047  // The input for the CreateCertificateFromCsr operation.
 31048  type CreateCertificateFromCsrInput struct {
 31049  	_ struct{} `type:"structure"`
 31050  
 31051  	// The certificate signing request (CSR).
 31052  	//
 31053  	// CertificateSigningRequest is a required field
 31054  	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
 31055  
 31056  	// Specifies whether the certificate is active.
 31057  	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
 31058  }
 31059  
 31060  // String returns the string representation.
 31061  //
 31062  // API parameter values that are decorated as "sensitive" in the API will not
 31063  // be included in the string output. The member name will be present, but the
 31064  // value will be replaced with "sensitive".
 31065  func (s CreateCertificateFromCsrInput) String() string {
 31066  	return awsutil.Prettify(s)
 31067  }
 31068  
 31069  // GoString returns the string representation.
 31070  //
 31071  // API parameter values that are decorated as "sensitive" in the API will not
 31072  // be included in the string output. The member name will be present, but the
 31073  // value will be replaced with "sensitive".
 31074  func (s CreateCertificateFromCsrInput) GoString() string {
 31075  	return s.String()
 31076  }
 31077  
 31078  // Validate inspects the fields of the type to determine if they are valid.
 31079  func (s *CreateCertificateFromCsrInput) Validate() error {
 31080  	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
 31081  	if s.CertificateSigningRequest == nil {
 31082  		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
 31083  	}
 31084  	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
 31085  		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
 31086  	}
 31087  
 31088  	if invalidParams.Len() > 0 {
 31089  		return invalidParams
 31090  	}
 31091  	return nil
 31092  }
 31093  
 31094  // SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
 31095  func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
 31096  	s.CertificateSigningRequest = &v
 31097  	return s
 31098  }
 31099  
 31100  // SetSetAsActive sets the SetAsActive field's value.
 31101  func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
 31102  	s.SetAsActive = &v
 31103  	return s
 31104  }
 31105  
 31106  // The output from the CreateCertificateFromCsr operation.
 31107  type CreateCertificateFromCsrOutput struct {
 31108  	_ struct{} `type:"structure"`
 31109  
 31110  	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
 31111  	// a principal for policy operations.
 31112  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 31113  
 31114  	// The ID of the certificate. Certificate management operations only take a
 31115  	// certificateId.
 31116  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 31117  
 31118  	// The certificate data, in PEM format.
 31119  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
 31120  }
 31121  
 31122  // String returns the string representation.
 31123  //
 31124  // API parameter values that are decorated as "sensitive" in the API will not
 31125  // be included in the string output. The member name will be present, but the
 31126  // value will be replaced with "sensitive".
 31127  func (s CreateCertificateFromCsrOutput) String() string {
 31128  	return awsutil.Prettify(s)
 31129  }
 31130  
 31131  // GoString returns the string representation.
 31132  //
 31133  // API parameter values that are decorated as "sensitive" in the API will not
 31134  // be included in the string output. The member name will be present, but the
 31135  // value will be replaced with "sensitive".
 31136  func (s CreateCertificateFromCsrOutput) GoString() string {
 31137  	return s.String()
 31138  }
 31139  
 31140  // SetCertificateArn sets the CertificateArn field's value.
 31141  func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
 31142  	s.CertificateArn = &v
 31143  	return s
 31144  }
 31145  
 31146  // SetCertificateId sets the CertificateId field's value.
 31147  func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
 31148  	s.CertificateId = &v
 31149  	return s
 31150  }
 31151  
 31152  // SetCertificatePem sets the CertificatePem field's value.
 31153  func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
 31154  	s.CertificatePem = &v
 31155  	return s
 31156  }
 31157  
 31158  type CreateCustomMetricInput struct {
 31159  	_ struct{} `type:"structure"`
 31160  
 31161  	// Each custom metric must have a unique client request token. If you try to
 31162  	// create a new custom metric that already exists with a different token, an
 31163  	// exception occurs. If you omit this value, Amazon Web Services SDKs will automatically
 31164  	// generate a unique client request.
 31165  	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
 31166  
 31167  	// Field represents a friendly name in the console for the custom metric; it
 31168  	// doesn't have to be unique. Don't use this name as the metric identifier in
 31169  	// the device metric report. Can be updated once defined.
 31170  	DisplayName *string `locationName:"displayName" type:"string"`
 31171  
 31172  	// The name of the custom metric. This will be used in the metric report submitted
 31173  	// from the device/thing. Shouldn't begin with aws:. Cannot be updated once
 31174  	// defined.
 31175  	//
 31176  	// MetricName is a required field
 31177  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 31178  
 31179  	// The type of the custom metric. Types include string-list, ip-address-list,
 31180  	// number-list, and number.
 31181  	//
 31182  	// MetricType is a required field
 31183  	MetricType *string `locationName:"metricType" type:"string" required:"true" enum:"CustomMetricType"`
 31184  
 31185  	// Metadata that can be used to manage the custom metric.
 31186  	Tags []*Tag `locationName:"tags" type:"list"`
 31187  }
 31188  
 31189  // String returns the string representation.
 31190  //
 31191  // API parameter values that are decorated as "sensitive" in the API will not
 31192  // be included in the string output. The member name will be present, but the
 31193  // value will be replaced with "sensitive".
 31194  func (s CreateCustomMetricInput) String() string {
 31195  	return awsutil.Prettify(s)
 31196  }
 31197  
 31198  // GoString returns the string representation.
 31199  //
 31200  // API parameter values that are decorated as "sensitive" in the API will not
 31201  // be included in the string output. The member name will be present, but the
 31202  // value will be replaced with "sensitive".
 31203  func (s CreateCustomMetricInput) GoString() string {
 31204  	return s.String()
 31205  }
 31206  
 31207  // Validate inspects the fields of the type to determine if they are valid.
 31208  func (s *CreateCustomMetricInput) Validate() error {
 31209  	invalidParams := request.ErrInvalidParams{Context: "CreateCustomMetricInput"}
 31210  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 31211  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 31212  	}
 31213  	if s.MetricName == nil {
 31214  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 31215  	}
 31216  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 31217  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 31218  	}
 31219  	if s.MetricType == nil {
 31220  		invalidParams.Add(request.NewErrParamRequired("MetricType"))
 31221  	}
 31222  	if s.Tags != nil {
 31223  		for i, v := range s.Tags {
 31224  			if v == nil {
 31225  				continue
 31226  			}
 31227  			if err := v.Validate(); err != nil {
 31228  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 31229  			}
 31230  		}
 31231  	}
 31232  
 31233  	if invalidParams.Len() > 0 {
 31234  		return invalidParams
 31235  	}
 31236  	return nil
 31237  }
 31238  
 31239  // SetClientRequestToken sets the ClientRequestToken field's value.
 31240  func (s *CreateCustomMetricInput) SetClientRequestToken(v string) *CreateCustomMetricInput {
 31241  	s.ClientRequestToken = &v
 31242  	return s
 31243  }
 31244  
 31245  // SetDisplayName sets the DisplayName field's value.
 31246  func (s *CreateCustomMetricInput) SetDisplayName(v string) *CreateCustomMetricInput {
 31247  	s.DisplayName = &v
 31248  	return s
 31249  }
 31250  
 31251  // SetMetricName sets the MetricName field's value.
 31252  func (s *CreateCustomMetricInput) SetMetricName(v string) *CreateCustomMetricInput {
 31253  	s.MetricName = &v
 31254  	return s
 31255  }
 31256  
 31257  // SetMetricType sets the MetricType field's value.
 31258  func (s *CreateCustomMetricInput) SetMetricType(v string) *CreateCustomMetricInput {
 31259  	s.MetricType = &v
 31260  	return s
 31261  }
 31262  
 31263  // SetTags sets the Tags field's value.
 31264  func (s *CreateCustomMetricInput) SetTags(v []*Tag) *CreateCustomMetricInput {
 31265  	s.Tags = v
 31266  	return s
 31267  }
 31268  
 31269  type CreateCustomMetricOutput struct {
 31270  	_ struct{} `type:"structure"`
 31271  
 31272  	// The Amazon Resource Number (ARN) of the custom metric, e.g. arn:aws-partition:iot:region:accountId:custommetric/metricName
 31273  	MetricArn *string `locationName:"metricArn" type:"string"`
 31274  
 31275  	// The name of the custom metric to be used in the metric report.
 31276  	MetricName *string `locationName:"metricName" min:"1" type:"string"`
 31277  }
 31278  
 31279  // String returns the string representation.
 31280  //
 31281  // API parameter values that are decorated as "sensitive" in the API will not
 31282  // be included in the string output. The member name will be present, but the
 31283  // value will be replaced with "sensitive".
 31284  func (s CreateCustomMetricOutput) String() string {
 31285  	return awsutil.Prettify(s)
 31286  }
 31287  
 31288  // GoString returns the string representation.
 31289  //
 31290  // API parameter values that are decorated as "sensitive" in the API will not
 31291  // be included in the string output. The member name will be present, but the
 31292  // value will be replaced with "sensitive".
 31293  func (s CreateCustomMetricOutput) GoString() string {
 31294  	return s.String()
 31295  }
 31296  
 31297  // SetMetricArn sets the MetricArn field's value.
 31298  func (s *CreateCustomMetricOutput) SetMetricArn(v string) *CreateCustomMetricOutput {
 31299  	s.MetricArn = &v
 31300  	return s
 31301  }
 31302  
 31303  // SetMetricName sets the MetricName field's value.
 31304  func (s *CreateCustomMetricOutput) SetMetricName(v string) *CreateCustomMetricOutput {
 31305  	s.MetricName = &v
 31306  	return s
 31307  }
 31308  
 31309  type CreateDimensionInput struct {
 31310  	_ struct{} `type:"structure"`
 31311  
 31312  	// Each dimension must have a unique client request token. If you try to create
 31313  	// a new dimension with the same token as a dimension that already exists, an
 31314  	// exception occurs. If you omit this value, Amazon Web Services SDKs will automatically
 31315  	// generate a unique client request.
 31316  	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
 31317  
 31318  	// A unique identifier for the dimension. Choose something that describes the
 31319  	// type and value to make it easy to remember what it does.
 31320  	//
 31321  	// Name is a required field
 31322  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 31323  
 31324  	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
 31325  	// dimensions, this is a pattern used to match the MQTT topic (for example,
 31326  	// "admin/#").
 31327  	//
 31328  	// StringValues is a required field
 31329  	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
 31330  
 31331  	// Metadata that can be used to manage the dimension.
 31332  	Tags []*Tag `locationName:"tags" type:"list"`
 31333  
 31334  	// Specifies the type of dimension. Supported types: TOPIC_FILTER.
 31335  	//
 31336  	// Type is a required field
 31337  	Type *string `locationName:"type" type:"string" required:"true" enum:"DimensionType"`
 31338  }
 31339  
 31340  // String returns the string representation.
 31341  //
 31342  // API parameter values that are decorated as "sensitive" in the API will not
 31343  // be included in the string output. The member name will be present, but the
 31344  // value will be replaced with "sensitive".
 31345  func (s CreateDimensionInput) String() string {
 31346  	return awsutil.Prettify(s)
 31347  }
 31348  
 31349  // GoString returns the string representation.
 31350  //
 31351  // API parameter values that are decorated as "sensitive" in the API will not
 31352  // be included in the string output. The member name will be present, but the
 31353  // value will be replaced with "sensitive".
 31354  func (s CreateDimensionInput) GoString() string {
 31355  	return s.String()
 31356  }
 31357  
 31358  // Validate inspects the fields of the type to determine if they are valid.
 31359  func (s *CreateDimensionInput) Validate() error {
 31360  	invalidParams := request.ErrInvalidParams{Context: "CreateDimensionInput"}
 31361  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 31362  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 31363  	}
 31364  	if s.Name == nil {
 31365  		invalidParams.Add(request.NewErrParamRequired("Name"))
 31366  	}
 31367  	if s.Name != nil && len(*s.Name) < 1 {
 31368  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 31369  	}
 31370  	if s.StringValues == nil {
 31371  		invalidParams.Add(request.NewErrParamRequired("StringValues"))
 31372  	}
 31373  	if s.StringValues != nil && len(s.StringValues) < 1 {
 31374  		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
 31375  	}
 31376  	if s.Type == nil {
 31377  		invalidParams.Add(request.NewErrParamRequired("Type"))
 31378  	}
 31379  	if s.Tags != nil {
 31380  		for i, v := range s.Tags {
 31381  			if v == nil {
 31382  				continue
 31383  			}
 31384  			if err := v.Validate(); err != nil {
 31385  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 31386  			}
 31387  		}
 31388  	}
 31389  
 31390  	if invalidParams.Len() > 0 {
 31391  		return invalidParams
 31392  	}
 31393  	return nil
 31394  }
 31395  
 31396  // SetClientRequestToken sets the ClientRequestToken field's value.
 31397  func (s *CreateDimensionInput) SetClientRequestToken(v string) *CreateDimensionInput {
 31398  	s.ClientRequestToken = &v
 31399  	return s
 31400  }
 31401  
 31402  // SetName sets the Name field's value.
 31403  func (s *CreateDimensionInput) SetName(v string) *CreateDimensionInput {
 31404  	s.Name = &v
 31405  	return s
 31406  }
 31407  
 31408  // SetStringValues sets the StringValues field's value.
 31409  func (s *CreateDimensionInput) SetStringValues(v []*string) *CreateDimensionInput {
 31410  	s.StringValues = v
 31411  	return s
 31412  }
 31413  
 31414  // SetTags sets the Tags field's value.
 31415  func (s *CreateDimensionInput) SetTags(v []*Tag) *CreateDimensionInput {
 31416  	s.Tags = v
 31417  	return s
 31418  }
 31419  
 31420  // SetType sets the Type field's value.
 31421  func (s *CreateDimensionInput) SetType(v string) *CreateDimensionInput {
 31422  	s.Type = &v
 31423  	return s
 31424  }
 31425  
 31426  type CreateDimensionOutput struct {
 31427  	_ struct{} `type:"structure"`
 31428  
 31429  	// The Amazon Resource Name (ARN) of the created dimension.
 31430  	Arn *string `locationName:"arn" type:"string"`
 31431  
 31432  	// A unique identifier for the dimension.
 31433  	Name *string `locationName:"name" min:"1" type:"string"`
 31434  }
 31435  
 31436  // String returns the string representation.
 31437  //
 31438  // API parameter values that are decorated as "sensitive" in the API will not
 31439  // be included in the string output. The member name will be present, but the
 31440  // value will be replaced with "sensitive".
 31441  func (s CreateDimensionOutput) String() string {
 31442  	return awsutil.Prettify(s)
 31443  }
 31444  
 31445  // GoString returns the string representation.
 31446  //
 31447  // API parameter values that are decorated as "sensitive" in the API will not
 31448  // be included in the string output. The member name will be present, but the
 31449  // value will be replaced with "sensitive".
 31450  func (s CreateDimensionOutput) GoString() string {
 31451  	return s.String()
 31452  }
 31453  
 31454  // SetArn sets the Arn field's value.
 31455  func (s *CreateDimensionOutput) SetArn(v string) *CreateDimensionOutput {
 31456  	s.Arn = &v
 31457  	return s
 31458  }
 31459  
 31460  // SetName sets the Name field's value.
 31461  func (s *CreateDimensionOutput) SetName(v string) *CreateDimensionOutput {
 31462  	s.Name = &v
 31463  	return s
 31464  }
 31465  
 31466  type CreateDomainConfigurationInput struct {
 31467  	_ struct{} `type:"structure"`
 31468  
 31469  	// An object that specifies the authorization service for a domain.
 31470  	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
 31471  
 31472  	// The name of the domain configuration. This value must be unique to a region.
 31473  	//
 31474  	// DomainConfigurationName is a required field
 31475  	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
 31476  
 31477  	// The name of the domain.
 31478  	DomainName *string `locationName:"domainName" min:"1" type:"string"`
 31479  
 31480  	// The ARNs of the certificates that IoT passes to the device during the TLS
 31481  	// handshake. Currently you can specify only one certificate ARN. This value
 31482  	// is not required for Amazon Web Services-managed domains.
 31483  	ServerCertificateArns []*string `locationName:"serverCertificateArns" type:"list"`
 31484  
 31485  	// The type of service delivered by the endpoint.
 31486  	//
 31487  	// Amazon Web Services IoT Core currently supports only the DATA service type.
 31488  	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
 31489  
 31490  	// Metadata which can be used to manage the domain configuration.
 31491  	//
 31492  	// For URI Request parameters use format: ...key1=value1&key2=value2...
 31493  	//
 31494  	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
 31495  	//
 31496  	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
 31497  	Tags []*Tag `locationName:"tags" type:"list"`
 31498  
 31499  	// The certificate used to validate the server certificate and prove domain
 31500  	// name ownership. This certificate must be signed by a public certificate authority.
 31501  	// This value is not required for Amazon Web Services-managed domains.
 31502  	ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"`
 31503  }
 31504  
 31505  // String returns the string representation.
 31506  //
 31507  // API parameter values that are decorated as "sensitive" in the API will not
 31508  // be included in the string output. The member name will be present, but the
 31509  // value will be replaced with "sensitive".
 31510  func (s CreateDomainConfigurationInput) String() string {
 31511  	return awsutil.Prettify(s)
 31512  }
 31513  
 31514  // GoString returns the string representation.
 31515  //
 31516  // API parameter values that are decorated as "sensitive" in the API will not
 31517  // be included in the string output. The member name will be present, but the
 31518  // value will be replaced with "sensitive".
 31519  func (s CreateDomainConfigurationInput) GoString() string {
 31520  	return s.String()
 31521  }
 31522  
 31523  // Validate inspects the fields of the type to determine if they are valid.
 31524  func (s *CreateDomainConfigurationInput) Validate() error {
 31525  	invalidParams := request.ErrInvalidParams{Context: "CreateDomainConfigurationInput"}
 31526  	if s.DomainConfigurationName == nil {
 31527  		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
 31528  	}
 31529  	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
 31530  		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
 31531  	}
 31532  	if s.DomainName != nil && len(*s.DomainName) < 1 {
 31533  		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
 31534  	}
 31535  	if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 {
 31536  		invalidParams.Add(request.NewErrParamMinLen("ValidationCertificateArn", 1))
 31537  	}
 31538  	if s.AuthorizerConfig != nil {
 31539  		if err := s.AuthorizerConfig.Validate(); err != nil {
 31540  			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
 31541  		}
 31542  	}
 31543  	if s.Tags != nil {
 31544  		for i, v := range s.Tags {
 31545  			if v == nil {
 31546  				continue
 31547  			}
 31548  			if err := v.Validate(); err != nil {
 31549  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 31550  			}
 31551  		}
 31552  	}
 31553  
 31554  	if invalidParams.Len() > 0 {
 31555  		return invalidParams
 31556  	}
 31557  	return nil
 31558  }
 31559  
 31560  // SetAuthorizerConfig sets the AuthorizerConfig field's value.
 31561  func (s *CreateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *CreateDomainConfigurationInput {
 31562  	s.AuthorizerConfig = v
 31563  	return s
 31564  }
 31565  
 31566  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 31567  func (s *CreateDomainConfigurationInput) SetDomainConfigurationName(v string) *CreateDomainConfigurationInput {
 31568  	s.DomainConfigurationName = &v
 31569  	return s
 31570  }
 31571  
 31572  // SetDomainName sets the DomainName field's value.
 31573  func (s *CreateDomainConfigurationInput) SetDomainName(v string) *CreateDomainConfigurationInput {
 31574  	s.DomainName = &v
 31575  	return s
 31576  }
 31577  
 31578  // SetServerCertificateArns sets the ServerCertificateArns field's value.
 31579  func (s *CreateDomainConfigurationInput) SetServerCertificateArns(v []*string) *CreateDomainConfigurationInput {
 31580  	s.ServerCertificateArns = v
 31581  	return s
 31582  }
 31583  
 31584  // SetServiceType sets the ServiceType field's value.
 31585  func (s *CreateDomainConfigurationInput) SetServiceType(v string) *CreateDomainConfigurationInput {
 31586  	s.ServiceType = &v
 31587  	return s
 31588  }
 31589  
 31590  // SetTags sets the Tags field's value.
 31591  func (s *CreateDomainConfigurationInput) SetTags(v []*Tag) *CreateDomainConfigurationInput {
 31592  	s.Tags = v
 31593  	return s
 31594  }
 31595  
 31596  // SetValidationCertificateArn sets the ValidationCertificateArn field's value.
 31597  func (s *CreateDomainConfigurationInput) SetValidationCertificateArn(v string) *CreateDomainConfigurationInput {
 31598  	s.ValidationCertificateArn = &v
 31599  	return s
 31600  }
 31601  
 31602  type CreateDomainConfigurationOutput struct {
 31603  	_ struct{} `type:"structure"`
 31604  
 31605  	// The ARN of the domain configuration.
 31606  	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
 31607  
 31608  	// The name of the domain configuration.
 31609  	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
 31610  }
 31611  
 31612  // String returns the string representation.
 31613  //
 31614  // API parameter values that are decorated as "sensitive" in the API will not
 31615  // be included in the string output. The member name will be present, but the
 31616  // value will be replaced with "sensitive".
 31617  func (s CreateDomainConfigurationOutput) String() string {
 31618  	return awsutil.Prettify(s)
 31619  }
 31620  
 31621  // GoString returns the string representation.
 31622  //
 31623  // API parameter values that are decorated as "sensitive" in the API will not
 31624  // be included in the string output. The member name will be present, but the
 31625  // value will be replaced with "sensitive".
 31626  func (s CreateDomainConfigurationOutput) GoString() string {
 31627  	return s.String()
 31628  }
 31629  
 31630  // SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
 31631  func (s *CreateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *CreateDomainConfigurationOutput {
 31632  	s.DomainConfigurationArn = &v
 31633  	return s
 31634  }
 31635  
 31636  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 31637  func (s *CreateDomainConfigurationOutput) SetDomainConfigurationName(v string) *CreateDomainConfigurationOutput {
 31638  	s.DomainConfigurationName = &v
 31639  	return s
 31640  }
 31641  
 31642  type CreateDynamicThingGroupInput struct {
 31643  	_ struct{} `type:"structure"`
 31644  
 31645  	// The dynamic thing group index name.
 31646  	//
 31647  	// Currently one index is supported: AWS_Things.
 31648  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 31649  
 31650  	// The dynamic thing group search query string.
 31651  	//
 31652  	// See Query Syntax (https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)
 31653  	// for information about query string syntax.
 31654  	//
 31655  	// QueryString is a required field
 31656  	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
 31657  
 31658  	// The dynamic thing group query version.
 31659  	//
 31660  	// Currently one query version is supported: "2017-09-30". If not specified,
 31661  	// the query version defaults to this value.
 31662  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 31663  
 31664  	// Metadata which can be used to manage the dynamic thing group.
 31665  	Tags []*Tag `locationName:"tags" type:"list"`
 31666  
 31667  	// The dynamic thing group name to create.
 31668  	//
 31669  	// ThingGroupName is a required field
 31670  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 31671  
 31672  	// The dynamic thing group properties.
 31673  	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
 31674  }
 31675  
 31676  // String returns the string representation.
 31677  //
 31678  // API parameter values that are decorated as "sensitive" in the API will not
 31679  // be included in the string output. The member name will be present, but the
 31680  // value will be replaced with "sensitive".
 31681  func (s CreateDynamicThingGroupInput) String() string {
 31682  	return awsutil.Prettify(s)
 31683  }
 31684  
 31685  // GoString returns the string representation.
 31686  //
 31687  // API parameter values that are decorated as "sensitive" in the API will not
 31688  // be included in the string output. The member name will be present, but the
 31689  // value will be replaced with "sensitive".
 31690  func (s CreateDynamicThingGroupInput) GoString() string {
 31691  	return s.String()
 31692  }
 31693  
 31694  // Validate inspects the fields of the type to determine if they are valid.
 31695  func (s *CreateDynamicThingGroupInput) Validate() error {
 31696  	invalidParams := request.ErrInvalidParams{Context: "CreateDynamicThingGroupInput"}
 31697  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 31698  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 31699  	}
 31700  	if s.QueryString == nil {
 31701  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
 31702  	}
 31703  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 31704  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 31705  	}
 31706  	if s.ThingGroupName == nil {
 31707  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 31708  	}
 31709  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 31710  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 31711  	}
 31712  	if s.Tags != nil {
 31713  		for i, v := range s.Tags {
 31714  			if v == nil {
 31715  				continue
 31716  			}
 31717  			if err := v.Validate(); err != nil {
 31718  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 31719  			}
 31720  		}
 31721  	}
 31722  
 31723  	if invalidParams.Len() > 0 {
 31724  		return invalidParams
 31725  	}
 31726  	return nil
 31727  }
 31728  
 31729  // SetIndexName sets the IndexName field's value.
 31730  func (s *CreateDynamicThingGroupInput) SetIndexName(v string) *CreateDynamicThingGroupInput {
 31731  	s.IndexName = &v
 31732  	return s
 31733  }
 31734  
 31735  // SetQueryString sets the QueryString field's value.
 31736  func (s *CreateDynamicThingGroupInput) SetQueryString(v string) *CreateDynamicThingGroupInput {
 31737  	s.QueryString = &v
 31738  	return s
 31739  }
 31740  
 31741  // SetQueryVersion sets the QueryVersion field's value.
 31742  func (s *CreateDynamicThingGroupInput) SetQueryVersion(v string) *CreateDynamicThingGroupInput {
 31743  	s.QueryVersion = &v
 31744  	return s
 31745  }
 31746  
 31747  // SetTags sets the Tags field's value.
 31748  func (s *CreateDynamicThingGroupInput) SetTags(v []*Tag) *CreateDynamicThingGroupInput {
 31749  	s.Tags = v
 31750  	return s
 31751  }
 31752  
 31753  // SetThingGroupName sets the ThingGroupName field's value.
 31754  func (s *CreateDynamicThingGroupInput) SetThingGroupName(v string) *CreateDynamicThingGroupInput {
 31755  	s.ThingGroupName = &v
 31756  	return s
 31757  }
 31758  
 31759  // SetThingGroupProperties sets the ThingGroupProperties field's value.
 31760  func (s *CreateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateDynamicThingGroupInput {
 31761  	s.ThingGroupProperties = v
 31762  	return s
 31763  }
 31764  
 31765  type CreateDynamicThingGroupOutput struct {
 31766  	_ struct{} `type:"structure"`
 31767  
 31768  	// The dynamic thing group index name.
 31769  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 31770  
 31771  	// The dynamic thing group search query string.
 31772  	QueryString *string `locationName:"queryString" min:"1" type:"string"`
 31773  
 31774  	// The dynamic thing group query version.
 31775  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 31776  
 31777  	// The dynamic thing group ARN.
 31778  	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
 31779  
 31780  	// The dynamic thing group ID.
 31781  	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
 31782  
 31783  	// The dynamic thing group name.
 31784  	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
 31785  }
 31786  
 31787  // String returns the string representation.
 31788  //
 31789  // API parameter values that are decorated as "sensitive" in the API will not
 31790  // be included in the string output. The member name will be present, but the
 31791  // value will be replaced with "sensitive".
 31792  func (s CreateDynamicThingGroupOutput) String() string {
 31793  	return awsutil.Prettify(s)
 31794  }
 31795  
 31796  // GoString returns the string representation.
 31797  //
 31798  // API parameter values that are decorated as "sensitive" in the API will not
 31799  // be included in the string output. The member name will be present, but the
 31800  // value will be replaced with "sensitive".
 31801  func (s CreateDynamicThingGroupOutput) GoString() string {
 31802  	return s.String()
 31803  }
 31804  
 31805  // SetIndexName sets the IndexName field's value.
 31806  func (s *CreateDynamicThingGroupOutput) SetIndexName(v string) *CreateDynamicThingGroupOutput {
 31807  	s.IndexName = &v
 31808  	return s
 31809  }
 31810  
 31811  // SetQueryString sets the QueryString field's value.
 31812  func (s *CreateDynamicThingGroupOutput) SetQueryString(v string) *CreateDynamicThingGroupOutput {
 31813  	s.QueryString = &v
 31814  	return s
 31815  }
 31816  
 31817  // SetQueryVersion sets the QueryVersion field's value.
 31818  func (s *CreateDynamicThingGroupOutput) SetQueryVersion(v string) *CreateDynamicThingGroupOutput {
 31819  	s.QueryVersion = &v
 31820  	return s
 31821  }
 31822  
 31823  // SetThingGroupArn sets the ThingGroupArn field's value.
 31824  func (s *CreateDynamicThingGroupOutput) SetThingGroupArn(v string) *CreateDynamicThingGroupOutput {
 31825  	s.ThingGroupArn = &v
 31826  	return s
 31827  }
 31828  
 31829  // SetThingGroupId sets the ThingGroupId field's value.
 31830  func (s *CreateDynamicThingGroupOutput) SetThingGroupId(v string) *CreateDynamicThingGroupOutput {
 31831  	s.ThingGroupId = &v
 31832  	return s
 31833  }
 31834  
 31835  // SetThingGroupName sets the ThingGroupName field's value.
 31836  func (s *CreateDynamicThingGroupOutput) SetThingGroupName(v string) *CreateDynamicThingGroupOutput {
 31837  	s.ThingGroupName = &v
 31838  	return s
 31839  }
 31840  
 31841  type CreateFleetMetricInput struct {
 31842  	_ struct{} `type:"structure"`
 31843  
 31844  	// The field to aggregate.
 31845  	//
 31846  	// AggregationField is a required field
 31847  	AggregationField *string `locationName:"aggregationField" min:"1" type:"string" required:"true"`
 31848  
 31849  	// The type of the aggregation query.
 31850  	//
 31851  	// AggregationType is a required field
 31852  	AggregationType *AggregationType `locationName:"aggregationType" type:"structure" required:"true"`
 31853  
 31854  	// The fleet metric description.
 31855  	Description *string `locationName:"description" type:"string"`
 31856  
 31857  	// The name of the index to search.
 31858  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 31859  
 31860  	// The name of the fleet metric to create.
 31861  	//
 31862  	// MetricName is a required field
 31863  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 31864  
 31865  	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
 31866  	// day)] and must be multiple of 60.
 31867  	//
 31868  	// Period is a required field
 31869  	Period *int64 `locationName:"period" min:"60" type:"integer" required:"true"`
 31870  
 31871  	// The search query string.
 31872  	//
 31873  	// QueryString is a required field
 31874  	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
 31875  
 31876  	// The query version.
 31877  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 31878  
 31879  	// Metadata, which can be used to manage the fleet metric.
 31880  	Tags []*Tag `locationName:"tags" type:"list"`
 31881  
 31882  	// Used to support unit transformation such as milliseconds to seconds. The
 31883  	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
 31884  	// Default to null.
 31885  	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
 31886  }
 31887  
 31888  // String returns the string representation.
 31889  //
 31890  // API parameter values that are decorated as "sensitive" in the API will not
 31891  // be included in the string output. The member name will be present, but the
 31892  // value will be replaced with "sensitive".
 31893  func (s CreateFleetMetricInput) String() string {
 31894  	return awsutil.Prettify(s)
 31895  }
 31896  
 31897  // GoString returns the string representation.
 31898  //
 31899  // API parameter values that are decorated as "sensitive" in the API will not
 31900  // be included in the string output. The member name will be present, but the
 31901  // value will be replaced with "sensitive".
 31902  func (s CreateFleetMetricInput) GoString() string {
 31903  	return s.String()
 31904  }
 31905  
 31906  // Validate inspects the fields of the type to determine if they are valid.
 31907  func (s *CreateFleetMetricInput) Validate() error {
 31908  	invalidParams := request.ErrInvalidParams{Context: "CreateFleetMetricInput"}
 31909  	if s.AggregationField == nil {
 31910  		invalidParams.Add(request.NewErrParamRequired("AggregationField"))
 31911  	}
 31912  	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
 31913  		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
 31914  	}
 31915  	if s.AggregationType == nil {
 31916  		invalidParams.Add(request.NewErrParamRequired("AggregationType"))
 31917  	}
 31918  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 31919  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 31920  	}
 31921  	if s.MetricName == nil {
 31922  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 31923  	}
 31924  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 31925  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 31926  	}
 31927  	if s.Period == nil {
 31928  		invalidParams.Add(request.NewErrParamRequired("Period"))
 31929  	}
 31930  	if s.Period != nil && *s.Period < 60 {
 31931  		invalidParams.Add(request.NewErrParamMinValue("Period", 60))
 31932  	}
 31933  	if s.QueryString == nil {
 31934  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
 31935  	}
 31936  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 31937  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 31938  	}
 31939  	if s.AggregationType != nil {
 31940  		if err := s.AggregationType.Validate(); err != nil {
 31941  			invalidParams.AddNested("AggregationType", err.(request.ErrInvalidParams))
 31942  		}
 31943  	}
 31944  	if s.Tags != nil {
 31945  		for i, v := range s.Tags {
 31946  			if v == nil {
 31947  				continue
 31948  			}
 31949  			if err := v.Validate(); err != nil {
 31950  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 31951  			}
 31952  		}
 31953  	}
 31954  
 31955  	if invalidParams.Len() > 0 {
 31956  		return invalidParams
 31957  	}
 31958  	return nil
 31959  }
 31960  
 31961  // SetAggregationField sets the AggregationField field's value.
 31962  func (s *CreateFleetMetricInput) SetAggregationField(v string) *CreateFleetMetricInput {
 31963  	s.AggregationField = &v
 31964  	return s
 31965  }
 31966  
 31967  // SetAggregationType sets the AggregationType field's value.
 31968  func (s *CreateFleetMetricInput) SetAggregationType(v *AggregationType) *CreateFleetMetricInput {
 31969  	s.AggregationType = v
 31970  	return s
 31971  }
 31972  
 31973  // SetDescription sets the Description field's value.
 31974  func (s *CreateFleetMetricInput) SetDescription(v string) *CreateFleetMetricInput {
 31975  	s.Description = &v
 31976  	return s
 31977  }
 31978  
 31979  // SetIndexName sets the IndexName field's value.
 31980  func (s *CreateFleetMetricInput) SetIndexName(v string) *CreateFleetMetricInput {
 31981  	s.IndexName = &v
 31982  	return s
 31983  }
 31984  
 31985  // SetMetricName sets the MetricName field's value.
 31986  func (s *CreateFleetMetricInput) SetMetricName(v string) *CreateFleetMetricInput {
 31987  	s.MetricName = &v
 31988  	return s
 31989  }
 31990  
 31991  // SetPeriod sets the Period field's value.
 31992  func (s *CreateFleetMetricInput) SetPeriod(v int64) *CreateFleetMetricInput {
 31993  	s.Period = &v
 31994  	return s
 31995  }
 31996  
 31997  // SetQueryString sets the QueryString field's value.
 31998  func (s *CreateFleetMetricInput) SetQueryString(v string) *CreateFleetMetricInput {
 31999  	s.QueryString = &v
 32000  	return s
 32001  }
 32002  
 32003  // SetQueryVersion sets the QueryVersion field's value.
 32004  func (s *CreateFleetMetricInput) SetQueryVersion(v string) *CreateFleetMetricInput {
 32005  	s.QueryVersion = &v
 32006  	return s
 32007  }
 32008  
 32009  // SetTags sets the Tags field's value.
 32010  func (s *CreateFleetMetricInput) SetTags(v []*Tag) *CreateFleetMetricInput {
 32011  	s.Tags = v
 32012  	return s
 32013  }
 32014  
 32015  // SetUnit sets the Unit field's value.
 32016  func (s *CreateFleetMetricInput) SetUnit(v string) *CreateFleetMetricInput {
 32017  	s.Unit = &v
 32018  	return s
 32019  }
 32020  
 32021  type CreateFleetMetricOutput struct {
 32022  	_ struct{} `type:"structure"`
 32023  
 32024  	// The Amazon Resource Name (ARN) of the new fleet metric.
 32025  	MetricArn *string `locationName:"metricArn" type:"string"`
 32026  
 32027  	// The name of the fleet metric to create.
 32028  	MetricName *string `locationName:"metricName" min:"1" type:"string"`
 32029  }
 32030  
 32031  // String returns the string representation.
 32032  //
 32033  // API parameter values that are decorated as "sensitive" in the API will not
 32034  // be included in the string output. The member name will be present, but the
 32035  // value will be replaced with "sensitive".
 32036  func (s CreateFleetMetricOutput) String() string {
 32037  	return awsutil.Prettify(s)
 32038  }
 32039  
 32040  // GoString returns the string representation.
 32041  //
 32042  // API parameter values that are decorated as "sensitive" in the API will not
 32043  // be included in the string output. The member name will be present, but the
 32044  // value will be replaced with "sensitive".
 32045  func (s CreateFleetMetricOutput) GoString() string {
 32046  	return s.String()
 32047  }
 32048  
 32049  // SetMetricArn sets the MetricArn field's value.
 32050  func (s *CreateFleetMetricOutput) SetMetricArn(v string) *CreateFleetMetricOutput {
 32051  	s.MetricArn = &v
 32052  	return s
 32053  }
 32054  
 32055  // SetMetricName sets the MetricName field's value.
 32056  func (s *CreateFleetMetricOutput) SetMetricName(v string) *CreateFleetMetricOutput {
 32057  	s.MetricName = &v
 32058  	return s
 32059  }
 32060  
 32061  type CreateJobInput struct {
 32062  	_ struct{} `type:"structure"`
 32063  
 32064  	// Allows you to create criteria to abort a job.
 32065  	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
 32066  
 32067  	// A short text description of the job.
 32068  	Description *string `locationName:"description" type:"string"`
 32069  
 32070  	// The job document. Required if you don't specify a value for documentSource.
 32071  	Document *string `locationName:"document" type:"string"`
 32072  
 32073  	// An S3 link to the job document. Required if you don't specify a value for
 32074  	// document.
 32075  	//
 32076  	// If the job document resides in an S3 bucket, you must use a placeholder link
 32077  	// when specifying the document.
 32078  	//
 32079  	// The placeholder link is of the following form:
 32080  	//
 32081  	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
 32082  	//
 32083  	// where bucket is your bucket name and key is the object in the bucket to which
 32084  	// you are linking.
 32085  	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
 32086  
 32087  	// Allows you to create a staged rollout of the job.
 32088  	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
 32089  
 32090  	// A job identifier which must be unique for your Amazon Web Services account.
 32091  	// We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid
 32092  	// for use here.
 32093  	//
 32094  	// JobId is a required field
 32095  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 32096  
 32097  	// The ARN of the job template used to create the job.
 32098  	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
 32099  
 32100  	// The namespace used to indicate that a job is a customer-managed job.
 32101  	//
 32102  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 32103  	// sends jobs notifications to MQTT topics that contain the value in the following
 32104  	// format.
 32105  	//
 32106  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 32107  	//
 32108  	// The namespaceId feature is in public preview.
 32109  	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
 32110  
 32111  	// Configuration information for pre-signed S3 URLs.
 32112  	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
 32113  
 32114  	// Metadata which can be used to manage the job.
 32115  	Tags []*Tag `locationName:"tags" type:"list"`
 32116  
 32117  	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
 32118  	// after all those things specified as targets have completed the job (SNAPSHOT).
 32119  	// If continuous, the job may also be run on a thing when a change is detected
 32120  	// in a target. For example, a job will run on a thing when the thing is added
 32121  	// to a target group, even after the job was completed by all things originally
 32122  	// in the group.
 32123  	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
 32124  
 32125  	// A list of things and thing groups to which the job should be sent.
 32126  	//
 32127  	// Targets is a required field
 32128  	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
 32129  
 32130  	// Specifies the amount of time each device has to finish its execution of the
 32131  	// job. The timer is started when the job execution status is set to IN_PROGRESS.
 32132  	// If the job execution status is not set to another terminal state before the
 32133  	// time expires, it will be automatically set to TIMED_OUT.
 32134  	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
 32135  }
 32136  
 32137  // String returns the string representation.
 32138  //
 32139  // API parameter values that are decorated as "sensitive" in the API will not
 32140  // be included in the string output. The member name will be present, but the
 32141  // value will be replaced with "sensitive".
 32142  func (s CreateJobInput) String() string {
 32143  	return awsutil.Prettify(s)
 32144  }
 32145  
 32146  // GoString returns the string representation.
 32147  //
 32148  // API parameter values that are decorated as "sensitive" in the API will not
 32149  // be included in the string output. The member name will be present, but the
 32150  // value will be replaced with "sensitive".
 32151  func (s CreateJobInput) GoString() string {
 32152  	return s.String()
 32153  }
 32154  
 32155  // Validate inspects the fields of the type to determine if they are valid.
 32156  func (s *CreateJobInput) Validate() error {
 32157  	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
 32158  	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
 32159  		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
 32160  	}
 32161  	if s.JobId == nil {
 32162  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 32163  	}
 32164  	if s.JobId != nil && len(*s.JobId) < 1 {
 32165  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 32166  	}
 32167  	if s.JobTemplateArn != nil && len(*s.JobTemplateArn) < 1 {
 32168  		invalidParams.Add(request.NewErrParamMinLen("JobTemplateArn", 1))
 32169  	}
 32170  	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
 32171  		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
 32172  	}
 32173  	if s.Targets == nil {
 32174  		invalidParams.Add(request.NewErrParamRequired("Targets"))
 32175  	}
 32176  	if s.Targets != nil && len(s.Targets) < 1 {
 32177  		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
 32178  	}
 32179  	if s.AbortConfig != nil {
 32180  		if err := s.AbortConfig.Validate(); err != nil {
 32181  			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
 32182  		}
 32183  	}
 32184  	if s.JobExecutionsRolloutConfig != nil {
 32185  		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
 32186  			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
 32187  		}
 32188  	}
 32189  	if s.PresignedUrlConfig != nil {
 32190  		if err := s.PresignedUrlConfig.Validate(); err != nil {
 32191  			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
 32192  		}
 32193  	}
 32194  	if s.Tags != nil {
 32195  		for i, v := range s.Tags {
 32196  			if v == nil {
 32197  				continue
 32198  			}
 32199  			if err := v.Validate(); err != nil {
 32200  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 32201  			}
 32202  		}
 32203  	}
 32204  
 32205  	if invalidParams.Len() > 0 {
 32206  		return invalidParams
 32207  	}
 32208  	return nil
 32209  }
 32210  
 32211  // SetAbortConfig sets the AbortConfig field's value.
 32212  func (s *CreateJobInput) SetAbortConfig(v *AbortConfig) *CreateJobInput {
 32213  	s.AbortConfig = v
 32214  	return s
 32215  }
 32216  
 32217  // SetDescription sets the Description field's value.
 32218  func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
 32219  	s.Description = &v
 32220  	return s
 32221  }
 32222  
 32223  // SetDocument sets the Document field's value.
 32224  func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
 32225  	s.Document = &v
 32226  	return s
 32227  }
 32228  
 32229  // SetDocumentSource sets the DocumentSource field's value.
 32230  func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
 32231  	s.DocumentSource = &v
 32232  	return s
 32233  }
 32234  
 32235  // SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
 32236  func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
 32237  	s.JobExecutionsRolloutConfig = v
 32238  	return s
 32239  }
 32240  
 32241  // SetJobId sets the JobId field's value.
 32242  func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
 32243  	s.JobId = &v
 32244  	return s
 32245  }
 32246  
 32247  // SetJobTemplateArn sets the JobTemplateArn field's value.
 32248  func (s *CreateJobInput) SetJobTemplateArn(v string) *CreateJobInput {
 32249  	s.JobTemplateArn = &v
 32250  	return s
 32251  }
 32252  
 32253  // SetNamespaceId sets the NamespaceId field's value.
 32254  func (s *CreateJobInput) SetNamespaceId(v string) *CreateJobInput {
 32255  	s.NamespaceId = &v
 32256  	return s
 32257  }
 32258  
 32259  // SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
 32260  func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
 32261  	s.PresignedUrlConfig = v
 32262  	return s
 32263  }
 32264  
 32265  // SetTags sets the Tags field's value.
 32266  func (s *CreateJobInput) SetTags(v []*Tag) *CreateJobInput {
 32267  	s.Tags = v
 32268  	return s
 32269  }
 32270  
 32271  // SetTargetSelection sets the TargetSelection field's value.
 32272  func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
 32273  	s.TargetSelection = &v
 32274  	return s
 32275  }
 32276  
 32277  // SetTargets sets the Targets field's value.
 32278  func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
 32279  	s.Targets = v
 32280  	return s
 32281  }
 32282  
 32283  // SetTimeoutConfig sets the TimeoutConfig field's value.
 32284  func (s *CreateJobInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobInput {
 32285  	s.TimeoutConfig = v
 32286  	return s
 32287  }
 32288  
 32289  type CreateJobOutput struct {
 32290  	_ struct{} `type:"structure"`
 32291  
 32292  	// The job description.
 32293  	Description *string `locationName:"description" type:"string"`
 32294  
 32295  	// The job ARN.
 32296  	JobArn *string `locationName:"jobArn" type:"string"`
 32297  
 32298  	// The unique identifier you assigned to this job.
 32299  	JobId *string `locationName:"jobId" min:"1" type:"string"`
 32300  }
 32301  
 32302  // String returns the string representation.
 32303  //
 32304  // API parameter values that are decorated as "sensitive" in the API will not
 32305  // be included in the string output. The member name will be present, but the
 32306  // value will be replaced with "sensitive".
 32307  func (s CreateJobOutput) String() string {
 32308  	return awsutil.Prettify(s)
 32309  }
 32310  
 32311  // GoString returns the string representation.
 32312  //
 32313  // API parameter values that are decorated as "sensitive" in the API will not
 32314  // be included in the string output. The member name will be present, but the
 32315  // value will be replaced with "sensitive".
 32316  func (s CreateJobOutput) GoString() string {
 32317  	return s.String()
 32318  }
 32319  
 32320  // SetDescription sets the Description field's value.
 32321  func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
 32322  	s.Description = &v
 32323  	return s
 32324  }
 32325  
 32326  // SetJobArn sets the JobArn field's value.
 32327  func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
 32328  	s.JobArn = &v
 32329  	return s
 32330  }
 32331  
 32332  // SetJobId sets the JobId field's value.
 32333  func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
 32334  	s.JobId = &v
 32335  	return s
 32336  }
 32337  
 32338  type CreateJobTemplateInput struct {
 32339  	_ struct{} `type:"structure"`
 32340  
 32341  	// The criteria that determine when and how a job abort takes place.
 32342  	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
 32343  
 32344  	// A description of the job document.
 32345  	//
 32346  	// Description is a required field
 32347  	Description *string `locationName:"description" type:"string" required:"true"`
 32348  
 32349  	// The job document. Required if you don't specify a value for documentSource.
 32350  	Document *string `locationName:"document" type:"string"`
 32351  
 32352  	// An S3 link to the job document to use in the template. Required if you don't
 32353  	// specify a value for document.
 32354  	//
 32355  	// If the job document resides in an S3 bucket, you must use a placeholder link
 32356  	// when specifying the document.
 32357  	//
 32358  	// The placeholder link is of the following form:
 32359  	//
 32360  	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
 32361  	//
 32362  	// where bucket is your bucket name and key is the object in the bucket to which
 32363  	// you are linking.
 32364  	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
 32365  
 32366  	// The ARN of the job to use as the basis for the job template.
 32367  	JobArn *string `locationName:"jobArn" type:"string"`
 32368  
 32369  	// Allows you to create a staged rollout of a job.
 32370  	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
 32371  
 32372  	// A unique identifier for the job template. We recommend using a UUID. Alpha-numeric
 32373  	// characters, "-", and "_" are valid for use here.
 32374  	//
 32375  	// JobTemplateId is a required field
 32376  	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
 32377  
 32378  	// Configuration for pre-signed S3 URLs.
 32379  	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
 32380  
 32381  	// Metadata that can be used to manage the job template.
 32382  	Tags []*Tag `locationName:"tags" type:"list"`
 32383  
 32384  	// Specifies the amount of time each device has to finish its execution of the
 32385  	// job. A timer is started when the job execution status is set to IN_PROGRESS.
 32386  	// If the job execution status is not set to another terminal state before the
 32387  	// timer expires, it will be automatically set to TIMED_OUT.
 32388  	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
 32389  }
 32390  
 32391  // String returns the string representation.
 32392  //
 32393  // API parameter values that are decorated as "sensitive" in the API will not
 32394  // be included in the string output. The member name will be present, but the
 32395  // value will be replaced with "sensitive".
 32396  func (s CreateJobTemplateInput) String() string {
 32397  	return awsutil.Prettify(s)
 32398  }
 32399  
 32400  // GoString returns the string representation.
 32401  //
 32402  // API parameter values that are decorated as "sensitive" in the API will not
 32403  // be included in the string output. The member name will be present, but the
 32404  // value will be replaced with "sensitive".
 32405  func (s CreateJobTemplateInput) GoString() string {
 32406  	return s.String()
 32407  }
 32408  
 32409  // Validate inspects the fields of the type to determine if they are valid.
 32410  func (s *CreateJobTemplateInput) Validate() error {
 32411  	invalidParams := request.ErrInvalidParams{Context: "CreateJobTemplateInput"}
 32412  	if s.Description == nil {
 32413  		invalidParams.Add(request.NewErrParamRequired("Description"))
 32414  	}
 32415  	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
 32416  		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
 32417  	}
 32418  	if s.JobTemplateId == nil {
 32419  		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
 32420  	}
 32421  	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
 32422  		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
 32423  	}
 32424  	if s.AbortConfig != nil {
 32425  		if err := s.AbortConfig.Validate(); err != nil {
 32426  			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
 32427  		}
 32428  	}
 32429  	if s.JobExecutionsRolloutConfig != nil {
 32430  		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
 32431  			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
 32432  		}
 32433  	}
 32434  	if s.PresignedUrlConfig != nil {
 32435  		if err := s.PresignedUrlConfig.Validate(); err != nil {
 32436  			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
 32437  		}
 32438  	}
 32439  	if s.Tags != nil {
 32440  		for i, v := range s.Tags {
 32441  			if v == nil {
 32442  				continue
 32443  			}
 32444  			if err := v.Validate(); err != nil {
 32445  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 32446  			}
 32447  		}
 32448  	}
 32449  
 32450  	if invalidParams.Len() > 0 {
 32451  		return invalidParams
 32452  	}
 32453  	return nil
 32454  }
 32455  
 32456  // SetAbortConfig sets the AbortConfig field's value.
 32457  func (s *CreateJobTemplateInput) SetAbortConfig(v *AbortConfig) *CreateJobTemplateInput {
 32458  	s.AbortConfig = v
 32459  	return s
 32460  }
 32461  
 32462  // SetDescription sets the Description field's value.
 32463  func (s *CreateJobTemplateInput) SetDescription(v string) *CreateJobTemplateInput {
 32464  	s.Description = &v
 32465  	return s
 32466  }
 32467  
 32468  // SetDocument sets the Document field's value.
 32469  func (s *CreateJobTemplateInput) SetDocument(v string) *CreateJobTemplateInput {
 32470  	s.Document = &v
 32471  	return s
 32472  }
 32473  
 32474  // SetDocumentSource sets the DocumentSource field's value.
 32475  func (s *CreateJobTemplateInput) SetDocumentSource(v string) *CreateJobTemplateInput {
 32476  	s.DocumentSource = &v
 32477  	return s
 32478  }
 32479  
 32480  // SetJobArn sets the JobArn field's value.
 32481  func (s *CreateJobTemplateInput) SetJobArn(v string) *CreateJobTemplateInput {
 32482  	s.JobArn = &v
 32483  	return s
 32484  }
 32485  
 32486  // SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
 32487  func (s *CreateJobTemplateInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobTemplateInput {
 32488  	s.JobExecutionsRolloutConfig = v
 32489  	return s
 32490  }
 32491  
 32492  // SetJobTemplateId sets the JobTemplateId field's value.
 32493  func (s *CreateJobTemplateInput) SetJobTemplateId(v string) *CreateJobTemplateInput {
 32494  	s.JobTemplateId = &v
 32495  	return s
 32496  }
 32497  
 32498  // SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
 32499  func (s *CreateJobTemplateInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobTemplateInput {
 32500  	s.PresignedUrlConfig = v
 32501  	return s
 32502  }
 32503  
 32504  // SetTags sets the Tags field's value.
 32505  func (s *CreateJobTemplateInput) SetTags(v []*Tag) *CreateJobTemplateInput {
 32506  	s.Tags = v
 32507  	return s
 32508  }
 32509  
 32510  // SetTimeoutConfig sets the TimeoutConfig field's value.
 32511  func (s *CreateJobTemplateInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobTemplateInput {
 32512  	s.TimeoutConfig = v
 32513  	return s
 32514  }
 32515  
 32516  type CreateJobTemplateOutput struct {
 32517  	_ struct{} `type:"structure"`
 32518  
 32519  	// The ARN of the job template.
 32520  	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
 32521  
 32522  	// The unique identifier of the job template.
 32523  	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
 32524  }
 32525  
 32526  // String returns the string representation.
 32527  //
 32528  // API parameter values that are decorated as "sensitive" in the API will not
 32529  // be included in the string output. The member name will be present, but the
 32530  // value will be replaced with "sensitive".
 32531  func (s CreateJobTemplateOutput) String() string {
 32532  	return awsutil.Prettify(s)
 32533  }
 32534  
 32535  // GoString returns the string representation.
 32536  //
 32537  // API parameter values that are decorated as "sensitive" in the API will not
 32538  // be included in the string output. The member name will be present, but the
 32539  // value will be replaced with "sensitive".
 32540  func (s CreateJobTemplateOutput) GoString() string {
 32541  	return s.String()
 32542  }
 32543  
 32544  // SetJobTemplateArn sets the JobTemplateArn field's value.
 32545  func (s *CreateJobTemplateOutput) SetJobTemplateArn(v string) *CreateJobTemplateOutput {
 32546  	s.JobTemplateArn = &v
 32547  	return s
 32548  }
 32549  
 32550  // SetJobTemplateId sets the JobTemplateId field's value.
 32551  func (s *CreateJobTemplateOutput) SetJobTemplateId(v string) *CreateJobTemplateOutput {
 32552  	s.JobTemplateId = &v
 32553  	return s
 32554  }
 32555  
 32556  // The input for the CreateKeysAndCertificate operation.
 32557  //
 32558  // Requires permission to access the CreateKeysAndCertificateRequest (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
 32559  // action.
 32560  type CreateKeysAndCertificateInput struct {
 32561  	_ struct{} `type:"structure" nopayload:"true"`
 32562  
 32563  	// Specifies whether the certificate is active.
 32564  	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
 32565  }
 32566  
 32567  // String returns the string representation.
 32568  //
 32569  // API parameter values that are decorated as "sensitive" in the API will not
 32570  // be included in the string output. The member name will be present, but the
 32571  // value will be replaced with "sensitive".
 32572  func (s CreateKeysAndCertificateInput) String() string {
 32573  	return awsutil.Prettify(s)
 32574  }
 32575  
 32576  // GoString returns the string representation.
 32577  //
 32578  // API parameter values that are decorated as "sensitive" in the API will not
 32579  // be included in the string output. The member name will be present, but the
 32580  // value will be replaced with "sensitive".
 32581  func (s CreateKeysAndCertificateInput) GoString() string {
 32582  	return s.String()
 32583  }
 32584  
 32585  // SetSetAsActive sets the SetAsActive field's value.
 32586  func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
 32587  	s.SetAsActive = &v
 32588  	return s
 32589  }
 32590  
 32591  // The output of the CreateKeysAndCertificate operation.
 32592  type CreateKeysAndCertificateOutput struct {
 32593  	_ struct{} `type:"structure"`
 32594  
 32595  	// The ARN of the certificate.
 32596  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 32597  
 32598  	// The ID of the certificate. IoT issues a default subject name for the certificate
 32599  	// (for example, IoT Certificate).
 32600  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 32601  
 32602  	// The certificate data, in PEM format.
 32603  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
 32604  
 32605  	// The generated key pair.
 32606  	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
 32607  }
 32608  
 32609  // String returns the string representation.
 32610  //
 32611  // API parameter values that are decorated as "sensitive" in the API will not
 32612  // be included in the string output. The member name will be present, but the
 32613  // value will be replaced with "sensitive".
 32614  func (s CreateKeysAndCertificateOutput) String() string {
 32615  	return awsutil.Prettify(s)
 32616  }
 32617  
 32618  // GoString returns the string representation.
 32619  //
 32620  // API parameter values that are decorated as "sensitive" in the API will not
 32621  // be included in the string output. The member name will be present, but the
 32622  // value will be replaced with "sensitive".
 32623  func (s CreateKeysAndCertificateOutput) GoString() string {
 32624  	return s.String()
 32625  }
 32626  
 32627  // SetCertificateArn sets the CertificateArn field's value.
 32628  func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
 32629  	s.CertificateArn = &v
 32630  	return s
 32631  }
 32632  
 32633  // SetCertificateId sets the CertificateId field's value.
 32634  func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
 32635  	s.CertificateId = &v
 32636  	return s
 32637  }
 32638  
 32639  // SetCertificatePem sets the CertificatePem field's value.
 32640  func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
 32641  	s.CertificatePem = &v
 32642  	return s
 32643  }
 32644  
 32645  // SetKeyPair sets the KeyPair field's value.
 32646  func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
 32647  	s.KeyPair = v
 32648  	return s
 32649  }
 32650  
 32651  type CreateMitigationActionInput struct {
 32652  	_ struct{} `type:"structure"`
 32653  
 32654  	// A friendly name for the action. Choose a friendly name that accurately describes
 32655  	// the action (for example, EnableLoggingAction).
 32656  	//
 32657  	// ActionName is a required field
 32658  	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
 32659  
 32660  	// Defines the type of action and the parameters for that action.
 32661  	//
 32662  	// ActionParams is a required field
 32663  	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure" required:"true"`
 32664  
 32665  	// The ARN of the IAM role that is used to apply the mitigation action.
 32666  	//
 32667  	// RoleArn is a required field
 32668  	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
 32669  
 32670  	// Metadata that can be used to manage the mitigation action.
 32671  	Tags []*Tag `locationName:"tags" type:"list"`
 32672  }
 32673  
 32674  // String returns the string representation.
 32675  //
 32676  // API parameter values that are decorated as "sensitive" in the API will not
 32677  // be included in the string output. The member name will be present, but the
 32678  // value will be replaced with "sensitive".
 32679  func (s CreateMitigationActionInput) String() string {
 32680  	return awsutil.Prettify(s)
 32681  }
 32682  
 32683  // GoString returns the string representation.
 32684  //
 32685  // API parameter values that are decorated as "sensitive" in the API will not
 32686  // be included in the string output. The member name will be present, but the
 32687  // value will be replaced with "sensitive".
 32688  func (s CreateMitigationActionInput) GoString() string {
 32689  	return s.String()
 32690  }
 32691  
 32692  // Validate inspects the fields of the type to determine if they are valid.
 32693  func (s *CreateMitigationActionInput) Validate() error {
 32694  	invalidParams := request.ErrInvalidParams{Context: "CreateMitigationActionInput"}
 32695  	if s.ActionName == nil {
 32696  		invalidParams.Add(request.NewErrParamRequired("ActionName"))
 32697  	}
 32698  	if s.ActionName != nil && len(*s.ActionName) < 1 {
 32699  		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
 32700  	}
 32701  	if s.ActionParams == nil {
 32702  		invalidParams.Add(request.NewErrParamRequired("ActionParams"))
 32703  	}
 32704  	if s.RoleArn == nil {
 32705  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 32706  	}
 32707  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 32708  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 32709  	}
 32710  	if s.ActionParams != nil {
 32711  		if err := s.ActionParams.Validate(); err != nil {
 32712  			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
 32713  		}
 32714  	}
 32715  	if s.Tags != nil {
 32716  		for i, v := range s.Tags {
 32717  			if v == nil {
 32718  				continue
 32719  			}
 32720  			if err := v.Validate(); err != nil {
 32721  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 32722  			}
 32723  		}
 32724  	}
 32725  
 32726  	if invalidParams.Len() > 0 {
 32727  		return invalidParams
 32728  	}
 32729  	return nil
 32730  }
 32731  
 32732  // SetActionName sets the ActionName field's value.
 32733  func (s *CreateMitigationActionInput) SetActionName(v string) *CreateMitigationActionInput {
 32734  	s.ActionName = &v
 32735  	return s
 32736  }
 32737  
 32738  // SetActionParams sets the ActionParams field's value.
 32739  func (s *CreateMitigationActionInput) SetActionParams(v *MitigationActionParams) *CreateMitigationActionInput {
 32740  	s.ActionParams = v
 32741  	return s
 32742  }
 32743  
 32744  // SetRoleArn sets the RoleArn field's value.
 32745  func (s *CreateMitigationActionInput) SetRoleArn(v string) *CreateMitigationActionInput {
 32746  	s.RoleArn = &v
 32747  	return s
 32748  }
 32749  
 32750  // SetTags sets the Tags field's value.
 32751  func (s *CreateMitigationActionInput) SetTags(v []*Tag) *CreateMitigationActionInput {
 32752  	s.Tags = v
 32753  	return s
 32754  }
 32755  
 32756  type CreateMitigationActionOutput struct {
 32757  	_ struct{} `type:"structure"`
 32758  
 32759  	// The ARN for the new mitigation action.
 32760  	ActionArn *string `locationName:"actionArn" type:"string"`
 32761  
 32762  	// A unique identifier for the new mitigation action.
 32763  	ActionId *string `locationName:"actionId" type:"string"`
 32764  }
 32765  
 32766  // String returns the string representation.
 32767  //
 32768  // API parameter values that are decorated as "sensitive" in the API will not
 32769  // be included in the string output. The member name will be present, but the
 32770  // value will be replaced with "sensitive".
 32771  func (s CreateMitigationActionOutput) String() string {
 32772  	return awsutil.Prettify(s)
 32773  }
 32774  
 32775  // GoString returns the string representation.
 32776  //
 32777  // API parameter values that are decorated as "sensitive" in the API will not
 32778  // be included in the string output. The member name will be present, but the
 32779  // value will be replaced with "sensitive".
 32780  func (s CreateMitigationActionOutput) GoString() string {
 32781  	return s.String()
 32782  }
 32783  
 32784  // SetActionArn sets the ActionArn field's value.
 32785  func (s *CreateMitigationActionOutput) SetActionArn(v string) *CreateMitigationActionOutput {
 32786  	s.ActionArn = &v
 32787  	return s
 32788  }
 32789  
 32790  // SetActionId sets the ActionId field's value.
 32791  func (s *CreateMitigationActionOutput) SetActionId(v string) *CreateMitigationActionOutput {
 32792  	s.ActionId = &v
 32793  	return s
 32794  }
 32795  
 32796  type CreateOTAUpdateInput struct {
 32797  	_ struct{} `type:"structure"`
 32798  
 32799  	// A list of additional OTA update parameters which are name-value pairs.
 32800  	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
 32801  
 32802  	// The criteria that determine when and how a job abort takes place.
 32803  	AwsJobAbortConfig *AwsJobAbortConfig `locationName:"awsJobAbortConfig" type:"structure"`
 32804  
 32805  	// Configuration for the rollout of OTA updates.
 32806  	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
 32807  
 32808  	// Configuration information for pre-signed URLs.
 32809  	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
 32810  
 32811  	// Specifies the amount of time each device has to finish its execution of the
 32812  	// job. A timer is started when the job execution status is set to IN_PROGRESS.
 32813  	// If the job execution status is not set to another terminal state before the
 32814  	// timer expires, it will be automatically set to TIMED_OUT.
 32815  	AwsJobTimeoutConfig *AwsJobTimeoutConfig `locationName:"awsJobTimeoutConfig" type:"structure"`
 32816  
 32817  	// The description of the OTA update.
 32818  	Description *string `locationName:"description" type:"string"`
 32819  
 32820  	// The files to be streamed by the OTA update.
 32821  	//
 32822  	// Files is a required field
 32823  	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
 32824  
 32825  	// The ID of the OTA update to be created.
 32826  	//
 32827  	// OtaUpdateId is a required field
 32828  	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
 32829  
 32830  	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
 32831  	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
 32832  	// can choose the protocol.
 32833  	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
 32834  
 32835  	// The IAM role that grants Amazon Web Services IoT Core access to the Amazon
 32836  	// S3, IoT jobs and Amazon Web Services Code Signing resources to create an
 32837  	// OTA update job.
 32838  	//
 32839  	// RoleArn is a required field
 32840  	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
 32841  
 32842  	// Metadata which can be used to manage updates.
 32843  	Tags []*Tag `locationName:"tags" type:"list"`
 32844  
 32845  	// Specifies whether the update will continue to run (CONTINUOUS), or will be
 32846  	// complete after all the things specified as targets have completed the update
 32847  	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
 32848  	// is detected in a target. For example, an update will run on a thing when
 32849  	// the thing is added to a target group, even after the update was completed
 32850  	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
 32851  	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
 32852  
 32853  	// The devices targeted to receive OTA updates.
 32854  	//
 32855  	// Targets is a required field
 32856  	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
 32857  }
 32858  
 32859  // String returns the string representation.
 32860  //
 32861  // API parameter values that are decorated as "sensitive" in the API will not
 32862  // be included in the string output. The member name will be present, but the
 32863  // value will be replaced with "sensitive".
 32864  func (s CreateOTAUpdateInput) String() string {
 32865  	return awsutil.Prettify(s)
 32866  }
 32867  
 32868  // GoString returns the string representation.
 32869  //
 32870  // API parameter values that are decorated as "sensitive" in the API will not
 32871  // be included in the string output. The member name will be present, but the
 32872  // value will be replaced with "sensitive".
 32873  func (s CreateOTAUpdateInput) GoString() string {
 32874  	return s.String()
 32875  }
 32876  
 32877  // Validate inspects the fields of the type to determine if they are valid.
 32878  func (s *CreateOTAUpdateInput) Validate() error {
 32879  	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
 32880  	if s.Files == nil {
 32881  		invalidParams.Add(request.NewErrParamRequired("Files"))
 32882  	}
 32883  	if s.Files != nil && len(s.Files) < 1 {
 32884  		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
 32885  	}
 32886  	if s.OtaUpdateId == nil {
 32887  		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
 32888  	}
 32889  	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
 32890  		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
 32891  	}
 32892  	if s.Protocols != nil && len(s.Protocols) < 1 {
 32893  		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
 32894  	}
 32895  	if s.RoleArn == nil {
 32896  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 32897  	}
 32898  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 32899  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 32900  	}
 32901  	if s.Targets == nil {
 32902  		invalidParams.Add(request.NewErrParamRequired("Targets"))
 32903  	}
 32904  	if s.Targets != nil && len(s.Targets) < 1 {
 32905  		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
 32906  	}
 32907  	if s.AwsJobAbortConfig != nil {
 32908  		if err := s.AwsJobAbortConfig.Validate(); err != nil {
 32909  			invalidParams.AddNested("AwsJobAbortConfig", err.(request.ErrInvalidParams))
 32910  		}
 32911  	}
 32912  	if s.AwsJobExecutionsRolloutConfig != nil {
 32913  		if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil {
 32914  			invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
 32915  		}
 32916  	}
 32917  	if s.Files != nil {
 32918  		for i, v := range s.Files {
 32919  			if v == nil {
 32920  				continue
 32921  			}
 32922  			if err := v.Validate(); err != nil {
 32923  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
 32924  			}
 32925  		}
 32926  	}
 32927  	if s.Tags != nil {
 32928  		for i, v := range s.Tags {
 32929  			if v == nil {
 32930  				continue
 32931  			}
 32932  			if err := v.Validate(); err != nil {
 32933  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 32934  			}
 32935  		}
 32936  	}
 32937  
 32938  	if invalidParams.Len() > 0 {
 32939  		return invalidParams
 32940  	}
 32941  	return nil
 32942  }
 32943  
 32944  // SetAdditionalParameters sets the AdditionalParameters field's value.
 32945  func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
 32946  	s.AdditionalParameters = v
 32947  	return s
 32948  }
 32949  
 32950  // SetAwsJobAbortConfig sets the AwsJobAbortConfig field's value.
 32951  func (s *CreateOTAUpdateInput) SetAwsJobAbortConfig(v *AwsJobAbortConfig) *CreateOTAUpdateInput {
 32952  	s.AwsJobAbortConfig = v
 32953  	return s
 32954  }
 32955  
 32956  // SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
 32957  func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput {
 32958  	s.AwsJobExecutionsRolloutConfig = v
 32959  	return s
 32960  }
 32961  
 32962  // SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
 32963  func (s *CreateOTAUpdateInput) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *CreateOTAUpdateInput {
 32964  	s.AwsJobPresignedUrlConfig = v
 32965  	return s
 32966  }
 32967  
 32968  // SetAwsJobTimeoutConfig sets the AwsJobTimeoutConfig field's value.
 32969  func (s *CreateOTAUpdateInput) SetAwsJobTimeoutConfig(v *AwsJobTimeoutConfig) *CreateOTAUpdateInput {
 32970  	s.AwsJobTimeoutConfig = v
 32971  	return s
 32972  }
 32973  
 32974  // SetDescription sets the Description field's value.
 32975  func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
 32976  	s.Description = &v
 32977  	return s
 32978  }
 32979  
 32980  // SetFiles sets the Files field's value.
 32981  func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
 32982  	s.Files = v
 32983  	return s
 32984  }
 32985  
 32986  // SetOtaUpdateId sets the OtaUpdateId field's value.
 32987  func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
 32988  	s.OtaUpdateId = &v
 32989  	return s
 32990  }
 32991  
 32992  // SetProtocols sets the Protocols field's value.
 32993  func (s *CreateOTAUpdateInput) SetProtocols(v []*string) *CreateOTAUpdateInput {
 32994  	s.Protocols = v
 32995  	return s
 32996  }
 32997  
 32998  // SetRoleArn sets the RoleArn field's value.
 32999  func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
 33000  	s.RoleArn = &v
 33001  	return s
 33002  }
 33003  
 33004  // SetTags sets the Tags field's value.
 33005  func (s *CreateOTAUpdateInput) SetTags(v []*Tag) *CreateOTAUpdateInput {
 33006  	s.Tags = v
 33007  	return s
 33008  }
 33009  
 33010  // SetTargetSelection sets the TargetSelection field's value.
 33011  func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
 33012  	s.TargetSelection = &v
 33013  	return s
 33014  }
 33015  
 33016  // SetTargets sets the Targets field's value.
 33017  func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
 33018  	s.Targets = v
 33019  	return s
 33020  }
 33021  
 33022  type CreateOTAUpdateOutput struct {
 33023  	_ struct{} `type:"structure"`
 33024  
 33025  	// The IoT job ARN associated with the OTA update.
 33026  	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
 33027  
 33028  	// The IoT job ID associated with the OTA update.
 33029  	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
 33030  
 33031  	// The OTA update ARN.
 33032  	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
 33033  
 33034  	// The OTA update ID.
 33035  	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
 33036  
 33037  	// The OTA update status.
 33038  	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
 33039  }
 33040  
 33041  // String returns the string representation.
 33042  //
 33043  // API parameter values that are decorated as "sensitive" in the API will not
 33044  // be included in the string output. The member name will be present, but the
 33045  // value will be replaced with "sensitive".
 33046  func (s CreateOTAUpdateOutput) String() string {
 33047  	return awsutil.Prettify(s)
 33048  }
 33049  
 33050  // GoString returns the string representation.
 33051  //
 33052  // API parameter values that are decorated as "sensitive" in the API will not
 33053  // be included in the string output. The member name will be present, but the
 33054  // value will be replaced with "sensitive".
 33055  func (s CreateOTAUpdateOutput) GoString() string {
 33056  	return s.String()
 33057  }
 33058  
 33059  // SetAwsIotJobArn sets the AwsIotJobArn field's value.
 33060  func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
 33061  	s.AwsIotJobArn = &v
 33062  	return s
 33063  }
 33064  
 33065  // SetAwsIotJobId sets the AwsIotJobId field's value.
 33066  func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
 33067  	s.AwsIotJobId = &v
 33068  	return s
 33069  }
 33070  
 33071  // SetOtaUpdateArn sets the OtaUpdateArn field's value.
 33072  func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
 33073  	s.OtaUpdateArn = &v
 33074  	return s
 33075  }
 33076  
 33077  // SetOtaUpdateId sets the OtaUpdateId field's value.
 33078  func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
 33079  	s.OtaUpdateId = &v
 33080  	return s
 33081  }
 33082  
 33083  // SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
 33084  func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
 33085  	s.OtaUpdateStatus = &v
 33086  	return s
 33087  }
 33088  
 33089  // The input for the CreatePolicy operation.
 33090  type CreatePolicyInput struct {
 33091  	_ struct{} `type:"structure"`
 33092  
 33093  	// The JSON document that describes the policy. policyDocument must have a minimum
 33094  	// length of 1, with a maximum length of 2048, excluding whitespace.
 33095  	//
 33096  	// PolicyDocument is a required field
 33097  	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
 33098  
 33099  	// The policy name.
 33100  	//
 33101  	// PolicyName is a required field
 33102  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 33103  
 33104  	// Metadata which can be used to manage the policy.
 33105  	//
 33106  	// For URI Request parameters use format: ...key1=value1&key2=value2...
 33107  	//
 33108  	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
 33109  	//
 33110  	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
 33111  	Tags []*Tag `locationName:"tags" type:"list"`
 33112  }
 33113  
 33114  // String returns the string representation.
 33115  //
 33116  // API parameter values that are decorated as "sensitive" in the API will not
 33117  // be included in the string output. The member name will be present, but the
 33118  // value will be replaced with "sensitive".
 33119  func (s CreatePolicyInput) String() string {
 33120  	return awsutil.Prettify(s)
 33121  }
 33122  
 33123  // GoString returns the string representation.
 33124  //
 33125  // API parameter values that are decorated as "sensitive" in the API will not
 33126  // be included in the string output. The member name will be present, but the
 33127  // value will be replaced with "sensitive".
 33128  func (s CreatePolicyInput) GoString() string {
 33129  	return s.String()
 33130  }
 33131  
 33132  // Validate inspects the fields of the type to determine if they are valid.
 33133  func (s *CreatePolicyInput) Validate() error {
 33134  	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
 33135  	if s.PolicyDocument == nil {
 33136  		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
 33137  	}
 33138  	if s.PolicyName == nil {
 33139  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 33140  	}
 33141  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 33142  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 33143  	}
 33144  	if s.Tags != nil {
 33145  		for i, v := range s.Tags {
 33146  			if v == nil {
 33147  				continue
 33148  			}
 33149  			if err := v.Validate(); err != nil {
 33150  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 33151  			}
 33152  		}
 33153  	}
 33154  
 33155  	if invalidParams.Len() > 0 {
 33156  		return invalidParams
 33157  	}
 33158  	return nil
 33159  }
 33160  
 33161  // SetPolicyDocument sets the PolicyDocument field's value.
 33162  func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
 33163  	s.PolicyDocument = &v
 33164  	return s
 33165  }
 33166  
 33167  // SetPolicyName sets the PolicyName field's value.
 33168  func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
 33169  	s.PolicyName = &v
 33170  	return s
 33171  }
 33172  
 33173  // SetTags sets the Tags field's value.
 33174  func (s *CreatePolicyInput) SetTags(v []*Tag) *CreatePolicyInput {
 33175  	s.Tags = v
 33176  	return s
 33177  }
 33178  
 33179  // The output from the CreatePolicy operation.
 33180  type CreatePolicyOutput struct {
 33181  	_ struct{} `type:"structure"`
 33182  
 33183  	// The policy ARN.
 33184  	PolicyArn *string `locationName:"policyArn" type:"string"`
 33185  
 33186  	// The JSON document that describes the policy.
 33187  	PolicyDocument *string `locationName:"policyDocument" type:"string"`
 33188  
 33189  	// The policy name.
 33190  	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
 33191  
 33192  	// The policy version ID.
 33193  	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
 33194  }
 33195  
 33196  // String returns the string representation.
 33197  //
 33198  // API parameter values that are decorated as "sensitive" in the API will not
 33199  // be included in the string output. The member name will be present, but the
 33200  // value will be replaced with "sensitive".
 33201  func (s CreatePolicyOutput) String() string {
 33202  	return awsutil.Prettify(s)
 33203  }
 33204  
 33205  // GoString returns the string representation.
 33206  //
 33207  // API parameter values that are decorated as "sensitive" in the API will not
 33208  // be included in the string output. The member name will be present, but the
 33209  // value will be replaced with "sensitive".
 33210  func (s CreatePolicyOutput) GoString() string {
 33211  	return s.String()
 33212  }
 33213  
 33214  // SetPolicyArn sets the PolicyArn field's value.
 33215  func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
 33216  	s.PolicyArn = &v
 33217  	return s
 33218  }
 33219  
 33220  // SetPolicyDocument sets the PolicyDocument field's value.
 33221  func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
 33222  	s.PolicyDocument = &v
 33223  	return s
 33224  }
 33225  
 33226  // SetPolicyName sets the PolicyName field's value.
 33227  func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
 33228  	s.PolicyName = &v
 33229  	return s
 33230  }
 33231  
 33232  // SetPolicyVersionId sets the PolicyVersionId field's value.
 33233  func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
 33234  	s.PolicyVersionId = &v
 33235  	return s
 33236  }
 33237  
 33238  // The input for the CreatePolicyVersion operation.
 33239  type CreatePolicyVersionInput struct {
 33240  	_ struct{} `type:"structure"`
 33241  
 33242  	// The JSON document that describes the policy. Minimum length of 1. Maximum
 33243  	// length of 2048, excluding whitespace.
 33244  	//
 33245  	// PolicyDocument is a required field
 33246  	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
 33247  
 33248  	// The policy name.
 33249  	//
 33250  	// PolicyName is a required field
 33251  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 33252  
 33253  	// Specifies whether the policy version is set as the default. When this parameter
 33254  	// is true, the new policy version becomes the operative version (that is, the
 33255  	// version that is in effect for the certificates to which the policy is attached).
 33256  	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
 33257  }
 33258  
 33259  // String returns the string representation.
 33260  //
 33261  // API parameter values that are decorated as "sensitive" in the API will not
 33262  // be included in the string output. The member name will be present, but the
 33263  // value will be replaced with "sensitive".
 33264  func (s CreatePolicyVersionInput) String() string {
 33265  	return awsutil.Prettify(s)
 33266  }
 33267  
 33268  // GoString returns the string representation.
 33269  //
 33270  // API parameter values that are decorated as "sensitive" in the API will not
 33271  // be included in the string output. The member name will be present, but the
 33272  // value will be replaced with "sensitive".
 33273  func (s CreatePolicyVersionInput) GoString() string {
 33274  	return s.String()
 33275  }
 33276  
 33277  // Validate inspects the fields of the type to determine if they are valid.
 33278  func (s *CreatePolicyVersionInput) Validate() error {
 33279  	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
 33280  	if s.PolicyDocument == nil {
 33281  		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
 33282  	}
 33283  	if s.PolicyName == nil {
 33284  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 33285  	}
 33286  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 33287  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 33288  	}
 33289  
 33290  	if invalidParams.Len() > 0 {
 33291  		return invalidParams
 33292  	}
 33293  	return nil
 33294  }
 33295  
 33296  // SetPolicyDocument sets the PolicyDocument field's value.
 33297  func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
 33298  	s.PolicyDocument = &v
 33299  	return s
 33300  }
 33301  
 33302  // SetPolicyName sets the PolicyName field's value.
 33303  func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
 33304  	s.PolicyName = &v
 33305  	return s
 33306  }
 33307  
 33308  // SetSetAsDefault sets the SetAsDefault field's value.
 33309  func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
 33310  	s.SetAsDefault = &v
 33311  	return s
 33312  }
 33313  
 33314  // The output of the CreatePolicyVersion operation.
 33315  type CreatePolicyVersionOutput struct {
 33316  	_ struct{} `type:"structure"`
 33317  
 33318  	// Specifies whether the policy version is the default.
 33319  	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
 33320  
 33321  	// The policy ARN.
 33322  	PolicyArn *string `locationName:"policyArn" type:"string"`
 33323  
 33324  	// The JSON document that describes the policy.
 33325  	PolicyDocument *string `locationName:"policyDocument" type:"string"`
 33326  
 33327  	// The policy version ID.
 33328  	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
 33329  }
 33330  
 33331  // String returns the string representation.
 33332  //
 33333  // API parameter values that are decorated as "sensitive" in the API will not
 33334  // be included in the string output. The member name will be present, but the
 33335  // value will be replaced with "sensitive".
 33336  func (s CreatePolicyVersionOutput) String() string {
 33337  	return awsutil.Prettify(s)
 33338  }
 33339  
 33340  // GoString returns the string representation.
 33341  //
 33342  // API parameter values that are decorated as "sensitive" in the API will not
 33343  // be included in the string output. The member name will be present, but the
 33344  // value will be replaced with "sensitive".
 33345  func (s CreatePolicyVersionOutput) GoString() string {
 33346  	return s.String()
 33347  }
 33348  
 33349  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 33350  func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
 33351  	s.IsDefaultVersion = &v
 33352  	return s
 33353  }
 33354  
 33355  // SetPolicyArn sets the PolicyArn field's value.
 33356  func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
 33357  	s.PolicyArn = &v
 33358  	return s
 33359  }
 33360  
 33361  // SetPolicyDocument sets the PolicyDocument field's value.
 33362  func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
 33363  	s.PolicyDocument = &v
 33364  	return s
 33365  }
 33366  
 33367  // SetPolicyVersionId sets the PolicyVersionId field's value.
 33368  func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
 33369  	s.PolicyVersionId = &v
 33370  	return s
 33371  }
 33372  
 33373  type CreateProvisioningClaimInput struct {
 33374  	_ struct{} `type:"structure" nopayload:"true"`
 33375  
 33376  	// The name of the provisioning template to use.
 33377  	//
 33378  	// TemplateName is a required field
 33379  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 33380  }
 33381  
 33382  // String returns the string representation.
 33383  //
 33384  // API parameter values that are decorated as "sensitive" in the API will not
 33385  // be included in the string output. The member name will be present, but the
 33386  // value will be replaced with "sensitive".
 33387  func (s CreateProvisioningClaimInput) String() string {
 33388  	return awsutil.Prettify(s)
 33389  }
 33390  
 33391  // GoString returns the string representation.
 33392  //
 33393  // API parameter values that are decorated as "sensitive" in the API will not
 33394  // be included in the string output. The member name will be present, but the
 33395  // value will be replaced with "sensitive".
 33396  func (s CreateProvisioningClaimInput) GoString() string {
 33397  	return s.String()
 33398  }
 33399  
 33400  // Validate inspects the fields of the type to determine if they are valid.
 33401  func (s *CreateProvisioningClaimInput) Validate() error {
 33402  	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningClaimInput"}
 33403  	if s.TemplateName == nil {
 33404  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 33405  	}
 33406  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 33407  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 33408  	}
 33409  
 33410  	if invalidParams.Len() > 0 {
 33411  		return invalidParams
 33412  	}
 33413  	return nil
 33414  }
 33415  
 33416  // SetTemplateName sets the TemplateName field's value.
 33417  func (s *CreateProvisioningClaimInput) SetTemplateName(v string) *CreateProvisioningClaimInput {
 33418  	s.TemplateName = &v
 33419  	return s
 33420  }
 33421  
 33422  type CreateProvisioningClaimOutput struct {
 33423  	_ struct{} `type:"structure"`
 33424  
 33425  	// The ID of the certificate.
 33426  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 33427  
 33428  	// The provisioning claim certificate.
 33429  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
 33430  
 33431  	// The provisioning claim expiration time.
 33432  	Expiration *time.Time `locationName:"expiration" type:"timestamp"`
 33433  
 33434  	// The provisioning claim key pair.
 33435  	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
 33436  }
 33437  
 33438  // String returns the string representation.
 33439  //
 33440  // API parameter values that are decorated as "sensitive" in the API will not
 33441  // be included in the string output. The member name will be present, but the
 33442  // value will be replaced with "sensitive".
 33443  func (s CreateProvisioningClaimOutput) String() string {
 33444  	return awsutil.Prettify(s)
 33445  }
 33446  
 33447  // GoString returns the string representation.
 33448  //
 33449  // API parameter values that are decorated as "sensitive" in the API will not
 33450  // be included in the string output. The member name will be present, but the
 33451  // value will be replaced with "sensitive".
 33452  func (s CreateProvisioningClaimOutput) GoString() string {
 33453  	return s.String()
 33454  }
 33455  
 33456  // SetCertificateId sets the CertificateId field's value.
 33457  func (s *CreateProvisioningClaimOutput) SetCertificateId(v string) *CreateProvisioningClaimOutput {
 33458  	s.CertificateId = &v
 33459  	return s
 33460  }
 33461  
 33462  // SetCertificatePem sets the CertificatePem field's value.
 33463  func (s *CreateProvisioningClaimOutput) SetCertificatePem(v string) *CreateProvisioningClaimOutput {
 33464  	s.CertificatePem = &v
 33465  	return s
 33466  }
 33467  
 33468  // SetExpiration sets the Expiration field's value.
 33469  func (s *CreateProvisioningClaimOutput) SetExpiration(v time.Time) *CreateProvisioningClaimOutput {
 33470  	s.Expiration = &v
 33471  	return s
 33472  }
 33473  
 33474  // SetKeyPair sets the KeyPair field's value.
 33475  func (s *CreateProvisioningClaimOutput) SetKeyPair(v *KeyPair) *CreateProvisioningClaimOutput {
 33476  	s.KeyPair = v
 33477  	return s
 33478  }
 33479  
 33480  type CreateProvisioningTemplateInput struct {
 33481  	_ struct{} `type:"structure"`
 33482  
 33483  	// The description of the fleet provisioning template.
 33484  	Description *string `locationName:"description" type:"string"`
 33485  
 33486  	// True to enable the fleet provisioning template, otherwise false.
 33487  	Enabled *bool `locationName:"enabled" type:"boolean"`
 33488  
 33489  	// Creates a pre-provisioning hook template.
 33490  	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
 33491  
 33492  	// The role ARN for the role associated with the fleet provisioning template.
 33493  	// This IoT role grants permission to provision a device.
 33494  	//
 33495  	// ProvisioningRoleArn is a required field
 33496  	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"`
 33497  
 33498  	// Metadata which can be used to manage the fleet provisioning template.
 33499  	//
 33500  	// For URI Request parameters use format: ...key1=value1&key2=value2...
 33501  	//
 33502  	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
 33503  	//
 33504  	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
 33505  	Tags []*Tag `locationName:"tags" type:"list"`
 33506  
 33507  	// The JSON formatted contents of the fleet provisioning template.
 33508  	//
 33509  	// TemplateBody is a required field
 33510  	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
 33511  
 33512  	// The name of the fleet provisioning template.
 33513  	//
 33514  	// TemplateName is a required field
 33515  	TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"`
 33516  }
 33517  
 33518  // String returns the string representation.
 33519  //
 33520  // API parameter values that are decorated as "sensitive" in the API will not
 33521  // be included in the string output. The member name will be present, but the
 33522  // value will be replaced with "sensitive".
 33523  func (s CreateProvisioningTemplateInput) String() string {
 33524  	return awsutil.Prettify(s)
 33525  }
 33526  
 33527  // GoString returns the string representation.
 33528  //
 33529  // API parameter values that are decorated as "sensitive" in the API will not
 33530  // be included in the string output. The member name will be present, but the
 33531  // value will be replaced with "sensitive".
 33532  func (s CreateProvisioningTemplateInput) GoString() string {
 33533  	return s.String()
 33534  }
 33535  
 33536  // Validate inspects the fields of the type to determine if they are valid.
 33537  func (s *CreateProvisioningTemplateInput) Validate() error {
 33538  	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"}
 33539  	if s.ProvisioningRoleArn == nil {
 33540  		invalidParams.Add(request.NewErrParamRequired("ProvisioningRoleArn"))
 33541  	}
 33542  	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
 33543  		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
 33544  	}
 33545  	if s.TemplateBody == nil {
 33546  		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
 33547  	}
 33548  	if s.TemplateName == nil {
 33549  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 33550  	}
 33551  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 33552  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 33553  	}
 33554  	if s.PreProvisioningHook != nil {
 33555  		if err := s.PreProvisioningHook.Validate(); err != nil {
 33556  			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
 33557  		}
 33558  	}
 33559  	if s.Tags != nil {
 33560  		for i, v := range s.Tags {
 33561  			if v == nil {
 33562  				continue
 33563  			}
 33564  			if err := v.Validate(); err != nil {
 33565  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 33566  			}
 33567  		}
 33568  	}
 33569  
 33570  	if invalidParams.Len() > 0 {
 33571  		return invalidParams
 33572  	}
 33573  	return nil
 33574  }
 33575  
 33576  // SetDescription sets the Description field's value.
 33577  func (s *CreateProvisioningTemplateInput) SetDescription(v string) *CreateProvisioningTemplateInput {
 33578  	s.Description = &v
 33579  	return s
 33580  }
 33581  
 33582  // SetEnabled sets the Enabled field's value.
 33583  func (s *CreateProvisioningTemplateInput) SetEnabled(v bool) *CreateProvisioningTemplateInput {
 33584  	s.Enabled = &v
 33585  	return s
 33586  }
 33587  
 33588  // SetPreProvisioningHook sets the PreProvisioningHook field's value.
 33589  func (s *CreateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *CreateProvisioningTemplateInput {
 33590  	s.PreProvisioningHook = v
 33591  	return s
 33592  }
 33593  
 33594  // SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
 33595  func (s *CreateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *CreateProvisioningTemplateInput {
 33596  	s.ProvisioningRoleArn = &v
 33597  	return s
 33598  }
 33599  
 33600  // SetTags sets the Tags field's value.
 33601  func (s *CreateProvisioningTemplateInput) SetTags(v []*Tag) *CreateProvisioningTemplateInput {
 33602  	s.Tags = v
 33603  	return s
 33604  }
 33605  
 33606  // SetTemplateBody sets the TemplateBody field's value.
 33607  func (s *CreateProvisioningTemplateInput) SetTemplateBody(v string) *CreateProvisioningTemplateInput {
 33608  	s.TemplateBody = &v
 33609  	return s
 33610  }
 33611  
 33612  // SetTemplateName sets the TemplateName field's value.
 33613  func (s *CreateProvisioningTemplateInput) SetTemplateName(v string) *CreateProvisioningTemplateInput {
 33614  	s.TemplateName = &v
 33615  	return s
 33616  }
 33617  
 33618  type CreateProvisioningTemplateOutput struct {
 33619  	_ struct{} `type:"structure"`
 33620  
 33621  	// The default version of the fleet provisioning template.
 33622  	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
 33623  
 33624  	// The ARN that identifies the provisioning template.
 33625  	TemplateArn *string `locationName:"templateArn" type:"string"`
 33626  
 33627  	// The name of the fleet provisioning template.
 33628  	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
 33629  }
 33630  
 33631  // String returns the string representation.
 33632  //
 33633  // API parameter values that are decorated as "sensitive" in the API will not
 33634  // be included in the string output. The member name will be present, but the
 33635  // value will be replaced with "sensitive".
 33636  func (s CreateProvisioningTemplateOutput) String() string {
 33637  	return awsutil.Prettify(s)
 33638  }
 33639  
 33640  // GoString returns the string representation.
 33641  //
 33642  // API parameter values that are decorated as "sensitive" in the API will not
 33643  // be included in the string output. The member name will be present, but the
 33644  // value will be replaced with "sensitive".
 33645  func (s CreateProvisioningTemplateOutput) GoString() string {
 33646  	return s.String()
 33647  }
 33648  
 33649  // SetDefaultVersionId sets the DefaultVersionId field's value.
 33650  func (s *CreateProvisioningTemplateOutput) SetDefaultVersionId(v int64) *CreateProvisioningTemplateOutput {
 33651  	s.DefaultVersionId = &v
 33652  	return s
 33653  }
 33654  
 33655  // SetTemplateArn sets the TemplateArn field's value.
 33656  func (s *CreateProvisioningTemplateOutput) SetTemplateArn(v string) *CreateProvisioningTemplateOutput {
 33657  	s.TemplateArn = &v
 33658  	return s
 33659  }
 33660  
 33661  // SetTemplateName sets the TemplateName field's value.
 33662  func (s *CreateProvisioningTemplateOutput) SetTemplateName(v string) *CreateProvisioningTemplateOutput {
 33663  	s.TemplateName = &v
 33664  	return s
 33665  }
 33666  
 33667  type CreateProvisioningTemplateVersionInput struct {
 33668  	_ struct{} `type:"structure"`
 33669  
 33670  	// Sets a fleet provision template version as the default version.
 33671  	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
 33672  
 33673  	// The JSON formatted contents of the fleet provisioning template.
 33674  	//
 33675  	// TemplateBody is a required field
 33676  	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
 33677  
 33678  	// The name of the fleet provisioning template.
 33679  	//
 33680  	// TemplateName is a required field
 33681  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 33682  }
 33683  
 33684  // String returns the string representation.
 33685  //
 33686  // API parameter values that are decorated as "sensitive" in the API will not
 33687  // be included in the string output. The member name will be present, but the
 33688  // value will be replaced with "sensitive".
 33689  func (s CreateProvisioningTemplateVersionInput) String() string {
 33690  	return awsutil.Prettify(s)
 33691  }
 33692  
 33693  // GoString returns the string representation.
 33694  //
 33695  // API parameter values that are decorated as "sensitive" in the API will not
 33696  // be included in the string output. The member name will be present, but the
 33697  // value will be replaced with "sensitive".
 33698  func (s CreateProvisioningTemplateVersionInput) GoString() string {
 33699  	return s.String()
 33700  }
 33701  
 33702  // Validate inspects the fields of the type to determine if they are valid.
 33703  func (s *CreateProvisioningTemplateVersionInput) Validate() error {
 33704  	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"}
 33705  	if s.TemplateBody == nil {
 33706  		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
 33707  	}
 33708  	if s.TemplateName == nil {
 33709  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 33710  	}
 33711  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 33712  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 33713  	}
 33714  
 33715  	if invalidParams.Len() > 0 {
 33716  		return invalidParams
 33717  	}
 33718  	return nil
 33719  }
 33720  
 33721  // SetSetAsDefault sets the SetAsDefault field's value.
 33722  func (s *CreateProvisioningTemplateVersionInput) SetSetAsDefault(v bool) *CreateProvisioningTemplateVersionInput {
 33723  	s.SetAsDefault = &v
 33724  	return s
 33725  }
 33726  
 33727  // SetTemplateBody sets the TemplateBody field's value.
 33728  func (s *CreateProvisioningTemplateVersionInput) SetTemplateBody(v string) *CreateProvisioningTemplateVersionInput {
 33729  	s.TemplateBody = &v
 33730  	return s
 33731  }
 33732  
 33733  // SetTemplateName sets the TemplateName field's value.
 33734  func (s *CreateProvisioningTemplateVersionInput) SetTemplateName(v string) *CreateProvisioningTemplateVersionInput {
 33735  	s.TemplateName = &v
 33736  	return s
 33737  }
 33738  
 33739  type CreateProvisioningTemplateVersionOutput struct {
 33740  	_ struct{} `type:"structure"`
 33741  
 33742  	// True if the fleet provisioning template version is the default version, otherwise
 33743  	// false.
 33744  	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
 33745  
 33746  	// The ARN that identifies the provisioning template.
 33747  	TemplateArn *string `locationName:"templateArn" type:"string"`
 33748  
 33749  	// The name of the fleet provisioning template.
 33750  	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
 33751  
 33752  	// The version of the fleet provisioning template.
 33753  	VersionId *int64 `locationName:"versionId" type:"integer"`
 33754  }
 33755  
 33756  // String returns the string representation.
 33757  //
 33758  // API parameter values that are decorated as "sensitive" in the API will not
 33759  // be included in the string output. The member name will be present, but the
 33760  // value will be replaced with "sensitive".
 33761  func (s CreateProvisioningTemplateVersionOutput) String() string {
 33762  	return awsutil.Prettify(s)
 33763  }
 33764  
 33765  // GoString returns the string representation.
 33766  //
 33767  // API parameter values that are decorated as "sensitive" in the API will not
 33768  // be included in the string output. The member name will be present, but the
 33769  // value will be replaced with "sensitive".
 33770  func (s CreateProvisioningTemplateVersionOutput) GoString() string {
 33771  	return s.String()
 33772  }
 33773  
 33774  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 33775  func (s *CreateProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *CreateProvisioningTemplateVersionOutput {
 33776  	s.IsDefaultVersion = &v
 33777  	return s
 33778  }
 33779  
 33780  // SetTemplateArn sets the TemplateArn field's value.
 33781  func (s *CreateProvisioningTemplateVersionOutput) SetTemplateArn(v string) *CreateProvisioningTemplateVersionOutput {
 33782  	s.TemplateArn = &v
 33783  	return s
 33784  }
 33785  
 33786  // SetTemplateName sets the TemplateName field's value.
 33787  func (s *CreateProvisioningTemplateVersionOutput) SetTemplateName(v string) *CreateProvisioningTemplateVersionOutput {
 33788  	s.TemplateName = &v
 33789  	return s
 33790  }
 33791  
 33792  // SetVersionId sets the VersionId field's value.
 33793  func (s *CreateProvisioningTemplateVersionOutput) SetVersionId(v int64) *CreateProvisioningTemplateVersionOutput {
 33794  	s.VersionId = &v
 33795  	return s
 33796  }
 33797  
 33798  type CreateRoleAliasInput struct {
 33799  	_ struct{} `type:"structure"`
 33800  
 33801  	// How long (in seconds) the credentials will be valid. The default value is
 33802  	// 3,600 seconds.
 33803  	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
 33804  
 33805  	// The role alias that points to a role ARN. This allows you to change the role
 33806  	// without having to update the device.
 33807  	//
 33808  	// RoleAlias is a required field
 33809  	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
 33810  
 33811  	// The role ARN.
 33812  	//
 33813  	// RoleArn is a required field
 33814  	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
 33815  
 33816  	// Metadata which can be used to manage the role alias.
 33817  	//
 33818  	// For URI Request parameters use format: ...key1=value1&key2=value2...
 33819  	//
 33820  	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
 33821  	//
 33822  	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
 33823  	Tags []*Tag `locationName:"tags" type:"list"`
 33824  }
 33825  
 33826  // String returns the string representation.
 33827  //
 33828  // API parameter values that are decorated as "sensitive" in the API will not
 33829  // be included in the string output. The member name will be present, but the
 33830  // value will be replaced with "sensitive".
 33831  func (s CreateRoleAliasInput) String() string {
 33832  	return awsutil.Prettify(s)
 33833  }
 33834  
 33835  // GoString returns the string representation.
 33836  //
 33837  // API parameter values that are decorated as "sensitive" in the API will not
 33838  // be included in the string output. The member name will be present, but the
 33839  // value will be replaced with "sensitive".
 33840  func (s CreateRoleAliasInput) GoString() string {
 33841  	return s.String()
 33842  }
 33843  
 33844  // Validate inspects the fields of the type to determine if they are valid.
 33845  func (s *CreateRoleAliasInput) Validate() error {
 33846  	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
 33847  	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
 33848  		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
 33849  	}
 33850  	if s.RoleAlias == nil {
 33851  		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
 33852  	}
 33853  	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
 33854  		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
 33855  	}
 33856  	if s.RoleArn == nil {
 33857  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 33858  	}
 33859  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 33860  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 33861  	}
 33862  	if s.Tags != nil {
 33863  		for i, v := range s.Tags {
 33864  			if v == nil {
 33865  				continue
 33866  			}
 33867  			if err := v.Validate(); err != nil {
 33868  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 33869  			}
 33870  		}
 33871  	}
 33872  
 33873  	if invalidParams.Len() > 0 {
 33874  		return invalidParams
 33875  	}
 33876  	return nil
 33877  }
 33878  
 33879  // SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
 33880  func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
 33881  	s.CredentialDurationSeconds = &v
 33882  	return s
 33883  }
 33884  
 33885  // SetRoleAlias sets the RoleAlias field's value.
 33886  func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
 33887  	s.RoleAlias = &v
 33888  	return s
 33889  }
 33890  
 33891  // SetRoleArn sets the RoleArn field's value.
 33892  func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
 33893  	s.RoleArn = &v
 33894  	return s
 33895  }
 33896  
 33897  // SetTags sets the Tags field's value.
 33898  func (s *CreateRoleAliasInput) SetTags(v []*Tag) *CreateRoleAliasInput {
 33899  	s.Tags = v
 33900  	return s
 33901  }
 33902  
 33903  type CreateRoleAliasOutput struct {
 33904  	_ struct{} `type:"structure"`
 33905  
 33906  	// The role alias.
 33907  	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
 33908  
 33909  	// The role alias ARN.
 33910  	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
 33911  }
 33912  
 33913  // String returns the string representation.
 33914  //
 33915  // API parameter values that are decorated as "sensitive" in the API will not
 33916  // be included in the string output. The member name will be present, but the
 33917  // value will be replaced with "sensitive".
 33918  func (s CreateRoleAliasOutput) String() string {
 33919  	return awsutil.Prettify(s)
 33920  }
 33921  
 33922  // GoString returns the string representation.
 33923  //
 33924  // API parameter values that are decorated as "sensitive" in the API will not
 33925  // be included in the string output. The member name will be present, but the
 33926  // value will be replaced with "sensitive".
 33927  func (s CreateRoleAliasOutput) GoString() string {
 33928  	return s.String()
 33929  }
 33930  
 33931  // SetRoleAlias sets the RoleAlias field's value.
 33932  func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
 33933  	s.RoleAlias = &v
 33934  	return s
 33935  }
 33936  
 33937  // SetRoleAliasArn sets the RoleAliasArn field's value.
 33938  func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
 33939  	s.RoleAliasArn = &v
 33940  	return s
 33941  }
 33942  
 33943  type CreateScheduledAuditInput struct {
 33944  	_ struct{} `type:"structure"`
 33945  
 33946  	// The day of the month on which the scheduled audit takes place. This can be
 33947  	// "1" through "31" or "LAST". This field is required if the "frequency" parameter
 33948  	// is set to MONTHLY. If days 29 to 31 are specified, and the month doesn't
 33949  	// have that many days, the audit takes place on the LAST day of the month.
 33950  	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
 33951  
 33952  	// The day of the week on which the scheduled audit takes place, either SUN,
 33953  	// MON, TUE, WED, THU, FRI, or SAT. This field is required if the frequency
 33954  	// parameter is set to WEEKLY or BIWEEKLY.
 33955  	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
 33956  
 33957  	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY
 33958  	// or MONTHLY. The start time of each audit is determined by the system.
 33959  	//
 33960  	// Frequency is a required field
 33961  	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
 33962  
 33963  	// The name you want to give to the scheduled audit. (Max. 128 chars)
 33964  	//
 33965  	// ScheduledAuditName is a required field
 33966  	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
 33967  
 33968  	// Metadata that can be used to manage the scheduled audit.
 33969  	Tags []*Tag `locationName:"tags" type:"list"`
 33970  
 33971  	// Which checks are performed during the scheduled audit. Checks must be enabled
 33972  	// for your account. (Use DescribeAccountAuditConfiguration to see the list
 33973  	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 33974  	// to select which checks are enabled.)
 33975  	//
 33976  	// TargetCheckNames is a required field
 33977  	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
 33978  }
 33979  
 33980  // String returns the string representation.
 33981  //
 33982  // API parameter values that are decorated as "sensitive" in the API will not
 33983  // be included in the string output. The member name will be present, but the
 33984  // value will be replaced with "sensitive".
 33985  func (s CreateScheduledAuditInput) String() string {
 33986  	return awsutil.Prettify(s)
 33987  }
 33988  
 33989  // GoString returns the string representation.
 33990  //
 33991  // API parameter values that are decorated as "sensitive" in the API will not
 33992  // be included in the string output. The member name will be present, but the
 33993  // value will be replaced with "sensitive".
 33994  func (s CreateScheduledAuditInput) GoString() string {
 33995  	return s.String()
 33996  }
 33997  
 33998  // Validate inspects the fields of the type to determine if they are valid.
 33999  func (s *CreateScheduledAuditInput) Validate() error {
 34000  	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
 34001  	if s.Frequency == nil {
 34002  		invalidParams.Add(request.NewErrParamRequired("Frequency"))
 34003  	}
 34004  	if s.ScheduledAuditName == nil {
 34005  		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
 34006  	}
 34007  	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
 34008  		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
 34009  	}
 34010  	if s.TargetCheckNames == nil {
 34011  		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
 34012  	}
 34013  	if s.Tags != nil {
 34014  		for i, v := range s.Tags {
 34015  			if v == nil {
 34016  				continue
 34017  			}
 34018  			if err := v.Validate(); err != nil {
 34019  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 34020  			}
 34021  		}
 34022  	}
 34023  
 34024  	if invalidParams.Len() > 0 {
 34025  		return invalidParams
 34026  	}
 34027  	return nil
 34028  }
 34029  
 34030  // SetDayOfMonth sets the DayOfMonth field's value.
 34031  func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
 34032  	s.DayOfMonth = &v
 34033  	return s
 34034  }
 34035  
 34036  // SetDayOfWeek sets the DayOfWeek field's value.
 34037  func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
 34038  	s.DayOfWeek = &v
 34039  	return s
 34040  }
 34041  
 34042  // SetFrequency sets the Frequency field's value.
 34043  func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
 34044  	s.Frequency = &v
 34045  	return s
 34046  }
 34047  
 34048  // SetScheduledAuditName sets the ScheduledAuditName field's value.
 34049  func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
 34050  	s.ScheduledAuditName = &v
 34051  	return s
 34052  }
 34053  
 34054  // SetTags sets the Tags field's value.
 34055  func (s *CreateScheduledAuditInput) SetTags(v []*Tag) *CreateScheduledAuditInput {
 34056  	s.Tags = v
 34057  	return s
 34058  }
 34059  
 34060  // SetTargetCheckNames sets the TargetCheckNames field's value.
 34061  func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
 34062  	s.TargetCheckNames = v
 34063  	return s
 34064  }
 34065  
 34066  type CreateScheduledAuditOutput struct {
 34067  	_ struct{} `type:"structure"`
 34068  
 34069  	// The ARN of the scheduled audit.
 34070  	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
 34071  }
 34072  
 34073  // String returns the string representation.
 34074  //
 34075  // API parameter values that are decorated as "sensitive" in the API will not
 34076  // be included in the string output. The member name will be present, but the
 34077  // value will be replaced with "sensitive".
 34078  func (s CreateScheduledAuditOutput) String() string {
 34079  	return awsutil.Prettify(s)
 34080  }
 34081  
 34082  // GoString returns the string representation.
 34083  //
 34084  // API parameter values that are decorated as "sensitive" in the API will not
 34085  // be included in the string output. The member name will be present, but the
 34086  // value will be replaced with "sensitive".
 34087  func (s CreateScheduledAuditOutput) GoString() string {
 34088  	return s.String()
 34089  }
 34090  
 34091  // SetScheduledAuditArn sets the ScheduledAuditArn field's value.
 34092  func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
 34093  	s.ScheduledAuditArn = &v
 34094  	return s
 34095  }
 34096  
 34097  type CreateSecurityProfileInput struct {
 34098  	_ struct{} `type:"structure"`
 34099  
 34100  	// Please use CreateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
 34101  	//
 34102  	// A list of metrics whose data is retained (stored). By default, data is retained
 34103  	// for any metric used in the profile's behaviors, but it is also retained for
 34104  	// any metric specified here. Can be used with custom metrics; cannot be used
 34105  	// with dimensions.
 34106  	//
 34107  	// Deprecated: Use additionalMetricsToRetainV2.
 34108  	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
 34109  
 34110  	// A list of metrics whose data is retained (stored). By default, data is retained
 34111  	// for any metric used in the profile's behaviors, but it is also retained for
 34112  	// any metric specified here. Can be used with custom metrics; cannot be used
 34113  	// with dimensions.
 34114  	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
 34115  
 34116  	// Specifies the destinations to which alerts are sent. (Alerts are always sent
 34117  	// to the console.) Alerts are generated when a device (thing) violates a behavior.
 34118  	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
 34119  
 34120  	// Specifies the behaviors that, when violated by a device (thing), cause an
 34121  	// alert.
 34122  	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
 34123  
 34124  	// A description of the security profile.
 34125  	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
 34126  
 34127  	// The name you are giving to the security profile.
 34128  	//
 34129  	// SecurityProfileName is a required field
 34130  	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
 34131  
 34132  	// Metadata that can be used to manage the security profile.
 34133  	Tags []*Tag `locationName:"tags" type:"list"`
 34134  }
 34135  
 34136  // String returns the string representation.
 34137  //
 34138  // API parameter values that are decorated as "sensitive" in the API will not
 34139  // be included in the string output. The member name will be present, but the
 34140  // value will be replaced with "sensitive".
 34141  func (s CreateSecurityProfileInput) String() string {
 34142  	return awsutil.Prettify(s)
 34143  }
 34144  
 34145  // GoString returns the string representation.
 34146  //
 34147  // API parameter values that are decorated as "sensitive" in the API will not
 34148  // be included in the string output. The member name will be present, but the
 34149  // value will be replaced with "sensitive".
 34150  func (s CreateSecurityProfileInput) GoString() string {
 34151  	return s.String()
 34152  }
 34153  
 34154  // Validate inspects the fields of the type to determine if they are valid.
 34155  func (s *CreateSecurityProfileInput) Validate() error {
 34156  	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
 34157  	if s.SecurityProfileName == nil {
 34158  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
 34159  	}
 34160  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 34161  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 34162  	}
 34163  	if s.AdditionalMetricsToRetainV2 != nil {
 34164  		for i, v := range s.AdditionalMetricsToRetainV2 {
 34165  			if v == nil {
 34166  				continue
 34167  			}
 34168  			if err := v.Validate(); err != nil {
 34169  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
 34170  			}
 34171  		}
 34172  	}
 34173  	if s.AlertTargets != nil {
 34174  		for i, v := range s.AlertTargets {
 34175  			if v == nil {
 34176  				continue
 34177  			}
 34178  			if err := v.Validate(); err != nil {
 34179  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
 34180  			}
 34181  		}
 34182  	}
 34183  	if s.Behaviors != nil {
 34184  		for i, v := range s.Behaviors {
 34185  			if v == nil {
 34186  				continue
 34187  			}
 34188  			if err := v.Validate(); err != nil {
 34189  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
 34190  			}
 34191  		}
 34192  	}
 34193  	if s.Tags != nil {
 34194  		for i, v := range s.Tags {
 34195  			if v == nil {
 34196  				continue
 34197  			}
 34198  			if err := v.Validate(); err != nil {
 34199  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 34200  			}
 34201  		}
 34202  	}
 34203  
 34204  	if invalidParams.Len() > 0 {
 34205  		return invalidParams
 34206  	}
 34207  	return nil
 34208  }
 34209  
 34210  // SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
 34211  func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
 34212  	s.AdditionalMetricsToRetain = v
 34213  	return s
 34214  }
 34215  
 34216  // SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
 34217  func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *CreateSecurityProfileInput {
 34218  	s.AdditionalMetricsToRetainV2 = v
 34219  	return s
 34220  }
 34221  
 34222  // SetAlertTargets sets the AlertTargets field's value.
 34223  func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
 34224  	s.AlertTargets = v
 34225  	return s
 34226  }
 34227  
 34228  // SetBehaviors sets the Behaviors field's value.
 34229  func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
 34230  	s.Behaviors = v
 34231  	return s
 34232  }
 34233  
 34234  // SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
 34235  func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
 34236  	s.SecurityProfileDescription = &v
 34237  	return s
 34238  }
 34239  
 34240  // SetSecurityProfileName sets the SecurityProfileName field's value.
 34241  func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
 34242  	s.SecurityProfileName = &v
 34243  	return s
 34244  }
 34245  
 34246  // SetTags sets the Tags field's value.
 34247  func (s *CreateSecurityProfileInput) SetTags(v []*Tag) *CreateSecurityProfileInput {
 34248  	s.Tags = v
 34249  	return s
 34250  }
 34251  
 34252  type CreateSecurityProfileOutput struct {
 34253  	_ struct{} `type:"structure"`
 34254  
 34255  	// The ARN of the security profile.
 34256  	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
 34257  
 34258  	// The name you gave to the security profile.
 34259  	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
 34260  }
 34261  
 34262  // String returns the string representation.
 34263  //
 34264  // API parameter values that are decorated as "sensitive" in the API will not
 34265  // be included in the string output. The member name will be present, but the
 34266  // value will be replaced with "sensitive".
 34267  func (s CreateSecurityProfileOutput) String() string {
 34268  	return awsutil.Prettify(s)
 34269  }
 34270  
 34271  // GoString returns the string representation.
 34272  //
 34273  // API parameter values that are decorated as "sensitive" in the API will not
 34274  // be included in the string output. The member name will be present, but the
 34275  // value will be replaced with "sensitive".
 34276  func (s CreateSecurityProfileOutput) GoString() string {
 34277  	return s.String()
 34278  }
 34279  
 34280  // SetSecurityProfileArn sets the SecurityProfileArn field's value.
 34281  func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
 34282  	s.SecurityProfileArn = &v
 34283  	return s
 34284  }
 34285  
 34286  // SetSecurityProfileName sets the SecurityProfileName field's value.
 34287  func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
 34288  	s.SecurityProfileName = &v
 34289  	return s
 34290  }
 34291  
 34292  type CreateStreamInput struct {
 34293  	_ struct{} `type:"structure"`
 34294  
 34295  	// A description of the stream.
 34296  	Description *string `locationName:"description" type:"string"`
 34297  
 34298  	// The files to stream.
 34299  	//
 34300  	// Files is a required field
 34301  	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
 34302  
 34303  	// An IAM role that allows the IoT service principal assumes to access your
 34304  	// S3 files.
 34305  	//
 34306  	// RoleArn is a required field
 34307  	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
 34308  
 34309  	// The stream ID.
 34310  	//
 34311  	// StreamId is a required field
 34312  	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
 34313  
 34314  	// Metadata which can be used to manage streams.
 34315  	Tags []*Tag `locationName:"tags" type:"list"`
 34316  }
 34317  
 34318  // String returns the string representation.
 34319  //
 34320  // API parameter values that are decorated as "sensitive" in the API will not
 34321  // be included in the string output. The member name will be present, but the
 34322  // value will be replaced with "sensitive".
 34323  func (s CreateStreamInput) String() string {
 34324  	return awsutil.Prettify(s)
 34325  }
 34326  
 34327  // GoString returns the string representation.
 34328  //
 34329  // API parameter values that are decorated as "sensitive" in the API will not
 34330  // be included in the string output. The member name will be present, but the
 34331  // value will be replaced with "sensitive".
 34332  func (s CreateStreamInput) GoString() string {
 34333  	return s.String()
 34334  }
 34335  
 34336  // Validate inspects the fields of the type to determine if they are valid.
 34337  func (s *CreateStreamInput) Validate() error {
 34338  	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
 34339  	if s.Files == nil {
 34340  		invalidParams.Add(request.NewErrParamRequired("Files"))
 34341  	}
 34342  	if s.Files != nil && len(s.Files) < 1 {
 34343  		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
 34344  	}
 34345  	if s.RoleArn == nil {
 34346  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 34347  	}
 34348  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 34349  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 34350  	}
 34351  	if s.StreamId == nil {
 34352  		invalidParams.Add(request.NewErrParamRequired("StreamId"))
 34353  	}
 34354  	if s.StreamId != nil && len(*s.StreamId) < 1 {
 34355  		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
 34356  	}
 34357  	if s.Files != nil {
 34358  		for i, v := range s.Files {
 34359  			if v == nil {
 34360  				continue
 34361  			}
 34362  			if err := v.Validate(); err != nil {
 34363  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
 34364  			}
 34365  		}
 34366  	}
 34367  	if s.Tags != nil {
 34368  		for i, v := range s.Tags {
 34369  			if v == nil {
 34370  				continue
 34371  			}
 34372  			if err := v.Validate(); err != nil {
 34373  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 34374  			}
 34375  		}
 34376  	}
 34377  
 34378  	if invalidParams.Len() > 0 {
 34379  		return invalidParams
 34380  	}
 34381  	return nil
 34382  }
 34383  
 34384  // SetDescription sets the Description field's value.
 34385  func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
 34386  	s.Description = &v
 34387  	return s
 34388  }
 34389  
 34390  // SetFiles sets the Files field's value.
 34391  func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
 34392  	s.Files = v
 34393  	return s
 34394  }
 34395  
 34396  // SetRoleArn sets the RoleArn field's value.
 34397  func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
 34398  	s.RoleArn = &v
 34399  	return s
 34400  }
 34401  
 34402  // SetStreamId sets the StreamId field's value.
 34403  func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
 34404  	s.StreamId = &v
 34405  	return s
 34406  }
 34407  
 34408  // SetTags sets the Tags field's value.
 34409  func (s *CreateStreamInput) SetTags(v []*Tag) *CreateStreamInput {
 34410  	s.Tags = v
 34411  	return s
 34412  }
 34413  
 34414  type CreateStreamOutput struct {
 34415  	_ struct{} `type:"structure"`
 34416  
 34417  	// A description of the stream.
 34418  	Description *string `locationName:"description" type:"string"`
 34419  
 34420  	// The stream ARN.
 34421  	StreamArn *string `locationName:"streamArn" type:"string"`
 34422  
 34423  	// The stream ID.
 34424  	StreamId *string `locationName:"streamId" min:"1" type:"string"`
 34425  
 34426  	// The version of the stream.
 34427  	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
 34428  }
 34429  
 34430  // String returns the string representation.
 34431  //
 34432  // API parameter values that are decorated as "sensitive" in the API will not
 34433  // be included in the string output. The member name will be present, but the
 34434  // value will be replaced with "sensitive".
 34435  func (s CreateStreamOutput) String() string {
 34436  	return awsutil.Prettify(s)
 34437  }
 34438  
 34439  // GoString returns the string representation.
 34440  //
 34441  // API parameter values that are decorated as "sensitive" in the API will not
 34442  // be included in the string output. The member name will be present, but the
 34443  // value will be replaced with "sensitive".
 34444  func (s CreateStreamOutput) GoString() string {
 34445  	return s.String()
 34446  }
 34447  
 34448  // SetDescription sets the Description field's value.
 34449  func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
 34450  	s.Description = &v
 34451  	return s
 34452  }
 34453  
 34454  // SetStreamArn sets the StreamArn field's value.
 34455  func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
 34456  	s.StreamArn = &v
 34457  	return s
 34458  }
 34459  
 34460  // SetStreamId sets the StreamId field's value.
 34461  func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
 34462  	s.StreamId = &v
 34463  	return s
 34464  }
 34465  
 34466  // SetStreamVersion sets the StreamVersion field's value.
 34467  func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
 34468  	s.StreamVersion = &v
 34469  	return s
 34470  }
 34471  
 34472  type CreateThingGroupInput struct {
 34473  	_ struct{} `type:"structure"`
 34474  
 34475  	// The name of the parent thing group.
 34476  	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
 34477  
 34478  	// Metadata which can be used to manage the thing group.
 34479  	Tags []*Tag `locationName:"tags" type:"list"`
 34480  
 34481  	// The thing group name to create.
 34482  	//
 34483  	// ThingGroupName is a required field
 34484  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 34485  
 34486  	// The thing group properties.
 34487  	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
 34488  }
 34489  
 34490  // String returns the string representation.
 34491  //
 34492  // API parameter values that are decorated as "sensitive" in the API will not
 34493  // be included in the string output. The member name will be present, but the
 34494  // value will be replaced with "sensitive".
 34495  func (s CreateThingGroupInput) String() string {
 34496  	return awsutil.Prettify(s)
 34497  }
 34498  
 34499  // GoString returns the string representation.
 34500  //
 34501  // API parameter values that are decorated as "sensitive" in the API will not
 34502  // be included in the string output. The member name will be present, but the
 34503  // value will be replaced with "sensitive".
 34504  func (s CreateThingGroupInput) GoString() string {
 34505  	return s.String()
 34506  }
 34507  
 34508  // Validate inspects the fields of the type to determine if they are valid.
 34509  func (s *CreateThingGroupInput) Validate() error {
 34510  	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
 34511  	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
 34512  		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
 34513  	}
 34514  	if s.ThingGroupName == nil {
 34515  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 34516  	}
 34517  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 34518  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 34519  	}
 34520  	if s.Tags != nil {
 34521  		for i, v := range s.Tags {
 34522  			if v == nil {
 34523  				continue
 34524  			}
 34525  			if err := v.Validate(); err != nil {
 34526  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 34527  			}
 34528  		}
 34529  	}
 34530  
 34531  	if invalidParams.Len() > 0 {
 34532  		return invalidParams
 34533  	}
 34534  	return nil
 34535  }
 34536  
 34537  // SetParentGroupName sets the ParentGroupName field's value.
 34538  func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
 34539  	s.ParentGroupName = &v
 34540  	return s
 34541  }
 34542  
 34543  // SetTags sets the Tags field's value.
 34544  func (s *CreateThingGroupInput) SetTags(v []*Tag) *CreateThingGroupInput {
 34545  	s.Tags = v
 34546  	return s
 34547  }
 34548  
 34549  // SetThingGroupName sets the ThingGroupName field's value.
 34550  func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
 34551  	s.ThingGroupName = &v
 34552  	return s
 34553  }
 34554  
 34555  // SetThingGroupProperties sets the ThingGroupProperties field's value.
 34556  func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
 34557  	s.ThingGroupProperties = v
 34558  	return s
 34559  }
 34560  
 34561  type CreateThingGroupOutput struct {
 34562  	_ struct{} `type:"structure"`
 34563  
 34564  	// The thing group ARN.
 34565  	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
 34566  
 34567  	// The thing group ID.
 34568  	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
 34569  
 34570  	// The thing group name.
 34571  	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
 34572  }
 34573  
 34574  // String returns the string representation.
 34575  //
 34576  // API parameter values that are decorated as "sensitive" in the API will not
 34577  // be included in the string output. The member name will be present, but the
 34578  // value will be replaced with "sensitive".
 34579  func (s CreateThingGroupOutput) String() string {
 34580  	return awsutil.Prettify(s)
 34581  }
 34582  
 34583  // GoString returns the string representation.
 34584  //
 34585  // API parameter values that are decorated as "sensitive" in the API will not
 34586  // be included in the string output. The member name will be present, but the
 34587  // value will be replaced with "sensitive".
 34588  func (s CreateThingGroupOutput) GoString() string {
 34589  	return s.String()
 34590  }
 34591  
 34592  // SetThingGroupArn sets the ThingGroupArn field's value.
 34593  func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
 34594  	s.ThingGroupArn = &v
 34595  	return s
 34596  }
 34597  
 34598  // SetThingGroupId sets the ThingGroupId field's value.
 34599  func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
 34600  	s.ThingGroupId = &v
 34601  	return s
 34602  }
 34603  
 34604  // SetThingGroupName sets the ThingGroupName field's value.
 34605  func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
 34606  	s.ThingGroupName = &v
 34607  	return s
 34608  }
 34609  
 34610  // The input for the CreateThing operation.
 34611  type CreateThingInput struct {
 34612  	_ struct{} `type:"structure"`
 34613  
 34614  	// The attribute payload, which consists of up to three name/value pairs in
 34615  	// a JSON document. For example:
 34616  	//
 34617  	// {\"attributes\":{\"string1\":\"string2\"}}
 34618  	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
 34619  
 34620  	// The name of the billing group the thing will be added to.
 34621  	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
 34622  
 34623  	// The name of the thing to create.
 34624  	//
 34625  	// You can't change a thing's name after you create it. To change a thing's
 34626  	// name, you must create a new thing, give it the new name, and then delete
 34627  	// the old thing.
 34628  	//
 34629  	// ThingName is a required field
 34630  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 34631  
 34632  	// The name of the thing type associated with the new thing.
 34633  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 34634  }
 34635  
 34636  // String returns the string representation.
 34637  //
 34638  // API parameter values that are decorated as "sensitive" in the API will not
 34639  // be included in the string output. The member name will be present, but the
 34640  // value will be replaced with "sensitive".
 34641  func (s CreateThingInput) String() string {
 34642  	return awsutil.Prettify(s)
 34643  }
 34644  
 34645  // GoString returns the string representation.
 34646  //
 34647  // API parameter values that are decorated as "sensitive" in the API will not
 34648  // be included in the string output. The member name will be present, but the
 34649  // value will be replaced with "sensitive".
 34650  func (s CreateThingInput) GoString() string {
 34651  	return s.String()
 34652  }
 34653  
 34654  // Validate inspects the fields of the type to determine if they are valid.
 34655  func (s *CreateThingInput) Validate() error {
 34656  	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
 34657  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 34658  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 34659  	}
 34660  	if s.ThingName == nil {
 34661  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 34662  	}
 34663  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 34664  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 34665  	}
 34666  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 34667  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 34668  	}
 34669  
 34670  	if invalidParams.Len() > 0 {
 34671  		return invalidParams
 34672  	}
 34673  	return nil
 34674  }
 34675  
 34676  // SetAttributePayload sets the AttributePayload field's value.
 34677  func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
 34678  	s.AttributePayload = v
 34679  	return s
 34680  }
 34681  
 34682  // SetBillingGroupName sets the BillingGroupName field's value.
 34683  func (s *CreateThingInput) SetBillingGroupName(v string) *CreateThingInput {
 34684  	s.BillingGroupName = &v
 34685  	return s
 34686  }
 34687  
 34688  // SetThingName sets the ThingName field's value.
 34689  func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
 34690  	s.ThingName = &v
 34691  	return s
 34692  }
 34693  
 34694  // SetThingTypeName sets the ThingTypeName field's value.
 34695  func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
 34696  	s.ThingTypeName = &v
 34697  	return s
 34698  }
 34699  
 34700  // The output of the CreateThing operation.
 34701  type CreateThingOutput struct {
 34702  	_ struct{} `type:"structure"`
 34703  
 34704  	// The ARN of the new thing.
 34705  	ThingArn *string `locationName:"thingArn" type:"string"`
 34706  
 34707  	// The thing ID.
 34708  	ThingId *string `locationName:"thingId" type:"string"`
 34709  
 34710  	// The name of the new thing.
 34711  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 34712  }
 34713  
 34714  // String returns the string representation.
 34715  //
 34716  // API parameter values that are decorated as "sensitive" in the API will not
 34717  // be included in the string output. The member name will be present, but the
 34718  // value will be replaced with "sensitive".
 34719  func (s CreateThingOutput) String() string {
 34720  	return awsutil.Prettify(s)
 34721  }
 34722  
 34723  // GoString returns the string representation.
 34724  //
 34725  // API parameter values that are decorated as "sensitive" in the API will not
 34726  // be included in the string output. The member name will be present, but the
 34727  // value will be replaced with "sensitive".
 34728  func (s CreateThingOutput) GoString() string {
 34729  	return s.String()
 34730  }
 34731  
 34732  // SetThingArn sets the ThingArn field's value.
 34733  func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
 34734  	s.ThingArn = &v
 34735  	return s
 34736  }
 34737  
 34738  // SetThingId sets the ThingId field's value.
 34739  func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
 34740  	s.ThingId = &v
 34741  	return s
 34742  }
 34743  
 34744  // SetThingName sets the ThingName field's value.
 34745  func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
 34746  	s.ThingName = &v
 34747  	return s
 34748  }
 34749  
 34750  // The input for the CreateThingType operation.
 34751  type CreateThingTypeInput struct {
 34752  	_ struct{} `type:"structure"`
 34753  
 34754  	// Metadata which can be used to manage the thing type.
 34755  	Tags []*Tag `locationName:"tags" type:"list"`
 34756  
 34757  	// The name of the thing type.
 34758  	//
 34759  	// ThingTypeName is a required field
 34760  	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
 34761  
 34762  	// The ThingTypeProperties for the thing type to create. It contains information
 34763  	// about the new thing type including a description, and a list of searchable
 34764  	// thing attribute names.
 34765  	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
 34766  }
 34767  
 34768  // String returns the string representation.
 34769  //
 34770  // API parameter values that are decorated as "sensitive" in the API will not
 34771  // be included in the string output. The member name will be present, but the
 34772  // value will be replaced with "sensitive".
 34773  func (s CreateThingTypeInput) String() string {
 34774  	return awsutil.Prettify(s)
 34775  }
 34776  
 34777  // GoString returns the string representation.
 34778  //
 34779  // API parameter values that are decorated as "sensitive" in the API will not
 34780  // be included in the string output. The member name will be present, but the
 34781  // value will be replaced with "sensitive".
 34782  func (s CreateThingTypeInput) GoString() string {
 34783  	return s.String()
 34784  }
 34785  
 34786  // Validate inspects the fields of the type to determine if they are valid.
 34787  func (s *CreateThingTypeInput) Validate() error {
 34788  	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
 34789  	if s.ThingTypeName == nil {
 34790  		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
 34791  	}
 34792  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 34793  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 34794  	}
 34795  	if s.Tags != nil {
 34796  		for i, v := range s.Tags {
 34797  			if v == nil {
 34798  				continue
 34799  			}
 34800  			if err := v.Validate(); err != nil {
 34801  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 34802  			}
 34803  		}
 34804  	}
 34805  
 34806  	if invalidParams.Len() > 0 {
 34807  		return invalidParams
 34808  	}
 34809  	return nil
 34810  }
 34811  
 34812  // SetTags sets the Tags field's value.
 34813  func (s *CreateThingTypeInput) SetTags(v []*Tag) *CreateThingTypeInput {
 34814  	s.Tags = v
 34815  	return s
 34816  }
 34817  
 34818  // SetThingTypeName sets the ThingTypeName field's value.
 34819  func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
 34820  	s.ThingTypeName = &v
 34821  	return s
 34822  }
 34823  
 34824  // SetThingTypeProperties sets the ThingTypeProperties field's value.
 34825  func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
 34826  	s.ThingTypeProperties = v
 34827  	return s
 34828  }
 34829  
 34830  // The output of the CreateThingType operation.
 34831  type CreateThingTypeOutput struct {
 34832  	_ struct{} `type:"structure"`
 34833  
 34834  	// The Amazon Resource Name (ARN) of the thing type.
 34835  	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
 34836  
 34837  	// The thing type ID.
 34838  	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
 34839  
 34840  	// The name of the thing type.
 34841  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 34842  }
 34843  
 34844  // String returns the string representation.
 34845  //
 34846  // API parameter values that are decorated as "sensitive" in the API will not
 34847  // be included in the string output. The member name will be present, but the
 34848  // value will be replaced with "sensitive".
 34849  func (s CreateThingTypeOutput) String() string {
 34850  	return awsutil.Prettify(s)
 34851  }
 34852  
 34853  // GoString returns the string representation.
 34854  //
 34855  // API parameter values that are decorated as "sensitive" in the API will not
 34856  // be included in the string output. The member name will be present, but the
 34857  // value will be replaced with "sensitive".
 34858  func (s CreateThingTypeOutput) GoString() string {
 34859  	return s.String()
 34860  }
 34861  
 34862  // SetThingTypeArn sets the ThingTypeArn field's value.
 34863  func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
 34864  	s.ThingTypeArn = &v
 34865  	return s
 34866  }
 34867  
 34868  // SetThingTypeId sets the ThingTypeId field's value.
 34869  func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
 34870  	s.ThingTypeId = &v
 34871  	return s
 34872  }
 34873  
 34874  // SetThingTypeName sets the ThingTypeName field's value.
 34875  func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
 34876  	s.ThingTypeName = &v
 34877  	return s
 34878  }
 34879  
 34880  type CreateTopicRuleDestinationInput struct {
 34881  	_ struct{} `type:"structure"`
 34882  
 34883  	// The topic rule destination configuration.
 34884  	//
 34885  	// DestinationConfiguration is a required field
 34886  	DestinationConfiguration *TopicRuleDestinationConfiguration `locationName:"destinationConfiguration" type:"structure" required:"true"`
 34887  }
 34888  
 34889  // String returns the string representation.
 34890  //
 34891  // API parameter values that are decorated as "sensitive" in the API will not
 34892  // be included in the string output. The member name will be present, but the
 34893  // value will be replaced with "sensitive".
 34894  func (s CreateTopicRuleDestinationInput) String() string {
 34895  	return awsutil.Prettify(s)
 34896  }
 34897  
 34898  // GoString returns the string representation.
 34899  //
 34900  // API parameter values that are decorated as "sensitive" in the API will not
 34901  // be included in the string output. The member name will be present, but the
 34902  // value will be replaced with "sensitive".
 34903  func (s CreateTopicRuleDestinationInput) GoString() string {
 34904  	return s.String()
 34905  }
 34906  
 34907  // Validate inspects the fields of the type to determine if they are valid.
 34908  func (s *CreateTopicRuleDestinationInput) Validate() error {
 34909  	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleDestinationInput"}
 34910  	if s.DestinationConfiguration == nil {
 34911  		invalidParams.Add(request.NewErrParamRequired("DestinationConfiguration"))
 34912  	}
 34913  	if s.DestinationConfiguration != nil {
 34914  		if err := s.DestinationConfiguration.Validate(); err != nil {
 34915  			invalidParams.AddNested("DestinationConfiguration", err.(request.ErrInvalidParams))
 34916  		}
 34917  	}
 34918  
 34919  	if invalidParams.Len() > 0 {
 34920  		return invalidParams
 34921  	}
 34922  	return nil
 34923  }
 34924  
 34925  // SetDestinationConfiguration sets the DestinationConfiguration field's value.
 34926  func (s *CreateTopicRuleDestinationInput) SetDestinationConfiguration(v *TopicRuleDestinationConfiguration) *CreateTopicRuleDestinationInput {
 34927  	s.DestinationConfiguration = v
 34928  	return s
 34929  }
 34930  
 34931  type CreateTopicRuleDestinationOutput struct {
 34932  	_ struct{} `type:"structure"`
 34933  
 34934  	// The topic rule destination.
 34935  	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
 34936  }
 34937  
 34938  // String returns the string representation.
 34939  //
 34940  // API parameter values that are decorated as "sensitive" in the API will not
 34941  // be included in the string output. The member name will be present, but the
 34942  // value will be replaced with "sensitive".
 34943  func (s CreateTopicRuleDestinationOutput) String() string {
 34944  	return awsutil.Prettify(s)
 34945  }
 34946  
 34947  // GoString returns the string representation.
 34948  //
 34949  // API parameter values that are decorated as "sensitive" in the API will not
 34950  // be included in the string output. The member name will be present, but the
 34951  // value will be replaced with "sensitive".
 34952  func (s CreateTopicRuleDestinationOutput) GoString() string {
 34953  	return s.String()
 34954  }
 34955  
 34956  // SetTopicRuleDestination sets the TopicRuleDestination field's value.
 34957  func (s *CreateTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *CreateTopicRuleDestinationOutput {
 34958  	s.TopicRuleDestination = v
 34959  	return s
 34960  }
 34961  
 34962  // The input for the CreateTopicRule operation.
 34963  type CreateTopicRuleInput struct {
 34964  	_ struct{} `type:"structure" payload:"TopicRulePayload"`
 34965  
 34966  	// The name of the rule.
 34967  	//
 34968  	// RuleName is a required field
 34969  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
 34970  
 34971  	// Metadata which can be used to manage the topic rule.
 34972  	//
 34973  	// For URI Request parameters use format: ...key1=value1&key2=value2...
 34974  	//
 34975  	// For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
 34976  	//
 34977  	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
 34978  	Tags *string `location:"header" locationName:"x-amz-tagging" type:"string"`
 34979  
 34980  	// The rule payload.
 34981  	//
 34982  	// TopicRulePayload is a required field
 34983  	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
 34984  }
 34985  
 34986  // String returns the string representation.
 34987  //
 34988  // API parameter values that are decorated as "sensitive" in the API will not
 34989  // be included in the string output. The member name will be present, but the
 34990  // value will be replaced with "sensitive".
 34991  func (s CreateTopicRuleInput) String() string {
 34992  	return awsutil.Prettify(s)
 34993  }
 34994  
 34995  // GoString returns the string representation.
 34996  //
 34997  // API parameter values that are decorated as "sensitive" in the API will not
 34998  // be included in the string output. The member name will be present, but the
 34999  // value will be replaced with "sensitive".
 35000  func (s CreateTopicRuleInput) GoString() string {
 35001  	return s.String()
 35002  }
 35003  
 35004  // Validate inspects the fields of the type to determine if they are valid.
 35005  func (s *CreateTopicRuleInput) Validate() error {
 35006  	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
 35007  	if s.RuleName == nil {
 35008  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
 35009  	}
 35010  	if s.RuleName != nil && len(*s.RuleName) < 1 {
 35011  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
 35012  	}
 35013  	if s.TopicRulePayload == nil {
 35014  		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
 35015  	}
 35016  	if s.TopicRulePayload != nil {
 35017  		if err := s.TopicRulePayload.Validate(); err != nil {
 35018  			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
 35019  		}
 35020  	}
 35021  
 35022  	if invalidParams.Len() > 0 {
 35023  		return invalidParams
 35024  	}
 35025  	return nil
 35026  }
 35027  
 35028  // SetRuleName sets the RuleName field's value.
 35029  func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
 35030  	s.RuleName = &v
 35031  	return s
 35032  }
 35033  
 35034  // SetTags sets the Tags field's value.
 35035  func (s *CreateTopicRuleInput) SetTags(v string) *CreateTopicRuleInput {
 35036  	s.Tags = &v
 35037  	return s
 35038  }
 35039  
 35040  // SetTopicRulePayload sets the TopicRulePayload field's value.
 35041  func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
 35042  	s.TopicRulePayload = v
 35043  	return s
 35044  }
 35045  
 35046  type CreateTopicRuleOutput struct {
 35047  	_ struct{} `type:"structure" nopayload:"true"`
 35048  }
 35049  
 35050  // String returns the string representation.
 35051  //
 35052  // API parameter values that are decorated as "sensitive" in the API will not
 35053  // be included in the string output. The member name will be present, but the
 35054  // value will be replaced with "sensitive".
 35055  func (s CreateTopicRuleOutput) String() string {
 35056  	return awsutil.Prettify(s)
 35057  }
 35058  
 35059  // GoString returns the string representation.
 35060  //
 35061  // API parameter values that are decorated as "sensitive" in the API will not
 35062  // be included in the string output. The member name will be present, but the
 35063  // value will be replaced with "sensitive".
 35064  func (s CreateTopicRuleOutput) GoString() string {
 35065  	return s.String()
 35066  }
 35067  
 35068  // Describes a custom method used to code sign a file.
 35069  type CustomCodeSigning struct {
 35070  	_ struct{} `type:"structure"`
 35071  
 35072  	// The certificate chain.
 35073  	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
 35074  
 35075  	// The hash algorithm used to code sign the file.
 35076  	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
 35077  
 35078  	// The signature for the file.
 35079  	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
 35080  
 35081  	// The signature algorithm used to code sign the file.
 35082  	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
 35083  }
 35084  
 35085  // String returns the string representation.
 35086  //
 35087  // API parameter values that are decorated as "sensitive" in the API will not
 35088  // be included in the string output. The member name will be present, but the
 35089  // value will be replaced with "sensitive".
 35090  func (s CustomCodeSigning) String() string {
 35091  	return awsutil.Prettify(s)
 35092  }
 35093  
 35094  // GoString returns the string representation.
 35095  //
 35096  // API parameter values that are decorated as "sensitive" in the API will not
 35097  // be included in the string output. The member name will be present, but the
 35098  // value will be replaced with "sensitive".
 35099  func (s CustomCodeSigning) GoString() string {
 35100  	return s.String()
 35101  }
 35102  
 35103  // SetCertificateChain sets the CertificateChain field's value.
 35104  func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
 35105  	s.CertificateChain = v
 35106  	return s
 35107  }
 35108  
 35109  // SetHashAlgorithm sets the HashAlgorithm field's value.
 35110  func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
 35111  	s.HashAlgorithm = &v
 35112  	return s
 35113  }
 35114  
 35115  // SetSignature sets the Signature field's value.
 35116  func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
 35117  	s.Signature = v
 35118  	return s
 35119  }
 35120  
 35121  // SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
 35122  func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
 35123  	s.SignatureAlgorithm = &v
 35124  	return s
 35125  }
 35126  
 35127  type DeleteAccountAuditConfigurationInput struct {
 35128  	_ struct{} `type:"structure" nopayload:"true"`
 35129  
 35130  	// If true, all scheduled audits are deleted.
 35131  	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
 35132  }
 35133  
 35134  // String returns the string representation.
 35135  //
 35136  // API parameter values that are decorated as "sensitive" in the API will not
 35137  // be included in the string output. The member name will be present, but the
 35138  // value will be replaced with "sensitive".
 35139  func (s DeleteAccountAuditConfigurationInput) String() string {
 35140  	return awsutil.Prettify(s)
 35141  }
 35142  
 35143  // GoString returns the string representation.
 35144  //
 35145  // API parameter values that are decorated as "sensitive" in the API will not
 35146  // be included in the string output. The member name will be present, but the
 35147  // value will be replaced with "sensitive".
 35148  func (s DeleteAccountAuditConfigurationInput) GoString() string {
 35149  	return s.String()
 35150  }
 35151  
 35152  // SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
 35153  func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
 35154  	s.DeleteScheduledAudits = &v
 35155  	return s
 35156  }
 35157  
 35158  type DeleteAccountAuditConfigurationOutput struct {
 35159  	_ struct{} `type:"structure" nopayload:"true"`
 35160  }
 35161  
 35162  // String returns the string representation.
 35163  //
 35164  // API parameter values that are decorated as "sensitive" in the API will not
 35165  // be included in the string output. The member name will be present, but the
 35166  // value will be replaced with "sensitive".
 35167  func (s DeleteAccountAuditConfigurationOutput) String() string {
 35168  	return awsutil.Prettify(s)
 35169  }
 35170  
 35171  // GoString returns the string representation.
 35172  //
 35173  // API parameter values that are decorated as "sensitive" in the API will not
 35174  // be included in the string output. The member name will be present, but the
 35175  // value will be replaced with "sensitive".
 35176  func (s DeleteAccountAuditConfigurationOutput) GoString() string {
 35177  	return s.String()
 35178  }
 35179  
 35180  type DeleteAuditSuppressionInput struct {
 35181  	_ struct{} `type:"structure"`
 35182  
 35183  	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
 35184  	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 35185  	// to select which checks are enabled.)
 35186  	//
 35187  	// CheckName is a required field
 35188  	CheckName *string `locationName:"checkName" type:"string" required:"true"`
 35189  
 35190  	// Information that identifies the noncompliant resource.
 35191  	//
 35192  	// ResourceIdentifier is a required field
 35193  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
 35194  }
 35195  
 35196  // String returns the string representation.
 35197  //
 35198  // API parameter values that are decorated as "sensitive" in the API will not
 35199  // be included in the string output. The member name will be present, but the
 35200  // value will be replaced with "sensitive".
 35201  func (s DeleteAuditSuppressionInput) String() string {
 35202  	return awsutil.Prettify(s)
 35203  }
 35204  
 35205  // GoString returns the string representation.
 35206  //
 35207  // API parameter values that are decorated as "sensitive" in the API will not
 35208  // be included in the string output. The member name will be present, but the
 35209  // value will be replaced with "sensitive".
 35210  func (s DeleteAuditSuppressionInput) GoString() string {
 35211  	return s.String()
 35212  }
 35213  
 35214  // Validate inspects the fields of the type to determine if they are valid.
 35215  func (s *DeleteAuditSuppressionInput) Validate() error {
 35216  	invalidParams := request.ErrInvalidParams{Context: "DeleteAuditSuppressionInput"}
 35217  	if s.CheckName == nil {
 35218  		invalidParams.Add(request.NewErrParamRequired("CheckName"))
 35219  	}
 35220  	if s.ResourceIdentifier == nil {
 35221  		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
 35222  	}
 35223  	if s.ResourceIdentifier != nil {
 35224  		if err := s.ResourceIdentifier.Validate(); err != nil {
 35225  			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
 35226  		}
 35227  	}
 35228  
 35229  	if invalidParams.Len() > 0 {
 35230  		return invalidParams
 35231  	}
 35232  	return nil
 35233  }
 35234  
 35235  // SetCheckName sets the CheckName field's value.
 35236  func (s *DeleteAuditSuppressionInput) SetCheckName(v string) *DeleteAuditSuppressionInput {
 35237  	s.CheckName = &v
 35238  	return s
 35239  }
 35240  
 35241  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 35242  func (s *DeleteAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DeleteAuditSuppressionInput {
 35243  	s.ResourceIdentifier = v
 35244  	return s
 35245  }
 35246  
 35247  type DeleteAuditSuppressionOutput struct {
 35248  	_ struct{} `type:"structure" nopayload:"true"`
 35249  }
 35250  
 35251  // String returns the string representation.
 35252  //
 35253  // API parameter values that are decorated as "sensitive" in the API will not
 35254  // be included in the string output. The member name will be present, but the
 35255  // value will be replaced with "sensitive".
 35256  func (s DeleteAuditSuppressionOutput) String() string {
 35257  	return awsutil.Prettify(s)
 35258  }
 35259  
 35260  // GoString returns the string representation.
 35261  //
 35262  // API parameter values that are decorated as "sensitive" in the API will not
 35263  // be included in the string output. The member name will be present, but the
 35264  // value will be replaced with "sensitive".
 35265  func (s DeleteAuditSuppressionOutput) GoString() string {
 35266  	return s.String()
 35267  }
 35268  
 35269  type DeleteAuthorizerInput struct {
 35270  	_ struct{} `type:"structure" nopayload:"true"`
 35271  
 35272  	// The name of the authorizer to delete.
 35273  	//
 35274  	// AuthorizerName is a required field
 35275  	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
 35276  }
 35277  
 35278  // String returns the string representation.
 35279  //
 35280  // API parameter values that are decorated as "sensitive" in the API will not
 35281  // be included in the string output. The member name will be present, but the
 35282  // value will be replaced with "sensitive".
 35283  func (s DeleteAuthorizerInput) String() string {
 35284  	return awsutil.Prettify(s)
 35285  }
 35286  
 35287  // GoString returns the string representation.
 35288  //
 35289  // API parameter values that are decorated as "sensitive" in the API will not
 35290  // be included in the string output. The member name will be present, but the
 35291  // value will be replaced with "sensitive".
 35292  func (s DeleteAuthorizerInput) GoString() string {
 35293  	return s.String()
 35294  }
 35295  
 35296  // Validate inspects the fields of the type to determine if they are valid.
 35297  func (s *DeleteAuthorizerInput) Validate() error {
 35298  	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
 35299  	if s.AuthorizerName == nil {
 35300  		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
 35301  	}
 35302  	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
 35303  		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
 35304  	}
 35305  
 35306  	if invalidParams.Len() > 0 {
 35307  		return invalidParams
 35308  	}
 35309  	return nil
 35310  }
 35311  
 35312  // SetAuthorizerName sets the AuthorizerName field's value.
 35313  func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
 35314  	s.AuthorizerName = &v
 35315  	return s
 35316  }
 35317  
 35318  type DeleteAuthorizerOutput struct {
 35319  	_ struct{} `type:"structure" nopayload:"true"`
 35320  }
 35321  
 35322  // String returns the string representation.
 35323  //
 35324  // API parameter values that are decorated as "sensitive" in the API will not
 35325  // be included in the string output. The member name will be present, but the
 35326  // value will be replaced with "sensitive".
 35327  func (s DeleteAuthorizerOutput) String() string {
 35328  	return awsutil.Prettify(s)
 35329  }
 35330  
 35331  // GoString returns the string representation.
 35332  //
 35333  // API parameter values that are decorated as "sensitive" in the API will not
 35334  // be included in the string output. The member name will be present, but the
 35335  // value will be replaced with "sensitive".
 35336  func (s DeleteAuthorizerOutput) GoString() string {
 35337  	return s.String()
 35338  }
 35339  
 35340  type DeleteBillingGroupInput struct {
 35341  	_ struct{} `type:"structure" nopayload:"true"`
 35342  
 35343  	// The name of the billing group.
 35344  	//
 35345  	// BillingGroupName is a required field
 35346  	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
 35347  
 35348  	// The expected version of the billing group. If the version of the billing
 35349  	// group does not match the expected version specified in the request, the DeleteBillingGroup
 35350  	// request is rejected with a VersionConflictException.
 35351  	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
 35352  }
 35353  
 35354  // String returns the string representation.
 35355  //
 35356  // API parameter values that are decorated as "sensitive" in the API will not
 35357  // be included in the string output. The member name will be present, but the
 35358  // value will be replaced with "sensitive".
 35359  func (s DeleteBillingGroupInput) String() string {
 35360  	return awsutil.Prettify(s)
 35361  }
 35362  
 35363  // GoString returns the string representation.
 35364  //
 35365  // API parameter values that are decorated as "sensitive" in the API will not
 35366  // be included in the string output. The member name will be present, but the
 35367  // value will be replaced with "sensitive".
 35368  func (s DeleteBillingGroupInput) GoString() string {
 35369  	return s.String()
 35370  }
 35371  
 35372  // Validate inspects the fields of the type to determine if they are valid.
 35373  func (s *DeleteBillingGroupInput) Validate() error {
 35374  	invalidParams := request.ErrInvalidParams{Context: "DeleteBillingGroupInput"}
 35375  	if s.BillingGroupName == nil {
 35376  		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
 35377  	}
 35378  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 35379  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 35380  	}
 35381  
 35382  	if invalidParams.Len() > 0 {
 35383  		return invalidParams
 35384  	}
 35385  	return nil
 35386  }
 35387  
 35388  // SetBillingGroupName sets the BillingGroupName field's value.
 35389  func (s *DeleteBillingGroupInput) SetBillingGroupName(v string) *DeleteBillingGroupInput {
 35390  	s.BillingGroupName = &v
 35391  	return s
 35392  }
 35393  
 35394  // SetExpectedVersion sets the ExpectedVersion field's value.
 35395  func (s *DeleteBillingGroupInput) SetExpectedVersion(v int64) *DeleteBillingGroupInput {
 35396  	s.ExpectedVersion = &v
 35397  	return s
 35398  }
 35399  
 35400  type DeleteBillingGroupOutput struct {
 35401  	_ struct{} `type:"structure" nopayload:"true"`
 35402  }
 35403  
 35404  // String returns the string representation.
 35405  //
 35406  // API parameter values that are decorated as "sensitive" in the API will not
 35407  // be included in the string output. The member name will be present, but the
 35408  // value will be replaced with "sensitive".
 35409  func (s DeleteBillingGroupOutput) String() string {
 35410  	return awsutil.Prettify(s)
 35411  }
 35412  
 35413  // GoString returns the string representation.
 35414  //
 35415  // API parameter values that are decorated as "sensitive" in the API will not
 35416  // be included in the string output. The member name will be present, but the
 35417  // value will be replaced with "sensitive".
 35418  func (s DeleteBillingGroupOutput) GoString() string {
 35419  	return s.String()
 35420  }
 35421  
 35422  // Input for the DeleteCACertificate operation.
 35423  type DeleteCACertificateInput struct {
 35424  	_ struct{} `type:"structure" nopayload:"true"`
 35425  
 35426  	// The ID of the certificate to delete. (The last part of the certificate ARN
 35427  	// contains the certificate ID.)
 35428  	//
 35429  	// CertificateId is a required field
 35430  	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
 35431  }
 35432  
 35433  // String returns the string representation.
 35434  //
 35435  // API parameter values that are decorated as "sensitive" in the API will not
 35436  // be included in the string output. The member name will be present, but the
 35437  // value will be replaced with "sensitive".
 35438  func (s DeleteCACertificateInput) String() string {
 35439  	return awsutil.Prettify(s)
 35440  }
 35441  
 35442  // GoString returns the string representation.
 35443  //
 35444  // API parameter values that are decorated as "sensitive" in the API will not
 35445  // be included in the string output. The member name will be present, but the
 35446  // value will be replaced with "sensitive".
 35447  func (s DeleteCACertificateInput) GoString() string {
 35448  	return s.String()
 35449  }
 35450  
 35451  // Validate inspects the fields of the type to determine if they are valid.
 35452  func (s *DeleteCACertificateInput) Validate() error {
 35453  	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
 35454  	if s.CertificateId == nil {
 35455  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 35456  	}
 35457  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 35458  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 35459  	}
 35460  
 35461  	if invalidParams.Len() > 0 {
 35462  		return invalidParams
 35463  	}
 35464  	return nil
 35465  }
 35466  
 35467  // SetCertificateId sets the CertificateId field's value.
 35468  func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
 35469  	s.CertificateId = &v
 35470  	return s
 35471  }
 35472  
 35473  // The output for the DeleteCACertificate operation.
 35474  type DeleteCACertificateOutput struct {
 35475  	_ struct{} `type:"structure" nopayload:"true"`
 35476  }
 35477  
 35478  // String returns the string representation.
 35479  //
 35480  // API parameter values that are decorated as "sensitive" in the API will not
 35481  // be included in the string output. The member name will be present, but the
 35482  // value will be replaced with "sensitive".
 35483  func (s DeleteCACertificateOutput) String() string {
 35484  	return awsutil.Prettify(s)
 35485  }
 35486  
 35487  // GoString returns the string representation.
 35488  //
 35489  // API parameter values that are decorated as "sensitive" in the API will not
 35490  // be included in the string output. The member name will be present, but the
 35491  // value will be replaced with "sensitive".
 35492  func (s DeleteCACertificateOutput) GoString() string {
 35493  	return s.String()
 35494  }
 35495  
 35496  // The input for the DeleteCertificate operation.
 35497  type DeleteCertificateInput struct {
 35498  	_ struct{} `type:"structure" nopayload:"true"`
 35499  
 35500  	// The ID of the certificate. (The last part of the certificate ARN contains
 35501  	// the certificate ID.)
 35502  	//
 35503  	// CertificateId is a required field
 35504  	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
 35505  
 35506  	// Forces the deletion of a certificate if it is inactive and is not attached
 35507  	// to an IoT thing.
 35508  	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
 35509  }
 35510  
 35511  // String returns the string representation.
 35512  //
 35513  // API parameter values that are decorated as "sensitive" in the API will not
 35514  // be included in the string output. The member name will be present, but the
 35515  // value will be replaced with "sensitive".
 35516  func (s DeleteCertificateInput) String() string {
 35517  	return awsutil.Prettify(s)
 35518  }
 35519  
 35520  // GoString returns the string representation.
 35521  //
 35522  // API parameter values that are decorated as "sensitive" in the API will not
 35523  // be included in the string output. The member name will be present, but the
 35524  // value will be replaced with "sensitive".
 35525  func (s DeleteCertificateInput) GoString() string {
 35526  	return s.String()
 35527  }
 35528  
 35529  // Validate inspects the fields of the type to determine if they are valid.
 35530  func (s *DeleteCertificateInput) Validate() error {
 35531  	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
 35532  	if s.CertificateId == nil {
 35533  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 35534  	}
 35535  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 35536  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 35537  	}
 35538  
 35539  	if invalidParams.Len() > 0 {
 35540  		return invalidParams
 35541  	}
 35542  	return nil
 35543  }
 35544  
 35545  // SetCertificateId sets the CertificateId field's value.
 35546  func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
 35547  	s.CertificateId = &v
 35548  	return s
 35549  }
 35550  
 35551  // SetForceDelete sets the ForceDelete field's value.
 35552  func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
 35553  	s.ForceDelete = &v
 35554  	return s
 35555  }
 35556  
 35557  type DeleteCertificateOutput struct {
 35558  	_ struct{} `type:"structure" nopayload:"true"`
 35559  }
 35560  
 35561  // String returns the string representation.
 35562  //
 35563  // API parameter values that are decorated as "sensitive" in the API will not
 35564  // be included in the string output. The member name will be present, but the
 35565  // value will be replaced with "sensitive".
 35566  func (s DeleteCertificateOutput) String() string {
 35567  	return awsutil.Prettify(s)
 35568  }
 35569  
 35570  // GoString returns the string representation.
 35571  //
 35572  // API parameter values that are decorated as "sensitive" in the API will not
 35573  // be included in the string output. The member name will be present, but the
 35574  // value will be replaced with "sensitive".
 35575  func (s DeleteCertificateOutput) GoString() string {
 35576  	return s.String()
 35577  }
 35578  
 35579  // You can't delete the resource because it is attached to one or more resources.
 35580  type DeleteConflictException struct {
 35581  	_            struct{}                  `type:"structure"`
 35582  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 35583  
 35584  	// The message for the exception.
 35585  	Message_ *string `locationName:"message" type:"string"`
 35586  }
 35587  
 35588  // String returns the string representation.
 35589  //
 35590  // API parameter values that are decorated as "sensitive" in the API will not
 35591  // be included in the string output. The member name will be present, but the
 35592  // value will be replaced with "sensitive".
 35593  func (s DeleteConflictException) String() string {
 35594  	return awsutil.Prettify(s)
 35595  }
 35596  
 35597  // GoString returns the string representation.
 35598  //
 35599  // API parameter values that are decorated as "sensitive" in the API will not
 35600  // be included in the string output. The member name will be present, but the
 35601  // value will be replaced with "sensitive".
 35602  func (s DeleteConflictException) GoString() string {
 35603  	return s.String()
 35604  }
 35605  
 35606  func newErrorDeleteConflictException(v protocol.ResponseMetadata) error {
 35607  	return &DeleteConflictException{
 35608  		RespMetadata: v,
 35609  	}
 35610  }
 35611  
 35612  // Code returns the exception type name.
 35613  func (s *DeleteConflictException) Code() string {
 35614  	return "DeleteConflictException"
 35615  }
 35616  
 35617  // Message returns the exception's message.
 35618  func (s *DeleteConflictException) Message() string {
 35619  	if s.Message_ != nil {
 35620  		return *s.Message_
 35621  	}
 35622  	return ""
 35623  }
 35624  
 35625  // OrigErr always returns nil, satisfies awserr.Error interface.
 35626  func (s *DeleteConflictException) OrigErr() error {
 35627  	return nil
 35628  }
 35629  
 35630  func (s *DeleteConflictException) Error() string {
 35631  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 35632  }
 35633  
 35634  // Status code returns the HTTP status code for the request's response error.
 35635  func (s *DeleteConflictException) StatusCode() int {
 35636  	return s.RespMetadata.StatusCode
 35637  }
 35638  
 35639  // RequestID returns the service's response RequestID for request.
 35640  func (s *DeleteConflictException) RequestID() string {
 35641  	return s.RespMetadata.RequestID
 35642  }
 35643  
 35644  type DeleteCustomMetricInput struct {
 35645  	_ struct{} `type:"structure" nopayload:"true"`
 35646  
 35647  	// The name of the custom metric.
 35648  	//
 35649  	// MetricName is a required field
 35650  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 35651  }
 35652  
 35653  // String returns the string representation.
 35654  //
 35655  // API parameter values that are decorated as "sensitive" in the API will not
 35656  // be included in the string output. The member name will be present, but the
 35657  // value will be replaced with "sensitive".
 35658  func (s DeleteCustomMetricInput) String() string {
 35659  	return awsutil.Prettify(s)
 35660  }
 35661  
 35662  // GoString returns the string representation.
 35663  //
 35664  // API parameter values that are decorated as "sensitive" in the API will not
 35665  // be included in the string output. The member name will be present, but the
 35666  // value will be replaced with "sensitive".
 35667  func (s DeleteCustomMetricInput) GoString() string {
 35668  	return s.String()
 35669  }
 35670  
 35671  // Validate inspects the fields of the type to determine if they are valid.
 35672  func (s *DeleteCustomMetricInput) Validate() error {
 35673  	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomMetricInput"}
 35674  	if s.MetricName == nil {
 35675  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 35676  	}
 35677  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 35678  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 35679  	}
 35680  
 35681  	if invalidParams.Len() > 0 {
 35682  		return invalidParams
 35683  	}
 35684  	return nil
 35685  }
 35686  
 35687  // SetMetricName sets the MetricName field's value.
 35688  func (s *DeleteCustomMetricInput) SetMetricName(v string) *DeleteCustomMetricInput {
 35689  	s.MetricName = &v
 35690  	return s
 35691  }
 35692  
 35693  type DeleteCustomMetricOutput struct {
 35694  	_ struct{} `type:"structure" nopayload:"true"`
 35695  }
 35696  
 35697  // String returns the string representation.
 35698  //
 35699  // API parameter values that are decorated as "sensitive" in the API will not
 35700  // be included in the string output. The member name will be present, but the
 35701  // value will be replaced with "sensitive".
 35702  func (s DeleteCustomMetricOutput) String() string {
 35703  	return awsutil.Prettify(s)
 35704  }
 35705  
 35706  // GoString returns the string representation.
 35707  //
 35708  // API parameter values that are decorated as "sensitive" in the API will not
 35709  // be included in the string output. The member name will be present, but the
 35710  // value will be replaced with "sensitive".
 35711  func (s DeleteCustomMetricOutput) GoString() string {
 35712  	return s.String()
 35713  }
 35714  
 35715  type DeleteDimensionInput struct {
 35716  	_ struct{} `type:"structure" nopayload:"true"`
 35717  
 35718  	// The unique identifier for the dimension that you want to delete.
 35719  	//
 35720  	// Name is a required field
 35721  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 35722  }
 35723  
 35724  // String returns the string representation.
 35725  //
 35726  // API parameter values that are decorated as "sensitive" in the API will not
 35727  // be included in the string output. The member name will be present, but the
 35728  // value will be replaced with "sensitive".
 35729  func (s DeleteDimensionInput) String() string {
 35730  	return awsutil.Prettify(s)
 35731  }
 35732  
 35733  // GoString returns the string representation.
 35734  //
 35735  // API parameter values that are decorated as "sensitive" in the API will not
 35736  // be included in the string output. The member name will be present, but the
 35737  // value will be replaced with "sensitive".
 35738  func (s DeleteDimensionInput) GoString() string {
 35739  	return s.String()
 35740  }
 35741  
 35742  // Validate inspects the fields of the type to determine if they are valid.
 35743  func (s *DeleteDimensionInput) Validate() error {
 35744  	invalidParams := request.ErrInvalidParams{Context: "DeleteDimensionInput"}
 35745  	if s.Name == nil {
 35746  		invalidParams.Add(request.NewErrParamRequired("Name"))
 35747  	}
 35748  	if s.Name != nil && len(*s.Name) < 1 {
 35749  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 35750  	}
 35751  
 35752  	if invalidParams.Len() > 0 {
 35753  		return invalidParams
 35754  	}
 35755  	return nil
 35756  }
 35757  
 35758  // SetName sets the Name field's value.
 35759  func (s *DeleteDimensionInput) SetName(v string) *DeleteDimensionInput {
 35760  	s.Name = &v
 35761  	return s
 35762  }
 35763  
 35764  type DeleteDimensionOutput struct {
 35765  	_ struct{} `type:"structure" nopayload:"true"`
 35766  }
 35767  
 35768  // String returns the string representation.
 35769  //
 35770  // API parameter values that are decorated as "sensitive" in the API will not
 35771  // be included in the string output. The member name will be present, but the
 35772  // value will be replaced with "sensitive".
 35773  func (s DeleteDimensionOutput) String() string {
 35774  	return awsutil.Prettify(s)
 35775  }
 35776  
 35777  // GoString returns the string representation.
 35778  //
 35779  // API parameter values that are decorated as "sensitive" in the API will not
 35780  // be included in the string output. The member name will be present, but the
 35781  // value will be replaced with "sensitive".
 35782  func (s DeleteDimensionOutput) GoString() string {
 35783  	return s.String()
 35784  }
 35785  
 35786  type DeleteDomainConfigurationInput struct {
 35787  	_ struct{} `type:"structure" nopayload:"true"`
 35788  
 35789  	// The name of the domain configuration to be deleted.
 35790  	//
 35791  	// DomainConfigurationName is a required field
 35792  	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
 35793  }
 35794  
 35795  // String returns the string representation.
 35796  //
 35797  // API parameter values that are decorated as "sensitive" in the API will not
 35798  // be included in the string output. The member name will be present, but the
 35799  // value will be replaced with "sensitive".
 35800  func (s DeleteDomainConfigurationInput) String() string {
 35801  	return awsutil.Prettify(s)
 35802  }
 35803  
 35804  // GoString returns the string representation.
 35805  //
 35806  // API parameter values that are decorated as "sensitive" in the API will not
 35807  // be included in the string output. The member name will be present, but the
 35808  // value will be replaced with "sensitive".
 35809  func (s DeleteDomainConfigurationInput) GoString() string {
 35810  	return s.String()
 35811  }
 35812  
 35813  // Validate inspects the fields of the type to determine if they are valid.
 35814  func (s *DeleteDomainConfigurationInput) Validate() error {
 35815  	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"}
 35816  	if s.DomainConfigurationName == nil {
 35817  		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
 35818  	}
 35819  	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
 35820  		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
 35821  	}
 35822  
 35823  	if invalidParams.Len() > 0 {
 35824  		return invalidParams
 35825  	}
 35826  	return nil
 35827  }
 35828  
 35829  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 35830  func (s *DeleteDomainConfigurationInput) SetDomainConfigurationName(v string) *DeleteDomainConfigurationInput {
 35831  	s.DomainConfigurationName = &v
 35832  	return s
 35833  }
 35834  
 35835  type DeleteDomainConfigurationOutput struct {
 35836  	_ struct{} `type:"structure" nopayload:"true"`
 35837  }
 35838  
 35839  // String returns the string representation.
 35840  //
 35841  // API parameter values that are decorated as "sensitive" in the API will not
 35842  // be included in the string output. The member name will be present, but the
 35843  // value will be replaced with "sensitive".
 35844  func (s DeleteDomainConfigurationOutput) String() string {
 35845  	return awsutil.Prettify(s)
 35846  }
 35847  
 35848  // GoString returns the string representation.
 35849  //
 35850  // API parameter values that are decorated as "sensitive" in the API will not
 35851  // be included in the string output. The member name will be present, but the
 35852  // value will be replaced with "sensitive".
 35853  func (s DeleteDomainConfigurationOutput) GoString() string {
 35854  	return s.String()
 35855  }
 35856  
 35857  type DeleteDynamicThingGroupInput struct {
 35858  	_ struct{} `type:"structure" nopayload:"true"`
 35859  
 35860  	// The expected version of the dynamic thing group to delete.
 35861  	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
 35862  
 35863  	// The name of the dynamic thing group to delete.
 35864  	//
 35865  	// ThingGroupName is a required field
 35866  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 35867  }
 35868  
 35869  // String returns the string representation.
 35870  //
 35871  // API parameter values that are decorated as "sensitive" in the API will not
 35872  // be included in the string output. The member name will be present, but the
 35873  // value will be replaced with "sensitive".
 35874  func (s DeleteDynamicThingGroupInput) String() string {
 35875  	return awsutil.Prettify(s)
 35876  }
 35877  
 35878  // GoString returns the string representation.
 35879  //
 35880  // API parameter values that are decorated as "sensitive" in the API will not
 35881  // be included in the string output. The member name will be present, but the
 35882  // value will be replaced with "sensitive".
 35883  func (s DeleteDynamicThingGroupInput) GoString() string {
 35884  	return s.String()
 35885  }
 35886  
 35887  // Validate inspects the fields of the type to determine if they are valid.
 35888  func (s *DeleteDynamicThingGroupInput) Validate() error {
 35889  	invalidParams := request.ErrInvalidParams{Context: "DeleteDynamicThingGroupInput"}
 35890  	if s.ThingGroupName == nil {
 35891  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 35892  	}
 35893  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 35894  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 35895  	}
 35896  
 35897  	if invalidParams.Len() > 0 {
 35898  		return invalidParams
 35899  	}
 35900  	return nil
 35901  }
 35902  
 35903  // SetExpectedVersion sets the ExpectedVersion field's value.
 35904  func (s *DeleteDynamicThingGroupInput) SetExpectedVersion(v int64) *DeleteDynamicThingGroupInput {
 35905  	s.ExpectedVersion = &v
 35906  	return s
 35907  }
 35908  
 35909  // SetThingGroupName sets the ThingGroupName field's value.
 35910  func (s *DeleteDynamicThingGroupInput) SetThingGroupName(v string) *DeleteDynamicThingGroupInput {
 35911  	s.ThingGroupName = &v
 35912  	return s
 35913  }
 35914  
 35915  type DeleteDynamicThingGroupOutput struct {
 35916  	_ struct{} `type:"structure" nopayload:"true"`
 35917  }
 35918  
 35919  // String returns the string representation.
 35920  //
 35921  // API parameter values that are decorated as "sensitive" in the API will not
 35922  // be included in the string output. The member name will be present, but the
 35923  // value will be replaced with "sensitive".
 35924  func (s DeleteDynamicThingGroupOutput) String() string {
 35925  	return awsutil.Prettify(s)
 35926  }
 35927  
 35928  // GoString returns the string representation.
 35929  //
 35930  // API parameter values that are decorated as "sensitive" in the API will not
 35931  // be included in the string output. The member name will be present, but the
 35932  // value will be replaced with "sensitive".
 35933  func (s DeleteDynamicThingGroupOutput) GoString() string {
 35934  	return s.String()
 35935  }
 35936  
 35937  type DeleteFleetMetricInput struct {
 35938  	_ struct{} `type:"structure" nopayload:"true"`
 35939  
 35940  	// The expected version of the fleet metric to delete.
 35941  	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
 35942  
 35943  	// The name of the fleet metric to delete.
 35944  	//
 35945  	// MetricName is a required field
 35946  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 35947  }
 35948  
 35949  // String returns the string representation.
 35950  //
 35951  // API parameter values that are decorated as "sensitive" in the API will not
 35952  // be included in the string output. The member name will be present, but the
 35953  // value will be replaced with "sensitive".
 35954  func (s DeleteFleetMetricInput) String() string {
 35955  	return awsutil.Prettify(s)
 35956  }
 35957  
 35958  // GoString returns the string representation.
 35959  //
 35960  // API parameter values that are decorated as "sensitive" in the API will not
 35961  // be included in the string output. The member name will be present, but the
 35962  // value will be replaced with "sensitive".
 35963  func (s DeleteFleetMetricInput) GoString() string {
 35964  	return s.String()
 35965  }
 35966  
 35967  // Validate inspects the fields of the type to determine if they are valid.
 35968  func (s *DeleteFleetMetricInput) Validate() error {
 35969  	invalidParams := request.ErrInvalidParams{Context: "DeleteFleetMetricInput"}
 35970  	if s.MetricName == nil {
 35971  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 35972  	}
 35973  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 35974  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 35975  	}
 35976  
 35977  	if invalidParams.Len() > 0 {
 35978  		return invalidParams
 35979  	}
 35980  	return nil
 35981  }
 35982  
 35983  // SetExpectedVersion sets the ExpectedVersion field's value.
 35984  func (s *DeleteFleetMetricInput) SetExpectedVersion(v int64) *DeleteFleetMetricInput {
 35985  	s.ExpectedVersion = &v
 35986  	return s
 35987  }
 35988  
 35989  // SetMetricName sets the MetricName field's value.
 35990  func (s *DeleteFleetMetricInput) SetMetricName(v string) *DeleteFleetMetricInput {
 35991  	s.MetricName = &v
 35992  	return s
 35993  }
 35994  
 35995  type DeleteFleetMetricOutput struct {
 35996  	_ struct{} `type:"structure" nopayload:"true"`
 35997  }
 35998  
 35999  // String returns the string representation.
 36000  //
 36001  // API parameter values that are decorated as "sensitive" in the API will not
 36002  // be included in the string output. The member name will be present, but the
 36003  // value will be replaced with "sensitive".
 36004  func (s DeleteFleetMetricOutput) String() string {
 36005  	return awsutil.Prettify(s)
 36006  }
 36007  
 36008  // GoString returns the string representation.
 36009  //
 36010  // API parameter values that are decorated as "sensitive" in the API will not
 36011  // be included in the string output. The member name will be present, but the
 36012  // value will be replaced with "sensitive".
 36013  func (s DeleteFleetMetricOutput) GoString() string {
 36014  	return s.String()
 36015  }
 36016  
 36017  type DeleteJobExecutionInput struct {
 36018  	_ struct{} `type:"structure" nopayload:"true"`
 36019  
 36020  	// The ID of the job execution to be deleted. The executionNumber refers to
 36021  	// the execution of a particular job on a particular device.
 36022  	//
 36023  	// Note that once a job execution is deleted, the executionNumber may be reused
 36024  	// by IoT, so be sure you get and use the correct value here.
 36025  	//
 36026  	// ExecutionNumber is a required field
 36027  	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
 36028  
 36029  	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
 36030  	// Otherwise, you can only delete a job execution which is in a terminal state
 36031  	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
 36032  	// will occur. The default is false.
 36033  	//
 36034  	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
 36035  	// be unable to access job information or update the job execution status. Use
 36036  	// caution and ensure that the device is able to recover to a valid state.
 36037  	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
 36038  
 36039  	// The ID of the job whose execution on a particular device will be deleted.
 36040  	//
 36041  	// JobId is a required field
 36042  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 36043  
 36044  	// The namespace used to indicate that a job is a customer-managed job.
 36045  	//
 36046  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 36047  	// sends jobs notifications to MQTT topics that contain the value in the following
 36048  	// format.
 36049  	//
 36050  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 36051  	//
 36052  	// The namespaceId feature is in public preview.
 36053  	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
 36054  
 36055  	// The name of the thing whose job execution will be deleted.
 36056  	//
 36057  	// ThingName is a required field
 36058  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 36059  }
 36060  
 36061  // String returns the string representation.
 36062  //
 36063  // API parameter values that are decorated as "sensitive" in the API will not
 36064  // be included in the string output. The member name will be present, but the
 36065  // value will be replaced with "sensitive".
 36066  func (s DeleteJobExecutionInput) String() string {
 36067  	return awsutil.Prettify(s)
 36068  }
 36069  
 36070  // GoString returns the string representation.
 36071  //
 36072  // API parameter values that are decorated as "sensitive" in the API will not
 36073  // be included in the string output. The member name will be present, but the
 36074  // value will be replaced with "sensitive".
 36075  func (s DeleteJobExecutionInput) GoString() string {
 36076  	return s.String()
 36077  }
 36078  
 36079  // Validate inspects the fields of the type to determine if they are valid.
 36080  func (s *DeleteJobExecutionInput) Validate() error {
 36081  	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
 36082  	if s.ExecutionNumber == nil {
 36083  		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
 36084  	}
 36085  	if s.JobId == nil {
 36086  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 36087  	}
 36088  	if s.JobId != nil && len(*s.JobId) < 1 {
 36089  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 36090  	}
 36091  	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
 36092  		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
 36093  	}
 36094  	if s.ThingName == nil {
 36095  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 36096  	}
 36097  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 36098  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 36099  	}
 36100  
 36101  	if invalidParams.Len() > 0 {
 36102  		return invalidParams
 36103  	}
 36104  	return nil
 36105  }
 36106  
 36107  // SetExecutionNumber sets the ExecutionNumber field's value.
 36108  func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
 36109  	s.ExecutionNumber = &v
 36110  	return s
 36111  }
 36112  
 36113  // SetForce sets the Force field's value.
 36114  func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
 36115  	s.Force = &v
 36116  	return s
 36117  }
 36118  
 36119  // SetJobId sets the JobId field's value.
 36120  func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
 36121  	s.JobId = &v
 36122  	return s
 36123  }
 36124  
 36125  // SetNamespaceId sets the NamespaceId field's value.
 36126  func (s *DeleteJobExecutionInput) SetNamespaceId(v string) *DeleteJobExecutionInput {
 36127  	s.NamespaceId = &v
 36128  	return s
 36129  }
 36130  
 36131  // SetThingName sets the ThingName field's value.
 36132  func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
 36133  	s.ThingName = &v
 36134  	return s
 36135  }
 36136  
 36137  type DeleteJobExecutionOutput struct {
 36138  	_ struct{} `type:"structure" nopayload:"true"`
 36139  }
 36140  
 36141  // String returns the string representation.
 36142  //
 36143  // API parameter values that are decorated as "sensitive" in the API will not
 36144  // be included in the string output. The member name will be present, but the
 36145  // value will be replaced with "sensitive".
 36146  func (s DeleteJobExecutionOutput) String() string {
 36147  	return awsutil.Prettify(s)
 36148  }
 36149  
 36150  // GoString returns the string representation.
 36151  //
 36152  // API parameter values that are decorated as "sensitive" in the API will not
 36153  // be included in the string output. The member name will be present, but the
 36154  // value will be replaced with "sensitive".
 36155  func (s DeleteJobExecutionOutput) GoString() string {
 36156  	return s.String()
 36157  }
 36158  
 36159  type DeleteJobInput struct {
 36160  	_ struct{} `type:"structure" nopayload:"true"`
 36161  
 36162  	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
 36163  	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
 36164  	// or an exception will occur. The default is false.
 36165  	//
 36166  	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
 36167  	// the job to be unable to access job information or update the job execution
 36168  	// status. Use caution and ensure that each device executing a job which is
 36169  	// deleted is able to recover to a valid state.
 36170  	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
 36171  
 36172  	// The ID of the job to be deleted.
 36173  	//
 36174  	// After a job deletion is completed, you may reuse this jobId when you create
 36175  	// a new job. However, this is not recommended, and you must ensure that your
 36176  	// devices are not using the jobId to refer to the deleted job.
 36177  	//
 36178  	// JobId is a required field
 36179  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 36180  
 36181  	// The namespace used to indicate that a job is a customer-managed job.
 36182  	//
 36183  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 36184  	// sends jobs notifications to MQTT topics that contain the value in the following
 36185  	// format.
 36186  	//
 36187  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 36188  	//
 36189  	// The namespaceId feature is in public preview.
 36190  	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
 36191  }
 36192  
 36193  // String returns the string representation.
 36194  //
 36195  // API parameter values that are decorated as "sensitive" in the API will not
 36196  // be included in the string output. The member name will be present, but the
 36197  // value will be replaced with "sensitive".
 36198  func (s DeleteJobInput) String() string {
 36199  	return awsutil.Prettify(s)
 36200  }
 36201  
 36202  // GoString returns the string representation.
 36203  //
 36204  // API parameter values that are decorated as "sensitive" in the API will not
 36205  // be included in the string output. The member name will be present, but the
 36206  // value will be replaced with "sensitive".
 36207  func (s DeleteJobInput) GoString() string {
 36208  	return s.String()
 36209  }
 36210  
 36211  // Validate inspects the fields of the type to determine if they are valid.
 36212  func (s *DeleteJobInput) Validate() error {
 36213  	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
 36214  	if s.JobId == nil {
 36215  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 36216  	}
 36217  	if s.JobId != nil && len(*s.JobId) < 1 {
 36218  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 36219  	}
 36220  	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
 36221  		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
 36222  	}
 36223  
 36224  	if invalidParams.Len() > 0 {
 36225  		return invalidParams
 36226  	}
 36227  	return nil
 36228  }
 36229  
 36230  // SetForce sets the Force field's value.
 36231  func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
 36232  	s.Force = &v
 36233  	return s
 36234  }
 36235  
 36236  // SetJobId sets the JobId field's value.
 36237  func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
 36238  	s.JobId = &v
 36239  	return s
 36240  }
 36241  
 36242  // SetNamespaceId sets the NamespaceId field's value.
 36243  func (s *DeleteJobInput) SetNamespaceId(v string) *DeleteJobInput {
 36244  	s.NamespaceId = &v
 36245  	return s
 36246  }
 36247  
 36248  type DeleteJobOutput struct {
 36249  	_ struct{} `type:"structure" nopayload:"true"`
 36250  }
 36251  
 36252  // String returns the string representation.
 36253  //
 36254  // API parameter values that are decorated as "sensitive" in the API will not
 36255  // be included in the string output. The member name will be present, but the
 36256  // value will be replaced with "sensitive".
 36257  func (s DeleteJobOutput) String() string {
 36258  	return awsutil.Prettify(s)
 36259  }
 36260  
 36261  // GoString returns the string representation.
 36262  //
 36263  // API parameter values that are decorated as "sensitive" in the API will not
 36264  // be included in the string output. The member name will be present, but the
 36265  // value will be replaced with "sensitive".
 36266  func (s DeleteJobOutput) GoString() string {
 36267  	return s.String()
 36268  }
 36269  
 36270  type DeleteJobTemplateInput struct {
 36271  	_ struct{} `type:"structure" nopayload:"true"`
 36272  
 36273  	// The unique identifier of the job template to delete.
 36274  	//
 36275  	// JobTemplateId is a required field
 36276  	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
 36277  }
 36278  
 36279  // String returns the string representation.
 36280  //
 36281  // API parameter values that are decorated as "sensitive" in the API will not
 36282  // be included in the string output. The member name will be present, but the
 36283  // value will be replaced with "sensitive".
 36284  func (s DeleteJobTemplateInput) String() string {
 36285  	return awsutil.Prettify(s)
 36286  }
 36287  
 36288  // GoString returns the string representation.
 36289  //
 36290  // API parameter values that are decorated as "sensitive" in the API will not
 36291  // be included in the string output. The member name will be present, but the
 36292  // value will be replaced with "sensitive".
 36293  func (s DeleteJobTemplateInput) GoString() string {
 36294  	return s.String()
 36295  }
 36296  
 36297  // Validate inspects the fields of the type to determine if they are valid.
 36298  func (s *DeleteJobTemplateInput) Validate() error {
 36299  	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTemplateInput"}
 36300  	if s.JobTemplateId == nil {
 36301  		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
 36302  	}
 36303  	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
 36304  		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
 36305  	}
 36306  
 36307  	if invalidParams.Len() > 0 {
 36308  		return invalidParams
 36309  	}
 36310  	return nil
 36311  }
 36312  
 36313  // SetJobTemplateId sets the JobTemplateId field's value.
 36314  func (s *DeleteJobTemplateInput) SetJobTemplateId(v string) *DeleteJobTemplateInput {
 36315  	s.JobTemplateId = &v
 36316  	return s
 36317  }
 36318  
 36319  type DeleteJobTemplateOutput struct {
 36320  	_ struct{} `type:"structure" nopayload:"true"`
 36321  }
 36322  
 36323  // String returns the string representation.
 36324  //
 36325  // API parameter values that are decorated as "sensitive" in the API will not
 36326  // be included in the string output. The member name will be present, but the
 36327  // value will be replaced with "sensitive".
 36328  func (s DeleteJobTemplateOutput) String() string {
 36329  	return awsutil.Prettify(s)
 36330  }
 36331  
 36332  // GoString returns the string representation.
 36333  //
 36334  // API parameter values that are decorated as "sensitive" in the API will not
 36335  // be included in the string output. The member name will be present, but the
 36336  // value will be replaced with "sensitive".
 36337  func (s DeleteJobTemplateOutput) GoString() string {
 36338  	return s.String()
 36339  }
 36340  
 36341  type DeleteMitigationActionInput struct {
 36342  	_ struct{} `type:"structure" nopayload:"true"`
 36343  
 36344  	// The name of the mitigation action that you want to delete.
 36345  	//
 36346  	// ActionName is a required field
 36347  	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
 36348  }
 36349  
 36350  // String returns the string representation.
 36351  //
 36352  // API parameter values that are decorated as "sensitive" in the API will not
 36353  // be included in the string output. The member name will be present, but the
 36354  // value will be replaced with "sensitive".
 36355  func (s DeleteMitigationActionInput) String() string {
 36356  	return awsutil.Prettify(s)
 36357  }
 36358  
 36359  // GoString returns the string representation.
 36360  //
 36361  // API parameter values that are decorated as "sensitive" in the API will not
 36362  // be included in the string output. The member name will be present, but the
 36363  // value will be replaced with "sensitive".
 36364  func (s DeleteMitigationActionInput) GoString() string {
 36365  	return s.String()
 36366  }
 36367  
 36368  // Validate inspects the fields of the type to determine if they are valid.
 36369  func (s *DeleteMitigationActionInput) Validate() error {
 36370  	invalidParams := request.ErrInvalidParams{Context: "DeleteMitigationActionInput"}
 36371  	if s.ActionName == nil {
 36372  		invalidParams.Add(request.NewErrParamRequired("ActionName"))
 36373  	}
 36374  	if s.ActionName != nil && len(*s.ActionName) < 1 {
 36375  		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
 36376  	}
 36377  
 36378  	if invalidParams.Len() > 0 {
 36379  		return invalidParams
 36380  	}
 36381  	return nil
 36382  }
 36383  
 36384  // SetActionName sets the ActionName field's value.
 36385  func (s *DeleteMitigationActionInput) SetActionName(v string) *DeleteMitigationActionInput {
 36386  	s.ActionName = &v
 36387  	return s
 36388  }
 36389  
 36390  type DeleteMitigationActionOutput struct {
 36391  	_ struct{} `type:"structure" nopayload:"true"`
 36392  }
 36393  
 36394  // String returns the string representation.
 36395  //
 36396  // API parameter values that are decorated as "sensitive" in the API will not
 36397  // be included in the string output. The member name will be present, but the
 36398  // value will be replaced with "sensitive".
 36399  func (s DeleteMitigationActionOutput) String() string {
 36400  	return awsutil.Prettify(s)
 36401  }
 36402  
 36403  // GoString returns the string representation.
 36404  //
 36405  // API parameter values that are decorated as "sensitive" in the API will not
 36406  // be included in the string output. The member name will be present, but the
 36407  // value will be replaced with "sensitive".
 36408  func (s DeleteMitigationActionOutput) GoString() string {
 36409  	return s.String()
 36410  }
 36411  
 36412  type DeleteOTAUpdateInput struct {
 36413  	_ struct{} `type:"structure" nopayload:"true"`
 36414  
 36415  	// When true, the stream created by the OTAUpdate process is deleted when the
 36416  	// OTA update is deleted. Ignored if the stream specified in the OTAUpdate is
 36417  	// supplied by the user.
 36418  	DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"`
 36419  
 36420  	// When true, deletes the IoT job created by the OTAUpdate process even if it
 36421  	// is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED"
 36422  	// or "CANCELED") an exception will occur. The default is false.
 36423  	ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"`
 36424  
 36425  	// The ID of the OTA update to delete.
 36426  	//
 36427  	// OtaUpdateId is a required field
 36428  	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
 36429  }
 36430  
 36431  // String returns the string representation.
 36432  //
 36433  // API parameter values that are decorated as "sensitive" in the API will not
 36434  // be included in the string output. The member name will be present, but the
 36435  // value will be replaced with "sensitive".
 36436  func (s DeleteOTAUpdateInput) String() string {
 36437  	return awsutil.Prettify(s)
 36438  }
 36439  
 36440  // GoString returns the string representation.
 36441  //
 36442  // API parameter values that are decorated as "sensitive" in the API will not
 36443  // be included in the string output. The member name will be present, but the
 36444  // value will be replaced with "sensitive".
 36445  func (s DeleteOTAUpdateInput) GoString() string {
 36446  	return s.String()
 36447  }
 36448  
 36449  // Validate inspects the fields of the type to determine if they are valid.
 36450  func (s *DeleteOTAUpdateInput) Validate() error {
 36451  	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
 36452  	if s.OtaUpdateId == nil {
 36453  		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
 36454  	}
 36455  	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
 36456  		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
 36457  	}
 36458  
 36459  	if invalidParams.Len() > 0 {
 36460  		return invalidParams
 36461  	}
 36462  	return nil
 36463  }
 36464  
 36465  // SetDeleteStream sets the DeleteStream field's value.
 36466  func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput {
 36467  	s.DeleteStream = &v
 36468  	return s
 36469  }
 36470  
 36471  // SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value.
 36472  func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput {
 36473  	s.ForceDeleteAWSJob = &v
 36474  	return s
 36475  }
 36476  
 36477  // SetOtaUpdateId sets the OtaUpdateId field's value.
 36478  func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
 36479  	s.OtaUpdateId = &v
 36480  	return s
 36481  }
 36482  
 36483  type DeleteOTAUpdateOutput struct {
 36484  	_ struct{} `type:"structure" nopayload:"true"`
 36485  }
 36486  
 36487  // String returns the string representation.
 36488  //
 36489  // API parameter values that are decorated as "sensitive" in the API will not
 36490  // be included in the string output. The member name will be present, but the
 36491  // value will be replaced with "sensitive".
 36492  func (s DeleteOTAUpdateOutput) String() string {
 36493  	return awsutil.Prettify(s)
 36494  }
 36495  
 36496  // GoString returns the string representation.
 36497  //
 36498  // API parameter values that are decorated as "sensitive" in the API will not
 36499  // be included in the string output. The member name will be present, but the
 36500  // value will be replaced with "sensitive".
 36501  func (s DeleteOTAUpdateOutput) GoString() string {
 36502  	return s.String()
 36503  }
 36504  
 36505  // The input for the DeletePolicy operation.
 36506  type DeletePolicyInput struct {
 36507  	_ struct{} `type:"structure" nopayload:"true"`
 36508  
 36509  	// The name of the policy to delete.
 36510  	//
 36511  	// PolicyName is a required field
 36512  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 36513  }
 36514  
 36515  // String returns the string representation.
 36516  //
 36517  // API parameter values that are decorated as "sensitive" in the API will not
 36518  // be included in the string output. The member name will be present, but the
 36519  // value will be replaced with "sensitive".
 36520  func (s DeletePolicyInput) String() string {
 36521  	return awsutil.Prettify(s)
 36522  }
 36523  
 36524  // GoString returns the string representation.
 36525  //
 36526  // API parameter values that are decorated as "sensitive" in the API will not
 36527  // be included in the string output. The member name will be present, but the
 36528  // value will be replaced with "sensitive".
 36529  func (s DeletePolicyInput) GoString() string {
 36530  	return s.String()
 36531  }
 36532  
 36533  // Validate inspects the fields of the type to determine if they are valid.
 36534  func (s *DeletePolicyInput) Validate() error {
 36535  	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
 36536  	if s.PolicyName == nil {
 36537  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 36538  	}
 36539  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 36540  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 36541  	}
 36542  
 36543  	if invalidParams.Len() > 0 {
 36544  		return invalidParams
 36545  	}
 36546  	return nil
 36547  }
 36548  
 36549  // SetPolicyName sets the PolicyName field's value.
 36550  func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
 36551  	s.PolicyName = &v
 36552  	return s
 36553  }
 36554  
 36555  type DeletePolicyOutput struct {
 36556  	_ struct{} `type:"structure" nopayload:"true"`
 36557  }
 36558  
 36559  // String returns the string representation.
 36560  //
 36561  // API parameter values that are decorated as "sensitive" in the API will not
 36562  // be included in the string output. The member name will be present, but the
 36563  // value will be replaced with "sensitive".
 36564  func (s DeletePolicyOutput) String() string {
 36565  	return awsutil.Prettify(s)
 36566  }
 36567  
 36568  // GoString returns the string representation.
 36569  //
 36570  // API parameter values that are decorated as "sensitive" in the API will not
 36571  // be included in the string output. The member name will be present, but the
 36572  // value will be replaced with "sensitive".
 36573  func (s DeletePolicyOutput) GoString() string {
 36574  	return s.String()
 36575  }
 36576  
 36577  // The input for the DeletePolicyVersion operation.
 36578  type DeletePolicyVersionInput struct {
 36579  	_ struct{} `type:"structure" nopayload:"true"`
 36580  
 36581  	// The name of the policy.
 36582  	//
 36583  	// PolicyName is a required field
 36584  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 36585  
 36586  	// The policy version ID.
 36587  	//
 36588  	// PolicyVersionId is a required field
 36589  	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
 36590  }
 36591  
 36592  // String returns the string representation.
 36593  //
 36594  // API parameter values that are decorated as "sensitive" in the API will not
 36595  // be included in the string output. The member name will be present, but the
 36596  // value will be replaced with "sensitive".
 36597  func (s DeletePolicyVersionInput) String() string {
 36598  	return awsutil.Prettify(s)
 36599  }
 36600  
 36601  // GoString returns the string representation.
 36602  //
 36603  // API parameter values that are decorated as "sensitive" in the API will not
 36604  // be included in the string output. The member name will be present, but the
 36605  // value will be replaced with "sensitive".
 36606  func (s DeletePolicyVersionInput) GoString() string {
 36607  	return s.String()
 36608  }
 36609  
 36610  // Validate inspects the fields of the type to determine if they are valid.
 36611  func (s *DeletePolicyVersionInput) Validate() error {
 36612  	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
 36613  	if s.PolicyName == nil {
 36614  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 36615  	}
 36616  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 36617  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 36618  	}
 36619  	if s.PolicyVersionId == nil {
 36620  		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
 36621  	}
 36622  	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
 36623  		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
 36624  	}
 36625  
 36626  	if invalidParams.Len() > 0 {
 36627  		return invalidParams
 36628  	}
 36629  	return nil
 36630  }
 36631  
 36632  // SetPolicyName sets the PolicyName field's value.
 36633  func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
 36634  	s.PolicyName = &v
 36635  	return s
 36636  }
 36637  
 36638  // SetPolicyVersionId sets the PolicyVersionId field's value.
 36639  func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
 36640  	s.PolicyVersionId = &v
 36641  	return s
 36642  }
 36643  
 36644  type DeletePolicyVersionOutput struct {
 36645  	_ struct{} `type:"structure" nopayload:"true"`
 36646  }
 36647  
 36648  // String returns the string representation.
 36649  //
 36650  // API parameter values that are decorated as "sensitive" in the API will not
 36651  // be included in the string output. The member name will be present, but the
 36652  // value will be replaced with "sensitive".
 36653  func (s DeletePolicyVersionOutput) String() string {
 36654  	return awsutil.Prettify(s)
 36655  }
 36656  
 36657  // GoString returns the string representation.
 36658  //
 36659  // API parameter values that are decorated as "sensitive" in the API will not
 36660  // be included in the string output. The member name will be present, but the
 36661  // value will be replaced with "sensitive".
 36662  func (s DeletePolicyVersionOutput) GoString() string {
 36663  	return s.String()
 36664  }
 36665  
 36666  type DeleteProvisioningTemplateInput struct {
 36667  	_ struct{} `type:"structure" nopayload:"true"`
 36668  
 36669  	// The name of the fleet provision template to delete.
 36670  	//
 36671  	// TemplateName is a required field
 36672  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 36673  }
 36674  
 36675  // String returns the string representation.
 36676  //
 36677  // API parameter values that are decorated as "sensitive" in the API will not
 36678  // be included in the string output. The member name will be present, but the
 36679  // value will be replaced with "sensitive".
 36680  func (s DeleteProvisioningTemplateInput) String() string {
 36681  	return awsutil.Prettify(s)
 36682  }
 36683  
 36684  // GoString returns the string representation.
 36685  //
 36686  // API parameter values that are decorated as "sensitive" in the API will not
 36687  // be included in the string output. The member name will be present, but the
 36688  // value will be replaced with "sensitive".
 36689  func (s DeleteProvisioningTemplateInput) GoString() string {
 36690  	return s.String()
 36691  }
 36692  
 36693  // Validate inspects the fields of the type to determine if they are valid.
 36694  func (s *DeleteProvisioningTemplateInput) Validate() error {
 36695  	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"}
 36696  	if s.TemplateName == nil {
 36697  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 36698  	}
 36699  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 36700  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 36701  	}
 36702  
 36703  	if invalidParams.Len() > 0 {
 36704  		return invalidParams
 36705  	}
 36706  	return nil
 36707  }
 36708  
 36709  // SetTemplateName sets the TemplateName field's value.
 36710  func (s *DeleteProvisioningTemplateInput) SetTemplateName(v string) *DeleteProvisioningTemplateInput {
 36711  	s.TemplateName = &v
 36712  	return s
 36713  }
 36714  
 36715  type DeleteProvisioningTemplateOutput struct {
 36716  	_ struct{} `type:"structure" nopayload:"true"`
 36717  }
 36718  
 36719  // String returns the string representation.
 36720  //
 36721  // API parameter values that are decorated as "sensitive" in the API will not
 36722  // be included in the string output. The member name will be present, but the
 36723  // value will be replaced with "sensitive".
 36724  func (s DeleteProvisioningTemplateOutput) String() string {
 36725  	return awsutil.Prettify(s)
 36726  }
 36727  
 36728  // GoString returns the string representation.
 36729  //
 36730  // API parameter values that are decorated as "sensitive" in the API will not
 36731  // be included in the string output. The member name will be present, but the
 36732  // value will be replaced with "sensitive".
 36733  func (s DeleteProvisioningTemplateOutput) GoString() string {
 36734  	return s.String()
 36735  }
 36736  
 36737  type DeleteProvisioningTemplateVersionInput struct {
 36738  	_ struct{} `type:"structure" nopayload:"true"`
 36739  
 36740  	// The name of the fleet provisioning template version to delete.
 36741  	//
 36742  	// TemplateName is a required field
 36743  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 36744  
 36745  	// The fleet provisioning template version ID to delete.
 36746  	//
 36747  	// VersionId is a required field
 36748  	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
 36749  }
 36750  
 36751  // String returns the string representation.
 36752  //
 36753  // API parameter values that are decorated as "sensitive" in the API will not
 36754  // be included in the string output. The member name will be present, but the
 36755  // value will be replaced with "sensitive".
 36756  func (s DeleteProvisioningTemplateVersionInput) String() string {
 36757  	return awsutil.Prettify(s)
 36758  }
 36759  
 36760  // GoString returns the string representation.
 36761  //
 36762  // API parameter values that are decorated as "sensitive" in the API will not
 36763  // be included in the string output. The member name will be present, but the
 36764  // value will be replaced with "sensitive".
 36765  func (s DeleteProvisioningTemplateVersionInput) GoString() string {
 36766  	return s.String()
 36767  }
 36768  
 36769  // Validate inspects the fields of the type to determine if they are valid.
 36770  func (s *DeleteProvisioningTemplateVersionInput) Validate() error {
 36771  	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"}
 36772  	if s.TemplateName == nil {
 36773  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 36774  	}
 36775  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 36776  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 36777  	}
 36778  	if s.VersionId == nil {
 36779  		invalidParams.Add(request.NewErrParamRequired("VersionId"))
 36780  	}
 36781  
 36782  	if invalidParams.Len() > 0 {
 36783  		return invalidParams
 36784  	}
 36785  	return nil
 36786  }
 36787  
 36788  // SetTemplateName sets the TemplateName field's value.
 36789  func (s *DeleteProvisioningTemplateVersionInput) SetTemplateName(v string) *DeleteProvisioningTemplateVersionInput {
 36790  	s.TemplateName = &v
 36791  	return s
 36792  }
 36793  
 36794  // SetVersionId sets the VersionId field's value.
 36795  func (s *DeleteProvisioningTemplateVersionInput) SetVersionId(v int64) *DeleteProvisioningTemplateVersionInput {
 36796  	s.VersionId = &v
 36797  	return s
 36798  }
 36799  
 36800  type DeleteProvisioningTemplateVersionOutput struct {
 36801  	_ struct{} `type:"structure" nopayload:"true"`
 36802  }
 36803  
 36804  // String returns the string representation.
 36805  //
 36806  // API parameter values that are decorated as "sensitive" in the API will not
 36807  // be included in the string output. The member name will be present, but the
 36808  // value will be replaced with "sensitive".
 36809  func (s DeleteProvisioningTemplateVersionOutput) String() string {
 36810  	return awsutil.Prettify(s)
 36811  }
 36812  
 36813  // GoString returns the string representation.
 36814  //
 36815  // API parameter values that are decorated as "sensitive" in the API will not
 36816  // be included in the string output. The member name will be present, but the
 36817  // value will be replaced with "sensitive".
 36818  func (s DeleteProvisioningTemplateVersionOutput) GoString() string {
 36819  	return s.String()
 36820  }
 36821  
 36822  // The input for the DeleteRegistrationCode operation.
 36823  type DeleteRegistrationCodeInput struct {
 36824  	_ struct{} `type:"structure" nopayload:"true"`
 36825  }
 36826  
 36827  // String returns the string representation.
 36828  //
 36829  // API parameter values that are decorated as "sensitive" in the API will not
 36830  // be included in the string output. The member name will be present, but the
 36831  // value will be replaced with "sensitive".
 36832  func (s DeleteRegistrationCodeInput) String() string {
 36833  	return awsutil.Prettify(s)
 36834  }
 36835  
 36836  // GoString returns the string representation.
 36837  //
 36838  // API parameter values that are decorated as "sensitive" in the API will not
 36839  // be included in the string output. The member name will be present, but the
 36840  // value will be replaced with "sensitive".
 36841  func (s DeleteRegistrationCodeInput) GoString() string {
 36842  	return s.String()
 36843  }
 36844  
 36845  // The output for the DeleteRegistrationCode operation.
 36846  type DeleteRegistrationCodeOutput struct {
 36847  	_ struct{} `type:"structure" nopayload:"true"`
 36848  }
 36849  
 36850  // String returns the string representation.
 36851  //
 36852  // API parameter values that are decorated as "sensitive" in the API will not
 36853  // be included in the string output. The member name will be present, but the
 36854  // value will be replaced with "sensitive".
 36855  func (s DeleteRegistrationCodeOutput) String() string {
 36856  	return awsutil.Prettify(s)
 36857  }
 36858  
 36859  // GoString returns the string representation.
 36860  //
 36861  // API parameter values that are decorated as "sensitive" in the API will not
 36862  // be included in the string output. The member name will be present, but the
 36863  // value will be replaced with "sensitive".
 36864  func (s DeleteRegistrationCodeOutput) GoString() string {
 36865  	return s.String()
 36866  }
 36867  
 36868  type DeleteRoleAliasInput struct {
 36869  	_ struct{} `type:"structure" nopayload:"true"`
 36870  
 36871  	// The role alias to delete.
 36872  	//
 36873  	// RoleAlias is a required field
 36874  	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
 36875  }
 36876  
 36877  // String returns the string representation.
 36878  //
 36879  // API parameter values that are decorated as "sensitive" in the API will not
 36880  // be included in the string output. The member name will be present, but the
 36881  // value will be replaced with "sensitive".
 36882  func (s DeleteRoleAliasInput) String() string {
 36883  	return awsutil.Prettify(s)
 36884  }
 36885  
 36886  // GoString returns the string representation.
 36887  //
 36888  // API parameter values that are decorated as "sensitive" in the API will not
 36889  // be included in the string output. The member name will be present, but the
 36890  // value will be replaced with "sensitive".
 36891  func (s DeleteRoleAliasInput) GoString() string {
 36892  	return s.String()
 36893  }
 36894  
 36895  // Validate inspects the fields of the type to determine if they are valid.
 36896  func (s *DeleteRoleAliasInput) Validate() error {
 36897  	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
 36898  	if s.RoleAlias == nil {
 36899  		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
 36900  	}
 36901  	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
 36902  		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
 36903  	}
 36904  
 36905  	if invalidParams.Len() > 0 {
 36906  		return invalidParams
 36907  	}
 36908  	return nil
 36909  }
 36910  
 36911  // SetRoleAlias sets the RoleAlias field's value.
 36912  func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
 36913  	s.RoleAlias = &v
 36914  	return s
 36915  }
 36916  
 36917  type DeleteRoleAliasOutput struct {
 36918  	_ struct{} `type:"structure" nopayload:"true"`
 36919  }
 36920  
 36921  // String returns the string representation.
 36922  //
 36923  // API parameter values that are decorated as "sensitive" in the API will not
 36924  // be included in the string output. The member name will be present, but the
 36925  // value will be replaced with "sensitive".
 36926  func (s DeleteRoleAliasOutput) String() string {
 36927  	return awsutil.Prettify(s)
 36928  }
 36929  
 36930  // GoString returns the string representation.
 36931  //
 36932  // API parameter values that are decorated as "sensitive" in the API will not
 36933  // be included in the string output. The member name will be present, but the
 36934  // value will be replaced with "sensitive".
 36935  func (s DeleteRoleAliasOutput) GoString() string {
 36936  	return s.String()
 36937  }
 36938  
 36939  type DeleteScheduledAuditInput struct {
 36940  	_ struct{} `type:"structure" nopayload:"true"`
 36941  
 36942  	// The name of the scheduled audit you want to delete.
 36943  	//
 36944  	// ScheduledAuditName is a required field
 36945  	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
 36946  }
 36947  
 36948  // String returns the string representation.
 36949  //
 36950  // API parameter values that are decorated as "sensitive" in the API will not
 36951  // be included in the string output. The member name will be present, but the
 36952  // value will be replaced with "sensitive".
 36953  func (s DeleteScheduledAuditInput) String() string {
 36954  	return awsutil.Prettify(s)
 36955  }
 36956  
 36957  // GoString returns the string representation.
 36958  //
 36959  // API parameter values that are decorated as "sensitive" in the API will not
 36960  // be included in the string output. The member name will be present, but the
 36961  // value will be replaced with "sensitive".
 36962  func (s DeleteScheduledAuditInput) GoString() string {
 36963  	return s.String()
 36964  }
 36965  
 36966  // Validate inspects the fields of the type to determine if they are valid.
 36967  func (s *DeleteScheduledAuditInput) Validate() error {
 36968  	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
 36969  	if s.ScheduledAuditName == nil {
 36970  		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
 36971  	}
 36972  	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
 36973  		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
 36974  	}
 36975  
 36976  	if invalidParams.Len() > 0 {
 36977  		return invalidParams
 36978  	}
 36979  	return nil
 36980  }
 36981  
 36982  // SetScheduledAuditName sets the ScheduledAuditName field's value.
 36983  func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
 36984  	s.ScheduledAuditName = &v
 36985  	return s
 36986  }
 36987  
 36988  type DeleteScheduledAuditOutput struct {
 36989  	_ struct{} `type:"structure" nopayload:"true"`
 36990  }
 36991  
 36992  // String returns the string representation.
 36993  //
 36994  // API parameter values that are decorated as "sensitive" in the API will not
 36995  // be included in the string output. The member name will be present, but the
 36996  // value will be replaced with "sensitive".
 36997  func (s DeleteScheduledAuditOutput) String() string {
 36998  	return awsutil.Prettify(s)
 36999  }
 37000  
 37001  // GoString returns the string representation.
 37002  //
 37003  // API parameter values that are decorated as "sensitive" in the API will not
 37004  // be included in the string output. The member name will be present, but the
 37005  // value will be replaced with "sensitive".
 37006  func (s DeleteScheduledAuditOutput) GoString() string {
 37007  	return s.String()
 37008  }
 37009  
 37010  type DeleteSecurityProfileInput struct {
 37011  	_ struct{} `type:"structure" nopayload:"true"`
 37012  
 37013  	// The expected version of the security profile. A new version is generated
 37014  	// whenever the security profile is updated. If you specify a value that is
 37015  	// different from the actual version, a VersionConflictException is thrown.
 37016  	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
 37017  
 37018  	// The name of the security profile to be deleted.
 37019  	//
 37020  	// SecurityProfileName is a required field
 37021  	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
 37022  }
 37023  
 37024  // String returns the string representation.
 37025  //
 37026  // API parameter values that are decorated as "sensitive" in the API will not
 37027  // be included in the string output. The member name will be present, but the
 37028  // value will be replaced with "sensitive".
 37029  func (s DeleteSecurityProfileInput) String() string {
 37030  	return awsutil.Prettify(s)
 37031  }
 37032  
 37033  // GoString returns the string representation.
 37034  //
 37035  // API parameter values that are decorated as "sensitive" in the API will not
 37036  // be included in the string output. The member name will be present, but the
 37037  // value will be replaced with "sensitive".
 37038  func (s DeleteSecurityProfileInput) GoString() string {
 37039  	return s.String()
 37040  }
 37041  
 37042  // Validate inspects the fields of the type to determine if they are valid.
 37043  func (s *DeleteSecurityProfileInput) Validate() error {
 37044  	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
 37045  	if s.SecurityProfileName == nil {
 37046  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
 37047  	}
 37048  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 37049  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 37050  	}
 37051  
 37052  	if invalidParams.Len() > 0 {
 37053  		return invalidParams
 37054  	}
 37055  	return nil
 37056  }
 37057  
 37058  // SetExpectedVersion sets the ExpectedVersion field's value.
 37059  func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
 37060  	s.ExpectedVersion = &v
 37061  	return s
 37062  }
 37063  
 37064  // SetSecurityProfileName sets the SecurityProfileName field's value.
 37065  func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
 37066  	s.SecurityProfileName = &v
 37067  	return s
 37068  }
 37069  
 37070  type DeleteSecurityProfileOutput struct {
 37071  	_ struct{} `type:"structure" nopayload:"true"`
 37072  }
 37073  
 37074  // String returns the string representation.
 37075  //
 37076  // API parameter values that are decorated as "sensitive" in the API will not
 37077  // be included in the string output. The member name will be present, but the
 37078  // value will be replaced with "sensitive".
 37079  func (s DeleteSecurityProfileOutput) String() string {
 37080  	return awsutil.Prettify(s)
 37081  }
 37082  
 37083  // GoString returns the string representation.
 37084  //
 37085  // API parameter values that are decorated as "sensitive" in the API will not
 37086  // be included in the string output. The member name will be present, but the
 37087  // value will be replaced with "sensitive".
 37088  func (s DeleteSecurityProfileOutput) GoString() string {
 37089  	return s.String()
 37090  }
 37091  
 37092  type DeleteStreamInput struct {
 37093  	_ struct{} `type:"structure" nopayload:"true"`
 37094  
 37095  	// The stream ID.
 37096  	//
 37097  	// StreamId is a required field
 37098  	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
 37099  }
 37100  
 37101  // String returns the string representation.
 37102  //
 37103  // API parameter values that are decorated as "sensitive" in the API will not
 37104  // be included in the string output. The member name will be present, but the
 37105  // value will be replaced with "sensitive".
 37106  func (s DeleteStreamInput) String() string {
 37107  	return awsutil.Prettify(s)
 37108  }
 37109  
 37110  // GoString returns the string representation.
 37111  //
 37112  // API parameter values that are decorated as "sensitive" in the API will not
 37113  // be included in the string output. The member name will be present, but the
 37114  // value will be replaced with "sensitive".
 37115  func (s DeleteStreamInput) GoString() string {
 37116  	return s.String()
 37117  }
 37118  
 37119  // Validate inspects the fields of the type to determine if they are valid.
 37120  func (s *DeleteStreamInput) Validate() error {
 37121  	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
 37122  	if s.StreamId == nil {
 37123  		invalidParams.Add(request.NewErrParamRequired("StreamId"))
 37124  	}
 37125  	if s.StreamId != nil && len(*s.StreamId) < 1 {
 37126  		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
 37127  	}
 37128  
 37129  	if invalidParams.Len() > 0 {
 37130  		return invalidParams
 37131  	}
 37132  	return nil
 37133  }
 37134  
 37135  // SetStreamId sets the StreamId field's value.
 37136  func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
 37137  	s.StreamId = &v
 37138  	return s
 37139  }
 37140  
 37141  type DeleteStreamOutput struct {
 37142  	_ struct{} `type:"structure" nopayload:"true"`
 37143  }
 37144  
 37145  // String returns the string representation.
 37146  //
 37147  // API parameter values that are decorated as "sensitive" in the API will not
 37148  // be included in the string output. The member name will be present, but the
 37149  // value will be replaced with "sensitive".
 37150  func (s DeleteStreamOutput) String() string {
 37151  	return awsutil.Prettify(s)
 37152  }
 37153  
 37154  // GoString returns the string representation.
 37155  //
 37156  // API parameter values that are decorated as "sensitive" in the API will not
 37157  // be included in the string output. The member name will be present, but the
 37158  // value will be replaced with "sensitive".
 37159  func (s DeleteStreamOutput) GoString() string {
 37160  	return s.String()
 37161  }
 37162  
 37163  type DeleteThingGroupInput struct {
 37164  	_ struct{} `type:"structure" nopayload:"true"`
 37165  
 37166  	// The expected version of the thing group to delete.
 37167  	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
 37168  
 37169  	// The name of the thing group to delete.
 37170  	//
 37171  	// ThingGroupName is a required field
 37172  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 37173  }
 37174  
 37175  // String returns the string representation.
 37176  //
 37177  // API parameter values that are decorated as "sensitive" in the API will not
 37178  // be included in the string output. The member name will be present, but the
 37179  // value will be replaced with "sensitive".
 37180  func (s DeleteThingGroupInput) String() string {
 37181  	return awsutil.Prettify(s)
 37182  }
 37183  
 37184  // GoString returns the string representation.
 37185  //
 37186  // API parameter values that are decorated as "sensitive" in the API will not
 37187  // be included in the string output. The member name will be present, but the
 37188  // value will be replaced with "sensitive".
 37189  func (s DeleteThingGroupInput) GoString() string {
 37190  	return s.String()
 37191  }
 37192  
 37193  // Validate inspects the fields of the type to determine if they are valid.
 37194  func (s *DeleteThingGroupInput) Validate() error {
 37195  	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
 37196  	if s.ThingGroupName == nil {
 37197  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 37198  	}
 37199  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 37200  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 37201  	}
 37202  
 37203  	if invalidParams.Len() > 0 {
 37204  		return invalidParams
 37205  	}
 37206  	return nil
 37207  }
 37208  
 37209  // SetExpectedVersion sets the ExpectedVersion field's value.
 37210  func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
 37211  	s.ExpectedVersion = &v
 37212  	return s
 37213  }
 37214  
 37215  // SetThingGroupName sets the ThingGroupName field's value.
 37216  func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
 37217  	s.ThingGroupName = &v
 37218  	return s
 37219  }
 37220  
 37221  type DeleteThingGroupOutput struct {
 37222  	_ struct{} `type:"structure" nopayload:"true"`
 37223  }
 37224  
 37225  // String returns the string representation.
 37226  //
 37227  // API parameter values that are decorated as "sensitive" in the API will not
 37228  // be included in the string output. The member name will be present, but the
 37229  // value will be replaced with "sensitive".
 37230  func (s DeleteThingGroupOutput) String() string {
 37231  	return awsutil.Prettify(s)
 37232  }
 37233  
 37234  // GoString returns the string representation.
 37235  //
 37236  // API parameter values that are decorated as "sensitive" in the API will not
 37237  // be included in the string output. The member name will be present, but the
 37238  // value will be replaced with "sensitive".
 37239  func (s DeleteThingGroupOutput) GoString() string {
 37240  	return s.String()
 37241  }
 37242  
 37243  // The input for the DeleteThing operation.
 37244  type DeleteThingInput struct {
 37245  	_ struct{} `type:"structure" nopayload:"true"`
 37246  
 37247  	// The expected version of the thing record in the registry. If the version
 37248  	// of the record in the registry does not match the expected version specified
 37249  	// in the request, the DeleteThing request is rejected with a VersionConflictException.
 37250  	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
 37251  
 37252  	// The name of the thing to delete.
 37253  	//
 37254  	// ThingName is a required field
 37255  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 37256  }
 37257  
 37258  // String returns the string representation.
 37259  //
 37260  // API parameter values that are decorated as "sensitive" in the API will not
 37261  // be included in the string output. The member name will be present, but the
 37262  // value will be replaced with "sensitive".
 37263  func (s DeleteThingInput) String() string {
 37264  	return awsutil.Prettify(s)
 37265  }
 37266  
 37267  // GoString returns the string representation.
 37268  //
 37269  // API parameter values that are decorated as "sensitive" in the API will not
 37270  // be included in the string output. The member name will be present, but the
 37271  // value will be replaced with "sensitive".
 37272  func (s DeleteThingInput) GoString() string {
 37273  	return s.String()
 37274  }
 37275  
 37276  // Validate inspects the fields of the type to determine if they are valid.
 37277  func (s *DeleteThingInput) Validate() error {
 37278  	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
 37279  	if s.ThingName == nil {
 37280  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 37281  	}
 37282  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 37283  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 37284  	}
 37285  
 37286  	if invalidParams.Len() > 0 {
 37287  		return invalidParams
 37288  	}
 37289  	return nil
 37290  }
 37291  
 37292  // SetExpectedVersion sets the ExpectedVersion field's value.
 37293  func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
 37294  	s.ExpectedVersion = &v
 37295  	return s
 37296  }
 37297  
 37298  // SetThingName sets the ThingName field's value.
 37299  func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
 37300  	s.ThingName = &v
 37301  	return s
 37302  }
 37303  
 37304  // The output of the DeleteThing operation.
 37305  type DeleteThingOutput struct {
 37306  	_ struct{} `type:"structure" nopayload:"true"`
 37307  }
 37308  
 37309  // String returns the string representation.
 37310  //
 37311  // API parameter values that are decorated as "sensitive" in the API will not
 37312  // be included in the string output. The member name will be present, but the
 37313  // value will be replaced with "sensitive".
 37314  func (s DeleteThingOutput) String() string {
 37315  	return awsutil.Prettify(s)
 37316  }
 37317  
 37318  // GoString returns the string representation.
 37319  //
 37320  // API parameter values that are decorated as "sensitive" in the API will not
 37321  // be included in the string output. The member name will be present, but the
 37322  // value will be replaced with "sensitive".
 37323  func (s DeleteThingOutput) GoString() string {
 37324  	return s.String()
 37325  }
 37326  
 37327  // The input for the DeleteThingType operation.
 37328  type DeleteThingTypeInput struct {
 37329  	_ struct{} `type:"structure" nopayload:"true"`
 37330  
 37331  	// The name of the thing type.
 37332  	//
 37333  	// ThingTypeName is a required field
 37334  	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
 37335  }
 37336  
 37337  // String returns the string representation.
 37338  //
 37339  // API parameter values that are decorated as "sensitive" in the API will not
 37340  // be included in the string output. The member name will be present, but the
 37341  // value will be replaced with "sensitive".
 37342  func (s DeleteThingTypeInput) String() string {
 37343  	return awsutil.Prettify(s)
 37344  }
 37345  
 37346  // GoString returns the string representation.
 37347  //
 37348  // API parameter values that are decorated as "sensitive" in the API will not
 37349  // be included in the string output. The member name will be present, but the
 37350  // value will be replaced with "sensitive".
 37351  func (s DeleteThingTypeInput) GoString() string {
 37352  	return s.String()
 37353  }
 37354  
 37355  // Validate inspects the fields of the type to determine if they are valid.
 37356  func (s *DeleteThingTypeInput) Validate() error {
 37357  	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
 37358  	if s.ThingTypeName == nil {
 37359  		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
 37360  	}
 37361  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 37362  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 37363  	}
 37364  
 37365  	if invalidParams.Len() > 0 {
 37366  		return invalidParams
 37367  	}
 37368  	return nil
 37369  }
 37370  
 37371  // SetThingTypeName sets the ThingTypeName field's value.
 37372  func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
 37373  	s.ThingTypeName = &v
 37374  	return s
 37375  }
 37376  
 37377  // The output for the DeleteThingType operation.
 37378  type DeleteThingTypeOutput struct {
 37379  	_ struct{} `type:"structure" nopayload:"true"`
 37380  }
 37381  
 37382  // String returns the string representation.
 37383  //
 37384  // API parameter values that are decorated as "sensitive" in the API will not
 37385  // be included in the string output. The member name will be present, but the
 37386  // value will be replaced with "sensitive".
 37387  func (s DeleteThingTypeOutput) String() string {
 37388  	return awsutil.Prettify(s)
 37389  }
 37390  
 37391  // GoString returns the string representation.
 37392  //
 37393  // API parameter values that are decorated as "sensitive" in the API will not
 37394  // be included in the string output. The member name will be present, but the
 37395  // value will be replaced with "sensitive".
 37396  func (s DeleteThingTypeOutput) GoString() string {
 37397  	return s.String()
 37398  }
 37399  
 37400  type DeleteTopicRuleDestinationInput struct {
 37401  	_ struct{} `type:"structure" nopayload:"true"`
 37402  
 37403  	// The ARN of the topic rule destination to delete.
 37404  	//
 37405  	// Arn is a required field
 37406  	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
 37407  }
 37408  
 37409  // String returns the string representation.
 37410  //
 37411  // API parameter values that are decorated as "sensitive" in the API will not
 37412  // be included in the string output. The member name will be present, but the
 37413  // value will be replaced with "sensitive".
 37414  func (s DeleteTopicRuleDestinationInput) String() string {
 37415  	return awsutil.Prettify(s)
 37416  }
 37417  
 37418  // GoString returns the string representation.
 37419  //
 37420  // API parameter values that are decorated as "sensitive" in the API will not
 37421  // be included in the string output. The member name will be present, but the
 37422  // value will be replaced with "sensitive".
 37423  func (s DeleteTopicRuleDestinationInput) GoString() string {
 37424  	return s.String()
 37425  }
 37426  
 37427  // Validate inspects the fields of the type to determine if they are valid.
 37428  func (s *DeleteTopicRuleDestinationInput) Validate() error {
 37429  	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleDestinationInput"}
 37430  	if s.Arn == nil {
 37431  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 37432  	}
 37433  	if s.Arn != nil && len(*s.Arn) < 1 {
 37434  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 37435  	}
 37436  
 37437  	if invalidParams.Len() > 0 {
 37438  		return invalidParams
 37439  	}
 37440  	return nil
 37441  }
 37442  
 37443  // SetArn sets the Arn field's value.
 37444  func (s *DeleteTopicRuleDestinationInput) SetArn(v string) *DeleteTopicRuleDestinationInput {
 37445  	s.Arn = &v
 37446  	return s
 37447  }
 37448  
 37449  type DeleteTopicRuleDestinationOutput struct {
 37450  	_ struct{} `type:"structure" nopayload:"true"`
 37451  }
 37452  
 37453  // String returns the string representation.
 37454  //
 37455  // API parameter values that are decorated as "sensitive" in the API will not
 37456  // be included in the string output. The member name will be present, but the
 37457  // value will be replaced with "sensitive".
 37458  func (s DeleteTopicRuleDestinationOutput) String() string {
 37459  	return awsutil.Prettify(s)
 37460  }
 37461  
 37462  // GoString returns the string representation.
 37463  //
 37464  // API parameter values that are decorated as "sensitive" in the API will not
 37465  // be included in the string output. The member name will be present, but the
 37466  // value will be replaced with "sensitive".
 37467  func (s DeleteTopicRuleDestinationOutput) GoString() string {
 37468  	return s.String()
 37469  }
 37470  
 37471  // The input for the DeleteTopicRule operation.
 37472  type DeleteTopicRuleInput struct {
 37473  	_ struct{} `type:"structure" nopayload:"true"`
 37474  
 37475  	// The name of the rule.
 37476  	//
 37477  	// RuleName is a required field
 37478  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
 37479  }
 37480  
 37481  // String returns the string representation.
 37482  //
 37483  // API parameter values that are decorated as "sensitive" in the API will not
 37484  // be included in the string output. The member name will be present, but the
 37485  // value will be replaced with "sensitive".
 37486  func (s DeleteTopicRuleInput) String() string {
 37487  	return awsutil.Prettify(s)
 37488  }
 37489  
 37490  // GoString returns the string representation.
 37491  //
 37492  // API parameter values that are decorated as "sensitive" in the API will not
 37493  // be included in the string output. The member name will be present, but the
 37494  // value will be replaced with "sensitive".
 37495  func (s DeleteTopicRuleInput) GoString() string {
 37496  	return s.String()
 37497  }
 37498  
 37499  // Validate inspects the fields of the type to determine if they are valid.
 37500  func (s *DeleteTopicRuleInput) Validate() error {
 37501  	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
 37502  	if s.RuleName == nil {
 37503  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
 37504  	}
 37505  	if s.RuleName != nil && len(*s.RuleName) < 1 {
 37506  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
 37507  	}
 37508  
 37509  	if invalidParams.Len() > 0 {
 37510  		return invalidParams
 37511  	}
 37512  	return nil
 37513  }
 37514  
 37515  // SetRuleName sets the RuleName field's value.
 37516  func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
 37517  	s.RuleName = &v
 37518  	return s
 37519  }
 37520  
 37521  type DeleteTopicRuleOutput struct {
 37522  	_ struct{} `type:"structure" nopayload:"true"`
 37523  }
 37524  
 37525  // String returns the string representation.
 37526  //
 37527  // API parameter values that are decorated as "sensitive" in the API will not
 37528  // be included in the string output. The member name will be present, but the
 37529  // value will be replaced with "sensitive".
 37530  func (s DeleteTopicRuleOutput) String() string {
 37531  	return awsutil.Prettify(s)
 37532  }
 37533  
 37534  // GoString returns the string representation.
 37535  //
 37536  // API parameter values that are decorated as "sensitive" in the API will not
 37537  // be included in the string output. The member name will be present, but the
 37538  // value will be replaced with "sensitive".
 37539  func (s DeleteTopicRuleOutput) GoString() string {
 37540  	return s.String()
 37541  }
 37542  
 37543  type DeleteV2LoggingLevelInput struct {
 37544  	_ struct{} `type:"structure" nopayload:"true"`
 37545  
 37546  	// The name of the resource for which you are configuring logging.
 37547  	//
 37548  	// TargetName is a required field
 37549  	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
 37550  
 37551  	// The type of resource for which you are configuring logging. Must be THING_Group.
 37552  	//
 37553  	// TargetType is a required field
 37554  	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
 37555  }
 37556  
 37557  // String returns the string representation.
 37558  //
 37559  // API parameter values that are decorated as "sensitive" in the API will not
 37560  // be included in the string output. The member name will be present, but the
 37561  // value will be replaced with "sensitive".
 37562  func (s DeleteV2LoggingLevelInput) String() string {
 37563  	return awsutil.Prettify(s)
 37564  }
 37565  
 37566  // GoString returns the string representation.
 37567  //
 37568  // API parameter values that are decorated as "sensitive" in the API will not
 37569  // be included in the string output. The member name will be present, but the
 37570  // value will be replaced with "sensitive".
 37571  func (s DeleteV2LoggingLevelInput) GoString() string {
 37572  	return s.String()
 37573  }
 37574  
 37575  // Validate inspects the fields of the type to determine if they are valid.
 37576  func (s *DeleteV2LoggingLevelInput) Validate() error {
 37577  	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
 37578  	if s.TargetName == nil {
 37579  		invalidParams.Add(request.NewErrParamRequired("TargetName"))
 37580  	}
 37581  	if s.TargetType == nil {
 37582  		invalidParams.Add(request.NewErrParamRequired("TargetType"))
 37583  	}
 37584  
 37585  	if invalidParams.Len() > 0 {
 37586  		return invalidParams
 37587  	}
 37588  	return nil
 37589  }
 37590  
 37591  // SetTargetName sets the TargetName field's value.
 37592  func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
 37593  	s.TargetName = &v
 37594  	return s
 37595  }
 37596  
 37597  // SetTargetType sets the TargetType field's value.
 37598  func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
 37599  	s.TargetType = &v
 37600  	return s
 37601  }
 37602  
 37603  type DeleteV2LoggingLevelOutput struct {
 37604  	_ struct{} `type:"structure" nopayload:"true"`
 37605  }
 37606  
 37607  // String returns the string representation.
 37608  //
 37609  // API parameter values that are decorated as "sensitive" in the API will not
 37610  // be included in the string output. The member name will be present, but the
 37611  // value will be replaced with "sensitive".
 37612  func (s DeleteV2LoggingLevelOutput) String() string {
 37613  	return awsutil.Prettify(s)
 37614  }
 37615  
 37616  // GoString returns the string representation.
 37617  //
 37618  // API parameter values that are decorated as "sensitive" in the API will not
 37619  // be included in the string output. The member name will be present, but the
 37620  // value will be replaced with "sensitive".
 37621  func (s DeleteV2LoggingLevelOutput) GoString() string {
 37622  	return s.String()
 37623  }
 37624  
 37625  // Contains information that denied the authorization.
 37626  type Denied struct {
 37627  	_ struct{} `type:"structure"`
 37628  
 37629  	// Information that explicitly denies the authorization.
 37630  	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
 37631  
 37632  	// Information that implicitly denies the authorization. When a policy doesn't
 37633  	// explicitly deny or allow an action on a resource it is considered an implicit
 37634  	// deny.
 37635  	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
 37636  }
 37637  
 37638  // String returns the string representation.
 37639  //
 37640  // API parameter values that are decorated as "sensitive" in the API will not
 37641  // be included in the string output. The member name will be present, but the
 37642  // value will be replaced with "sensitive".
 37643  func (s Denied) String() string {
 37644  	return awsutil.Prettify(s)
 37645  }
 37646  
 37647  // GoString returns the string representation.
 37648  //
 37649  // API parameter values that are decorated as "sensitive" in the API will not
 37650  // be included in the string output. The member name will be present, but the
 37651  // value will be replaced with "sensitive".
 37652  func (s Denied) GoString() string {
 37653  	return s.String()
 37654  }
 37655  
 37656  // SetExplicitDeny sets the ExplicitDeny field's value.
 37657  func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
 37658  	s.ExplicitDeny = v
 37659  	return s
 37660  }
 37661  
 37662  // SetImplicitDeny sets the ImplicitDeny field's value.
 37663  func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
 37664  	s.ImplicitDeny = v
 37665  	return s
 37666  }
 37667  
 37668  // The input for the DeprecateThingType operation.
 37669  type DeprecateThingTypeInput struct {
 37670  	_ struct{} `type:"structure"`
 37671  
 37672  	// The name of the thing type to deprecate.
 37673  	//
 37674  	// ThingTypeName is a required field
 37675  	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
 37676  
 37677  	// Whether to undeprecate a deprecated thing type. If true, the thing type will
 37678  	// not be deprecated anymore and you can associate it with things.
 37679  	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
 37680  }
 37681  
 37682  // String returns the string representation.
 37683  //
 37684  // API parameter values that are decorated as "sensitive" in the API will not
 37685  // be included in the string output. The member name will be present, but the
 37686  // value will be replaced with "sensitive".
 37687  func (s DeprecateThingTypeInput) String() string {
 37688  	return awsutil.Prettify(s)
 37689  }
 37690  
 37691  // GoString returns the string representation.
 37692  //
 37693  // API parameter values that are decorated as "sensitive" in the API will not
 37694  // be included in the string output. The member name will be present, but the
 37695  // value will be replaced with "sensitive".
 37696  func (s DeprecateThingTypeInput) GoString() string {
 37697  	return s.String()
 37698  }
 37699  
 37700  // Validate inspects the fields of the type to determine if they are valid.
 37701  func (s *DeprecateThingTypeInput) Validate() error {
 37702  	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
 37703  	if s.ThingTypeName == nil {
 37704  		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
 37705  	}
 37706  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 37707  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 37708  	}
 37709  
 37710  	if invalidParams.Len() > 0 {
 37711  		return invalidParams
 37712  	}
 37713  	return nil
 37714  }
 37715  
 37716  // SetThingTypeName sets the ThingTypeName field's value.
 37717  func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
 37718  	s.ThingTypeName = &v
 37719  	return s
 37720  }
 37721  
 37722  // SetUndoDeprecate sets the UndoDeprecate field's value.
 37723  func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
 37724  	s.UndoDeprecate = &v
 37725  	return s
 37726  }
 37727  
 37728  // The output for the DeprecateThingType operation.
 37729  type DeprecateThingTypeOutput struct {
 37730  	_ struct{} `type:"structure" nopayload:"true"`
 37731  }
 37732  
 37733  // String returns the string representation.
 37734  //
 37735  // API parameter values that are decorated as "sensitive" in the API will not
 37736  // be included in the string output. The member name will be present, but the
 37737  // value will be replaced with "sensitive".
 37738  func (s DeprecateThingTypeOutput) String() string {
 37739  	return awsutil.Prettify(s)
 37740  }
 37741  
 37742  // GoString returns the string representation.
 37743  //
 37744  // API parameter values that are decorated as "sensitive" in the API will not
 37745  // be included in the string output. The member name will be present, but the
 37746  // value will be replaced with "sensitive".
 37747  func (s DeprecateThingTypeOutput) GoString() string {
 37748  	return s.String()
 37749  }
 37750  
 37751  type DescribeAccountAuditConfigurationInput struct {
 37752  	_ struct{} `type:"structure" nopayload:"true"`
 37753  }
 37754  
 37755  // String returns the string representation.
 37756  //
 37757  // API parameter values that are decorated as "sensitive" in the API will not
 37758  // be included in the string output. The member name will be present, but the
 37759  // value will be replaced with "sensitive".
 37760  func (s DescribeAccountAuditConfigurationInput) String() string {
 37761  	return awsutil.Prettify(s)
 37762  }
 37763  
 37764  // GoString returns the string representation.
 37765  //
 37766  // API parameter values that are decorated as "sensitive" in the API will not
 37767  // be included in the string output. The member name will be present, but the
 37768  // value will be replaced with "sensitive".
 37769  func (s DescribeAccountAuditConfigurationInput) GoString() string {
 37770  	return s.String()
 37771  }
 37772  
 37773  type DescribeAccountAuditConfigurationOutput struct {
 37774  	_ struct{} `type:"structure"`
 37775  
 37776  	// Which audit checks are enabled and disabled for this account.
 37777  	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
 37778  
 37779  	// Information about the targets to which audit notifications are sent for this
 37780  	// account.
 37781  	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
 37782  
 37783  	// The ARN of the role that grants permission to IoT to access information about
 37784  	// your devices, policies, certificates, and other items as required when performing
 37785  	// an audit.
 37786  	//
 37787  	// On the first call to UpdateAccountAuditConfiguration, this parameter is required.
 37788  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 37789  }
 37790  
 37791  // String returns the string representation.
 37792  //
 37793  // API parameter values that are decorated as "sensitive" in the API will not
 37794  // be included in the string output. The member name will be present, but the
 37795  // value will be replaced with "sensitive".
 37796  func (s DescribeAccountAuditConfigurationOutput) String() string {
 37797  	return awsutil.Prettify(s)
 37798  }
 37799  
 37800  // GoString returns the string representation.
 37801  //
 37802  // API parameter values that are decorated as "sensitive" in the API will not
 37803  // be included in the string output. The member name will be present, but the
 37804  // value will be replaced with "sensitive".
 37805  func (s DescribeAccountAuditConfigurationOutput) GoString() string {
 37806  	return s.String()
 37807  }
 37808  
 37809  // SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
 37810  func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
 37811  	s.AuditCheckConfigurations = v
 37812  	return s
 37813  }
 37814  
 37815  // SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
 37816  func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
 37817  	s.AuditNotificationTargetConfigurations = v
 37818  	return s
 37819  }
 37820  
 37821  // SetRoleArn sets the RoleArn field's value.
 37822  func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
 37823  	s.RoleArn = &v
 37824  	return s
 37825  }
 37826  
 37827  type DescribeAuditFindingInput struct {
 37828  	_ struct{} `type:"structure" nopayload:"true"`
 37829  
 37830  	// A unique identifier for a single audit finding. You can use this identifier
 37831  	// to apply mitigation actions to the finding.
 37832  	//
 37833  	// FindingId is a required field
 37834  	FindingId *string `location:"uri" locationName:"findingId" min:"1" type:"string" required:"true"`
 37835  }
 37836  
 37837  // String returns the string representation.
 37838  //
 37839  // API parameter values that are decorated as "sensitive" in the API will not
 37840  // be included in the string output. The member name will be present, but the
 37841  // value will be replaced with "sensitive".
 37842  func (s DescribeAuditFindingInput) String() string {
 37843  	return awsutil.Prettify(s)
 37844  }
 37845  
 37846  // GoString returns the string representation.
 37847  //
 37848  // API parameter values that are decorated as "sensitive" in the API will not
 37849  // be included in the string output. The member name will be present, but the
 37850  // value will be replaced with "sensitive".
 37851  func (s DescribeAuditFindingInput) GoString() string {
 37852  	return s.String()
 37853  }
 37854  
 37855  // Validate inspects the fields of the type to determine if they are valid.
 37856  func (s *DescribeAuditFindingInput) Validate() error {
 37857  	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditFindingInput"}
 37858  	if s.FindingId == nil {
 37859  		invalidParams.Add(request.NewErrParamRequired("FindingId"))
 37860  	}
 37861  	if s.FindingId != nil && len(*s.FindingId) < 1 {
 37862  		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
 37863  	}
 37864  
 37865  	if invalidParams.Len() > 0 {
 37866  		return invalidParams
 37867  	}
 37868  	return nil
 37869  }
 37870  
 37871  // SetFindingId sets the FindingId field's value.
 37872  func (s *DescribeAuditFindingInput) SetFindingId(v string) *DescribeAuditFindingInput {
 37873  	s.FindingId = &v
 37874  	return s
 37875  }
 37876  
 37877  type DescribeAuditFindingOutput struct {
 37878  	_ struct{} `type:"structure"`
 37879  
 37880  	// The findings (results) of the audit.
 37881  	Finding *AuditFinding `locationName:"finding" type:"structure"`
 37882  }
 37883  
 37884  // String returns the string representation.
 37885  //
 37886  // API parameter values that are decorated as "sensitive" in the API will not
 37887  // be included in the string output. The member name will be present, but the
 37888  // value will be replaced with "sensitive".
 37889  func (s DescribeAuditFindingOutput) String() string {
 37890  	return awsutil.Prettify(s)
 37891  }
 37892  
 37893  // GoString returns the string representation.
 37894  //
 37895  // API parameter values that are decorated as "sensitive" in the API will not
 37896  // be included in the string output. The member name will be present, but the
 37897  // value will be replaced with "sensitive".
 37898  func (s DescribeAuditFindingOutput) GoString() string {
 37899  	return s.String()
 37900  }
 37901  
 37902  // SetFinding sets the Finding field's value.
 37903  func (s *DescribeAuditFindingOutput) SetFinding(v *AuditFinding) *DescribeAuditFindingOutput {
 37904  	s.Finding = v
 37905  	return s
 37906  }
 37907  
 37908  type DescribeAuditMitigationActionsTaskInput struct {
 37909  	_ struct{} `type:"structure" nopayload:"true"`
 37910  
 37911  	// The unique identifier for the audit mitigation task.
 37912  	//
 37913  	// TaskId is a required field
 37914  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 37915  }
 37916  
 37917  // String returns the string representation.
 37918  //
 37919  // API parameter values that are decorated as "sensitive" in the API will not
 37920  // be included in the string output. The member name will be present, but the
 37921  // value will be replaced with "sensitive".
 37922  func (s DescribeAuditMitigationActionsTaskInput) String() string {
 37923  	return awsutil.Prettify(s)
 37924  }
 37925  
 37926  // GoString returns the string representation.
 37927  //
 37928  // API parameter values that are decorated as "sensitive" in the API will not
 37929  // be included in the string output. The member name will be present, but the
 37930  // value will be replaced with "sensitive".
 37931  func (s DescribeAuditMitigationActionsTaskInput) GoString() string {
 37932  	return s.String()
 37933  }
 37934  
 37935  // Validate inspects the fields of the type to determine if they are valid.
 37936  func (s *DescribeAuditMitigationActionsTaskInput) Validate() error {
 37937  	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditMitigationActionsTaskInput"}
 37938  	if s.TaskId == nil {
 37939  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 37940  	}
 37941  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 37942  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 37943  	}
 37944  
 37945  	if invalidParams.Len() > 0 {
 37946  		return invalidParams
 37947  	}
 37948  	return nil
 37949  }
 37950  
 37951  // SetTaskId sets the TaskId field's value.
 37952  func (s *DescribeAuditMitigationActionsTaskInput) SetTaskId(v string) *DescribeAuditMitigationActionsTaskInput {
 37953  	s.TaskId = &v
 37954  	return s
 37955  }
 37956  
 37957  type DescribeAuditMitigationActionsTaskOutput struct {
 37958  	_ struct{} `type:"structure"`
 37959  
 37960  	// Specifies the mitigation actions and their parameters that are applied as
 37961  	// part of this task.
 37962  	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
 37963  
 37964  	// Specifies the mitigation actions that should be applied to specific audit
 37965  	// checks.
 37966  	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map"`
 37967  
 37968  	// The date and time when the task was completed or canceled.
 37969  	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
 37970  
 37971  	// The date and time when the task was started.
 37972  	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
 37973  
 37974  	// Identifies the findings to which the mitigation actions are applied. This
 37975  	// can be by audit checks, by audit task, or a set of findings.
 37976  	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure"`
 37977  
 37978  	// Aggregate counts of the results when the mitigation tasks were applied to
 37979  	// the findings for this audit mitigation actions task.
 37980  	TaskStatistics map[string]*TaskStatisticsForAuditCheck `locationName:"taskStatistics" type:"map"`
 37981  
 37982  	// The current status of the task.
 37983  	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
 37984  }
 37985  
 37986  // String returns the string representation.
 37987  //
 37988  // API parameter values that are decorated as "sensitive" in the API will not
 37989  // be included in the string output. The member name will be present, but the
 37990  // value will be replaced with "sensitive".
 37991  func (s DescribeAuditMitigationActionsTaskOutput) String() string {
 37992  	return awsutil.Prettify(s)
 37993  }
 37994  
 37995  // GoString returns the string representation.
 37996  //
 37997  // API parameter values that are decorated as "sensitive" in the API will not
 37998  // be included in the string output. The member name will be present, but the
 37999  // value will be replaced with "sensitive".
 38000  func (s DescribeAuditMitigationActionsTaskOutput) GoString() string {
 38001  	return s.String()
 38002  }
 38003  
 38004  // SetActionsDefinition sets the ActionsDefinition field's value.
 38005  func (s *DescribeAuditMitigationActionsTaskOutput) SetActionsDefinition(v []*MitigationAction) *DescribeAuditMitigationActionsTaskOutput {
 38006  	s.ActionsDefinition = v
 38007  	return s
 38008  }
 38009  
 38010  // SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
 38011  func (s *DescribeAuditMitigationActionsTaskOutput) SetAuditCheckToActionsMapping(v map[string][]*string) *DescribeAuditMitigationActionsTaskOutput {
 38012  	s.AuditCheckToActionsMapping = v
 38013  	return s
 38014  }
 38015  
 38016  // SetEndTime sets the EndTime field's value.
 38017  func (s *DescribeAuditMitigationActionsTaskOutput) SetEndTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
 38018  	s.EndTime = &v
 38019  	return s
 38020  }
 38021  
 38022  // SetStartTime sets the StartTime field's value.
 38023  func (s *DescribeAuditMitigationActionsTaskOutput) SetStartTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
 38024  	s.StartTime = &v
 38025  	return s
 38026  }
 38027  
 38028  // SetTarget sets the Target field's value.
 38029  func (s *DescribeAuditMitigationActionsTaskOutput) SetTarget(v *AuditMitigationActionsTaskTarget) *DescribeAuditMitigationActionsTaskOutput {
 38030  	s.Target = v
 38031  	return s
 38032  }
 38033  
 38034  // SetTaskStatistics sets the TaskStatistics field's value.
 38035  func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatistics(v map[string]*TaskStatisticsForAuditCheck) *DescribeAuditMitigationActionsTaskOutput {
 38036  	s.TaskStatistics = v
 38037  	return s
 38038  }
 38039  
 38040  // SetTaskStatus sets the TaskStatus field's value.
 38041  func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatus(v string) *DescribeAuditMitigationActionsTaskOutput {
 38042  	s.TaskStatus = &v
 38043  	return s
 38044  }
 38045  
 38046  type DescribeAuditSuppressionInput struct {
 38047  	_ struct{} `type:"structure"`
 38048  
 38049  	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
 38050  	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 38051  	// to select which checks are enabled.)
 38052  	//
 38053  	// CheckName is a required field
 38054  	CheckName *string `locationName:"checkName" type:"string" required:"true"`
 38055  
 38056  	// Information that identifies the noncompliant resource.
 38057  	//
 38058  	// ResourceIdentifier is a required field
 38059  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
 38060  }
 38061  
 38062  // String returns the string representation.
 38063  //
 38064  // API parameter values that are decorated as "sensitive" in the API will not
 38065  // be included in the string output. The member name will be present, but the
 38066  // value will be replaced with "sensitive".
 38067  func (s DescribeAuditSuppressionInput) String() string {
 38068  	return awsutil.Prettify(s)
 38069  }
 38070  
 38071  // GoString returns the string representation.
 38072  //
 38073  // API parameter values that are decorated as "sensitive" in the API will not
 38074  // be included in the string output. The member name will be present, but the
 38075  // value will be replaced with "sensitive".
 38076  func (s DescribeAuditSuppressionInput) GoString() string {
 38077  	return s.String()
 38078  }
 38079  
 38080  // Validate inspects the fields of the type to determine if they are valid.
 38081  func (s *DescribeAuditSuppressionInput) Validate() error {
 38082  	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditSuppressionInput"}
 38083  	if s.CheckName == nil {
 38084  		invalidParams.Add(request.NewErrParamRequired("CheckName"))
 38085  	}
 38086  	if s.ResourceIdentifier == nil {
 38087  		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
 38088  	}
 38089  	if s.ResourceIdentifier != nil {
 38090  		if err := s.ResourceIdentifier.Validate(); err != nil {
 38091  			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
 38092  		}
 38093  	}
 38094  
 38095  	if invalidParams.Len() > 0 {
 38096  		return invalidParams
 38097  	}
 38098  	return nil
 38099  }
 38100  
 38101  // SetCheckName sets the CheckName field's value.
 38102  func (s *DescribeAuditSuppressionInput) SetCheckName(v string) *DescribeAuditSuppressionInput {
 38103  	s.CheckName = &v
 38104  	return s
 38105  }
 38106  
 38107  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 38108  func (s *DescribeAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionInput {
 38109  	s.ResourceIdentifier = v
 38110  	return s
 38111  }
 38112  
 38113  type DescribeAuditSuppressionOutput struct {
 38114  	_ struct{} `type:"structure"`
 38115  
 38116  	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
 38117  	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 38118  	// to select which checks are enabled.)
 38119  	CheckName *string `locationName:"checkName" type:"string"`
 38120  
 38121  	// The description of the audit suppression.
 38122  	Description *string `locationName:"description" type:"string"`
 38123  
 38124  	// The epoch timestamp in seconds at which this suppression expires.
 38125  	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
 38126  
 38127  	// Information that identifies the noncompliant resource.
 38128  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
 38129  
 38130  	// Indicates whether a suppression should exist indefinitely or not.
 38131  	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
 38132  }
 38133  
 38134  // String returns the string representation.
 38135  //
 38136  // API parameter values that are decorated as "sensitive" in the API will not
 38137  // be included in the string output. The member name will be present, but the
 38138  // value will be replaced with "sensitive".
 38139  func (s DescribeAuditSuppressionOutput) String() string {
 38140  	return awsutil.Prettify(s)
 38141  }
 38142  
 38143  // GoString returns the string representation.
 38144  //
 38145  // API parameter values that are decorated as "sensitive" in the API will not
 38146  // be included in the string output. The member name will be present, but the
 38147  // value will be replaced with "sensitive".
 38148  func (s DescribeAuditSuppressionOutput) GoString() string {
 38149  	return s.String()
 38150  }
 38151  
 38152  // SetCheckName sets the CheckName field's value.
 38153  func (s *DescribeAuditSuppressionOutput) SetCheckName(v string) *DescribeAuditSuppressionOutput {
 38154  	s.CheckName = &v
 38155  	return s
 38156  }
 38157  
 38158  // SetDescription sets the Description field's value.
 38159  func (s *DescribeAuditSuppressionOutput) SetDescription(v string) *DescribeAuditSuppressionOutput {
 38160  	s.Description = &v
 38161  	return s
 38162  }
 38163  
 38164  // SetExpirationDate sets the ExpirationDate field's value.
 38165  func (s *DescribeAuditSuppressionOutput) SetExpirationDate(v time.Time) *DescribeAuditSuppressionOutput {
 38166  	s.ExpirationDate = &v
 38167  	return s
 38168  }
 38169  
 38170  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 38171  func (s *DescribeAuditSuppressionOutput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionOutput {
 38172  	s.ResourceIdentifier = v
 38173  	return s
 38174  }
 38175  
 38176  // SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
 38177  func (s *DescribeAuditSuppressionOutput) SetSuppressIndefinitely(v bool) *DescribeAuditSuppressionOutput {
 38178  	s.SuppressIndefinitely = &v
 38179  	return s
 38180  }
 38181  
 38182  type DescribeAuditTaskInput struct {
 38183  	_ struct{} `type:"structure" nopayload:"true"`
 38184  
 38185  	// The ID of the audit whose information you want to get.
 38186  	//
 38187  	// TaskId is a required field
 38188  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 38189  }
 38190  
 38191  // String returns the string representation.
 38192  //
 38193  // API parameter values that are decorated as "sensitive" in the API will not
 38194  // be included in the string output. The member name will be present, but the
 38195  // value will be replaced with "sensitive".
 38196  func (s DescribeAuditTaskInput) String() string {
 38197  	return awsutil.Prettify(s)
 38198  }
 38199  
 38200  // GoString returns the string representation.
 38201  //
 38202  // API parameter values that are decorated as "sensitive" in the API will not
 38203  // be included in the string output. The member name will be present, but the
 38204  // value will be replaced with "sensitive".
 38205  func (s DescribeAuditTaskInput) GoString() string {
 38206  	return s.String()
 38207  }
 38208  
 38209  // Validate inspects the fields of the type to determine if they are valid.
 38210  func (s *DescribeAuditTaskInput) Validate() error {
 38211  	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
 38212  	if s.TaskId == nil {
 38213  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 38214  	}
 38215  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 38216  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 38217  	}
 38218  
 38219  	if invalidParams.Len() > 0 {
 38220  		return invalidParams
 38221  	}
 38222  	return nil
 38223  }
 38224  
 38225  // SetTaskId sets the TaskId field's value.
 38226  func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
 38227  	s.TaskId = &v
 38228  	return s
 38229  }
 38230  
 38231  type DescribeAuditTaskOutput struct {
 38232  	_ struct{} `type:"structure"`
 38233  
 38234  	// Detailed information about each check performed during this audit.
 38235  	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
 38236  
 38237  	// The name of the scheduled audit (only if the audit was a scheduled audit).
 38238  	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
 38239  
 38240  	// The time the audit started.
 38241  	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
 38242  
 38243  	// Statistical information about the audit.
 38244  	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
 38245  
 38246  	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
 38247  	// "CANCELED".
 38248  	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
 38249  
 38250  	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
 38251  	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
 38252  }
 38253  
 38254  // String returns the string representation.
 38255  //
 38256  // API parameter values that are decorated as "sensitive" in the API will not
 38257  // be included in the string output. The member name will be present, but the
 38258  // value will be replaced with "sensitive".
 38259  func (s DescribeAuditTaskOutput) String() string {
 38260  	return awsutil.Prettify(s)
 38261  }
 38262  
 38263  // GoString returns the string representation.
 38264  //
 38265  // API parameter values that are decorated as "sensitive" in the API will not
 38266  // be included in the string output. The member name will be present, but the
 38267  // value will be replaced with "sensitive".
 38268  func (s DescribeAuditTaskOutput) GoString() string {
 38269  	return s.String()
 38270  }
 38271  
 38272  // SetAuditDetails sets the AuditDetails field's value.
 38273  func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
 38274  	s.AuditDetails = v
 38275  	return s
 38276  }
 38277  
 38278  // SetScheduledAuditName sets the ScheduledAuditName field's value.
 38279  func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
 38280  	s.ScheduledAuditName = &v
 38281  	return s
 38282  }
 38283  
 38284  // SetTaskStartTime sets the TaskStartTime field's value.
 38285  func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
 38286  	s.TaskStartTime = &v
 38287  	return s
 38288  }
 38289  
 38290  // SetTaskStatistics sets the TaskStatistics field's value.
 38291  func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
 38292  	s.TaskStatistics = v
 38293  	return s
 38294  }
 38295  
 38296  // SetTaskStatus sets the TaskStatus field's value.
 38297  func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
 38298  	s.TaskStatus = &v
 38299  	return s
 38300  }
 38301  
 38302  // SetTaskType sets the TaskType field's value.
 38303  func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
 38304  	s.TaskType = &v
 38305  	return s
 38306  }
 38307  
 38308  type DescribeAuthorizerInput struct {
 38309  	_ struct{} `type:"structure" nopayload:"true"`
 38310  
 38311  	// The name of the authorizer to describe.
 38312  	//
 38313  	// AuthorizerName is a required field
 38314  	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
 38315  }
 38316  
 38317  // String returns the string representation.
 38318  //
 38319  // API parameter values that are decorated as "sensitive" in the API will not
 38320  // be included in the string output. The member name will be present, but the
 38321  // value will be replaced with "sensitive".
 38322  func (s DescribeAuthorizerInput) String() string {
 38323  	return awsutil.Prettify(s)
 38324  }
 38325  
 38326  // GoString returns the string representation.
 38327  //
 38328  // API parameter values that are decorated as "sensitive" in the API will not
 38329  // be included in the string output. The member name will be present, but the
 38330  // value will be replaced with "sensitive".
 38331  func (s DescribeAuthorizerInput) GoString() string {
 38332  	return s.String()
 38333  }
 38334  
 38335  // Validate inspects the fields of the type to determine if they are valid.
 38336  func (s *DescribeAuthorizerInput) Validate() error {
 38337  	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
 38338  	if s.AuthorizerName == nil {
 38339  		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
 38340  	}
 38341  	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
 38342  		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
 38343  	}
 38344  
 38345  	if invalidParams.Len() > 0 {
 38346  		return invalidParams
 38347  	}
 38348  	return nil
 38349  }
 38350  
 38351  // SetAuthorizerName sets the AuthorizerName field's value.
 38352  func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
 38353  	s.AuthorizerName = &v
 38354  	return s
 38355  }
 38356  
 38357  type DescribeAuthorizerOutput struct {
 38358  	_ struct{} `type:"structure"`
 38359  
 38360  	// The authorizer description.
 38361  	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
 38362  }
 38363  
 38364  // String returns the string representation.
 38365  //
 38366  // API parameter values that are decorated as "sensitive" in the API will not
 38367  // be included in the string output. The member name will be present, but the
 38368  // value will be replaced with "sensitive".
 38369  func (s DescribeAuthorizerOutput) String() string {
 38370  	return awsutil.Prettify(s)
 38371  }
 38372  
 38373  // GoString returns the string representation.
 38374  //
 38375  // API parameter values that are decorated as "sensitive" in the API will not
 38376  // be included in the string output. The member name will be present, but the
 38377  // value will be replaced with "sensitive".
 38378  func (s DescribeAuthorizerOutput) GoString() string {
 38379  	return s.String()
 38380  }
 38381  
 38382  // SetAuthorizerDescription sets the AuthorizerDescription field's value.
 38383  func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
 38384  	s.AuthorizerDescription = v
 38385  	return s
 38386  }
 38387  
 38388  type DescribeBillingGroupInput struct {
 38389  	_ struct{} `type:"structure" nopayload:"true"`
 38390  
 38391  	// The name of the billing group.
 38392  	//
 38393  	// BillingGroupName is a required field
 38394  	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
 38395  }
 38396  
 38397  // String returns the string representation.
 38398  //
 38399  // API parameter values that are decorated as "sensitive" in the API will not
 38400  // be included in the string output. The member name will be present, but the
 38401  // value will be replaced with "sensitive".
 38402  func (s DescribeBillingGroupInput) String() string {
 38403  	return awsutil.Prettify(s)
 38404  }
 38405  
 38406  // GoString returns the string representation.
 38407  //
 38408  // API parameter values that are decorated as "sensitive" in the API will not
 38409  // be included in the string output. The member name will be present, but the
 38410  // value will be replaced with "sensitive".
 38411  func (s DescribeBillingGroupInput) GoString() string {
 38412  	return s.String()
 38413  }
 38414  
 38415  // Validate inspects the fields of the type to determine if they are valid.
 38416  func (s *DescribeBillingGroupInput) Validate() error {
 38417  	invalidParams := request.ErrInvalidParams{Context: "DescribeBillingGroupInput"}
 38418  	if s.BillingGroupName == nil {
 38419  		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
 38420  	}
 38421  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 38422  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 38423  	}
 38424  
 38425  	if invalidParams.Len() > 0 {
 38426  		return invalidParams
 38427  	}
 38428  	return nil
 38429  }
 38430  
 38431  // SetBillingGroupName sets the BillingGroupName field's value.
 38432  func (s *DescribeBillingGroupInput) SetBillingGroupName(v string) *DescribeBillingGroupInput {
 38433  	s.BillingGroupName = &v
 38434  	return s
 38435  }
 38436  
 38437  type DescribeBillingGroupOutput struct {
 38438  	_ struct{} `type:"structure"`
 38439  
 38440  	// The ARN of the billing group.
 38441  	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
 38442  
 38443  	// The ID of the billing group.
 38444  	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
 38445  
 38446  	// Additional information about the billing group.
 38447  	BillingGroupMetadata *BillingGroupMetadata `locationName:"billingGroupMetadata" type:"structure"`
 38448  
 38449  	// The name of the billing group.
 38450  	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
 38451  
 38452  	// The properties of the billing group.
 38453  	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
 38454  
 38455  	// The version of the billing group.
 38456  	Version *int64 `locationName:"version" type:"long"`
 38457  }
 38458  
 38459  // String returns the string representation.
 38460  //
 38461  // API parameter values that are decorated as "sensitive" in the API will not
 38462  // be included in the string output. The member name will be present, but the
 38463  // value will be replaced with "sensitive".
 38464  func (s DescribeBillingGroupOutput) String() string {
 38465  	return awsutil.Prettify(s)
 38466  }
 38467  
 38468  // GoString returns the string representation.
 38469  //
 38470  // API parameter values that are decorated as "sensitive" in the API will not
 38471  // be included in the string output. The member name will be present, but the
 38472  // value will be replaced with "sensitive".
 38473  func (s DescribeBillingGroupOutput) GoString() string {
 38474  	return s.String()
 38475  }
 38476  
 38477  // SetBillingGroupArn sets the BillingGroupArn field's value.
 38478  func (s *DescribeBillingGroupOutput) SetBillingGroupArn(v string) *DescribeBillingGroupOutput {
 38479  	s.BillingGroupArn = &v
 38480  	return s
 38481  }
 38482  
 38483  // SetBillingGroupId sets the BillingGroupId field's value.
 38484  func (s *DescribeBillingGroupOutput) SetBillingGroupId(v string) *DescribeBillingGroupOutput {
 38485  	s.BillingGroupId = &v
 38486  	return s
 38487  }
 38488  
 38489  // SetBillingGroupMetadata sets the BillingGroupMetadata field's value.
 38490  func (s *DescribeBillingGroupOutput) SetBillingGroupMetadata(v *BillingGroupMetadata) *DescribeBillingGroupOutput {
 38491  	s.BillingGroupMetadata = v
 38492  	return s
 38493  }
 38494  
 38495  // SetBillingGroupName sets the BillingGroupName field's value.
 38496  func (s *DescribeBillingGroupOutput) SetBillingGroupName(v string) *DescribeBillingGroupOutput {
 38497  	s.BillingGroupName = &v
 38498  	return s
 38499  }
 38500  
 38501  // SetBillingGroupProperties sets the BillingGroupProperties field's value.
 38502  func (s *DescribeBillingGroupOutput) SetBillingGroupProperties(v *BillingGroupProperties) *DescribeBillingGroupOutput {
 38503  	s.BillingGroupProperties = v
 38504  	return s
 38505  }
 38506  
 38507  // SetVersion sets the Version field's value.
 38508  func (s *DescribeBillingGroupOutput) SetVersion(v int64) *DescribeBillingGroupOutput {
 38509  	s.Version = &v
 38510  	return s
 38511  }
 38512  
 38513  // The input for the DescribeCACertificate operation.
 38514  type DescribeCACertificateInput struct {
 38515  	_ struct{} `type:"structure" nopayload:"true"`
 38516  
 38517  	// The CA certificate identifier.
 38518  	//
 38519  	// CertificateId is a required field
 38520  	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
 38521  }
 38522  
 38523  // String returns the string representation.
 38524  //
 38525  // API parameter values that are decorated as "sensitive" in the API will not
 38526  // be included in the string output. The member name will be present, but the
 38527  // value will be replaced with "sensitive".
 38528  func (s DescribeCACertificateInput) String() string {
 38529  	return awsutil.Prettify(s)
 38530  }
 38531  
 38532  // GoString returns the string representation.
 38533  //
 38534  // API parameter values that are decorated as "sensitive" in the API will not
 38535  // be included in the string output. The member name will be present, but the
 38536  // value will be replaced with "sensitive".
 38537  func (s DescribeCACertificateInput) GoString() string {
 38538  	return s.String()
 38539  }
 38540  
 38541  // Validate inspects the fields of the type to determine if they are valid.
 38542  func (s *DescribeCACertificateInput) Validate() error {
 38543  	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
 38544  	if s.CertificateId == nil {
 38545  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 38546  	}
 38547  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 38548  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 38549  	}
 38550  
 38551  	if invalidParams.Len() > 0 {
 38552  		return invalidParams
 38553  	}
 38554  	return nil
 38555  }
 38556  
 38557  // SetCertificateId sets the CertificateId field's value.
 38558  func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
 38559  	s.CertificateId = &v
 38560  	return s
 38561  }
 38562  
 38563  // The output from the DescribeCACertificate operation.
 38564  type DescribeCACertificateOutput struct {
 38565  	_ struct{} `type:"structure"`
 38566  
 38567  	// The CA certificate description.
 38568  	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
 38569  
 38570  	// Information about the registration configuration.
 38571  	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
 38572  }
 38573  
 38574  // String returns the string representation.
 38575  //
 38576  // API parameter values that are decorated as "sensitive" in the API will not
 38577  // be included in the string output. The member name will be present, but the
 38578  // value will be replaced with "sensitive".
 38579  func (s DescribeCACertificateOutput) String() string {
 38580  	return awsutil.Prettify(s)
 38581  }
 38582  
 38583  // GoString returns the string representation.
 38584  //
 38585  // API parameter values that are decorated as "sensitive" in the API will not
 38586  // be included in the string output. The member name will be present, but the
 38587  // value will be replaced with "sensitive".
 38588  func (s DescribeCACertificateOutput) GoString() string {
 38589  	return s.String()
 38590  }
 38591  
 38592  // SetCertificateDescription sets the CertificateDescription field's value.
 38593  func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
 38594  	s.CertificateDescription = v
 38595  	return s
 38596  }
 38597  
 38598  // SetRegistrationConfig sets the RegistrationConfig field's value.
 38599  func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
 38600  	s.RegistrationConfig = v
 38601  	return s
 38602  }
 38603  
 38604  // The input for the DescribeCertificate operation.
 38605  type DescribeCertificateInput struct {
 38606  	_ struct{} `type:"structure" nopayload:"true"`
 38607  
 38608  	// The ID of the certificate. (The last part of the certificate ARN contains
 38609  	// the certificate ID.)
 38610  	//
 38611  	// CertificateId is a required field
 38612  	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
 38613  }
 38614  
 38615  // String returns the string representation.
 38616  //
 38617  // API parameter values that are decorated as "sensitive" in the API will not
 38618  // be included in the string output. The member name will be present, but the
 38619  // value will be replaced with "sensitive".
 38620  func (s DescribeCertificateInput) String() string {
 38621  	return awsutil.Prettify(s)
 38622  }
 38623  
 38624  // GoString returns the string representation.
 38625  //
 38626  // API parameter values that are decorated as "sensitive" in the API will not
 38627  // be included in the string output. The member name will be present, but the
 38628  // value will be replaced with "sensitive".
 38629  func (s DescribeCertificateInput) GoString() string {
 38630  	return s.String()
 38631  }
 38632  
 38633  // Validate inspects the fields of the type to determine if they are valid.
 38634  func (s *DescribeCertificateInput) Validate() error {
 38635  	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
 38636  	if s.CertificateId == nil {
 38637  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 38638  	}
 38639  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 38640  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 38641  	}
 38642  
 38643  	if invalidParams.Len() > 0 {
 38644  		return invalidParams
 38645  	}
 38646  	return nil
 38647  }
 38648  
 38649  // SetCertificateId sets the CertificateId field's value.
 38650  func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
 38651  	s.CertificateId = &v
 38652  	return s
 38653  }
 38654  
 38655  // The output of the DescribeCertificate operation.
 38656  type DescribeCertificateOutput struct {
 38657  	_ struct{} `type:"structure"`
 38658  
 38659  	// The description of the certificate.
 38660  	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
 38661  }
 38662  
 38663  // String returns the string representation.
 38664  //
 38665  // API parameter values that are decorated as "sensitive" in the API will not
 38666  // be included in the string output. The member name will be present, but the
 38667  // value will be replaced with "sensitive".
 38668  func (s DescribeCertificateOutput) String() string {
 38669  	return awsutil.Prettify(s)
 38670  }
 38671  
 38672  // GoString returns the string representation.
 38673  //
 38674  // API parameter values that are decorated as "sensitive" in the API will not
 38675  // be included in the string output. The member name will be present, but the
 38676  // value will be replaced with "sensitive".
 38677  func (s DescribeCertificateOutput) GoString() string {
 38678  	return s.String()
 38679  }
 38680  
 38681  // SetCertificateDescription sets the CertificateDescription field's value.
 38682  func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
 38683  	s.CertificateDescription = v
 38684  	return s
 38685  }
 38686  
 38687  type DescribeCustomMetricInput struct {
 38688  	_ struct{} `type:"structure" nopayload:"true"`
 38689  
 38690  	// The name of the custom metric.
 38691  	//
 38692  	// MetricName is a required field
 38693  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 38694  }
 38695  
 38696  // String returns the string representation.
 38697  //
 38698  // API parameter values that are decorated as "sensitive" in the API will not
 38699  // be included in the string output. The member name will be present, but the
 38700  // value will be replaced with "sensitive".
 38701  func (s DescribeCustomMetricInput) String() string {
 38702  	return awsutil.Prettify(s)
 38703  }
 38704  
 38705  // GoString returns the string representation.
 38706  //
 38707  // API parameter values that are decorated as "sensitive" in the API will not
 38708  // be included in the string output. The member name will be present, but the
 38709  // value will be replaced with "sensitive".
 38710  func (s DescribeCustomMetricInput) GoString() string {
 38711  	return s.String()
 38712  }
 38713  
 38714  // Validate inspects the fields of the type to determine if they are valid.
 38715  func (s *DescribeCustomMetricInput) Validate() error {
 38716  	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomMetricInput"}
 38717  	if s.MetricName == nil {
 38718  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 38719  	}
 38720  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 38721  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 38722  	}
 38723  
 38724  	if invalidParams.Len() > 0 {
 38725  		return invalidParams
 38726  	}
 38727  	return nil
 38728  }
 38729  
 38730  // SetMetricName sets the MetricName field's value.
 38731  func (s *DescribeCustomMetricInput) SetMetricName(v string) *DescribeCustomMetricInput {
 38732  	s.MetricName = &v
 38733  	return s
 38734  }
 38735  
 38736  type DescribeCustomMetricOutput struct {
 38737  	_ struct{} `type:"structure"`
 38738  
 38739  	// The creation date of the custom metric in milliseconds since epoch.
 38740  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 38741  
 38742  	// Field represents a friendly name in the console for the custom metric; doesn't
 38743  	// have to be unique. Don't use this name as the metric identifier in the device
 38744  	// metric report. Can be updated.
 38745  	DisplayName *string `locationName:"displayName" type:"string"`
 38746  
 38747  	// The time the custom metric was last modified in milliseconds since epoch.
 38748  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 38749  
 38750  	// The Amazon Resource Number (ARN) of the custom metric.
 38751  	MetricArn *string `locationName:"metricArn" type:"string"`
 38752  
 38753  	// The name of the custom metric.
 38754  	MetricName *string `locationName:"metricName" min:"1" type:"string"`
 38755  
 38756  	// The type of the custom metric. Types include string-list, ip-address-list,
 38757  	// number-list, and number.
 38758  	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
 38759  }
 38760  
 38761  // String returns the string representation.
 38762  //
 38763  // API parameter values that are decorated as "sensitive" in the API will not
 38764  // be included in the string output. The member name will be present, but the
 38765  // value will be replaced with "sensitive".
 38766  func (s DescribeCustomMetricOutput) String() string {
 38767  	return awsutil.Prettify(s)
 38768  }
 38769  
 38770  // GoString returns the string representation.
 38771  //
 38772  // API parameter values that are decorated as "sensitive" in the API will not
 38773  // be included in the string output. The member name will be present, but the
 38774  // value will be replaced with "sensitive".
 38775  func (s DescribeCustomMetricOutput) GoString() string {
 38776  	return s.String()
 38777  }
 38778  
 38779  // SetCreationDate sets the CreationDate field's value.
 38780  func (s *DescribeCustomMetricOutput) SetCreationDate(v time.Time) *DescribeCustomMetricOutput {
 38781  	s.CreationDate = &v
 38782  	return s
 38783  }
 38784  
 38785  // SetDisplayName sets the DisplayName field's value.
 38786  func (s *DescribeCustomMetricOutput) SetDisplayName(v string) *DescribeCustomMetricOutput {
 38787  	s.DisplayName = &v
 38788  	return s
 38789  }
 38790  
 38791  // SetLastModifiedDate sets the LastModifiedDate field's value.
 38792  func (s *DescribeCustomMetricOutput) SetLastModifiedDate(v time.Time) *DescribeCustomMetricOutput {
 38793  	s.LastModifiedDate = &v
 38794  	return s
 38795  }
 38796  
 38797  // SetMetricArn sets the MetricArn field's value.
 38798  func (s *DescribeCustomMetricOutput) SetMetricArn(v string) *DescribeCustomMetricOutput {
 38799  	s.MetricArn = &v
 38800  	return s
 38801  }
 38802  
 38803  // SetMetricName sets the MetricName field's value.
 38804  func (s *DescribeCustomMetricOutput) SetMetricName(v string) *DescribeCustomMetricOutput {
 38805  	s.MetricName = &v
 38806  	return s
 38807  }
 38808  
 38809  // SetMetricType sets the MetricType field's value.
 38810  func (s *DescribeCustomMetricOutput) SetMetricType(v string) *DescribeCustomMetricOutput {
 38811  	s.MetricType = &v
 38812  	return s
 38813  }
 38814  
 38815  type DescribeDefaultAuthorizerInput struct {
 38816  	_ struct{} `type:"structure" nopayload:"true"`
 38817  }
 38818  
 38819  // String returns the string representation.
 38820  //
 38821  // API parameter values that are decorated as "sensitive" in the API will not
 38822  // be included in the string output. The member name will be present, but the
 38823  // value will be replaced with "sensitive".
 38824  func (s DescribeDefaultAuthorizerInput) String() string {
 38825  	return awsutil.Prettify(s)
 38826  }
 38827  
 38828  // GoString returns the string representation.
 38829  //
 38830  // API parameter values that are decorated as "sensitive" in the API will not
 38831  // be included in the string output. The member name will be present, but the
 38832  // value will be replaced with "sensitive".
 38833  func (s DescribeDefaultAuthorizerInput) GoString() string {
 38834  	return s.String()
 38835  }
 38836  
 38837  type DescribeDefaultAuthorizerOutput struct {
 38838  	_ struct{} `type:"structure"`
 38839  
 38840  	// The default authorizer's description.
 38841  	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
 38842  }
 38843  
 38844  // String returns the string representation.
 38845  //
 38846  // API parameter values that are decorated as "sensitive" in the API will not
 38847  // be included in the string output. The member name will be present, but the
 38848  // value will be replaced with "sensitive".
 38849  func (s DescribeDefaultAuthorizerOutput) String() string {
 38850  	return awsutil.Prettify(s)
 38851  }
 38852  
 38853  // GoString returns the string representation.
 38854  //
 38855  // API parameter values that are decorated as "sensitive" in the API will not
 38856  // be included in the string output. The member name will be present, but the
 38857  // value will be replaced with "sensitive".
 38858  func (s DescribeDefaultAuthorizerOutput) GoString() string {
 38859  	return s.String()
 38860  }
 38861  
 38862  // SetAuthorizerDescription sets the AuthorizerDescription field's value.
 38863  func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
 38864  	s.AuthorizerDescription = v
 38865  	return s
 38866  }
 38867  
 38868  type DescribeDetectMitigationActionsTaskInput struct {
 38869  	_ struct{} `type:"structure" nopayload:"true"`
 38870  
 38871  	// The unique identifier of the task.
 38872  	//
 38873  	// TaskId is a required field
 38874  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 38875  }
 38876  
 38877  // String returns the string representation.
 38878  //
 38879  // API parameter values that are decorated as "sensitive" in the API will not
 38880  // be included in the string output. The member name will be present, but the
 38881  // value will be replaced with "sensitive".
 38882  func (s DescribeDetectMitigationActionsTaskInput) String() string {
 38883  	return awsutil.Prettify(s)
 38884  }
 38885  
 38886  // GoString returns the string representation.
 38887  //
 38888  // API parameter values that are decorated as "sensitive" in the API will not
 38889  // be included in the string output. The member name will be present, but the
 38890  // value will be replaced with "sensitive".
 38891  func (s DescribeDetectMitigationActionsTaskInput) GoString() string {
 38892  	return s.String()
 38893  }
 38894  
 38895  // Validate inspects the fields of the type to determine if they are valid.
 38896  func (s *DescribeDetectMitigationActionsTaskInput) Validate() error {
 38897  	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectMitigationActionsTaskInput"}
 38898  	if s.TaskId == nil {
 38899  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 38900  	}
 38901  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 38902  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 38903  	}
 38904  
 38905  	if invalidParams.Len() > 0 {
 38906  		return invalidParams
 38907  	}
 38908  	return nil
 38909  }
 38910  
 38911  // SetTaskId sets the TaskId field's value.
 38912  func (s *DescribeDetectMitigationActionsTaskInput) SetTaskId(v string) *DescribeDetectMitigationActionsTaskInput {
 38913  	s.TaskId = &v
 38914  	return s
 38915  }
 38916  
 38917  type DescribeDetectMitigationActionsTaskOutput struct {
 38918  	_ struct{} `type:"structure"`
 38919  
 38920  	// The description of a task.
 38921  	TaskSummary *DetectMitigationActionsTaskSummary `locationName:"taskSummary" type:"structure"`
 38922  }
 38923  
 38924  // String returns the string representation.
 38925  //
 38926  // API parameter values that are decorated as "sensitive" in the API will not
 38927  // be included in the string output. The member name will be present, but the
 38928  // value will be replaced with "sensitive".
 38929  func (s DescribeDetectMitigationActionsTaskOutput) String() string {
 38930  	return awsutil.Prettify(s)
 38931  }
 38932  
 38933  // GoString returns the string representation.
 38934  //
 38935  // API parameter values that are decorated as "sensitive" in the API will not
 38936  // be included in the string output. The member name will be present, but the
 38937  // value will be replaced with "sensitive".
 38938  func (s DescribeDetectMitigationActionsTaskOutput) GoString() string {
 38939  	return s.String()
 38940  }
 38941  
 38942  // SetTaskSummary sets the TaskSummary field's value.
 38943  func (s *DescribeDetectMitigationActionsTaskOutput) SetTaskSummary(v *DetectMitigationActionsTaskSummary) *DescribeDetectMitigationActionsTaskOutput {
 38944  	s.TaskSummary = v
 38945  	return s
 38946  }
 38947  
 38948  type DescribeDimensionInput struct {
 38949  	_ struct{} `type:"structure" nopayload:"true"`
 38950  
 38951  	// The unique identifier for the dimension.
 38952  	//
 38953  	// Name is a required field
 38954  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 38955  }
 38956  
 38957  // String returns the string representation.
 38958  //
 38959  // API parameter values that are decorated as "sensitive" in the API will not
 38960  // be included in the string output. The member name will be present, but the
 38961  // value will be replaced with "sensitive".
 38962  func (s DescribeDimensionInput) String() string {
 38963  	return awsutil.Prettify(s)
 38964  }
 38965  
 38966  // GoString returns the string representation.
 38967  //
 38968  // API parameter values that are decorated as "sensitive" in the API will not
 38969  // be included in the string output. The member name will be present, but the
 38970  // value will be replaced with "sensitive".
 38971  func (s DescribeDimensionInput) GoString() string {
 38972  	return s.String()
 38973  }
 38974  
 38975  // Validate inspects the fields of the type to determine if they are valid.
 38976  func (s *DescribeDimensionInput) Validate() error {
 38977  	invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionInput"}
 38978  	if s.Name == nil {
 38979  		invalidParams.Add(request.NewErrParamRequired("Name"))
 38980  	}
 38981  	if s.Name != nil && len(*s.Name) < 1 {
 38982  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 38983  	}
 38984  
 38985  	if invalidParams.Len() > 0 {
 38986  		return invalidParams
 38987  	}
 38988  	return nil
 38989  }
 38990  
 38991  // SetName sets the Name field's value.
 38992  func (s *DescribeDimensionInput) SetName(v string) *DescribeDimensionInput {
 38993  	s.Name = &v
 38994  	return s
 38995  }
 38996  
 38997  type DescribeDimensionOutput struct {
 38998  	_ struct{} `type:"structure"`
 38999  
 39000  	// The Amazon Resource Name (ARN) for the dimension.
 39001  	Arn *string `locationName:"arn" type:"string"`
 39002  
 39003  	// The date the dimension was created.
 39004  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 39005  
 39006  	// The date the dimension was last modified.
 39007  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 39008  
 39009  	// The unique identifier for the dimension.
 39010  	Name *string `locationName:"name" min:"1" type:"string"`
 39011  
 39012  	// The value or list of values used to scope the dimension. For example, for
 39013  	// topic filters, this is the pattern used to match the MQTT topic name.
 39014  	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
 39015  
 39016  	// The type of the dimension.
 39017  	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
 39018  }
 39019  
 39020  // String returns the string representation.
 39021  //
 39022  // API parameter values that are decorated as "sensitive" in the API will not
 39023  // be included in the string output. The member name will be present, but the
 39024  // value will be replaced with "sensitive".
 39025  func (s DescribeDimensionOutput) String() string {
 39026  	return awsutil.Prettify(s)
 39027  }
 39028  
 39029  // GoString returns the string representation.
 39030  //
 39031  // API parameter values that are decorated as "sensitive" in the API will not
 39032  // be included in the string output. The member name will be present, but the
 39033  // value will be replaced with "sensitive".
 39034  func (s DescribeDimensionOutput) GoString() string {
 39035  	return s.String()
 39036  }
 39037  
 39038  // SetArn sets the Arn field's value.
 39039  func (s *DescribeDimensionOutput) SetArn(v string) *DescribeDimensionOutput {
 39040  	s.Arn = &v
 39041  	return s
 39042  }
 39043  
 39044  // SetCreationDate sets the CreationDate field's value.
 39045  func (s *DescribeDimensionOutput) SetCreationDate(v time.Time) *DescribeDimensionOutput {
 39046  	s.CreationDate = &v
 39047  	return s
 39048  }
 39049  
 39050  // SetLastModifiedDate sets the LastModifiedDate field's value.
 39051  func (s *DescribeDimensionOutput) SetLastModifiedDate(v time.Time) *DescribeDimensionOutput {
 39052  	s.LastModifiedDate = &v
 39053  	return s
 39054  }
 39055  
 39056  // SetName sets the Name field's value.
 39057  func (s *DescribeDimensionOutput) SetName(v string) *DescribeDimensionOutput {
 39058  	s.Name = &v
 39059  	return s
 39060  }
 39061  
 39062  // SetStringValues sets the StringValues field's value.
 39063  func (s *DescribeDimensionOutput) SetStringValues(v []*string) *DescribeDimensionOutput {
 39064  	s.StringValues = v
 39065  	return s
 39066  }
 39067  
 39068  // SetType sets the Type field's value.
 39069  func (s *DescribeDimensionOutput) SetType(v string) *DescribeDimensionOutput {
 39070  	s.Type = &v
 39071  	return s
 39072  }
 39073  
 39074  type DescribeDomainConfigurationInput struct {
 39075  	_ struct{} `type:"structure" nopayload:"true"`
 39076  
 39077  	// The name of the domain configuration.
 39078  	//
 39079  	// DomainConfigurationName is a required field
 39080  	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
 39081  }
 39082  
 39083  // String returns the string representation.
 39084  //
 39085  // API parameter values that are decorated as "sensitive" in the API will not
 39086  // be included in the string output. The member name will be present, but the
 39087  // value will be replaced with "sensitive".
 39088  func (s DescribeDomainConfigurationInput) String() string {
 39089  	return awsutil.Prettify(s)
 39090  }
 39091  
 39092  // GoString returns the string representation.
 39093  //
 39094  // API parameter values that are decorated as "sensitive" in the API will not
 39095  // be included in the string output. The member name will be present, but the
 39096  // value will be replaced with "sensitive".
 39097  func (s DescribeDomainConfigurationInput) GoString() string {
 39098  	return s.String()
 39099  }
 39100  
 39101  // Validate inspects the fields of the type to determine if they are valid.
 39102  func (s *DescribeDomainConfigurationInput) Validate() error {
 39103  	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"}
 39104  	if s.DomainConfigurationName == nil {
 39105  		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
 39106  	}
 39107  	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
 39108  		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
 39109  	}
 39110  
 39111  	if invalidParams.Len() > 0 {
 39112  		return invalidParams
 39113  	}
 39114  	return nil
 39115  }
 39116  
 39117  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 39118  func (s *DescribeDomainConfigurationInput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationInput {
 39119  	s.DomainConfigurationName = &v
 39120  	return s
 39121  }
 39122  
 39123  type DescribeDomainConfigurationOutput struct {
 39124  	_ struct{} `type:"structure"`
 39125  
 39126  	// An object that specifies the authorization service for a domain.
 39127  	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
 39128  
 39129  	// The ARN of the domain configuration.
 39130  	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
 39131  
 39132  	// The name of the domain configuration.
 39133  	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
 39134  
 39135  	// A Boolean value that specifies the current state of the domain configuration.
 39136  	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
 39137  
 39138  	// The name of the domain.
 39139  	DomainName *string `locationName:"domainName" min:"1" type:"string"`
 39140  
 39141  	// The type of the domain.
 39142  	DomainType *string `locationName:"domainType" type:"string" enum:"DomainType"`
 39143  
 39144  	// The date and time the domain configuration's status was last changed.
 39145  	LastStatusChangeDate *time.Time `locationName:"lastStatusChangeDate" type:"timestamp"`
 39146  
 39147  	// A list containing summary information about the server certificate included
 39148  	// in the domain configuration.
 39149  	ServerCertificates []*ServerCertificateSummary `locationName:"serverCertificates" type:"list"`
 39150  
 39151  	// The type of service delivered by the endpoint.
 39152  	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
 39153  }
 39154  
 39155  // String returns the string representation.
 39156  //
 39157  // API parameter values that are decorated as "sensitive" in the API will not
 39158  // be included in the string output. The member name will be present, but the
 39159  // value will be replaced with "sensitive".
 39160  func (s DescribeDomainConfigurationOutput) String() string {
 39161  	return awsutil.Prettify(s)
 39162  }
 39163  
 39164  // GoString returns the string representation.
 39165  //
 39166  // API parameter values that are decorated as "sensitive" in the API will not
 39167  // be included in the string output. The member name will be present, but the
 39168  // value will be replaced with "sensitive".
 39169  func (s DescribeDomainConfigurationOutput) GoString() string {
 39170  	return s.String()
 39171  }
 39172  
 39173  // SetAuthorizerConfig sets the AuthorizerConfig field's value.
 39174  func (s *DescribeDomainConfigurationOutput) SetAuthorizerConfig(v *AuthorizerConfig) *DescribeDomainConfigurationOutput {
 39175  	s.AuthorizerConfig = v
 39176  	return s
 39177  }
 39178  
 39179  // SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
 39180  func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationArn(v string) *DescribeDomainConfigurationOutput {
 39181  	s.DomainConfigurationArn = &v
 39182  	return s
 39183  }
 39184  
 39185  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 39186  func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationOutput {
 39187  	s.DomainConfigurationName = &v
 39188  	return s
 39189  }
 39190  
 39191  // SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
 39192  func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationStatus(v string) *DescribeDomainConfigurationOutput {
 39193  	s.DomainConfigurationStatus = &v
 39194  	return s
 39195  }
 39196  
 39197  // SetDomainName sets the DomainName field's value.
 39198  func (s *DescribeDomainConfigurationOutput) SetDomainName(v string) *DescribeDomainConfigurationOutput {
 39199  	s.DomainName = &v
 39200  	return s
 39201  }
 39202  
 39203  // SetDomainType sets the DomainType field's value.
 39204  func (s *DescribeDomainConfigurationOutput) SetDomainType(v string) *DescribeDomainConfigurationOutput {
 39205  	s.DomainType = &v
 39206  	return s
 39207  }
 39208  
 39209  // SetLastStatusChangeDate sets the LastStatusChangeDate field's value.
 39210  func (s *DescribeDomainConfigurationOutput) SetLastStatusChangeDate(v time.Time) *DescribeDomainConfigurationOutput {
 39211  	s.LastStatusChangeDate = &v
 39212  	return s
 39213  }
 39214  
 39215  // SetServerCertificates sets the ServerCertificates field's value.
 39216  func (s *DescribeDomainConfigurationOutput) SetServerCertificates(v []*ServerCertificateSummary) *DescribeDomainConfigurationOutput {
 39217  	s.ServerCertificates = v
 39218  	return s
 39219  }
 39220  
 39221  // SetServiceType sets the ServiceType field's value.
 39222  func (s *DescribeDomainConfigurationOutput) SetServiceType(v string) *DescribeDomainConfigurationOutput {
 39223  	s.ServiceType = &v
 39224  	return s
 39225  }
 39226  
 39227  // The input for the DescribeEndpoint operation.
 39228  type DescribeEndpointInput struct {
 39229  	_ struct{} `type:"structure" nopayload:"true"`
 39230  
 39231  	// The endpoint type. Valid endpoint types include:
 39232  	//
 39233  	//    * iot:Data - Returns a VeriSign signed data endpoint.
 39234  	//
 39235  	//    * iot:Data-ATS - Returns an ATS signed data endpoint.
 39236  	//
 39237  	//    * iot:CredentialProvider - Returns an IoT credentials provider API endpoint.
 39238  	//
 39239  	//    * iot:Jobs - Returns an IoT device management Jobs API endpoint.
 39240  	//
 39241  	// We strongly recommend that customers use the newer iot:Data-ATS endpoint
 39242  	// type to avoid issues related to the widespread distrust of Symantec certificate
 39243  	// authorities.
 39244  	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
 39245  }
 39246  
 39247  // String returns the string representation.
 39248  //
 39249  // API parameter values that are decorated as "sensitive" in the API will not
 39250  // be included in the string output. The member name will be present, but the
 39251  // value will be replaced with "sensitive".
 39252  func (s DescribeEndpointInput) String() string {
 39253  	return awsutil.Prettify(s)
 39254  }
 39255  
 39256  // GoString returns the string representation.
 39257  //
 39258  // API parameter values that are decorated as "sensitive" in the API will not
 39259  // be included in the string output. The member name will be present, but the
 39260  // value will be replaced with "sensitive".
 39261  func (s DescribeEndpointInput) GoString() string {
 39262  	return s.String()
 39263  }
 39264  
 39265  // SetEndpointType sets the EndpointType field's value.
 39266  func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
 39267  	s.EndpointType = &v
 39268  	return s
 39269  }
 39270  
 39271  // The output from the DescribeEndpoint operation.
 39272  type DescribeEndpointOutput struct {
 39273  	_ struct{} `type:"structure"`
 39274  
 39275  	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
 39276  	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
 39277  }
 39278  
 39279  // String returns the string representation.
 39280  //
 39281  // API parameter values that are decorated as "sensitive" in the API will not
 39282  // be included in the string output. The member name will be present, but the
 39283  // value will be replaced with "sensitive".
 39284  func (s DescribeEndpointOutput) String() string {
 39285  	return awsutil.Prettify(s)
 39286  }
 39287  
 39288  // GoString returns the string representation.
 39289  //
 39290  // API parameter values that are decorated as "sensitive" in the API will not
 39291  // be included in the string output. The member name will be present, but the
 39292  // value will be replaced with "sensitive".
 39293  func (s DescribeEndpointOutput) GoString() string {
 39294  	return s.String()
 39295  }
 39296  
 39297  // SetEndpointAddress sets the EndpointAddress field's value.
 39298  func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
 39299  	s.EndpointAddress = &v
 39300  	return s
 39301  }
 39302  
 39303  type DescribeEventConfigurationsInput struct {
 39304  	_ struct{} `type:"structure" nopayload:"true"`
 39305  }
 39306  
 39307  // String returns the string representation.
 39308  //
 39309  // API parameter values that are decorated as "sensitive" in the API will not
 39310  // be included in the string output. The member name will be present, but the
 39311  // value will be replaced with "sensitive".
 39312  func (s DescribeEventConfigurationsInput) String() string {
 39313  	return awsutil.Prettify(s)
 39314  }
 39315  
 39316  // GoString returns the string representation.
 39317  //
 39318  // API parameter values that are decorated as "sensitive" in the API will not
 39319  // be included in the string output. The member name will be present, but the
 39320  // value will be replaced with "sensitive".
 39321  func (s DescribeEventConfigurationsInput) GoString() string {
 39322  	return s.String()
 39323  }
 39324  
 39325  type DescribeEventConfigurationsOutput struct {
 39326  	_ struct{} `type:"structure"`
 39327  
 39328  	// The creation date of the event configuration.
 39329  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 39330  
 39331  	// The event configurations.
 39332  	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
 39333  
 39334  	// The date the event configurations were last modified.
 39335  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 39336  }
 39337  
 39338  // String returns the string representation.
 39339  //
 39340  // API parameter values that are decorated as "sensitive" in the API will not
 39341  // be included in the string output. The member name will be present, but the
 39342  // value will be replaced with "sensitive".
 39343  func (s DescribeEventConfigurationsOutput) String() string {
 39344  	return awsutil.Prettify(s)
 39345  }
 39346  
 39347  // GoString returns the string representation.
 39348  //
 39349  // API parameter values that are decorated as "sensitive" in the API will not
 39350  // be included in the string output. The member name will be present, but the
 39351  // value will be replaced with "sensitive".
 39352  func (s DescribeEventConfigurationsOutput) GoString() string {
 39353  	return s.String()
 39354  }
 39355  
 39356  // SetCreationDate sets the CreationDate field's value.
 39357  func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
 39358  	s.CreationDate = &v
 39359  	return s
 39360  }
 39361  
 39362  // SetEventConfigurations sets the EventConfigurations field's value.
 39363  func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
 39364  	s.EventConfigurations = v
 39365  	return s
 39366  }
 39367  
 39368  // SetLastModifiedDate sets the LastModifiedDate field's value.
 39369  func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
 39370  	s.LastModifiedDate = &v
 39371  	return s
 39372  }
 39373  
 39374  type DescribeFleetMetricInput struct {
 39375  	_ struct{} `type:"structure" nopayload:"true"`
 39376  
 39377  	// The name of the fleet metric to describe.
 39378  	//
 39379  	// MetricName is a required field
 39380  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 39381  }
 39382  
 39383  // String returns the string representation.
 39384  //
 39385  // API parameter values that are decorated as "sensitive" in the API will not
 39386  // be included in the string output. The member name will be present, but the
 39387  // value will be replaced with "sensitive".
 39388  func (s DescribeFleetMetricInput) String() string {
 39389  	return awsutil.Prettify(s)
 39390  }
 39391  
 39392  // GoString returns the string representation.
 39393  //
 39394  // API parameter values that are decorated as "sensitive" in the API will not
 39395  // be included in the string output. The member name will be present, but the
 39396  // value will be replaced with "sensitive".
 39397  func (s DescribeFleetMetricInput) GoString() string {
 39398  	return s.String()
 39399  }
 39400  
 39401  // Validate inspects the fields of the type to determine if they are valid.
 39402  func (s *DescribeFleetMetricInput) Validate() error {
 39403  	invalidParams := request.ErrInvalidParams{Context: "DescribeFleetMetricInput"}
 39404  	if s.MetricName == nil {
 39405  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 39406  	}
 39407  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 39408  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 39409  	}
 39410  
 39411  	if invalidParams.Len() > 0 {
 39412  		return invalidParams
 39413  	}
 39414  	return nil
 39415  }
 39416  
 39417  // SetMetricName sets the MetricName field's value.
 39418  func (s *DescribeFleetMetricInput) SetMetricName(v string) *DescribeFleetMetricInput {
 39419  	s.MetricName = &v
 39420  	return s
 39421  }
 39422  
 39423  type DescribeFleetMetricOutput struct {
 39424  	_ struct{} `type:"structure"`
 39425  
 39426  	// The field to aggregate.
 39427  	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
 39428  
 39429  	// The type of the aggregation query.
 39430  	AggregationType *AggregationType `locationName:"aggregationType" type:"structure"`
 39431  
 39432  	// The date when the fleet metric is created.
 39433  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 39434  
 39435  	// The fleet metric description.
 39436  	Description *string `locationName:"description" type:"string"`
 39437  
 39438  	// The name of the index to search.
 39439  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 39440  
 39441  	// The date when the fleet metric is last modified.
 39442  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 39443  
 39444  	// The ARN of the fleet metric to describe.
 39445  	MetricArn *string `locationName:"metricArn" type:"string"`
 39446  
 39447  	// The name of the fleet metric to describe.
 39448  	MetricName *string `locationName:"metricName" min:"1" type:"string"`
 39449  
 39450  	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
 39451  	// day)] and must be multiple of 60.
 39452  	Period *int64 `locationName:"period" min:"60" type:"integer"`
 39453  
 39454  	// The search query string.
 39455  	QueryString *string `locationName:"queryString" min:"1" type:"string"`
 39456  
 39457  	// The query version.
 39458  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 39459  
 39460  	// Used to support unit transformation such as milliseconds to seconds. The
 39461  	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
 39462  	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
 39463  
 39464  	// The version of the fleet metric.
 39465  	Version *int64 `locationName:"version" type:"long"`
 39466  }
 39467  
 39468  // String returns the string representation.
 39469  //
 39470  // API parameter values that are decorated as "sensitive" in the API will not
 39471  // be included in the string output. The member name will be present, but the
 39472  // value will be replaced with "sensitive".
 39473  func (s DescribeFleetMetricOutput) String() string {
 39474  	return awsutil.Prettify(s)
 39475  }
 39476  
 39477  // GoString returns the string representation.
 39478  //
 39479  // API parameter values that are decorated as "sensitive" in the API will not
 39480  // be included in the string output. The member name will be present, but the
 39481  // value will be replaced with "sensitive".
 39482  func (s DescribeFleetMetricOutput) GoString() string {
 39483  	return s.String()
 39484  }
 39485  
 39486  // SetAggregationField sets the AggregationField field's value.
 39487  func (s *DescribeFleetMetricOutput) SetAggregationField(v string) *DescribeFleetMetricOutput {
 39488  	s.AggregationField = &v
 39489  	return s
 39490  }
 39491  
 39492  // SetAggregationType sets the AggregationType field's value.
 39493  func (s *DescribeFleetMetricOutput) SetAggregationType(v *AggregationType) *DescribeFleetMetricOutput {
 39494  	s.AggregationType = v
 39495  	return s
 39496  }
 39497  
 39498  // SetCreationDate sets the CreationDate field's value.
 39499  func (s *DescribeFleetMetricOutput) SetCreationDate(v time.Time) *DescribeFleetMetricOutput {
 39500  	s.CreationDate = &v
 39501  	return s
 39502  }
 39503  
 39504  // SetDescription sets the Description field's value.
 39505  func (s *DescribeFleetMetricOutput) SetDescription(v string) *DescribeFleetMetricOutput {
 39506  	s.Description = &v
 39507  	return s
 39508  }
 39509  
 39510  // SetIndexName sets the IndexName field's value.
 39511  func (s *DescribeFleetMetricOutput) SetIndexName(v string) *DescribeFleetMetricOutput {
 39512  	s.IndexName = &v
 39513  	return s
 39514  }
 39515  
 39516  // SetLastModifiedDate sets the LastModifiedDate field's value.
 39517  func (s *DescribeFleetMetricOutput) SetLastModifiedDate(v time.Time) *DescribeFleetMetricOutput {
 39518  	s.LastModifiedDate = &v
 39519  	return s
 39520  }
 39521  
 39522  // SetMetricArn sets the MetricArn field's value.
 39523  func (s *DescribeFleetMetricOutput) SetMetricArn(v string) *DescribeFleetMetricOutput {
 39524  	s.MetricArn = &v
 39525  	return s
 39526  }
 39527  
 39528  // SetMetricName sets the MetricName field's value.
 39529  func (s *DescribeFleetMetricOutput) SetMetricName(v string) *DescribeFleetMetricOutput {
 39530  	s.MetricName = &v
 39531  	return s
 39532  }
 39533  
 39534  // SetPeriod sets the Period field's value.
 39535  func (s *DescribeFleetMetricOutput) SetPeriod(v int64) *DescribeFleetMetricOutput {
 39536  	s.Period = &v
 39537  	return s
 39538  }
 39539  
 39540  // SetQueryString sets the QueryString field's value.
 39541  func (s *DescribeFleetMetricOutput) SetQueryString(v string) *DescribeFleetMetricOutput {
 39542  	s.QueryString = &v
 39543  	return s
 39544  }
 39545  
 39546  // SetQueryVersion sets the QueryVersion field's value.
 39547  func (s *DescribeFleetMetricOutput) SetQueryVersion(v string) *DescribeFleetMetricOutput {
 39548  	s.QueryVersion = &v
 39549  	return s
 39550  }
 39551  
 39552  // SetUnit sets the Unit field's value.
 39553  func (s *DescribeFleetMetricOutput) SetUnit(v string) *DescribeFleetMetricOutput {
 39554  	s.Unit = &v
 39555  	return s
 39556  }
 39557  
 39558  // SetVersion sets the Version field's value.
 39559  func (s *DescribeFleetMetricOutput) SetVersion(v int64) *DescribeFleetMetricOutput {
 39560  	s.Version = &v
 39561  	return s
 39562  }
 39563  
 39564  type DescribeIndexInput struct {
 39565  	_ struct{} `type:"structure" nopayload:"true"`
 39566  
 39567  	// The index name.
 39568  	//
 39569  	// IndexName is a required field
 39570  	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
 39571  }
 39572  
 39573  // String returns the string representation.
 39574  //
 39575  // API parameter values that are decorated as "sensitive" in the API will not
 39576  // be included in the string output. The member name will be present, but the
 39577  // value will be replaced with "sensitive".
 39578  func (s DescribeIndexInput) String() string {
 39579  	return awsutil.Prettify(s)
 39580  }
 39581  
 39582  // GoString returns the string representation.
 39583  //
 39584  // API parameter values that are decorated as "sensitive" in the API will not
 39585  // be included in the string output. The member name will be present, but the
 39586  // value will be replaced with "sensitive".
 39587  func (s DescribeIndexInput) GoString() string {
 39588  	return s.String()
 39589  }
 39590  
 39591  // Validate inspects the fields of the type to determine if they are valid.
 39592  func (s *DescribeIndexInput) Validate() error {
 39593  	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
 39594  	if s.IndexName == nil {
 39595  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 39596  	}
 39597  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 39598  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 39599  	}
 39600  
 39601  	if invalidParams.Len() > 0 {
 39602  		return invalidParams
 39603  	}
 39604  	return nil
 39605  }
 39606  
 39607  // SetIndexName sets the IndexName field's value.
 39608  func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
 39609  	s.IndexName = &v
 39610  	return s
 39611  }
 39612  
 39613  type DescribeIndexOutput struct {
 39614  	_ struct{} `type:"structure"`
 39615  
 39616  	// The index name.
 39617  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 39618  
 39619  	// The index status.
 39620  	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
 39621  
 39622  	// Contains a value that specifies the type of indexing performed. Valid values
 39623  	// are:
 39624  	//
 39625  	//    * REGISTRY – Your thing index contains only registry data.
 39626  	//
 39627  	//    * REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow
 39628  	//    data.
 39629  	//
 39630  	//    * REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry
 39631  	//    data and thing connectivity status data.
 39632  	//
 39633  	//    * REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains
 39634  	//    registry data, shadow data, and thing connectivity status data.
 39635  	Schema *string `locationName:"schema" type:"string"`
 39636  }
 39637  
 39638  // String returns the string representation.
 39639  //
 39640  // API parameter values that are decorated as "sensitive" in the API will not
 39641  // be included in the string output. The member name will be present, but the
 39642  // value will be replaced with "sensitive".
 39643  func (s DescribeIndexOutput) String() string {
 39644  	return awsutil.Prettify(s)
 39645  }
 39646  
 39647  // GoString returns the string representation.
 39648  //
 39649  // API parameter values that are decorated as "sensitive" in the API will not
 39650  // be included in the string output. The member name will be present, but the
 39651  // value will be replaced with "sensitive".
 39652  func (s DescribeIndexOutput) GoString() string {
 39653  	return s.String()
 39654  }
 39655  
 39656  // SetIndexName sets the IndexName field's value.
 39657  func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
 39658  	s.IndexName = &v
 39659  	return s
 39660  }
 39661  
 39662  // SetIndexStatus sets the IndexStatus field's value.
 39663  func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
 39664  	s.IndexStatus = &v
 39665  	return s
 39666  }
 39667  
 39668  // SetSchema sets the Schema field's value.
 39669  func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
 39670  	s.Schema = &v
 39671  	return s
 39672  }
 39673  
 39674  type DescribeJobExecutionInput struct {
 39675  	_ struct{} `type:"structure" nopayload:"true"`
 39676  
 39677  	// A string (consisting of the digits "0" through "9" which is used to specify
 39678  	// a particular job execution on a particular device.
 39679  	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
 39680  
 39681  	// The unique identifier you assigned to this job when it was created.
 39682  	//
 39683  	// JobId is a required field
 39684  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 39685  
 39686  	// The name of the thing on which the job execution is running.
 39687  	//
 39688  	// ThingName is a required field
 39689  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 39690  }
 39691  
 39692  // String returns the string representation.
 39693  //
 39694  // API parameter values that are decorated as "sensitive" in the API will not
 39695  // be included in the string output. The member name will be present, but the
 39696  // value will be replaced with "sensitive".
 39697  func (s DescribeJobExecutionInput) String() string {
 39698  	return awsutil.Prettify(s)
 39699  }
 39700  
 39701  // GoString returns the string representation.
 39702  //
 39703  // API parameter values that are decorated as "sensitive" in the API will not
 39704  // be included in the string output. The member name will be present, but the
 39705  // value will be replaced with "sensitive".
 39706  func (s DescribeJobExecutionInput) GoString() string {
 39707  	return s.String()
 39708  }
 39709  
 39710  // Validate inspects the fields of the type to determine if they are valid.
 39711  func (s *DescribeJobExecutionInput) Validate() error {
 39712  	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
 39713  	if s.JobId == nil {
 39714  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 39715  	}
 39716  	if s.JobId != nil && len(*s.JobId) < 1 {
 39717  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 39718  	}
 39719  	if s.ThingName == nil {
 39720  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 39721  	}
 39722  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 39723  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 39724  	}
 39725  
 39726  	if invalidParams.Len() > 0 {
 39727  		return invalidParams
 39728  	}
 39729  	return nil
 39730  }
 39731  
 39732  // SetExecutionNumber sets the ExecutionNumber field's value.
 39733  func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
 39734  	s.ExecutionNumber = &v
 39735  	return s
 39736  }
 39737  
 39738  // SetJobId sets the JobId field's value.
 39739  func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
 39740  	s.JobId = &v
 39741  	return s
 39742  }
 39743  
 39744  // SetThingName sets the ThingName field's value.
 39745  func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
 39746  	s.ThingName = &v
 39747  	return s
 39748  }
 39749  
 39750  type DescribeJobExecutionOutput struct {
 39751  	_ struct{} `type:"structure"`
 39752  
 39753  	// Information about the job execution.
 39754  	Execution *JobExecution `locationName:"execution" type:"structure"`
 39755  }
 39756  
 39757  // String returns the string representation.
 39758  //
 39759  // API parameter values that are decorated as "sensitive" in the API will not
 39760  // be included in the string output. The member name will be present, but the
 39761  // value will be replaced with "sensitive".
 39762  func (s DescribeJobExecutionOutput) String() string {
 39763  	return awsutil.Prettify(s)
 39764  }
 39765  
 39766  // GoString returns the string representation.
 39767  //
 39768  // API parameter values that are decorated as "sensitive" in the API will not
 39769  // be included in the string output. The member name will be present, but the
 39770  // value will be replaced with "sensitive".
 39771  func (s DescribeJobExecutionOutput) GoString() string {
 39772  	return s.String()
 39773  }
 39774  
 39775  // SetExecution sets the Execution field's value.
 39776  func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
 39777  	s.Execution = v
 39778  	return s
 39779  }
 39780  
 39781  type DescribeJobInput struct {
 39782  	_ struct{} `type:"structure" nopayload:"true"`
 39783  
 39784  	// The unique identifier you assigned to this job when it was created.
 39785  	//
 39786  	// JobId is a required field
 39787  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 39788  }
 39789  
 39790  // String returns the string representation.
 39791  //
 39792  // API parameter values that are decorated as "sensitive" in the API will not
 39793  // be included in the string output. The member name will be present, but the
 39794  // value will be replaced with "sensitive".
 39795  func (s DescribeJobInput) String() string {
 39796  	return awsutil.Prettify(s)
 39797  }
 39798  
 39799  // GoString returns the string representation.
 39800  //
 39801  // API parameter values that are decorated as "sensitive" in the API will not
 39802  // be included in the string output. The member name will be present, but the
 39803  // value will be replaced with "sensitive".
 39804  func (s DescribeJobInput) GoString() string {
 39805  	return s.String()
 39806  }
 39807  
 39808  // Validate inspects the fields of the type to determine if they are valid.
 39809  func (s *DescribeJobInput) Validate() error {
 39810  	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
 39811  	if s.JobId == nil {
 39812  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 39813  	}
 39814  	if s.JobId != nil && len(*s.JobId) < 1 {
 39815  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 39816  	}
 39817  
 39818  	if invalidParams.Len() > 0 {
 39819  		return invalidParams
 39820  	}
 39821  	return nil
 39822  }
 39823  
 39824  // SetJobId sets the JobId field's value.
 39825  func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
 39826  	s.JobId = &v
 39827  	return s
 39828  }
 39829  
 39830  type DescribeJobOutput struct {
 39831  	_ struct{} `type:"structure"`
 39832  
 39833  	// An S3 link to the job document.
 39834  	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
 39835  
 39836  	// Information about the job.
 39837  	Job *Job `locationName:"job" type:"structure"`
 39838  }
 39839  
 39840  // String returns the string representation.
 39841  //
 39842  // API parameter values that are decorated as "sensitive" in the API will not
 39843  // be included in the string output. The member name will be present, but the
 39844  // value will be replaced with "sensitive".
 39845  func (s DescribeJobOutput) String() string {
 39846  	return awsutil.Prettify(s)
 39847  }
 39848  
 39849  // GoString returns the string representation.
 39850  //
 39851  // API parameter values that are decorated as "sensitive" in the API will not
 39852  // be included in the string output. The member name will be present, but the
 39853  // value will be replaced with "sensitive".
 39854  func (s DescribeJobOutput) GoString() string {
 39855  	return s.String()
 39856  }
 39857  
 39858  // SetDocumentSource sets the DocumentSource field's value.
 39859  func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
 39860  	s.DocumentSource = &v
 39861  	return s
 39862  }
 39863  
 39864  // SetJob sets the Job field's value.
 39865  func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
 39866  	s.Job = v
 39867  	return s
 39868  }
 39869  
 39870  type DescribeJobTemplateInput struct {
 39871  	_ struct{} `type:"structure" nopayload:"true"`
 39872  
 39873  	// The unique identifier of the job template.
 39874  	//
 39875  	// JobTemplateId is a required field
 39876  	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
 39877  }
 39878  
 39879  // String returns the string representation.
 39880  //
 39881  // API parameter values that are decorated as "sensitive" in the API will not
 39882  // be included in the string output. The member name will be present, but the
 39883  // value will be replaced with "sensitive".
 39884  func (s DescribeJobTemplateInput) String() string {
 39885  	return awsutil.Prettify(s)
 39886  }
 39887  
 39888  // GoString returns the string representation.
 39889  //
 39890  // API parameter values that are decorated as "sensitive" in the API will not
 39891  // be included in the string output. The member name will be present, but the
 39892  // value will be replaced with "sensitive".
 39893  func (s DescribeJobTemplateInput) GoString() string {
 39894  	return s.String()
 39895  }
 39896  
 39897  // Validate inspects the fields of the type to determine if they are valid.
 39898  func (s *DescribeJobTemplateInput) Validate() error {
 39899  	invalidParams := request.ErrInvalidParams{Context: "DescribeJobTemplateInput"}
 39900  	if s.JobTemplateId == nil {
 39901  		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
 39902  	}
 39903  	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
 39904  		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
 39905  	}
 39906  
 39907  	if invalidParams.Len() > 0 {
 39908  		return invalidParams
 39909  	}
 39910  	return nil
 39911  }
 39912  
 39913  // SetJobTemplateId sets the JobTemplateId field's value.
 39914  func (s *DescribeJobTemplateInput) SetJobTemplateId(v string) *DescribeJobTemplateInput {
 39915  	s.JobTemplateId = &v
 39916  	return s
 39917  }
 39918  
 39919  type DescribeJobTemplateOutput struct {
 39920  	_ struct{} `type:"structure"`
 39921  
 39922  	// The criteria that determine when and how a job abort takes place.
 39923  	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
 39924  
 39925  	// The time, in seconds since the epoch, when the job template was created.
 39926  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 39927  
 39928  	// A description of the job template.
 39929  	Description *string `locationName:"description" type:"string"`
 39930  
 39931  	// The job document.
 39932  	Document *string `locationName:"document" type:"string"`
 39933  
 39934  	// An S3 link to the job document.
 39935  	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
 39936  
 39937  	// Allows you to create a staged rollout of a job.
 39938  	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
 39939  
 39940  	// The ARN of the job template.
 39941  	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
 39942  
 39943  	// The unique identifier of the job template.
 39944  	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
 39945  
 39946  	// Configuration for pre-signed S3 URLs.
 39947  	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
 39948  
 39949  	// Specifies the amount of time each device has to finish its execution of the
 39950  	// job. A timer is started when the job execution status is set to IN_PROGRESS.
 39951  	// If the job execution status is not set to another terminal state before the
 39952  	// timer expires, it will be automatically set to TIMED_OUT.
 39953  	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
 39954  }
 39955  
 39956  // String returns the string representation.
 39957  //
 39958  // API parameter values that are decorated as "sensitive" in the API will not
 39959  // be included in the string output. The member name will be present, but the
 39960  // value will be replaced with "sensitive".
 39961  func (s DescribeJobTemplateOutput) String() string {
 39962  	return awsutil.Prettify(s)
 39963  }
 39964  
 39965  // GoString returns the string representation.
 39966  //
 39967  // API parameter values that are decorated as "sensitive" in the API will not
 39968  // be included in the string output. The member name will be present, but the
 39969  // value will be replaced with "sensitive".
 39970  func (s DescribeJobTemplateOutput) GoString() string {
 39971  	return s.String()
 39972  }
 39973  
 39974  // SetAbortConfig sets the AbortConfig field's value.
 39975  func (s *DescribeJobTemplateOutput) SetAbortConfig(v *AbortConfig) *DescribeJobTemplateOutput {
 39976  	s.AbortConfig = v
 39977  	return s
 39978  }
 39979  
 39980  // SetCreatedAt sets the CreatedAt field's value.
 39981  func (s *DescribeJobTemplateOutput) SetCreatedAt(v time.Time) *DescribeJobTemplateOutput {
 39982  	s.CreatedAt = &v
 39983  	return s
 39984  }
 39985  
 39986  // SetDescription sets the Description field's value.
 39987  func (s *DescribeJobTemplateOutput) SetDescription(v string) *DescribeJobTemplateOutput {
 39988  	s.Description = &v
 39989  	return s
 39990  }
 39991  
 39992  // SetDocument sets the Document field's value.
 39993  func (s *DescribeJobTemplateOutput) SetDocument(v string) *DescribeJobTemplateOutput {
 39994  	s.Document = &v
 39995  	return s
 39996  }
 39997  
 39998  // SetDocumentSource sets the DocumentSource field's value.
 39999  func (s *DescribeJobTemplateOutput) SetDocumentSource(v string) *DescribeJobTemplateOutput {
 40000  	s.DocumentSource = &v
 40001  	return s
 40002  }
 40003  
 40004  // SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
 40005  func (s *DescribeJobTemplateOutput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *DescribeJobTemplateOutput {
 40006  	s.JobExecutionsRolloutConfig = v
 40007  	return s
 40008  }
 40009  
 40010  // SetJobTemplateArn sets the JobTemplateArn field's value.
 40011  func (s *DescribeJobTemplateOutput) SetJobTemplateArn(v string) *DescribeJobTemplateOutput {
 40012  	s.JobTemplateArn = &v
 40013  	return s
 40014  }
 40015  
 40016  // SetJobTemplateId sets the JobTemplateId field's value.
 40017  func (s *DescribeJobTemplateOutput) SetJobTemplateId(v string) *DescribeJobTemplateOutput {
 40018  	s.JobTemplateId = &v
 40019  	return s
 40020  }
 40021  
 40022  // SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
 40023  func (s *DescribeJobTemplateOutput) SetPresignedUrlConfig(v *PresignedUrlConfig) *DescribeJobTemplateOutput {
 40024  	s.PresignedUrlConfig = v
 40025  	return s
 40026  }
 40027  
 40028  // SetTimeoutConfig sets the TimeoutConfig field's value.
 40029  func (s *DescribeJobTemplateOutput) SetTimeoutConfig(v *TimeoutConfig) *DescribeJobTemplateOutput {
 40030  	s.TimeoutConfig = v
 40031  	return s
 40032  }
 40033  
 40034  type DescribeMitigationActionInput struct {
 40035  	_ struct{} `type:"structure" nopayload:"true"`
 40036  
 40037  	// The friendly name that uniquely identifies the mitigation action.
 40038  	//
 40039  	// ActionName is a required field
 40040  	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
 40041  }
 40042  
 40043  // String returns the string representation.
 40044  //
 40045  // API parameter values that are decorated as "sensitive" in the API will not
 40046  // be included in the string output. The member name will be present, but the
 40047  // value will be replaced with "sensitive".
 40048  func (s DescribeMitigationActionInput) String() string {
 40049  	return awsutil.Prettify(s)
 40050  }
 40051  
 40052  // GoString returns the string representation.
 40053  //
 40054  // API parameter values that are decorated as "sensitive" in the API will not
 40055  // be included in the string output. The member name will be present, but the
 40056  // value will be replaced with "sensitive".
 40057  func (s DescribeMitigationActionInput) GoString() string {
 40058  	return s.String()
 40059  }
 40060  
 40061  // Validate inspects the fields of the type to determine if they are valid.
 40062  func (s *DescribeMitigationActionInput) Validate() error {
 40063  	invalidParams := request.ErrInvalidParams{Context: "DescribeMitigationActionInput"}
 40064  	if s.ActionName == nil {
 40065  		invalidParams.Add(request.NewErrParamRequired("ActionName"))
 40066  	}
 40067  	if s.ActionName != nil && len(*s.ActionName) < 1 {
 40068  		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
 40069  	}
 40070  
 40071  	if invalidParams.Len() > 0 {
 40072  		return invalidParams
 40073  	}
 40074  	return nil
 40075  }
 40076  
 40077  // SetActionName sets the ActionName field's value.
 40078  func (s *DescribeMitigationActionInput) SetActionName(v string) *DescribeMitigationActionInput {
 40079  	s.ActionName = &v
 40080  	return s
 40081  }
 40082  
 40083  type DescribeMitigationActionOutput struct {
 40084  	_ struct{} `type:"structure"`
 40085  
 40086  	// The ARN that identifies this migration action.
 40087  	ActionArn *string `locationName:"actionArn" type:"string"`
 40088  
 40089  	// A unique identifier for this action.
 40090  	ActionId *string `locationName:"actionId" type:"string"`
 40091  
 40092  	// The friendly name that uniquely identifies the mitigation action.
 40093  	ActionName *string `locationName:"actionName" type:"string"`
 40094  
 40095  	// Parameters that control how the mitigation action is applied, specific to
 40096  	// the type of mitigation action.
 40097  	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
 40098  
 40099  	// The type of mitigation action.
 40100  	ActionType *string `locationName:"actionType" type:"string" enum:"MitigationActionType"`
 40101  
 40102  	// The date and time when the mitigation action was added to your Amazon Web
 40103  	// Services accounts.
 40104  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 40105  
 40106  	// The date and time when the mitigation action was last changed.
 40107  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 40108  
 40109  	// The ARN of the IAM role used to apply this action.
 40110  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 40111  }
 40112  
 40113  // String returns the string representation.
 40114  //
 40115  // API parameter values that are decorated as "sensitive" in the API will not
 40116  // be included in the string output. The member name will be present, but the
 40117  // value will be replaced with "sensitive".
 40118  func (s DescribeMitigationActionOutput) String() string {
 40119  	return awsutil.Prettify(s)
 40120  }
 40121  
 40122  // GoString returns the string representation.
 40123  //
 40124  // API parameter values that are decorated as "sensitive" in the API will not
 40125  // be included in the string output. The member name will be present, but the
 40126  // value will be replaced with "sensitive".
 40127  func (s DescribeMitigationActionOutput) GoString() string {
 40128  	return s.String()
 40129  }
 40130  
 40131  // SetActionArn sets the ActionArn field's value.
 40132  func (s *DescribeMitigationActionOutput) SetActionArn(v string) *DescribeMitigationActionOutput {
 40133  	s.ActionArn = &v
 40134  	return s
 40135  }
 40136  
 40137  // SetActionId sets the ActionId field's value.
 40138  func (s *DescribeMitigationActionOutput) SetActionId(v string) *DescribeMitigationActionOutput {
 40139  	s.ActionId = &v
 40140  	return s
 40141  }
 40142  
 40143  // SetActionName sets the ActionName field's value.
 40144  func (s *DescribeMitigationActionOutput) SetActionName(v string) *DescribeMitigationActionOutput {
 40145  	s.ActionName = &v
 40146  	return s
 40147  }
 40148  
 40149  // SetActionParams sets the ActionParams field's value.
 40150  func (s *DescribeMitigationActionOutput) SetActionParams(v *MitigationActionParams) *DescribeMitigationActionOutput {
 40151  	s.ActionParams = v
 40152  	return s
 40153  }
 40154  
 40155  // SetActionType sets the ActionType field's value.
 40156  func (s *DescribeMitigationActionOutput) SetActionType(v string) *DescribeMitigationActionOutput {
 40157  	s.ActionType = &v
 40158  	return s
 40159  }
 40160  
 40161  // SetCreationDate sets the CreationDate field's value.
 40162  func (s *DescribeMitigationActionOutput) SetCreationDate(v time.Time) *DescribeMitigationActionOutput {
 40163  	s.CreationDate = &v
 40164  	return s
 40165  }
 40166  
 40167  // SetLastModifiedDate sets the LastModifiedDate field's value.
 40168  func (s *DescribeMitigationActionOutput) SetLastModifiedDate(v time.Time) *DescribeMitigationActionOutput {
 40169  	s.LastModifiedDate = &v
 40170  	return s
 40171  }
 40172  
 40173  // SetRoleArn sets the RoleArn field's value.
 40174  func (s *DescribeMitigationActionOutput) SetRoleArn(v string) *DescribeMitigationActionOutput {
 40175  	s.RoleArn = &v
 40176  	return s
 40177  }
 40178  
 40179  type DescribeProvisioningTemplateInput struct {
 40180  	_ struct{} `type:"structure" nopayload:"true"`
 40181  
 40182  	// The name of the fleet provisioning template.
 40183  	//
 40184  	// TemplateName is a required field
 40185  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 40186  }
 40187  
 40188  // String returns the string representation.
 40189  //
 40190  // API parameter values that are decorated as "sensitive" in the API will not
 40191  // be included in the string output. The member name will be present, but the
 40192  // value will be replaced with "sensitive".
 40193  func (s DescribeProvisioningTemplateInput) String() string {
 40194  	return awsutil.Prettify(s)
 40195  }
 40196  
 40197  // GoString returns the string representation.
 40198  //
 40199  // API parameter values that are decorated as "sensitive" in the API will not
 40200  // be included in the string output. The member name will be present, but the
 40201  // value will be replaced with "sensitive".
 40202  func (s DescribeProvisioningTemplateInput) GoString() string {
 40203  	return s.String()
 40204  }
 40205  
 40206  // Validate inspects the fields of the type to determine if they are valid.
 40207  func (s *DescribeProvisioningTemplateInput) Validate() error {
 40208  	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"}
 40209  	if s.TemplateName == nil {
 40210  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 40211  	}
 40212  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 40213  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 40214  	}
 40215  
 40216  	if invalidParams.Len() > 0 {
 40217  		return invalidParams
 40218  	}
 40219  	return nil
 40220  }
 40221  
 40222  // SetTemplateName sets the TemplateName field's value.
 40223  func (s *DescribeProvisioningTemplateInput) SetTemplateName(v string) *DescribeProvisioningTemplateInput {
 40224  	s.TemplateName = &v
 40225  	return s
 40226  }
 40227  
 40228  type DescribeProvisioningTemplateOutput struct {
 40229  	_ struct{} `type:"structure"`
 40230  
 40231  	// The date when the fleet provisioning template was created.
 40232  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 40233  
 40234  	// The default fleet template version ID.
 40235  	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
 40236  
 40237  	// The description of the fleet provisioning template.
 40238  	Description *string `locationName:"description" type:"string"`
 40239  
 40240  	// True if the fleet provisioning template is enabled, otherwise false.
 40241  	Enabled *bool `locationName:"enabled" type:"boolean"`
 40242  
 40243  	// The date when the fleet provisioning template was last modified.
 40244  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 40245  
 40246  	// Gets information about a pre-provisioned hook.
 40247  	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
 40248  
 40249  	// The ARN of the role associated with the provisioning template. This IoT role
 40250  	// grants permission to provision a device.
 40251  	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
 40252  
 40253  	// The ARN of the fleet provisioning template.
 40254  	TemplateArn *string `locationName:"templateArn" type:"string"`
 40255  
 40256  	// The JSON formatted contents of the fleet provisioning template.
 40257  	TemplateBody *string `locationName:"templateBody" type:"string"`
 40258  
 40259  	// The name of the fleet provisioning template.
 40260  	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
 40261  }
 40262  
 40263  // String returns the string representation.
 40264  //
 40265  // API parameter values that are decorated as "sensitive" in the API will not
 40266  // be included in the string output. The member name will be present, but the
 40267  // value will be replaced with "sensitive".
 40268  func (s DescribeProvisioningTemplateOutput) String() string {
 40269  	return awsutil.Prettify(s)
 40270  }
 40271  
 40272  // GoString returns the string representation.
 40273  //
 40274  // API parameter values that are decorated as "sensitive" in the API will not
 40275  // be included in the string output. The member name will be present, but the
 40276  // value will be replaced with "sensitive".
 40277  func (s DescribeProvisioningTemplateOutput) GoString() string {
 40278  	return s.String()
 40279  }
 40280  
 40281  // SetCreationDate sets the CreationDate field's value.
 40282  func (s *DescribeProvisioningTemplateOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateOutput {
 40283  	s.CreationDate = &v
 40284  	return s
 40285  }
 40286  
 40287  // SetDefaultVersionId sets the DefaultVersionId field's value.
 40288  func (s *DescribeProvisioningTemplateOutput) SetDefaultVersionId(v int64) *DescribeProvisioningTemplateOutput {
 40289  	s.DefaultVersionId = &v
 40290  	return s
 40291  }
 40292  
 40293  // SetDescription sets the Description field's value.
 40294  func (s *DescribeProvisioningTemplateOutput) SetDescription(v string) *DescribeProvisioningTemplateOutput {
 40295  	s.Description = &v
 40296  	return s
 40297  }
 40298  
 40299  // SetEnabled sets the Enabled field's value.
 40300  func (s *DescribeProvisioningTemplateOutput) SetEnabled(v bool) *DescribeProvisioningTemplateOutput {
 40301  	s.Enabled = &v
 40302  	return s
 40303  }
 40304  
 40305  // SetLastModifiedDate sets the LastModifiedDate field's value.
 40306  func (s *DescribeProvisioningTemplateOutput) SetLastModifiedDate(v time.Time) *DescribeProvisioningTemplateOutput {
 40307  	s.LastModifiedDate = &v
 40308  	return s
 40309  }
 40310  
 40311  // SetPreProvisioningHook sets the PreProvisioningHook field's value.
 40312  func (s *DescribeProvisioningTemplateOutput) SetPreProvisioningHook(v *ProvisioningHook) *DescribeProvisioningTemplateOutput {
 40313  	s.PreProvisioningHook = v
 40314  	return s
 40315  }
 40316  
 40317  // SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
 40318  func (s *DescribeProvisioningTemplateOutput) SetProvisioningRoleArn(v string) *DescribeProvisioningTemplateOutput {
 40319  	s.ProvisioningRoleArn = &v
 40320  	return s
 40321  }
 40322  
 40323  // SetTemplateArn sets the TemplateArn field's value.
 40324  func (s *DescribeProvisioningTemplateOutput) SetTemplateArn(v string) *DescribeProvisioningTemplateOutput {
 40325  	s.TemplateArn = &v
 40326  	return s
 40327  }
 40328  
 40329  // SetTemplateBody sets the TemplateBody field's value.
 40330  func (s *DescribeProvisioningTemplateOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateOutput {
 40331  	s.TemplateBody = &v
 40332  	return s
 40333  }
 40334  
 40335  // SetTemplateName sets the TemplateName field's value.
 40336  func (s *DescribeProvisioningTemplateOutput) SetTemplateName(v string) *DescribeProvisioningTemplateOutput {
 40337  	s.TemplateName = &v
 40338  	return s
 40339  }
 40340  
 40341  type DescribeProvisioningTemplateVersionInput struct {
 40342  	_ struct{} `type:"structure" nopayload:"true"`
 40343  
 40344  	// The template name.
 40345  	//
 40346  	// TemplateName is a required field
 40347  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 40348  
 40349  	// The fleet provisioning template version ID.
 40350  	//
 40351  	// VersionId is a required field
 40352  	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
 40353  }
 40354  
 40355  // String returns the string representation.
 40356  //
 40357  // API parameter values that are decorated as "sensitive" in the API will not
 40358  // be included in the string output. The member name will be present, but the
 40359  // value will be replaced with "sensitive".
 40360  func (s DescribeProvisioningTemplateVersionInput) String() string {
 40361  	return awsutil.Prettify(s)
 40362  }
 40363  
 40364  // GoString returns the string representation.
 40365  //
 40366  // API parameter values that are decorated as "sensitive" in the API will not
 40367  // be included in the string output. The member name will be present, but the
 40368  // value will be replaced with "sensitive".
 40369  func (s DescribeProvisioningTemplateVersionInput) GoString() string {
 40370  	return s.String()
 40371  }
 40372  
 40373  // Validate inspects the fields of the type to determine if they are valid.
 40374  func (s *DescribeProvisioningTemplateVersionInput) Validate() error {
 40375  	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"}
 40376  	if s.TemplateName == nil {
 40377  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 40378  	}
 40379  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 40380  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 40381  	}
 40382  	if s.VersionId == nil {
 40383  		invalidParams.Add(request.NewErrParamRequired("VersionId"))
 40384  	}
 40385  
 40386  	if invalidParams.Len() > 0 {
 40387  		return invalidParams
 40388  	}
 40389  	return nil
 40390  }
 40391  
 40392  // SetTemplateName sets the TemplateName field's value.
 40393  func (s *DescribeProvisioningTemplateVersionInput) SetTemplateName(v string) *DescribeProvisioningTemplateVersionInput {
 40394  	s.TemplateName = &v
 40395  	return s
 40396  }
 40397  
 40398  // SetVersionId sets the VersionId field's value.
 40399  func (s *DescribeProvisioningTemplateVersionInput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionInput {
 40400  	s.VersionId = &v
 40401  	return s
 40402  }
 40403  
 40404  type DescribeProvisioningTemplateVersionOutput struct {
 40405  	_ struct{} `type:"structure"`
 40406  
 40407  	// The date when the fleet provisioning template version was created.
 40408  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 40409  
 40410  	// True if the fleet provisioning template version is the default version.
 40411  	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
 40412  
 40413  	// The JSON formatted contents of the fleet provisioning template version.
 40414  	TemplateBody *string `locationName:"templateBody" type:"string"`
 40415  
 40416  	// The fleet provisioning template version ID.
 40417  	VersionId *int64 `locationName:"versionId" type:"integer"`
 40418  }
 40419  
 40420  // String returns the string representation.
 40421  //
 40422  // API parameter values that are decorated as "sensitive" in the API will not
 40423  // be included in the string output. The member name will be present, but the
 40424  // value will be replaced with "sensitive".
 40425  func (s DescribeProvisioningTemplateVersionOutput) String() string {
 40426  	return awsutil.Prettify(s)
 40427  }
 40428  
 40429  // GoString returns the string representation.
 40430  //
 40431  // API parameter values that are decorated as "sensitive" in the API will not
 40432  // be included in the string output. The member name will be present, but the
 40433  // value will be replaced with "sensitive".
 40434  func (s DescribeProvisioningTemplateVersionOutput) GoString() string {
 40435  	return s.String()
 40436  }
 40437  
 40438  // SetCreationDate sets the CreationDate field's value.
 40439  func (s *DescribeProvisioningTemplateVersionOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateVersionOutput {
 40440  	s.CreationDate = &v
 40441  	return s
 40442  }
 40443  
 40444  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 40445  func (s *DescribeProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *DescribeProvisioningTemplateVersionOutput {
 40446  	s.IsDefaultVersion = &v
 40447  	return s
 40448  }
 40449  
 40450  // SetTemplateBody sets the TemplateBody field's value.
 40451  func (s *DescribeProvisioningTemplateVersionOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateVersionOutput {
 40452  	s.TemplateBody = &v
 40453  	return s
 40454  }
 40455  
 40456  // SetVersionId sets the VersionId field's value.
 40457  func (s *DescribeProvisioningTemplateVersionOutput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionOutput {
 40458  	s.VersionId = &v
 40459  	return s
 40460  }
 40461  
 40462  type DescribeRoleAliasInput struct {
 40463  	_ struct{} `type:"structure" nopayload:"true"`
 40464  
 40465  	// The role alias to describe.
 40466  	//
 40467  	// RoleAlias is a required field
 40468  	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
 40469  }
 40470  
 40471  // String returns the string representation.
 40472  //
 40473  // API parameter values that are decorated as "sensitive" in the API will not
 40474  // be included in the string output. The member name will be present, but the
 40475  // value will be replaced with "sensitive".
 40476  func (s DescribeRoleAliasInput) String() string {
 40477  	return awsutil.Prettify(s)
 40478  }
 40479  
 40480  // GoString returns the string representation.
 40481  //
 40482  // API parameter values that are decorated as "sensitive" in the API will not
 40483  // be included in the string output. The member name will be present, but the
 40484  // value will be replaced with "sensitive".
 40485  func (s DescribeRoleAliasInput) GoString() string {
 40486  	return s.String()
 40487  }
 40488  
 40489  // Validate inspects the fields of the type to determine if they are valid.
 40490  func (s *DescribeRoleAliasInput) Validate() error {
 40491  	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
 40492  	if s.RoleAlias == nil {
 40493  		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
 40494  	}
 40495  	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
 40496  		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
 40497  	}
 40498  
 40499  	if invalidParams.Len() > 0 {
 40500  		return invalidParams
 40501  	}
 40502  	return nil
 40503  }
 40504  
 40505  // SetRoleAlias sets the RoleAlias field's value.
 40506  func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
 40507  	s.RoleAlias = &v
 40508  	return s
 40509  }
 40510  
 40511  type DescribeRoleAliasOutput struct {
 40512  	_ struct{} `type:"structure"`
 40513  
 40514  	// The role alias description.
 40515  	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
 40516  }
 40517  
 40518  // String returns the string representation.
 40519  //
 40520  // API parameter values that are decorated as "sensitive" in the API will not
 40521  // be included in the string output. The member name will be present, but the
 40522  // value will be replaced with "sensitive".
 40523  func (s DescribeRoleAliasOutput) String() string {
 40524  	return awsutil.Prettify(s)
 40525  }
 40526  
 40527  // GoString returns the string representation.
 40528  //
 40529  // API parameter values that are decorated as "sensitive" in the API will not
 40530  // be included in the string output. The member name will be present, but the
 40531  // value will be replaced with "sensitive".
 40532  func (s DescribeRoleAliasOutput) GoString() string {
 40533  	return s.String()
 40534  }
 40535  
 40536  // SetRoleAliasDescription sets the RoleAliasDescription field's value.
 40537  func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
 40538  	s.RoleAliasDescription = v
 40539  	return s
 40540  }
 40541  
 40542  type DescribeScheduledAuditInput struct {
 40543  	_ struct{} `type:"structure" nopayload:"true"`
 40544  
 40545  	// The name of the scheduled audit whose information you want to get.
 40546  	//
 40547  	// ScheduledAuditName is a required field
 40548  	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
 40549  }
 40550  
 40551  // String returns the string representation.
 40552  //
 40553  // API parameter values that are decorated as "sensitive" in the API will not
 40554  // be included in the string output. The member name will be present, but the
 40555  // value will be replaced with "sensitive".
 40556  func (s DescribeScheduledAuditInput) String() string {
 40557  	return awsutil.Prettify(s)
 40558  }
 40559  
 40560  // GoString returns the string representation.
 40561  //
 40562  // API parameter values that are decorated as "sensitive" in the API will not
 40563  // be included in the string output. The member name will be present, but the
 40564  // value will be replaced with "sensitive".
 40565  func (s DescribeScheduledAuditInput) GoString() string {
 40566  	return s.String()
 40567  }
 40568  
 40569  // Validate inspects the fields of the type to determine if they are valid.
 40570  func (s *DescribeScheduledAuditInput) Validate() error {
 40571  	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
 40572  	if s.ScheduledAuditName == nil {
 40573  		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
 40574  	}
 40575  	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
 40576  		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
 40577  	}
 40578  
 40579  	if invalidParams.Len() > 0 {
 40580  		return invalidParams
 40581  	}
 40582  	return nil
 40583  }
 40584  
 40585  // SetScheduledAuditName sets the ScheduledAuditName field's value.
 40586  func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
 40587  	s.ScheduledAuditName = &v
 40588  	return s
 40589  }
 40590  
 40591  type DescribeScheduledAuditOutput struct {
 40592  	_ struct{} `type:"structure"`
 40593  
 40594  	// The day of the month on which the scheduled audit takes place. This is will
 40595  	// be 1 through 31 or LAST. If days 29-31 are specified, and the month does
 40596  	// not have that many days, the audit takes place on the LAST day of the month.
 40597  	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
 40598  
 40599  	// The day of the week on which the scheduled audit takes place, either one
 40600  	// of SUN, MON, TUE, WED, THU, FRI, or SAT.
 40601  	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
 40602  
 40603  	// How often the scheduled audit takes place, either one of DAILY, WEEKLY, BIWEEKLY,
 40604  	// or MONTHLY. The start time of each audit is determined by the system.
 40605  	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
 40606  
 40607  	// The ARN of the scheduled audit.
 40608  	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
 40609  
 40610  	// The name of the scheduled audit.
 40611  	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
 40612  
 40613  	// Which checks are performed during the scheduled audit. Checks must be enabled
 40614  	// for your account. (Use DescribeAccountAuditConfiguration to see the list
 40615  	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 40616  	// to select which checks are enabled.)
 40617  	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
 40618  }
 40619  
 40620  // String returns the string representation.
 40621  //
 40622  // API parameter values that are decorated as "sensitive" in the API will not
 40623  // be included in the string output. The member name will be present, but the
 40624  // value will be replaced with "sensitive".
 40625  func (s DescribeScheduledAuditOutput) String() string {
 40626  	return awsutil.Prettify(s)
 40627  }
 40628  
 40629  // GoString returns the string representation.
 40630  //
 40631  // API parameter values that are decorated as "sensitive" in the API will not
 40632  // be included in the string output. The member name will be present, but the
 40633  // value will be replaced with "sensitive".
 40634  func (s DescribeScheduledAuditOutput) GoString() string {
 40635  	return s.String()
 40636  }
 40637  
 40638  // SetDayOfMonth sets the DayOfMonth field's value.
 40639  func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
 40640  	s.DayOfMonth = &v
 40641  	return s
 40642  }
 40643  
 40644  // SetDayOfWeek sets the DayOfWeek field's value.
 40645  func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
 40646  	s.DayOfWeek = &v
 40647  	return s
 40648  }
 40649  
 40650  // SetFrequency sets the Frequency field's value.
 40651  func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
 40652  	s.Frequency = &v
 40653  	return s
 40654  }
 40655  
 40656  // SetScheduledAuditArn sets the ScheduledAuditArn field's value.
 40657  func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
 40658  	s.ScheduledAuditArn = &v
 40659  	return s
 40660  }
 40661  
 40662  // SetScheduledAuditName sets the ScheduledAuditName field's value.
 40663  func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
 40664  	s.ScheduledAuditName = &v
 40665  	return s
 40666  }
 40667  
 40668  // SetTargetCheckNames sets the TargetCheckNames field's value.
 40669  func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
 40670  	s.TargetCheckNames = v
 40671  	return s
 40672  }
 40673  
 40674  type DescribeSecurityProfileInput struct {
 40675  	_ struct{} `type:"structure" nopayload:"true"`
 40676  
 40677  	// The name of the security profile whose information you want to get.
 40678  	//
 40679  	// SecurityProfileName is a required field
 40680  	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
 40681  }
 40682  
 40683  // String returns the string representation.
 40684  //
 40685  // API parameter values that are decorated as "sensitive" in the API will not
 40686  // be included in the string output. The member name will be present, but the
 40687  // value will be replaced with "sensitive".
 40688  func (s DescribeSecurityProfileInput) String() string {
 40689  	return awsutil.Prettify(s)
 40690  }
 40691  
 40692  // GoString returns the string representation.
 40693  //
 40694  // API parameter values that are decorated as "sensitive" in the API will not
 40695  // be included in the string output. The member name will be present, but the
 40696  // value will be replaced with "sensitive".
 40697  func (s DescribeSecurityProfileInput) GoString() string {
 40698  	return s.String()
 40699  }
 40700  
 40701  // Validate inspects the fields of the type to determine if they are valid.
 40702  func (s *DescribeSecurityProfileInput) Validate() error {
 40703  	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
 40704  	if s.SecurityProfileName == nil {
 40705  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
 40706  	}
 40707  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 40708  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 40709  	}
 40710  
 40711  	if invalidParams.Len() > 0 {
 40712  		return invalidParams
 40713  	}
 40714  	return nil
 40715  }
 40716  
 40717  // SetSecurityProfileName sets the SecurityProfileName field's value.
 40718  func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
 40719  	s.SecurityProfileName = &v
 40720  	return s
 40721  }
 40722  
 40723  type DescribeSecurityProfileOutput struct {
 40724  	_ struct{} `type:"structure"`
 40725  
 40726  	// Please use DescribeSecurityProfileResponse$additionalMetricsToRetainV2 instead.
 40727  	//
 40728  	// A list of metrics whose data is retained (stored). By default, data is retained
 40729  	// for any metric used in the profile's behaviors, but it is also retained for
 40730  	// any metric specified here.
 40731  	//
 40732  	// Deprecated: Use additionalMetricsToRetainV2.
 40733  	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
 40734  
 40735  	// A list of metrics whose data is retained (stored). By default, data is retained
 40736  	// for any metric used in the profile's behaviors, but it is also retained for
 40737  	// any metric specified here.
 40738  	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
 40739  
 40740  	// Where the alerts are sent. (Alerts are always sent to the console.)
 40741  	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
 40742  
 40743  	// Specifies the behaviors that, when violated by a device (thing), cause an
 40744  	// alert.
 40745  	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
 40746  
 40747  	// The time the security profile was created.
 40748  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 40749  
 40750  	// The time the security profile was last modified.
 40751  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 40752  
 40753  	// The ARN of the security profile.
 40754  	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
 40755  
 40756  	// A description of the security profile (associated with the security profile
 40757  	// when it was created or updated).
 40758  	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
 40759  
 40760  	// The name of the security profile.
 40761  	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
 40762  
 40763  	// The version of the security profile. A new version is generated whenever
 40764  	// the security profile is updated.
 40765  	Version *int64 `locationName:"version" type:"long"`
 40766  }
 40767  
 40768  // String returns the string representation.
 40769  //
 40770  // API parameter values that are decorated as "sensitive" in the API will not
 40771  // be included in the string output. The member name will be present, but the
 40772  // value will be replaced with "sensitive".
 40773  func (s DescribeSecurityProfileOutput) String() string {
 40774  	return awsutil.Prettify(s)
 40775  }
 40776  
 40777  // GoString returns the string representation.
 40778  //
 40779  // API parameter values that are decorated as "sensitive" in the API will not
 40780  // be included in the string output. The member name will be present, but the
 40781  // value will be replaced with "sensitive".
 40782  func (s DescribeSecurityProfileOutput) GoString() string {
 40783  	return s.String()
 40784  }
 40785  
 40786  // SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
 40787  func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
 40788  	s.AdditionalMetricsToRetain = v
 40789  	return s
 40790  }
 40791  
 40792  // SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
 40793  func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *DescribeSecurityProfileOutput {
 40794  	s.AdditionalMetricsToRetainV2 = v
 40795  	return s
 40796  }
 40797  
 40798  // SetAlertTargets sets the AlertTargets field's value.
 40799  func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
 40800  	s.AlertTargets = v
 40801  	return s
 40802  }
 40803  
 40804  // SetBehaviors sets the Behaviors field's value.
 40805  func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
 40806  	s.Behaviors = v
 40807  	return s
 40808  }
 40809  
 40810  // SetCreationDate sets the CreationDate field's value.
 40811  func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
 40812  	s.CreationDate = &v
 40813  	return s
 40814  }
 40815  
 40816  // SetLastModifiedDate sets the LastModifiedDate field's value.
 40817  func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
 40818  	s.LastModifiedDate = &v
 40819  	return s
 40820  }
 40821  
 40822  // SetSecurityProfileArn sets the SecurityProfileArn field's value.
 40823  func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
 40824  	s.SecurityProfileArn = &v
 40825  	return s
 40826  }
 40827  
 40828  // SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
 40829  func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
 40830  	s.SecurityProfileDescription = &v
 40831  	return s
 40832  }
 40833  
 40834  // SetSecurityProfileName sets the SecurityProfileName field's value.
 40835  func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
 40836  	s.SecurityProfileName = &v
 40837  	return s
 40838  }
 40839  
 40840  // SetVersion sets the Version field's value.
 40841  func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
 40842  	s.Version = &v
 40843  	return s
 40844  }
 40845  
 40846  type DescribeStreamInput struct {
 40847  	_ struct{} `type:"structure" nopayload:"true"`
 40848  
 40849  	// The stream ID.
 40850  	//
 40851  	// StreamId is a required field
 40852  	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
 40853  }
 40854  
 40855  // String returns the string representation.
 40856  //
 40857  // API parameter values that are decorated as "sensitive" in the API will not
 40858  // be included in the string output. The member name will be present, but the
 40859  // value will be replaced with "sensitive".
 40860  func (s DescribeStreamInput) String() string {
 40861  	return awsutil.Prettify(s)
 40862  }
 40863  
 40864  // GoString returns the string representation.
 40865  //
 40866  // API parameter values that are decorated as "sensitive" in the API will not
 40867  // be included in the string output. The member name will be present, but the
 40868  // value will be replaced with "sensitive".
 40869  func (s DescribeStreamInput) GoString() string {
 40870  	return s.String()
 40871  }
 40872  
 40873  // Validate inspects the fields of the type to determine if they are valid.
 40874  func (s *DescribeStreamInput) Validate() error {
 40875  	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
 40876  	if s.StreamId == nil {
 40877  		invalidParams.Add(request.NewErrParamRequired("StreamId"))
 40878  	}
 40879  	if s.StreamId != nil && len(*s.StreamId) < 1 {
 40880  		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
 40881  	}
 40882  
 40883  	if invalidParams.Len() > 0 {
 40884  		return invalidParams
 40885  	}
 40886  	return nil
 40887  }
 40888  
 40889  // SetStreamId sets the StreamId field's value.
 40890  func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
 40891  	s.StreamId = &v
 40892  	return s
 40893  }
 40894  
 40895  type DescribeStreamOutput struct {
 40896  	_ struct{} `type:"structure"`
 40897  
 40898  	// Information about the stream.
 40899  	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
 40900  }
 40901  
 40902  // String returns the string representation.
 40903  //
 40904  // API parameter values that are decorated as "sensitive" in the API will not
 40905  // be included in the string output. The member name will be present, but the
 40906  // value will be replaced with "sensitive".
 40907  func (s DescribeStreamOutput) String() string {
 40908  	return awsutil.Prettify(s)
 40909  }
 40910  
 40911  // GoString returns the string representation.
 40912  //
 40913  // API parameter values that are decorated as "sensitive" in the API will not
 40914  // be included in the string output. The member name will be present, but the
 40915  // value will be replaced with "sensitive".
 40916  func (s DescribeStreamOutput) GoString() string {
 40917  	return s.String()
 40918  }
 40919  
 40920  // SetStreamInfo sets the StreamInfo field's value.
 40921  func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
 40922  	s.StreamInfo = v
 40923  	return s
 40924  }
 40925  
 40926  type DescribeThingGroupInput struct {
 40927  	_ struct{} `type:"structure" nopayload:"true"`
 40928  
 40929  	// The name of the thing group.
 40930  	//
 40931  	// ThingGroupName is a required field
 40932  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 40933  }
 40934  
 40935  // String returns the string representation.
 40936  //
 40937  // API parameter values that are decorated as "sensitive" in the API will not
 40938  // be included in the string output. The member name will be present, but the
 40939  // value will be replaced with "sensitive".
 40940  func (s DescribeThingGroupInput) String() string {
 40941  	return awsutil.Prettify(s)
 40942  }
 40943  
 40944  // GoString returns the string representation.
 40945  //
 40946  // API parameter values that are decorated as "sensitive" in the API will not
 40947  // be included in the string output. The member name will be present, but the
 40948  // value will be replaced with "sensitive".
 40949  func (s DescribeThingGroupInput) GoString() string {
 40950  	return s.String()
 40951  }
 40952  
 40953  // Validate inspects the fields of the type to determine if they are valid.
 40954  func (s *DescribeThingGroupInput) Validate() error {
 40955  	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
 40956  	if s.ThingGroupName == nil {
 40957  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 40958  	}
 40959  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 40960  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 40961  	}
 40962  
 40963  	if invalidParams.Len() > 0 {
 40964  		return invalidParams
 40965  	}
 40966  	return nil
 40967  }
 40968  
 40969  // SetThingGroupName sets the ThingGroupName field's value.
 40970  func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
 40971  	s.ThingGroupName = &v
 40972  	return s
 40973  }
 40974  
 40975  type DescribeThingGroupOutput struct {
 40976  	_ struct{} `type:"structure"`
 40977  
 40978  	// The dynamic thing group index name.
 40979  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 40980  
 40981  	// The dynamic thing group search query string.
 40982  	QueryString *string `locationName:"queryString" min:"1" type:"string"`
 40983  
 40984  	// The dynamic thing group query version.
 40985  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 40986  
 40987  	// The dynamic thing group status.
 40988  	Status *string `locationName:"status" type:"string" enum:"DynamicGroupStatus"`
 40989  
 40990  	// The thing group ARN.
 40991  	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
 40992  
 40993  	// The thing group ID.
 40994  	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
 40995  
 40996  	// Thing group metadata.
 40997  	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
 40998  
 40999  	// The name of the thing group.
 41000  	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
 41001  
 41002  	// The thing group properties.
 41003  	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
 41004  
 41005  	// The version of the thing group.
 41006  	Version *int64 `locationName:"version" type:"long"`
 41007  }
 41008  
 41009  // String returns the string representation.
 41010  //
 41011  // API parameter values that are decorated as "sensitive" in the API will not
 41012  // be included in the string output. The member name will be present, but the
 41013  // value will be replaced with "sensitive".
 41014  func (s DescribeThingGroupOutput) String() string {
 41015  	return awsutil.Prettify(s)
 41016  }
 41017  
 41018  // GoString returns the string representation.
 41019  //
 41020  // API parameter values that are decorated as "sensitive" in the API will not
 41021  // be included in the string output. The member name will be present, but the
 41022  // value will be replaced with "sensitive".
 41023  func (s DescribeThingGroupOutput) GoString() string {
 41024  	return s.String()
 41025  }
 41026  
 41027  // SetIndexName sets the IndexName field's value.
 41028  func (s *DescribeThingGroupOutput) SetIndexName(v string) *DescribeThingGroupOutput {
 41029  	s.IndexName = &v
 41030  	return s
 41031  }
 41032  
 41033  // SetQueryString sets the QueryString field's value.
 41034  func (s *DescribeThingGroupOutput) SetQueryString(v string) *DescribeThingGroupOutput {
 41035  	s.QueryString = &v
 41036  	return s
 41037  }
 41038  
 41039  // SetQueryVersion sets the QueryVersion field's value.
 41040  func (s *DescribeThingGroupOutput) SetQueryVersion(v string) *DescribeThingGroupOutput {
 41041  	s.QueryVersion = &v
 41042  	return s
 41043  }
 41044  
 41045  // SetStatus sets the Status field's value.
 41046  func (s *DescribeThingGroupOutput) SetStatus(v string) *DescribeThingGroupOutput {
 41047  	s.Status = &v
 41048  	return s
 41049  }
 41050  
 41051  // SetThingGroupArn sets the ThingGroupArn field's value.
 41052  func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
 41053  	s.ThingGroupArn = &v
 41054  	return s
 41055  }
 41056  
 41057  // SetThingGroupId sets the ThingGroupId field's value.
 41058  func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
 41059  	s.ThingGroupId = &v
 41060  	return s
 41061  }
 41062  
 41063  // SetThingGroupMetadata sets the ThingGroupMetadata field's value.
 41064  func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
 41065  	s.ThingGroupMetadata = v
 41066  	return s
 41067  }
 41068  
 41069  // SetThingGroupName sets the ThingGroupName field's value.
 41070  func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
 41071  	s.ThingGroupName = &v
 41072  	return s
 41073  }
 41074  
 41075  // SetThingGroupProperties sets the ThingGroupProperties field's value.
 41076  func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
 41077  	s.ThingGroupProperties = v
 41078  	return s
 41079  }
 41080  
 41081  // SetVersion sets the Version field's value.
 41082  func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
 41083  	s.Version = &v
 41084  	return s
 41085  }
 41086  
 41087  // The input for the DescribeThing operation.
 41088  type DescribeThingInput struct {
 41089  	_ struct{} `type:"structure" nopayload:"true"`
 41090  
 41091  	// The name of the thing.
 41092  	//
 41093  	// ThingName is a required field
 41094  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 41095  }
 41096  
 41097  // String returns the string representation.
 41098  //
 41099  // API parameter values that are decorated as "sensitive" in the API will not
 41100  // be included in the string output. The member name will be present, but the
 41101  // value will be replaced with "sensitive".
 41102  func (s DescribeThingInput) String() string {
 41103  	return awsutil.Prettify(s)
 41104  }
 41105  
 41106  // GoString returns the string representation.
 41107  //
 41108  // API parameter values that are decorated as "sensitive" in the API will not
 41109  // be included in the string output. The member name will be present, but the
 41110  // value will be replaced with "sensitive".
 41111  func (s DescribeThingInput) GoString() string {
 41112  	return s.String()
 41113  }
 41114  
 41115  // Validate inspects the fields of the type to determine if they are valid.
 41116  func (s *DescribeThingInput) Validate() error {
 41117  	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
 41118  	if s.ThingName == nil {
 41119  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 41120  	}
 41121  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 41122  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 41123  	}
 41124  
 41125  	if invalidParams.Len() > 0 {
 41126  		return invalidParams
 41127  	}
 41128  	return nil
 41129  }
 41130  
 41131  // SetThingName sets the ThingName field's value.
 41132  func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
 41133  	s.ThingName = &v
 41134  	return s
 41135  }
 41136  
 41137  // The output from the DescribeThing operation.
 41138  type DescribeThingOutput struct {
 41139  	_ struct{} `type:"structure"`
 41140  
 41141  	// The thing attributes.
 41142  	Attributes map[string]*string `locationName:"attributes" type:"map"`
 41143  
 41144  	// The name of the billing group the thing belongs to.
 41145  	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
 41146  
 41147  	// The default MQTT client ID. For a typical device, the thing name is also
 41148  	// used as the default MQTT client ID. Although we don’t require a mapping
 41149  	// between a thing's registry name and its use of MQTT client IDs, certificates,
 41150  	// or shadow state, we recommend that you choose a thing name and use it as
 41151  	// the MQTT client ID for the registry and the Device Shadow service.
 41152  	//
 41153  	// This lets you better organize your IoT fleet without removing the flexibility
 41154  	// of the underlying device certificate model or shadows.
 41155  	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
 41156  
 41157  	// The ARN of the thing to describe.
 41158  	ThingArn *string `locationName:"thingArn" type:"string"`
 41159  
 41160  	// The ID of the thing to describe.
 41161  	ThingId *string `locationName:"thingId" type:"string"`
 41162  
 41163  	// The name of the thing.
 41164  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 41165  
 41166  	// The thing type name.
 41167  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 41168  
 41169  	// The current version of the thing record in the registry.
 41170  	//
 41171  	// To avoid unintentional changes to the information in the registry, you can
 41172  	// pass the version information in the expectedVersion parameter of the UpdateThing
 41173  	// and DeleteThing calls.
 41174  	Version *int64 `locationName:"version" type:"long"`
 41175  }
 41176  
 41177  // String returns the string representation.
 41178  //
 41179  // API parameter values that are decorated as "sensitive" in the API will not
 41180  // be included in the string output. The member name will be present, but the
 41181  // value will be replaced with "sensitive".
 41182  func (s DescribeThingOutput) String() string {
 41183  	return awsutil.Prettify(s)
 41184  }
 41185  
 41186  // GoString returns the string representation.
 41187  //
 41188  // API parameter values that are decorated as "sensitive" in the API will not
 41189  // be included in the string output. The member name will be present, but the
 41190  // value will be replaced with "sensitive".
 41191  func (s DescribeThingOutput) GoString() string {
 41192  	return s.String()
 41193  }
 41194  
 41195  // SetAttributes sets the Attributes field's value.
 41196  func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
 41197  	s.Attributes = v
 41198  	return s
 41199  }
 41200  
 41201  // SetBillingGroupName sets the BillingGroupName field's value.
 41202  func (s *DescribeThingOutput) SetBillingGroupName(v string) *DescribeThingOutput {
 41203  	s.BillingGroupName = &v
 41204  	return s
 41205  }
 41206  
 41207  // SetDefaultClientId sets the DefaultClientId field's value.
 41208  func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
 41209  	s.DefaultClientId = &v
 41210  	return s
 41211  }
 41212  
 41213  // SetThingArn sets the ThingArn field's value.
 41214  func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
 41215  	s.ThingArn = &v
 41216  	return s
 41217  }
 41218  
 41219  // SetThingId sets the ThingId field's value.
 41220  func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
 41221  	s.ThingId = &v
 41222  	return s
 41223  }
 41224  
 41225  // SetThingName sets the ThingName field's value.
 41226  func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
 41227  	s.ThingName = &v
 41228  	return s
 41229  }
 41230  
 41231  // SetThingTypeName sets the ThingTypeName field's value.
 41232  func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
 41233  	s.ThingTypeName = &v
 41234  	return s
 41235  }
 41236  
 41237  // SetVersion sets the Version field's value.
 41238  func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
 41239  	s.Version = &v
 41240  	return s
 41241  }
 41242  
 41243  type DescribeThingRegistrationTaskInput struct {
 41244  	_ struct{} `type:"structure" nopayload:"true"`
 41245  
 41246  	// The task ID.
 41247  	//
 41248  	// TaskId is a required field
 41249  	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
 41250  }
 41251  
 41252  // String returns the string representation.
 41253  //
 41254  // API parameter values that are decorated as "sensitive" in the API will not
 41255  // be included in the string output. The member name will be present, but the
 41256  // value will be replaced with "sensitive".
 41257  func (s DescribeThingRegistrationTaskInput) String() string {
 41258  	return awsutil.Prettify(s)
 41259  }
 41260  
 41261  // GoString returns the string representation.
 41262  //
 41263  // API parameter values that are decorated as "sensitive" in the API will not
 41264  // be included in the string output. The member name will be present, but the
 41265  // value will be replaced with "sensitive".
 41266  func (s DescribeThingRegistrationTaskInput) GoString() string {
 41267  	return s.String()
 41268  }
 41269  
 41270  // Validate inspects the fields of the type to determine if they are valid.
 41271  func (s *DescribeThingRegistrationTaskInput) Validate() error {
 41272  	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
 41273  	if s.TaskId == nil {
 41274  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 41275  	}
 41276  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 41277  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 41278  	}
 41279  
 41280  	if invalidParams.Len() > 0 {
 41281  		return invalidParams
 41282  	}
 41283  	return nil
 41284  }
 41285  
 41286  // SetTaskId sets the TaskId field's value.
 41287  func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
 41288  	s.TaskId = &v
 41289  	return s
 41290  }
 41291  
 41292  type DescribeThingRegistrationTaskOutput struct {
 41293  	_ struct{} `type:"structure"`
 41294  
 41295  	// The task creation date.
 41296  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 41297  
 41298  	// The number of things that failed to be provisioned.
 41299  	FailureCount *int64 `locationName:"failureCount" type:"integer"`
 41300  
 41301  	// The S3 bucket that contains the input file.
 41302  	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
 41303  
 41304  	// The input file key.
 41305  	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
 41306  
 41307  	// The date when the task was last modified.
 41308  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 41309  
 41310  	// The message.
 41311  	Message *string `locationName:"message" type:"string"`
 41312  
 41313  	// The progress of the bulk provisioning task expressed as a percentage.
 41314  	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
 41315  
 41316  	// The role ARN that grants access to the input file bucket.
 41317  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 41318  
 41319  	// The status of the bulk thing provisioning task.
 41320  	Status *string `locationName:"status" type:"string" enum:"Status"`
 41321  
 41322  	// The number of things successfully provisioned.
 41323  	SuccessCount *int64 `locationName:"successCount" type:"integer"`
 41324  
 41325  	// The task ID.
 41326  	TaskId *string `locationName:"taskId" type:"string"`
 41327  
 41328  	// The task's template.
 41329  	TemplateBody *string `locationName:"templateBody" type:"string"`
 41330  }
 41331  
 41332  // String returns the string representation.
 41333  //
 41334  // API parameter values that are decorated as "sensitive" in the API will not
 41335  // be included in the string output. The member name will be present, but the
 41336  // value will be replaced with "sensitive".
 41337  func (s DescribeThingRegistrationTaskOutput) String() string {
 41338  	return awsutil.Prettify(s)
 41339  }
 41340  
 41341  // GoString returns the string representation.
 41342  //
 41343  // API parameter values that are decorated as "sensitive" in the API will not
 41344  // be included in the string output. The member name will be present, but the
 41345  // value will be replaced with "sensitive".
 41346  func (s DescribeThingRegistrationTaskOutput) GoString() string {
 41347  	return s.String()
 41348  }
 41349  
 41350  // SetCreationDate sets the CreationDate field's value.
 41351  func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
 41352  	s.CreationDate = &v
 41353  	return s
 41354  }
 41355  
 41356  // SetFailureCount sets the FailureCount field's value.
 41357  func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
 41358  	s.FailureCount = &v
 41359  	return s
 41360  }
 41361  
 41362  // SetInputFileBucket sets the InputFileBucket field's value.
 41363  func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
 41364  	s.InputFileBucket = &v
 41365  	return s
 41366  }
 41367  
 41368  // SetInputFileKey sets the InputFileKey field's value.
 41369  func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
 41370  	s.InputFileKey = &v
 41371  	return s
 41372  }
 41373  
 41374  // SetLastModifiedDate sets the LastModifiedDate field's value.
 41375  func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
 41376  	s.LastModifiedDate = &v
 41377  	return s
 41378  }
 41379  
 41380  // SetMessage sets the Message field's value.
 41381  func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
 41382  	s.Message = &v
 41383  	return s
 41384  }
 41385  
 41386  // SetPercentageProgress sets the PercentageProgress field's value.
 41387  func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
 41388  	s.PercentageProgress = &v
 41389  	return s
 41390  }
 41391  
 41392  // SetRoleArn sets the RoleArn field's value.
 41393  func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
 41394  	s.RoleArn = &v
 41395  	return s
 41396  }
 41397  
 41398  // SetStatus sets the Status field's value.
 41399  func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
 41400  	s.Status = &v
 41401  	return s
 41402  }
 41403  
 41404  // SetSuccessCount sets the SuccessCount field's value.
 41405  func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
 41406  	s.SuccessCount = &v
 41407  	return s
 41408  }
 41409  
 41410  // SetTaskId sets the TaskId field's value.
 41411  func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
 41412  	s.TaskId = &v
 41413  	return s
 41414  }
 41415  
 41416  // SetTemplateBody sets the TemplateBody field's value.
 41417  func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
 41418  	s.TemplateBody = &v
 41419  	return s
 41420  }
 41421  
 41422  // The input for the DescribeThingType operation.
 41423  type DescribeThingTypeInput struct {
 41424  	_ struct{} `type:"structure" nopayload:"true"`
 41425  
 41426  	// The name of the thing type.
 41427  	//
 41428  	// ThingTypeName is a required field
 41429  	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
 41430  }
 41431  
 41432  // String returns the string representation.
 41433  //
 41434  // API parameter values that are decorated as "sensitive" in the API will not
 41435  // be included in the string output. The member name will be present, but the
 41436  // value will be replaced with "sensitive".
 41437  func (s DescribeThingTypeInput) String() string {
 41438  	return awsutil.Prettify(s)
 41439  }
 41440  
 41441  // GoString returns the string representation.
 41442  //
 41443  // API parameter values that are decorated as "sensitive" in the API will not
 41444  // be included in the string output. The member name will be present, but the
 41445  // value will be replaced with "sensitive".
 41446  func (s DescribeThingTypeInput) GoString() string {
 41447  	return s.String()
 41448  }
 41449  
 41450  // Validate inspects the fields of the type to determine if they are valid.
 41451  func (s *DescribeThingTypeInput) Validate() error {
 41452  	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
 41453  	if s.ThingTypeName == nil {
 41454  		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
 41455  	}
 41456  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 41457  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 41458  	}
 41459  
 41460  	if invalidParams.Len() > 0 {
 41461  		return invalidParams
 41462  	}
 41463  	return nil
 41464  }
 41465  
 41466  // SetThingTypeName sets the ThingTypeName field's value.
 41467  func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
 41468  	s.ThingTypeName = &v
 41469  	return s
 41470  }
 41471  
 41472  // The output for the DescribeThingType operation.
 41473  type DescribeThingTypeOutput struct {
 41474  	_ struct{} `type:"structure"`
 41475  
 41476  	// The thing type ARN.
 41477  	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
 41478  
 41479  	// The thing type ID.
 41480  	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
 41481  
 41482  	// The ThingTypeMetadata contains additional information about the thing type
 41483  	// including: creation date and time, a value indicating whether the thing type
 41484  	// is deprecated, and a date and time when it was deprecated.
 41485  	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
 41486  
 41487  	// The name of the thing type.
 41488  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 41489  
 41490  	// The ThingTypeProperties contains information about the thing type including
 41491  	// description, and a list of searchable thing attribute names.
 41492  	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
 41493  }
 41494  
 41495  // String returns the string representation.
 41496  //
 41497  // API parameter values that are decorated as "sensitive" in the API will not
 41498  // be included in the string output. The member name will be present, but the
 41499  // value will be replaced with "sensitive".
 41500  func (s DescribeThingTypeOutput) String() string {
 41501  	return awsutil.Prettify(s)
 41502  }
 41503  
 41504  // GoString returns the string representation.
 41505  //
 41506  // API parameter values that are decorated as "sensitive" in the API will not
 41507  // be included in the string output. The member name will be present, but the
 41508  // value will be replaced with "sensitive".
 41509  func (s DescribeThingTypeOutput) GoString() string {
 41510  	return s.String()
 41511  }
 41512  
 41513  // SetThingTypeArn sets the ThingTypeArn field's value.
 41514  func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
 41515  	s.ThingTypeArn = &v
 41516  	return s
 41517  }
 41518  
 41519  // SetThingTypeId sets the ThingTypeId field's value.
 41520  func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
 41521  	s.ThingTypeId = &v
 41522  	return s
 41523  }
 41524  
 41525  // SetThingTypeMetadata sets the ThingTypeMetadata field's value.
 41526  func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
 41527  	s.ThingTypeMetadata = v
 41528  	return s
 41529  }
 41530  
 41531  // SetThingTypeName sets the ThingTypeName field's value.
 41532  func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
 41533  	s.ThingTypeName = &v
 41534  	return s
 41535  }
 41536  
 41537  // SetThingTypeProperties sets the ThingTypeProperties field's value.
 41538  func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
 41539  	s.ThingTypeProperties = v
 41540  	return s
 41541  }
 41542  
 41543  // Describes the location of the updated firmware.
 41544  type Destination struct {
 41545  	_ struct{} `type:"structure"`
 41546  
 41547  	// Describes the location in S3 of the updated firmware.
 41548  	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
 41549  }
 41550  
 41551  // String returns the string representation.
 41552  //
 41553  // API parameter values that are decorated as "sensitive" in the API will not
 41554  // be included in the string output. The member name will be present, but the
 41555  // value will be replaced with "sensitive".
 41556  func (s Destination) String() string {
 41557  	return awsutil.Prettify(s)
 41558  }
 41559  
 41560  // GoString returns the string representation.
 41561  //
 41562  // API parameter values that are decorated as "sensitive" in the API will not
 41563  // be included in the string output. The member name will be present, but the
 41564  // value will be replaced with "sensitive".
 41565  func (s Destination) GoString() string {
 41566  	return s.String()
 41567  }
 41568  
 41569  // Validate inspects the fields of the type to determine if they are valid.
 41570  func (s *Destination) Validate() error {
 41571  	invalidParams := request.ErrInvalidParams{Context: "Destination"}
 41572  	if s.S3Destination != nil {
 41573  		if err := s.S3Destination.Validate(); err != nil {
 41574  			invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams))
 41575  		}
 41576  	}
 41577  
 41578  	if invalidParams.Len() > 0 {
 41579  		return invalidParams
 41580  	}
 41581  	return nil
 41582  }
 41583  
 41584  // SetS3Destination sets the S3Destination field's value.
 41585  func (s *Destination) SetS3Destination(v *S3Destination) *Destination {
 41586  	s.S3Destination = v
 41587  	return s
 41588  }
 41589  
 41590  type DetachPolicyInput struct {
 41591  	_ struct{} `type:"structure"`
 41592  
 41593  	// The policy to detach.
 41594  	//
 41595  	// PolicyName is a required field
 41596  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 41597  
 41598  	// The target from which the policy will be detached.
 41599  	//
 41600  	// Target is a required field
 41601  	Target *string `locationName:"target" type:"string" required:"true"`
 41602  }
 41603  
 41604  // String returns the string representation.
 41605  //
 41606  // API parameter values that are decorated as "sensitive" in the API will not
 41607  // be included in the string output. The member name will be present, but the
 41608  // value will be replaced with "sensitive".
 41609  func (s DetachPolicyInput) String() string {
 41610  	return awsutil.Prettify(s)
 41611  }
 41612  
 41613  // GoString returns the string representation.
 41614  //
 41615  // API parameter values that are decorated as "sensitive" in the API will not
 41616  // be included in the string output. The member name will be present, but the
 41617  // value will be replaced with "sensitive".
 41618  func (s DetachPolicyInput) GoString() string {
 41619  	return s.String()
 41620  }
 41621  
 41622  // Validate inspects the fields of the type to determine if they are valid.
 41623  func (s *DetachPolicyInput) Validate() error {
 41624  	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
 41625  	if s.PolicyName == nil {
 41626  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 41627  	}
 41628  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 41629  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 41630  	}
 41631  	if s.Target == nil {
 41632  		invalidParams.Add(request.NewErrParamRequired("Target"))
 41633  	}
 41634  
 41635  	if invalidParams.Len() > 0 {
 41636  		return invalidParams
 41637  	}
 41638  	return nil
 41639  }
 41640  
 41641  // SetPolicyName sets the PolicyName field's value.
 41642  func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
 41643  	s.PolicyName = &v
 41644  	return s
 41645  }
 41646  
 41647  // SetTarget sets the Target field's value.
 41648  func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
 41649  	s.Target = &v
 41650  	return s
 41651  }
 41652  
 41653  type DetachPolicyOutput struct {
 41654  	_ struct{} `type:"structure" nopayload:"true"`
 41655  }
 41656  
 41657  // String returns the string representation.
 41658  //
 41659  // API parameter values that are decorated as "sensitive" in the API will not
 41660  // be included in the string output. The member name will be present, but the
 41661  // value will be replaced with "sensitive".
 41662  func (s DetachPolicyOutput) String() string {
 41663  	return awsutil.Prettify(s)
 41664  }
 41665  
 41666  // GoString returns the string representation.
 41667  //
 41668  // API parameter values that are decorated as "sensitive" in the API will not
 41669  // be included in the string output. The member name will be present, but the
 41670  // value will be replaced with "sensitive".
 41671  func (s DetachPolicyOutput) GoString() string {
 41672  	return s.String()
 41673  }
 41674  
 41675  // The input for the DetachPrincipalPolicy operation.
 41676  type DetachPrincipalPolicyInput struct {
 41677  	_ struct{} `type:"structure" nopayload:"true"`
 41678  
 41679  	// The name of the policy to detach.
 41680  	//
 41681  	// PolicyName is a required field
 41682  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 41683  
 41684  	// The principal.
 41685  	//
 41686  	// Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
 41687  	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
 41688  	// (region:id).
 41689  	//
 41690  	// Principal is a required field
 41691  	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
 41692  }
 41693  
 41694  // String returns the string representation.
 41695  //
 41696  // API parameter values that are decorated as "sensitive" in the API will not
 41697  // be included in the string output. The member name will be present, but the
 41698  // value will be replaced with "sensitive".
 41699  func (s DetachPrincipalPolicyInput) String() string {
 41700  	return awsutil.Prettify(s)
 41701  }
 41702  
 41703  // GoString returns the string representation.
 41704  //
 41705  // API parameter values that are decorated as "sensitive" in the API will not
 41706  // be included in the string output. The member name will be present, but the
 41707  // value will be replaced with "sensitive".
 41708  func (s DetachPrincipalPolicyInput) GoString() string {
 41709  	return s.String()
 41710  }
 41711  
 41712  // Validate inspects the fields of the type to determine if they are valid.
 41713  func (s *DetachPrincipalPolicyInput) Validate() error {
 41714  	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
 41715  	if s.PolicyName == nil {
 41716  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 41717  	}
 41718  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 41719  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 41720  	}
 41721  	if s.Principal == nil {
 41722  		invalidParams.Add(request.NewErrParamRequired("Principal"))
 41723  	}
 41724  
 41725  	if invalidParams.Len() > 0 {
 41726  		return invalidParams
 41727  	}
 41728  	return nil
 41729  }
 41730  
 41731  // SetPolicyName sets the PolicyName field's value.
 41732  func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
 41733  	s.PolicyName = &v
 41734  	return s
 41735  }
 41736  
 41737  // SetPrincipal sets the Principal field's value.
 41738  func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
 41739  	s.Principal = &v
 41740  	return s
 41741  }
 41742  
 41743  type DetachPrincipalPolicyOutput struct {
 41744  	_ struct{} `type:"structure" nopayload:"true"`
 41745  }
 41746  
 41747  // String returns the string representation.
 41748  //
 41749  // API parameter values that are decorated as "sensitive" in the API will not
 41750  // be included in the string output. The member name will be present, but the
 41751  // value will be replaced with "sensitive".
 41752  func (s DetachPrincipalPolicyOutput) String() string {
 41753  	return awsutil.Prettify(s)
 41754  }
 41755  
 41756  // GoString returns the string representation.
 41757  //
 41758  // API parameter values that are decorated as "sensitive" in the API will not
 41759  // be included in the string output. The member name will be present, but the
 41760  // value will be replaced with "sensitive".
 41761  func (s DetachPrincipalPolicyOutput) GoString() string {
 41762  	return s.String()
 41763  }
 41764  
 41765  type DetachSecurityProfileInput struct {
 41766  	_ struct{} `type:"structure" nopayload:"true"`
 41767  
 41768  	// The security profile that is detached.
 41769  	//
 41770  	// SecurityProfileName is a required field
 41771  	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
 41772  
 41773  	// The ARN of the thing group from which the security profile is detached.
 41774  	//
 41775  	// SecurityProfileTargetArn is a required field
 41776  	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
 41777  }
 41778  
 41779  // String returns the string representation.
 41780  //
 41781  // API parameter values that are decorated as "sensitive" in the API will not
 41782  // be included in the string output. The member name will be present, but the
 41783  // value will be replaced with "sensitive".
 41784  func (s DetachSecurityProfileInput) String() string {
 41785  	return awsutil.Prettify(s)
 41786  }
 41787  
 41788  // GoString returns the string representation.
 41789  //
 41790  // API parameter values that are decorated as "sensitive" in the API will not
 41791  // be included in the string output. The member name will be present, but the
 41792  // value will be replaced with "sensitive".
 41793  func (s DetachSecurityProfileInput) GoString() string {
 41794  	return s.String()
 41795  }
 41796  
 41797  // Validate inspects the fields of the type to determine if they are valid.
 41798  func (s *DetachSecurityProfileInput) Validate() error {
 41799  	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
 41800  	if s.SecurityProfileName == nil {
 41801  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
 41802  	}
 41803  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 41804  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 41805  	}
 41806  	if s.SecurityProfileTargetArn == nil {
 41807  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
 41808  	}
 41809  
 41810  	if invalidParams.Len() > 0 {
 41811  		return invalidParams
 41812  	}
 41813  	return nil
 41814  }
 41815  
 41816  // SetSecurityProfileName sets the SecurityProfileName field's value.
 41817  func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
 41818  	s.SecurityProfileName = &v
 41819  	return s
 41820  }
 41821  
 41822  // SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
 41823  func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
 41824  	s.SecurityProfileTargetArn = &v
 41825  	return s
 41826  }
 41827  
 41828  type DetachSecurityProfileOutput struct {
 41829  	_ struct{} `type:"structure" nopayload:"true"`
 41830  }
 41831  
 41832  // String returns the string representation.
 41833  //
 41834  // API parameter values that are decorated as "sensitive" in the API will not
 41835  // be included in the string output. The member name will be present, but the
 41836  // value will be replaced with "sensitive".
 41837  func (s DetachSecurityProfileOutput) String() string {
 41838  	return awsutil.Prettify(s)
 41839  }
 41840  
 41841  // GoString returns the string representation.
 41842  //
 41843  // API parameter values that are decorated as "sensitive" in the API will not
 41844  // be included in the string output. The member name will be present, but the
 41845  // value will be replaced with "sensitive".
 41846  func (s DetachSecurityProfileOutput) GoString() string {
 41847  	return s.String()
 41848  }
 41849  
 41850  // The input for the DetachThingPrincipal operation.
 41851  type DetachThingPrincipalInput struct {
 41852  	_ struct{} `type:"structure" nopayload:"true"`
 41853  
 41854  	// If the principal is a certificate, this value must be ARN of the certificate.
 41855  	// If the principal is an Amazon Cognito identity, this value must be the ID
 41856  	// of the Amazon Cognito identity.
 41857  	//
 41858  	// Principal is a required field
 41859  	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
 41860  
 41861  	// The name of the thing.
 41862  	//
 41863  	// ThingName is a required field
 41864  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 41865  }
 41866  
 41867  // String returns the string representation.
 41868  //
 41869  // API parameter values that are decorated as "sensitive" in the API will not
 41870  // be included in the string output. The member name will be present, but the
 41871  // value will be replaced with "sensitive".
 41872  func (s DetachThingPrincipalInput) String() string {
 41873  	return awsutil.Prettify(s)
 41874  }
 41875  
 41876  // GoString returns the string representation.
 41877  //
 41878  // API parameter values that are decorated as "sensitive" in the API will not
 41879  // be included in the string output. The member name will be present, but the
 41880  // value will be replaced with "sensitive".
 41881  func (s DetachThingPrincipalInput) GoString() string {
 41882  	return s.String()
 41883  }
 41884  
 41885  // Validate inspects the fields of the type to determine if they are valid.
 41886  func (s *DetachThingPrincipalInput) Validate() error {
 41887  	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
 41888  	if s.Principal == nil {
 41889  		invalidParams.Add(request.NewErrParamRequired("Principal"))
 41890  	}
 41891  	if s.ThingName == nil {
 41892  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 41893  	}
 41894  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 41895  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 41896  	}
 41897  
 41898  	if invalidParams.Len() > 0 {
 41899  		return invalidParams
 41900  	}
 41901  	return nil
 41902  }
 41903  
 41904  // SetPrincipal sets the Principal field's value.
 41905  func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
 41906  	s.Principal = &v
 41907  	return s
 41908  }
 41909  
 41910  // SetThingName sets the ThingName field's value.
 41911  func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
 41912  	s.ThingName = &v
 41913  	return s
 41914  }
 41915  
 41916  // The output from the DetachThingPrincipal operation.
 41917  type DetachThingPrincipalOutput struct {
 41918  	_ struct{} `type:"structure" nopayload:"true"`
 41919  }
 41920  
 41921  // String returns the string representation.
 41922  //
 41923  // API parameter values that are decorated as "sensitive" in the API will not
 41924  // be included in the string output. The member name will be present, but the
 41925  // value will be replaced with "sensitive".
 41926  func (s DetachThingPrincipalOutput) String() string {
 41927  	return awsutil.Prettify(s)
 41928  }
 41929  
 41930  // GoString returns the string representation.
 41931  //
 41932  // API parameter values that are decorated as "sensitive" in the API will not
 41933  // be included in the string output. The member name will be present, but the
 41934  // value will be replaced with "sensitive".
 41935  func (s DetachThingPrincipalOutput) GoString() string {
 41936  	return s.String()
 41937  }
 41938  
 41939  // Describes which mitigation actions should be executed.
 41940  type DetectMitigationActionExecution struct {
 41941  	_ struct{} `type:"structure"`
 41942  
 41943  	// The friendly name that uniquely identifies the mitigation action.
 41944  	ActionName *string `locationName:"actionName" type:"string"`
 41945  
 41946  	// The error code of a mitigation action.
 41947  	ErrorCode *string `locationName:"errorCode" type:"string"`
 41948  
 41949  	// The date a mitigation action ended.
 41950  	ExecutionEndDate *time.Time `locationName:"executionEndDate" type:"timestamp"`
 41951  
 41952  	// The date a mitigation action was started.
 41953  	ExecutionStartDate *time.Time `locationName:"executionStartDate" type:"timestamp"`
 41954  
 41955  	// The message of a mitigation action.
 41956  	Message *string `locationName:"message" type:"string"`
 41957  
 41958  	// The status of a mitigation action.
 41959  	Status *string `locationName:"status" type:"string" enum:"DetectMitigationActionExecutionStatus"`
 41960  
 41961  	// The unique identifier of the task.
 41962  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 41963  
 41964  	// The name of the thing.
 41965  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 41966  
 41967  	// The unique identifier of the violation.
 41968  	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
 41969  }
 41970  
 41971  // String returns the string representation.
 41972  //
 41973  // API parameter values that are decorated as "sensitive" in the API will not
 41974  // be included in the string output. The member name will be present, but the
 41975  // value will be replaced with "sensitive".
 41976  func (s DetectMitigationActionExecution) String() string {
 41977  	return awsutil.Prettify(s)
 41978  }
 41979  
 41980  // GoString returns the string representation.
 41981  //
 41982  // API parameter values that are decorated as "sensitive" in the API will not
 41983  // be included in the string output. The member name will be present, but the
 41984  // value will be replaced with "sensitive".
 41985  func (s DetectMitigationActionExecution) GoString() string {
 41986  	return s.String()
 41987  }
 41988  
 41989  // SetActionName sets the ActionName field's value.
 41990  func (s *DetectMitigationActionExecution) SetActionName(v string) *DetectMitigationActionExecution {
 41991  	s.ActionName = &v
 41992  	return s
 41993  }
 41994  
 41995  // SetErrorCode sets the ErrorCode field's value.
 41996  func (s *DetectMitigationActionExecution) SetErrorCode(v string) *DetectMitigationActionExecution {
 41997  	s.ErrorCode = &v
 41998  	return s
 41999  }
 42000  
 42001  // SetExecutionEndDate sets the ExecutionEndDate field's value.
 42002  func (s *DetectMitigationActionExecution) SetExecutionEndDate(v time.Time) *DetectMitigationActionExecution {
 42003  	s.ExecutionEndDate = &v
 42004  	return s
 42005  }
 42006  
 42007  // SetExecutionStartDate sets the ExecutionStartDate field's value.
 42008  func (s *DetectMitigationActionExecution) SetExecutionStartDate(v time.Time) *DetectMitigationActionExecution {
 42009  	s.ExecutionStartDate = &v
 42010  	return s
 42011  }
 42012  
 42013  // SetMessage sets the Message field's value.
 42014  func (s *DetectMitigationActionExecution) SetMessage(v string) *DetectMitigationActionExecution {
 42015  	s.Message = &v
 42016  	return s
 42017  }
 42018  
 42019  // SetStatus sets the Status field's value.
 42020  func (s *DetectMitigationActionExecution) SetStatus(v string) *DetectMitigationActionExecution {
 42021  	s.Status = &v
 42022  	return s
 42023  }
 42024  
 42025  // SetTaskId sets the TaskId field's value.
 42026  func (s *DetectMitigationActionExecution) SetTaskId(v string) *DetectMitigationActionExecution {
 42027  	s.TaskId = &v
 42028  	return s
 42029  }
 42030  
 42031  // SetThingName sets the ThingName field's value.
 42032  func (s *DetectMitigationActionExecution) SetThingName(v string) *DetectMitigationActionExecution {
 42033  	s.ThingName = &v
 42034  	return s
 42035  }
 42036  
 42037  // SetViolationId sets the ViolationId field's value.
 42038  func (s *DetectMitigationActionExecution) SetViolationId(v string) *DetectMitigationActionExecution {
 42039  	s.ViolationId = &v
 42040  	return s
 42041  }
 42042  
 42043  // The statistics of a mitigation action task.
 42044  type DetectMitigationActionsTaskStatistics struct {
 42045  	_ struct{} `type:"structure"`
 42046  
 42047  	// The actions that were performed.
 42048  	ActionsExecuted *int64 `locationName:"actionsExecuted" type:"long"`
 42049  
 42050  	// The actions that failed.
 42051  	ActionsFailed *int64 `locationName:"actionsFailed" type:"long"`
 42052  
 42053  	// The actions that were skipped.
 42054  	ActionsSkipped *int64 `locationName:"actionsSkipped" type:"long"`
 42055  }
 42056  
 42057  // String returns the string representation.
 42058  //
 42059  // API parameter values that are decorated as "sensitive" in the API will not
 42060  // be included in the string output. The member name will be present, but the
 42061  // value will be replaced with "sensitive".
 42062  func (s DetectMitigationActionsTaskStatistics) String() string {
 42063  	return awsutil.Prettify(s)
 42064  }
 42065  
 42066  // GoString returns the string representation.
 42067  //
 42068  // API parameter values that are decorated as "sensitive" in the API will not
 42069  // be included in the string output. The member name will be present, but the
 42070  // value will be replaced with "sensitive".
 42071  func (s DetectMitigationActionsTaskStatistics) GoString() string {
 42072  	return s.String()
 42073  }
 42074  
 42075  // SetActionsExecuted sets the ActionsExecuted field's value.
 42076  func (s *DetectMitigationActionsTaskStatistics) SetActionsExecuted(v int64) *DetectMitigationActionsTaskStatistics {
 42077  	s.ActionsExecuted = &v
 42078  	return s
 42079  }
 42080  
 42081  // SetActionsFailed sets the ActionsFailed field's value.
 42082  func (s *DetectMitigationActionsTaskStatistics) SetActionsFailed(v int64) *DetectMitigationActionsTaskStatistics {
 42083  	s.ActionsFailed = &v
 42084  	return s
 42085  }
 42086  
 42087  // SetActionsSkipped sets the ActionsSkipped field's value.
 42088  func (s *DetectMitigationActionsTaskStatistics) SetActionsSkipped(v int64) *DetectMitigationActionsTaskStatistics {
 42089  	s.ActionsSkipped = &v
 42090  	return s
 42091  }
 42092  
 42093  // The summary of the mitigation action tasks.
 42094  type DetectMitigationActionsTaskSummary struct {
 42095  	_ struct{} `type:"structure"`
 42096  
 42097  	// The definition of the actions.
 42098  	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
 42099  
 42100  	// Includes only active violations.
 42101  	OnlyActiveViolationsIncluded *bool `locationName:"onlyActiveViolationsIncluded" type:"boolean"`
 42102  
 42103  	// Includes suppressed alerts.
 42104  	SuppressedAlertsIncluded *bool `locationName:"suppressedAlertsIncluded" type:"boolean"`
 42105  
 42106  	// Specifies the ML Detect findings to which the mitigation actions are applied.
 42107  	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure"`
 42108  
 42109  	// The date the task ended.
 42110  	TaskEndTime *time.Time `locationName:"taskEndTime" type:"timestamp"`
 42111  
 42112  	// The unique identifier of the task.
 42113  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 42114  
 42115  	// The date the task started.
 42116  	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
 42117  
 42118  	// The statistics of a mitigation action task.
 42119  	TaskStatistics *DetectMitigationActionsTaskStatistics `locationName:"taskStatistics" type:"structure"`
 42120  
 42121  	// The status of the task.
 42122  	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"DetectMitigationActionsTaskStatus"`
 42123  
 42124  	// Specifies the time period of which violation events occurred between.
 42125  	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
 42126  }
 42127  
 42128  // String returns the string representation.
 42129  //
 42130  // API parameter values that are decorated as "sensitive" in the API will not
 42131  // be included in the string output. The member name will be present, but the
 42132  // value will be replaced with "sensitive".
 42133  func (s DetectMitigationActionsTaskSummary) String() string {
 42134  	return awsutil.Prettify(s)
 42135  }
 42136  
 42137  // GoString returns the string representation.
 42138  //
 42139  // API parameter values that are decorated as "sensitive" in the API will not
 42140  // be included in the string output. The member name will be present, but the
 42141  // value will be replaced with "sensitive".
 42142  func (s DetectMitigationActionsTaskSummary) GoString() string {
 42143  	return s.String()
 42144  }
 42145  
 42146  // SetActionsDefinition sets the ActionsDefinition field's value.
 42147  func (s *DetectMitigationActionsTaskSummary) SetActionsDefinition(v []*MitigationAction) *DetectMitigationActionsTaskSummary {
 42148  	s.ActionsDefinition = v
 42149  	return s
 42150  }
 42151  
 42152  // SetOnlyActiveViolationsIncluded sets the OnlyActiveViolationsIncluded field's value.
 42153  func (s *DetectMitigationActionsTaskSummary) SetOnlyActiveViolationsIncluded(v bool) *DetectMitigationActionsTaskSummary {
 42154  	s.OnlyActiveViolationsIncluded = &v
 42155  	return s
 42156  }
 42157  
 42158  // SetSuppressedAlertsIncluded sets the SuppressedAlertsIncluded field's value.
 42159  func (s *DetectMitigationActionsTaskSummary) SetSuppressedAlertsIncluded(v bool) *DetectMitigationActionsTaskSummary {
 42160  	s.SuppressedAlertsIncluded = &v
 42161  	return s
 42162  }
 42163  
 42164  // SetTarget sets the Target field's value.
 42165  func (s *DetectMitigationActionsTaskSummary) SetTarget(v *DetectMitigationActionsTaskTarget) *DetectMitigationActionsTaskSummary {
 42166  	s.Target = v
 42167  	return s
 42168  }
 42169  
 42170  // SetTaskEndTime sets the TaskEndTime field's value.
 42171  func (s *DetectMitigationActionsTaskSummary) SetTaskEndTime(v time.Time) *DetectMitigationActionsTaskSummary {
 42172  	s.TaskEndTime = &v
 42173  	return s
 42174  }
 42175  
 42176  // SetTaskId sets the TaskId field's value.
 42177  func (s *DetectMitigationActionsTaskSummary) SetTaskId(v string) *DetectMitigationActionsTaskSummary {
 42178  	s.TaskId = &v
 42179  	return s
 42180  }
 42181  
 42182  // SetTaskStartTime sets the TaskStartTime field's value.
 42183  func (s *DetectMitigationActionsTaskSummary) SetTaskStartTime(v time.Time) *DetectMitigationActionsTaskSummary {
 42184  	s.TaskStartTime = &v
 42185  	return s
 42186  }
 42187  
 42188  // SetTaskStatistics sets the TaskStatistics field's value.
 42189  func (s *DetectMitigationActionsTaskSummary) SetTaskStatistics(v *DetectMitigationActionsTaskStatistics) *DetectMitigationActionsTaskSummary {
 42190  	s.TaskStatistics = v
 42191  	return s
 42192  }
 42193  
 42194  // SetTaskStatus sets the TaskStatus field's value.
 42195  func (s *DetectMitigationActionsTaskSummary) SetTaskStatus(v string) *DetectMitigationActionsTaskSummary {
 42196  	s.TaskStatus = &v
 42197  	return s
 42198  }
 42199  
 42200  // SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
 42201  func (s *DetectMitigationActionsTaskSummary) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *DetectMitigationActionsTaskSummary {
 42202  	s.ViolationEventOccurrenceRange = v
 42203  	return s
 42204  }
 42205  
 42206  // The target of a mitigation action task.
 42207  type DetectMitigationActionsTaskTarget struct {
 42208  	_ struct{} `type:"structure"`
 42209  
 42210  	// The name of the behavior.
 42211  	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
 42212  
 42213  	// The name of the security profile.
 42214  	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
 42215  
 42216  	// The unique identifiers of the violations.
 42217  	ViolationIds []*string `locationName:"violationIds" min:"1" type:"list"`
 42218  }
 42219  
 42220  // String returns the string representation.
 42221  //
 42222  // API parameter values that are decorated as "sensitive" in the API will not
 42223  // be included in the string output. The member name will be present, but the
 42224  // value will be replaced with "sensitive".
 42225  func (s DetectMitigationActionsTaskTarget) String() string {
 42226  	return awsutil.Prettify(s)
 42227  }
 42228  
 42229  // GoString returns the string representation.
 42230  //
 42231  // API parameter values that are decorated as "sensitive" in the API will not
 42232  // be included in the string output. The member name will be present, but the
 42233  // value will be replaced with "sensitive".
 42234  func (s DetectMitigationActionsTaskTarget) GoString() string {
 42235  	return s.String()
 42236  }
 42237  
 42238  // Validate inspects the fields of the type to determine if they are valid.
 42239  func (s *DetectMitigationActionsTaskTarget) Validate() error {
 42240  	invalidParams := request.ErrInvalidParams{Context: "DetectMitigationActionsTaskTarget"}
 42241  	if s.BehaviorName != nil && len(*s.BehaviorName) < 1 {
 42242  		invalidParams.Add(request.NewErrParamMinLen("BehaviorName", 1))
 42243  	}
 42244  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 42245  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 42246  	}
 42247  	if s.ViolationIds != nil && len(s.ViolationIds) < 1 {
 42248  		invalidParams.Add(request.NewErrParamMinLen("ViolationIds", 1))
 42249  	}
 42250  
 42251  	if invalidParams.Len() > 0 {
 42252  		return invalidParams
 42253  	}
 42254  	return nil
 42255  }
 42256  
 42257  // SetBehaviorName sets the BehaviorName field's value.
 42258  func (s *DetectMitigationActionsTaskTarget) SetBehaviorName(v string) *DetectMitigationActionsTaskTarget {
 42259  	s.BehaviorName = &v
 42260  	return s
 42261  }
 42262  
 42263  // SetSecurityProfileName sets the SecurityProfileName field's value.
 42264  func (s *DetectMitigationActionsTaskTarget) SetSecurityProfileName(v string) *DetectMitigationActionsTaskTarget {
 42265  	s.SecurityProfileName = &v
 42266  	return s
 42267  }
 42268  
 42269  // SetViolationIds sets the ViolationIds field's value.
 42270  func (s *DetectMitigationActionsTaskTarget) SetViolationIds(v []*string) *DetectMitigationActionsTaskTarget {
 42271  	s.ViolationIds = v
 42272  	return s
 42273  }
 42274  
 42275  // The input for the DisableTopicRuleRequest operation.
 42276  type DisableTopicRuleInput struct {
 42277  	_ struct{} `type:"structure" nopayload:"true"`
 42278  
 42279  	// The name of the rule to disable.
 42280  	//
 42281  	// RuleName is a required field
 42282  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
 42283  }
 42284  
 42285  // String returns the string representation.
 42286  //
 42287  // API parameter values that are decorated as "sensitive" in the API will not
 42288  // be included in the string output. The member name will be present, but the
 42289  // value will be replaced with "sensitive".
 42290  func (s DisableTopicRuleInput) String() string {
 42291  	return awsutil.Prettify(s)
 42292  }
 42293  
 42294  // GoString returns the string representation.
 42295  //
 42296  // API parameter values that are decorated as "sensitive" in the API will not
 42297  // be included in the string output. The member name will be present, but the
 42298  // value will be replaced with "sensitive".
 42299  func (s DisableTopicRuleInput) GoString() string {
 42300  	return s.String()
 42301  }
 42302  
 42303  // Validate inspects the fields of the type to determine if they are valid.
 42304  func (s *DisableTopicRuleInput) Validate() error {
 42305  	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
 42306  	if s.RuleName == nil {
 42307  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
 42308  	}
 42309  	if s.RuleName != nil && len(*s.RuleName) < 1 {
 42310  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
 42311  	}
 42312  
 42313  	if invalidParams.Len() > 0 {
 42314  		return invalidParams
 42315  	}
 42316  	return nil
 42317  }
 42318  
 42319  // SetRuleName sets the RuleName field's value.
 42320  func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
 42321  	s.RuleName = &v
 42322  	return s
 42323  }
 42324  
 42325  type DisableTopicRuleOutput struct {
 42326  	_ struct{} `type:"structure" nopayload:"true"`
 42327  }
 42328  
 42329  // String returns the string representation.
 42330  //
 42331  // API parameter values that are decorated as "sensitive" in the API will not
 42332  // be included in the string output. The member name will be present, but the
 42333  // value will be replaced with "sensitive".
 42334  func (s DisableTopicRuleOutput) String() string {
 42335  	return awsutil.Prettify(s)
 42336  }
 42337  
 42338  // GoString returns the string representation.
 42339  //
 42340  // API parameter values that are decorated as "sensitive" in the API will not
 42341  // be included in the string output. The member name will be present, but the
 42342  // value will be replaced with "sensitive".
 42343  func (s DisableTopicRuleOutput) GoString() string {
 42344  	return s.String()
 42345  }
 42346  
 42347  // The summary of a domain configuration. A domain configuration specifies custom
 42348  // IoT-specific information about a domain. A domain configuration can be associated
 42349  // with an Amazon Web Services-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com),
 42350  // a customer managed domain, or a default endpoint.
 42351  //
 42352  //    * Data
 42353  //
 42354  //    * Jobs
 42355  //
 42356  //    * CredentialProvider
 42357  type DomainConfigurationSummary struct {
 42358  	_ struct{} `type:"structure"`
 42359  
 42360  	// The ARN of the domain configuration.
 42361  	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
 42362  
 42363  	// The name of the domain configuration. This value must be unique to a region.
 42364  	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
 42365  
 42366  	// The type of service delivered by the endpoint.
 42367  	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
 42368  }
 42369  
 42370  // String returns the string representation.
 42371  //
 42372  // API parameter values that are decorated as "sensitive" in the API will not
 42373  // be included in the string output. The member name will be present, but the
 42374  // value will be replaced with "sensitive".
 42375  func (s DomainConfigurationSummary) String() string {
 42376  	return awsutil.Prettify(s)
 42377  }
 42378  
 42379  // GoString returns the string representation.
 42380  //
 42381  // API parameter values that are decorated as "sensitive" in the API will not
 42382  // be included in the string output. The member name will be present, but the
 42383  // value will be replaced with "sensitive".
 42384  func (s DomainConfigurationSummary) GoString() string {
 42385  	return s.String()
 42386  }
 42387  
 42388  // SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
 42389  func (s *DomainConfigurationSummary) SetDomainConfigurationArn(v string) *DomainConfigurationSummary {
 42390  	s.DomainConfigurationArn = &v
 42391  	return s
 42392  }
 42393  
 42394  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 42395  func (s *DomainConfigurationSummary) SetDomainConfigurationName(v string) *DomainConfigurationSummary {
 42396  	s.DomainConfigurationName = &v
 42397  	return s
 42398  }
 42399  
 42400  // SetServiceType sets the ServiceType field's value.
 42401  func (s *DomainConfigurationSummary) SetServiceType(v string) *DomainConfigurationSummary {
 42402  	s.ServiceType = &v
 42403  	return s
 42404  }
 42405  
 42406  // Describes an action to write to a DynamoDB table.
 42407  //
 42408  // The tableName, hashKeyField, and rangeKeyField values must match the values
 42409  // used when you created the table.
 42410  //
 42411  // The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
 42412  // These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
 42413  //
 42414  // You can specify any valid expression in a WHERE or SELECT clause, including
 42415  // JSON properties, comparisons, calculations, and functions. For example, the
 42416  // following field uses the third level of the topic:
 42417  //
 42418  // "hashKeyValue": "${topic(3)}"
 42419  //
 42420  // The following field uses the timestamp:
 42421  //
 42422  // "rangeKeyValue": "${timestamp()}"
 42423  type DynamoDBAction struct {
 42424  	_ struct{} `type:"structure"`
 42425  
 42426  	// The hash key name.
 42427  	//
 42428  	// HashKeyField is a required field
 42429  	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
 42430  
 42431  	// The hash key type. Valid values are "STRING" or "NUMBER"
 42432  	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
 42433  
 42434  	// The hash key value.
 42435  	//
 42436  	// HashKeyValue is a required field
 42437  	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
 42438  
 42439  	// The type of operation to be performed. This follows the substitution template,
 42440  	// so it can be ${operation}, but the substitution must result in one of the
 42441  	// following: INSERT, UPDATE, or DELETE.
 42442  	Operation *string `locationName:"operation" type:"string"`
 42443  
 42444  	// The action payload. This name can be customized.
 42445  	PayloadField *string `locationName:"payloadField" type:"string"`
 42446  
 42447  	// The range key name.
 42448  	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
 42449  
 42450  	// The range key type. Valid values are "STRING" or "NUMBER"
 42451  	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
 42452  
 42453  	// The range key value.
 42454  	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
 42455  
 42456  	// The ARN of the IAM role that grants access to the DynamoDB table.
 42457  	//
 42458  	// RoleArn is a required field
 42459  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 42460  
 42461  	// The name of the DynamoDB table.
 42462  	//
 42463  	// TableName is a required field
 42464  	TableName *string `locationName:"tableName" type:"string" required:"true"`
 42465  }
 42466  
 42467  // String returns the string representation.
 42468  //
 42469  // API parameter values that are decorated as "sensitive" in the API will not
 42470  // be included in the string output. The member name will be present, but the
 42471  // value will be replaced with "sensitive".
 42472  func (s DynamoDBAction) String() string {
 42473  	return awsutil.Prettify(s)
 42474  }
 42475  
 42476  // GoString returns the string representation.
 42477  //
 42478  // API parameter values that are decorated as "sensitive" in the API will not
 42479  // be included in the string output. The member name will be present, but the
 42480  // value will be replaced with "sensitive".
 42481  func (s DynamoDBAction) GoString() string {
 42482  	return s.String()
 42483  }
 42484  
 42485  // Validate inspects the fields of the type to determine if they are valid.
 42486  func (s *DynamoDBAction) Validate() error {
 42487  	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
 42488  	if s.HashKeyField == nil {
 42489  		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
 42490  	}
 42491  	if s.HashKeyValue == nil {
 42492  		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
 42493  	}
 42494  	if s.RoleArn == nil {
 42495  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 42496  	}
 42497  	if s.TableName == nil {
 42498  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 42499  	}
 42500  
 42501  	if invalidParams.Len() > 0 {
 42502  		return invalidParams
 42503  	}
 42504  	return nil
 42505  }
 42506  
 42507  // SetHashKeyField sets the HashKeyField field's value.
 42508  func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
 42509  	s.HashKeyField = &v
 42510  	return s
 42511  }
 42512  
 42513  // SetHashKeyType sets the HashKeyType field's value.
 42514  func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
 42515  	s.HashKeyType = &v
 42516  	return s
 42517  }
 42518  
 42519  // SetHashKeyValue sets the HashKeyValue field's value.
 42520  func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
 42521  	s.HashKeyValue = &v
 42522  	return s
 42523  }
 42524  
 42525  // SetOperation sets the Operation field's value.
 42526  func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
 42527  	s.Operation = &v
 42528  	return s
 42529  }
 42530  
 42531  // SetPayloadField sets the PayloadField field's value.
 42532  func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
 42533  	s.PayloadField = &v
 42534  	return s
 42535  }
 42536  
 42537  // SetRangeKeyField sets the RangeKeyField field's value.
 42538  func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
 42539  	s.RangeKeyField = &v
 42540  	return s
 42541  }
 42542  
 42543  // SetRangeKeyType sets the RangeKeyType field's value.
 42544  func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
 42545  	s.RangeKeyType = &v
 42546  	return s
 42547  }
 42548  
 42549  // SetRangeKeyValue sets the RangeKeyValue field's value.
 42550  func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
 42551  	s.RangeKeyValue = &v
 42552  	return s
 42553  }
 42554  
 42555  // SetRoleArn sets the RoleArn field's value.
 42556  func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
 42557  	s.RoleArn = &v
 42558  	return s
 42559  }
 42560  
 42561  // SetTableName sets the TableName field's value.
 42562  func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
 42563  	s.TableName = &v
 42564  	return s
 42565  }
 42566  
 42567  // Describes an action to write to a DynamoDB table.
 42568  //
 42569  // This DynamoDB action writes each attribute in the message payload into it's
 42570  // own column in the DynamoDB table.
 42571  type DynamoDBv2Action struct {
 42572  	_ struct{} `type:"structure"`
 42573  
 42574  	// Specifies the DynamoDB table to which the message data will be written. For
 42575  	// example:
 42576  	//
 42577  	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
 42578  	// "my-table" } } }
 42579  	//
 42580  	// Each attribute in the message payload will be written to a separate column
 42581  	// in the DynamoDB database.
 42582  	//
 42583  	// PutItem is a required field
 42584  	PutItem *PutItemInput `locationName:"putItem" type:"structure" required:"true"`
 42585  
 42586  	// The ARN of the IAM role that grants access to the DynamoDB table.
 42587  	//
 42588  	// RoleArn is a required field
 42589  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 42590  }
 42591  
 42592  // String returns the string representation.
 42593  //
 42594  // API parameter values that are decorated as "sensitive" in the API will not
 42595  // be included in the string output. The member name will be present, but the
 42596  // value will be replaced with "sensitive".
 42597  func (s DynamoDBv2Action) String() string {
 42598  	return awsutil.Prettify(s)
 42599  }
 42600  
 42601  // GoString returns the string representation.
 42602  //
 42603  // API parameter values that are decorated as "sensitive" in the API will not
 42604  // be included in the string output. The member name will be present, but the
 42605  // value will be replaced with "sensitive".
 42606  func (s DynamoDBv2Action) GoString() string {
 42607  	return s.String()
 42608  }
 42609  
 42610  // Validate inspects the fields of the type to determine if they are valid.
 42611  func (s *DynamoDBv2Action) Validate() error {
 42612  	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
 42613  	if s.PutItem == nil {
 42614  		invalidParams.Add(request.NewErrParamRequired("PutItem"))
 42615  	}
 42616  	if s.RoleArn == nil {
 42617  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 42618  	}
 42619  	if s.PutItem != nil {
 42620  		if err := s.PutItem.Validate(); err != nil {
 42621  			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
 42622  		}
 42623  	}
 42624  
 42625  	if invalidParams.Len() > 0 {
 42626  		return invalidParams
 42627  	}
 42628  	return nil
 42629  }
 42630  
 42631  // SetPutItem sets the PutItem field's value.
 42632  func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
 42633  	s.PutItem = v
 42634  	return s
 42635  }
 42636  
 42637  // SetRoleArn sets the RoleArn field's value.
 42638  func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
 42639  	s.RoleArn = &v
 42640  	return s
 42641  }
 42642  
 42643  // The policy that has the effect on the authorization results.
 42644  type EffectivePolicy struct {
 42645  	_ struct{} `type:"structure"`
 42646  
 42647  	// The policy ARN.
 42648  	PolicyArn *string `locationName:"policyArn" type:"string"`
 42649  
 42650  	// The IAM policy document.
 42651  	PolicyDocument *string `locationName:"policyDocument" type:"string"`
 42652  
 42653  	// The policy name.
 42654  	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
 42655  }
 42656  
 42657  // String returns the string representation.
 42658  //
 42659  // API parameter values that are decorated as "sensitive" in the API will not
 42660  // be included in the string output. The member name will be present, but the
 42661  // value will be replaced with "sensitive".
 42662  func (s EffectivePolicy) String() string {
 42663  	return awsutil.Prettify(s)
 42664  }
 42665  
 42666  // GoString returns the string representation.
 42667  //
 42668  // API parameter values that are decorated as "sensitive" in the API will not
 42669  // be included in the string output. The member name will be present, but the
 42670  // value will be replaced with "sensitive".
 42671  func (s EffectivePolicy) GoString() string {
 42672  	return s.String()
 42673  }
 42674  
 42675  // SetPolicyArn sets the PolicyArn field's value.
 42676  func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
 42677  	s.PolicyArn = &v
 42678  	return s
 42679  }
 42680  
 42681  // SetPolicyDocument sets the PolicyDocument field's value.
 42682  func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
 42683  	s.PolicyDocument = &v
 42684  	return s
 42685  }
 42686  
 42687  // SetPolicyName sets the PolicyName field's value.
 42688  func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
 42689  	s.PolicyName = &v
 42690  	return s
 42691  }
 42692  
 42693  // Describes an action that writes data to an Amazon OpenSearch Service domain.
 42694  //
 42695  // The Elasticsearch action can only be used by existing rule actions. To create
 42696  // a new rule action or to update an existing rule action, use the OpenSearch
 42697  // rule action instead. For more information, see OpenSearchAction (https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html).
 42698  type ElasticsearchAction struct {
 42699  	_ struct{} `type:"structure"`
 42700  
 42701  	// The endpoint of your OpenSearch domain.
 42702  	//
 42703  	// Endpoint is a required field
 42704  	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
 42705  
 42706  	// The unique identifier for the document you are storing.
 42707  	//
 42708  	// Id is a required field
 42709  	Id *string `locationName:"id" type:"string" required:"true"`
 42710  
 42711  	// The index where you want to store your data.
 42712  	//
 42713  	// Index is a required field
 42714  	Index *string `locationName:"index" type:"string" required:"true"`
 42715  
 42716  	// The IAM role ARN that has access to OpenSearch.
 42717  	//
 42718  	// RoleArn is a required field
 42719  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 42720  
 42721  	// The type of document you are storing.
 42722  	//
 42723  	// Type is a required field
 42724  	Type *string `locationName:"type" type:"string" required:"true"`
 42725  }
 42726  
 42727  // String returns the string representation.
 42728  //
 42729  // API parameter values that are decorated as "sensitive" in the API will not
 42730  // be included in the string output. The member name will be present, but the
 42731  // value will be replaced with "sensitive".
 42732  func (s ElasticsearchAction) String() string {
 42733  	return awsutil.Prettify(s)
 42734  }
 42735  
 42736  // GoString returns the string representation.
 42737  //
 42738  // API parameter values that are decorated as "sensitive" in the API will not
 42739  // be included in the string output. The member name will be present, but the
 42740  // value will be replaced with "sensitive".
 42741  func (s ElasticsearchAction) GoString() string {
 42742  	return s.String()
 42743  }
 42744  
 42745  // Validate inspects the fields of the type to determine if they are valid.
 42746  func (s *ElasticsearchAction) Validate() error {
 42747  	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
 42748  	if s.Endpoint == nil {
 42749  		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
 42750  	}
 42751  	if s.Id == nil {
 42752  		invalidParams.Add(request.NewErrParamRequired("Id"))
 42753  	}
 42754  	if s.Index == nil {
 42755  		invalidParams.Add(request.NewErrParamRequired("Index"))
 42756  	}
 42757  	if s.RoleArn == nil {
 42758  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 42759  	}
 42760  	if s.Type == nil {
 42761  		invalidParams.Add(request.NewErrParamRequired("Type"))
 42762  	}
 42763  
 42764  	if invalidParams.Len() > 0 {
 42765  		return invalidParams
 42766  	}
 42767  	return nil
 42768  }
 42769  
 42770  // SetEndpoint sets the Endpoint field's value.
 42771  func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
 42772  	s.Endpoint = &v
 42773  	return s
 42774  }
 42775  
 42776  // SetId sets the Id field's value.
 42777  func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
 42778  	s.Id = &v
 42779  	return s
 42780  }
 42781  
 42782  // SetIndex sets the Index field's value.
 42783  func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
 42784  	s.Index = &v
 42785  	return s
 42786  }
 42787  
 42788  // SetRoleArn sets the RoleArn field's value.
 42789  func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
 42790  	s.RoleArn = &v
 42791  	return s
 42792  }
 42793  
 42794  // SetType sets the Type field's value.
 42795  func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
 42796  	s.Type = &v
 42797  	return s
 42798  }
 42799  
 42800  // Parameters used when defining a mitigation action that enable Amazon Web
 42801  // Services IoT Core logging.
 42802  type EnableIoTLoggingParams struct {
 42803  	_ struct{} `type:"structure"`
 42804  
 42805  	// Specifies the type of information to be logged.
 42806  	//
 42807  	// LogLevel is a required field
 42808  	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
 42809  
 42810  	// The Amazon Resource Name (ARN) of the IAM role used for logging.
 42811  	//
 42812  	// RoleArnForLogging is a required field
 42813  	RoleArnForLogging *string `locationName:"roleArnForLogging" min:"20" type:"string" required:"true"`
 42814  }
 42815  
 42816  // String returns the string representation.
 42817  //
 42818  // API parameter values that are decorated as "sensitive" in the API will not
 42819  // be included in the string output. The member name will be present, but the
 42820  // value will be replaced with "sensitive".
 42821  func (s EnableIoTLoggingParams) String() string {
 42822  	return awsutil.Prettify(s)
 42823  }
 42824  
 42825  // GoString returns the string representation.
 42826  //
 42827  // API parameter values that are decorated as "sensitive" in the API will not
 42828  // be included in the string output. The member name will be present, but the
 42829  // value will be replaced with "sensitive".
 42830  func (s EnableIoTLoggingParams) GoString() string {
 42831  	return s.String()
 42832  }
 42833  
 42834  // Validate inspects the fields of the type to determine if they are valid.
 42835  func (s *EnableIoTLoggingParams) Validate() error {
 42836  	invalidParams := request.ErrInvalidParams{Context: "EnableIoTLoggingParams"}
 42837  	if s.LogLevel == nil {
 42838  		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
 42839  	}
 42840  	if s.RoleArnForLogging == nil {
 42841  		invalidParams.Add(request.NewErrParamRequired("RoleArnForLogging"))
 42842  	}
 42843  	if s.RoleArnForLogging != nil && len(*s.RoleArnForLogging) < 20 {
 42844  		invalidParams.Add(request.NewErrParamMinLen("RoleArnForLogging", 20))
 42845  	}
 42846  
 42847  	if invalidParams.Len() > 0 {
 42848  		return invalidParams
 42849  	}
 42850  	return nil
 42851  }
 42852  
 42853  // SetLogLevel sets the LogLevel field's value.
 42854  func (s *EnableIoTLoggingParams) SetLogLevel(v string) *EnableIoTLoggingParams {
 42855  	s.LogLevel = &v
 42856  	return s
 42857  }
 42858  
 42859  // SetRoleArnForLogging sets the RoleArnForLogging field's value.
 42860  func (s *EnableIoTLoggingParams) SetRoleArnForLogging(v string) *EnableIoTLoggingParams {
 42861  	s.RoleArnForLogging = &v
 42862  	return s
 42863  }
 42864  
 42865  // The input for the EnableTopicRuleRequest operation.
 42866  type EnableTopicRuleInput struct {
 42867  	_ struct{} `type:"structure" nopayload:"true"`
 42868  
 42869  	// The name of the topic rule to enable.
 42870  	//
 42871  	// RuleName is a required field
 42872  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
 42873  }
 42874  
 42875  // String returns the string representation.
 42876  //
 42877  // API parameter values that are decorated as "sensitive" in the API will not
 42878  // be included in the string output. The member name will be present, but the
 42879  // value will be replaced with "sensitive".
 42880  func (s EnableTopicRuleInput) String() string {
 42881  	return awsutil.Prettify(s)
 42882  }
 42883  
 42884  // GoString returns the string representation.
 42885  //
 42886  // API parameter values that are decorated as "sensitive" in the API will not
 42887  // be included in the string output. The member name will be present, but the
 42888  // value will be replaced with "sensitive".
 42889  func (s EnableTopicRuleInput) GoString() string {
 42890  	return s.String()
 42891  }
 42892  
 42893  // Validate inspects the fields of the type to determine if they are valid.
 42894  func (s *EnableTopicRuleInput) Validate() error {
 42895  	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
 42896  	if s.RuleName == nil {
 42897  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
 42898  	}
 42899  	if s.RuleName != nil && len(*s.RuleName) < 1 {
 42900  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
 42901  	}
 42902  
 42903  	if invalidParams.Len() > 0 {
 42904  		return invalidParams
 42905  	}
 42906  	return nil
 42907  }
 42908  
 42909  // SetRuleName sets the RuleName field's value.
 42910  func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
 42911  	s.RuleName = &v
 42912  	return s
 42913  }
 42914  
 42915  type EnableTopicRuleOutput struct {
 42916  	_ struct{} `type:"structure" nopayload:"true"`
 42917  }
 42918  
 42919  // String returns the string representation.
 42920  //
 42921  // API parameter values that are decorated as "sensitive" in the API will not
 42922  // be included in the string output. The member name will be present, but the
 42923  // value will be replaced with "sensitive".
 42924  func (s EnableTopicRuleOutput) String() string {
 42925  	return awsutil.Prettify(s)
 42926  }
 42927  
 42928  // GoString returns the string representation.
 42929  //
 42930  // API parameter values that are decorated as "sensitive" in the API will not
 42931  // be included in the string output. The member name will be present, but the
 42932  // value will be replaced with "sensitive".
 42933  func (s EnableTopicRuleOutput) GoString() string {
 42934  	return s.String()
 42935  }
 42936  
 42937  // Error information.
 42938  type ErrorInfo struct {
 42939  	_ struct{} `type:"structure"`
 42940  
 42941  	// The error code.
 42942  	Code *string `locationName:"code" type:"string"`
 42943  
 42944  	// The error message.
 42945  	Message *string `locationName:"message" type:"string"`
 42946  }
 42947  
 42948  // String returns the string representation.
 42949  //
 42950  // API parameter values that are decorated as "sensitive" in the API will not
 42951  // be included in the string output. The member name will be present, but the
 42952  // value will be replaced with "sensitive".
 42953  func (s ErrorInfo) String() string {
 42954  	return awsutil.Prettify(s)
 42955  }
 42956  
 42957  // GoString returns the string representation.
 42958  //
 42959  // API parameter values that are decorated as "sensitive" in the API will not
 42960  // be included in the string output. The member name will be present, but the
 42961  // value will be replaced with "sensitive".
 42962  func (s ErrorInfo) GoString() string {
 42963  	return s.String()
 42964  }
 42965  
 42966  // SetCode sets the Code field's value.
 42967  func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
 42968  	s.Code = &v
 42969  	return s
 42970  }
 42971  
 42972  // SetMessage sets the Message field's value.
 42973  func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
 42974  	s.Message = &v
 42975  	return s
 42976  }
 42977  
 42978  // Information that explicitly denies authorization.
 42979  type ExplicitDeny struct {
 42980  	_ struct{} `type:"structure"`
 42981  
 42982  	// The policies that denied the authorization.
 42983  	Policies []*Policy `locationName:"policies" type:"list"`
 42984  }
 42985  
 42986  // String returns the string representation.
 42987  //
 42988  // API parameter values that are decorated as "sensitive" in the API will not
 42989  // be included in the string output. The member name will be present, but the
 42990  // value will be replaced with "sensitive".
 42991  func (s ExplicitDeny) String() string {
 42992  	return awsutil.Prettify(s)
 42993  }
 42994  
 42995  // GoString returns the string representation.
 42996  //
 42997  // API parameter values that are decorated as "sensitive" in the API will not
 42998  // be included in the string output. The member name will be present, but the
 42999  // value will be replaced with "sensitive".
 43000  func (s ExplicitDeny) GoString() string {
 43001  	return s.String()
 43002  }
 43003  
 43004  // SetPolicies sets the Policies field's value.
 43005  func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
 43006  	s.Policies = v
 43007  	return s
 43008  }
 43009  
 43010  // Allows you to create an exponential rate of rollout for a job.
 43011  type ExponentialRolloutRate struct {
 43012  	_ struct{} `type:"structure"`
 43013  
 43014  	// The minimum number of things that will be notified of a pending job, per
 43015  	// minute at the start of job rollout. This parameter allows you to define the
 43016  	// initial rate of rollout.
 43017  	//
 43018  	// BaseRatePerMinute is a required field
 43019  	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
 43020  
 43021  	// The exponential factor to increase the rate of rollout for a job.
 43022  	//
 43023  	// Amazon Web Services IoT Core supports up to one digit after the decimal (for
 43024  	// example, 1.5, but not 1.55).
 43025  	//
 43026  	// IncrementFactor is a required field
 43027  	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
 43028  
 43029  	// The criteria to initiate the increase in rate of rollout for a job.
 43030  	//
 43031  	// RateIncreaseCriteria is a required field
 43032  	RateIncreaseCriteria *RateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
 43033  }
 43034  
 43035  // String returns the string representation.
 43036  //
 43037  // API parameter values that are decorated as "sensitive" in the API will not
 43038  // be included in the string output. The member name will be present, but the
 43039  // value will be replaced with "sensitive".
 43040  func (s ExponentialRolloutRate) String() string {
 43041  	return awsutil.Prettify(s)
 43042  }
 43043  
 43044  // GoString returns the string representation.
 43045  //
 43046  // API parameter values that are decorated as "sensitive" in the API will not
 43047  // be included in the string output. The member name will be present, but the
 43048  // value will be replaced with "sensitive".
 43049  func (s ExponentialRolloutRate) GoString() string {
 43050  	return s.String()
 43051  }
 43052  
 43053  // Validate inspects the fields of the type to determine if they are valid.
 43054  func (s *ExponentialRolloutRate) Validate() error {
 43055  	invalidParams := request.ErrInvalidParams{Context: "ExponentialRolloutRate"}
 43056  	if s.BaseRatePerMinute == nil {
 43057  		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
 43058  	}
 43059  	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
 43060  		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
 43061  	}
 43062  	if s.IncrementFactor == nil {
 43063  		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
 43064  	}
 43065  	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
 43066  		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
 43067  	}
 43068  	if s.RateIncreaseCriteria == nil {
 43069  		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
 43070  	}
 43071  	if s.RateIncreaseCriteria != nil {
 43072  		if err := s.RateIncreaseCriteria.Validate(); err != nil {
 43073  			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
 43074  		}
 43075  	}
 43076  
 43077  	if invalidParams.Len() > 0 {
 43078  		return invalidParams
 43079  	}
 43080  	return nil
 43081  }
 43082  
 43083  // SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
 43084  func (s *ExponentialRolloutRate) SetBaseRatePerMinute(v int64) *ExponentialRolloutRate {
 43085  	s.BaseRatePerMinute = &v
 43086  	return s
 43087  }
 43088  
 43089  // SetIncrementFactor sets the IncrementFactor field's value.
 43090  func (s *ExponentialRolloutRate) SetIncrementFactor(v float64) *ExponentialRolloutRate {
 43091  	s.IncrementFactor = &v
 43092  	return s
 43093  }
 43094  
 43095  // SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
 43096  func (s *ExponentialRolloutRate) SetRateIncreaseCriteria(v *RateIncreaseCriteria) *ExponentialRolloutRate {
 43097  	s.RateIncreaseCriteria = v
 43098  	return s
 43099  }
 43100  
 43101  // Describes the name and data type at a field.
 43102  type Field struct {
 43103  	_ struct{} `type:"structure"`
 43104  
 43105  	// The name of the field.
 43106  	Name *string `locationName:"name" type:"string"`
 43107  
 43108  	// The data type of the field.
 43109  	Type *string `locationName:"type" type:"string" enum:"FieldType"`
 43110  }
 43111  
 43112  // String returns the string representation.
 43113  //
 43114  // API parameter values that are decorated as "sensitive" in the API will not
 43115  // be included in the string output. The member name will be present, but the
 43116  // value will be replaced with "sensitive".
 43117  func (s Field) String() string {
 43118  	return awsutil.Prettify(s)
 43119  }
 43120  
 43121  // GoString returns the string representation.
 43122  //
 43123  // API parameter values that are decorated as "sensitive" in the API will not
 43124  // be included in the string output. The member name will be present, but the
 43125  // value will be replaced with "sensitive".
 43126  func (s Field) GoString() string {
 43127  	return s.String()
 43128  }
 43129  
 43130  // SetName sets the Name field's value.
 43131  func (s *Field) SetName(v string) *Field {
 43132  	s.Name = &v
 43133  	return s
 43134  }
 43135  
 43136  // SetType sets the Type field's value.
 43137  func (s *Field) SetType(v string) *Field {
 43138  	s.Type = &v
 43139  	return s
 43140  }
 43141  
 43142  // The location of the OTA update.
 43143  type FileLocation struct {
 43144  	_ struct{} `type:"structure"`
 43145  
 43146  	// The location of the updated firmware in S3.
 43147  	S3Location *S3Location `locationName:"s3Location" type:"structure"`
 43148  
 43149  	// The stream that contains the OTA update.
 43150  	Stream *Stream `locationName:"stream" type:"structure"`
 43151  }
 43152  
 43153  // String returns the string representation.
 43154  //
 43155  // API parameter values that are decorated as "sensitive" in the API will not
 43156  // be included in the string output. The member name will be present, but the
 43157  // value will be replaced with "sensitive".
 43158  func (s FileLocation) String() string {
 43159  	return awsutil.Prettify(s)
 43160  }
 43161  
 43162  // GoString returns the string representation.
 43163  //
 43164  // API parameter values that are decorated as "sensitive" in the API will not
 43165  // be included in the string output. The member name will be present, but the
 43166  // value will be replaced with "sensitive".
 43167  func (s FileLocation) GoString() string {
 43168  	return s.String()
 43169  }
 43170  
 43171  // Validate inspects the fields of the type to determine if they are valid.
 43172  func (s *FileLocation) Validate() error {
 43173  	invalidParams := request.ErrInvalidParams{Context: "FileLocation"}
 43174  	if s.S3Location != nil {
 43175  		if err := s.S3Location.Validate(); err != nil {
 43176  			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
 43177  		}
 43178  	}
 43179  	if s.Stream != nil {
 43180  		if err := s.Stream.Validate(); err != nil {
 43181  			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
 43182  		}
 43183  	}
 43184  
 43185  	if invalidParams.Len() > 0 {
 43186  		return invalidParams
 43187  	}
 43188  	return nil
 43189  }
 43190  
 43191  // SetS3Location sets the S3Location field's value.
 43192  func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation {
 43193  	s.S3Location = v
 43194  	return s
 43195  }
 43196  
 43197  // SetStream sets the Stream field's value.
 43198  func (s *FileLocation) SetStream(v *Stream) *FileLocation {
 43199  	s.Stream = v
 43200  	return s
 43201  }
 43202  
 43203  // Describes an action that writes data to an Amazon Kinesis Firehose stream.
 43204  type FirehoseAction struct {
 43205  	_ struct{} `type:"structure"`
 43206  
 43207  	// Whether to deliver the Kinesis Data Firehose stream as a batch by using PutRecordBatch
 43208  	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html).
 43209  	// The default value is false.
 43210  	//
 43211  	// When batchMode is true and the rule's SQL statement evaluates to an Array,
 43212  	// each Array element forms one record in the PutRecordBatch (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)
 43213  	// request. The resulting array can't have more than 500 records.
 43214  	BatchMode *bool `locationName:"batchMode" type:"boolean"`
 43215  
 43216  	// The delivery stream name.
 43217  	//
 43218  	// DeliveryStreamName is a required field
 43219  	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
 43220  
 43221  	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
 43222  	//
 43223  	// RoleArn is a required field
 43224  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 43225  
 43226  	// A character separator that will be used to separate records written to the
 43227  	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
 43228  	// newline), ',' (comma).
 43229  	Separator *string `locationName:"separator" type:"string"`
 43230  }
 43231  
 43232  // String returns the string representation.
 43233  //
 43234  // API parameter values that are decorated as "sensitive" in the API will not
 43235  // be included in the string output. The member name will be present, but the
 43236  // value will be replaced with "sensitive".
 43237  func (s FirehoseAction) String() string {
 43238  	return awsutil.Prettify(s)
 43239  }
 43240  
 43241  // GoString returns the string representation.
 43242  //
 43243  // API parameter values that are decorated as "sensitive" in the API will not
 43244  // be included in the string output. The member name will be present, but the
 43245  // value will be replaced with "sensitive".
 43246  func (s FirehoseAction) GoString() string {
 43247  	return s.String()
 43248  }
 43249  
 43250  // Validate inspects the fields of the type to determine if they are valid.
 43251  func (s *FirehoseAction) Validate() error {
 43252  	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
 43253  	if s.DeliveryStreamName == nil {
 43254  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
 43255  	}
 43256  	if s.RoleArn == nil {
 43257  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 43258  	}
 43259  
 43260  	if invalidParams.Len() > 0 {
 43261  		return invalidParams
 43262  	}
 43263  	return nil
 43264  }
 43265  
 43266  // SetBatchMode sets the BatchMode field's value.
 43267  func (s *FirehoseAction) SetBatchMode(v bool) *FirehoseAction {
 43268  	s.BatchMode = &v
 43269  	return s
 43270  }
 43271  
 43272  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
 43273  func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
 43274  	s.DeliveryStreamName = &v
 43275  	return s
 43276  }
 43277  
 43278  // SetRoleArn sets the RoleArn field's value.
 43279  func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
 43280  	s.RoleArn = &v
 43281  	return s
 43282  }
 43283  
 43284  // SetSeparator sets the Separator field's value.
 43285  func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
 43286  	s.Separator = &v
 43287  	return s
 43288  }
 43289  
 43290  // The name and ARN of a fleet metric.
 43291  type FleetMetricNameAndArn struct {
 43292  	_ struct{} `type:"structure"`
 43293  
 43294  	// The fleet metric ARN.
 43295  	MetricArn *string `locationName:"metricArn" type:"string"`
 43296  
 43297  	// The fleet metric name.
 43298  	MetricName *string `locationName:"metricName" min:"1" type:"string"`
 43299  }
 43300  
 43301  // String returns the string representation.
 43302  //
 43303  // API parameter values that are decorated as "sensitive" in the API will not
 43304  // be included in the string output. The member name will be present, but the
 43305  // value will be replaced with "sensitive".
 43306  func (s FleetMetricNameAndArn) String() string {
 43307  	return awsutil.Prettify(s)
 43308  }
 43309  
 43310  // GoString returns the string representation.
 43311  //
 43312  // API parameter values that are decorated as "sensitive" in the API will not
 43313  // be included in the string output. The member name will be present, but the
 43314  // value will be replaced with "sensitive".
 43315  func (s FleetMetricNameAndArn) GoString() string {
 43316  	return s.String()
 43317  }
 43318  
 43319  // SetMetricArn sets the MetricArn field's value.
 43320  func (s *FleetMetricNameAndArn) SetMetricArn(v string) *FleetMetricNameAndArn {
 43321  	s.MetricArn = &v
 43322  	return s
 43323  }
 43324  
 43325  // SetMetricName sets the MetricName field's value.
 43326  func (s *FleetMetricNameAndArn) SetMetricName(v string) *FleetMetricNameAndArn {
 43327  	s.MetricName = &v
 43328  	return s
 43329  }
 43330  
 43331  type GetBehaviorModelTrainingSummariesInput struct {
 43332  	_ struct{} `type:"structure" nopayload:"true"`
 43333  
 43334  	// The maximum number of results to return at one time. The default is 25.
 43335  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 43336  
 43337  	// The token for the next set of results.
 43338  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 43339  
 43340  	// The name of the security profile.
 43341  	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
 43342  }
 43343  
 43344  // String returns the string representation.
 43345  //
 43346  // API parameter values that are decorated as "sensitive" in the API will not
 43347  // be included in the string output. The member name will be present, but the
 43348  // value will be replaced with "sensitive".
 43349  func (s GetBehaviorModelTrainingSummariesInput) String() string {
 43350  	return awsutil.Prettify(s)
 43351  }
 43352  
 43353  // GoString returns the string representation.
 43354  //
 43355  // API parameter values that are decorated as "sensitive" in the API will not
 43356  // be included in the string output. The member name will be present, but the
 43357  // value will be replaced with "sensitive".
 43358  func (s GetBehaviorModelTrainingSummariesInput) GoString() string {
 43359  	return s.String()
 43360  }
 43361  
 43362  // Validate inspects the fields of the type to determine if they are valid.
 43363  func (s *GetBehaviorModelTrainingSummariesInput) Validate() error {
 43364  	invalidParams := request.ErrInvalidParams{Context: "GetBehaviorModelTrainingSummariesInput"}
 43365  	if s.MaxResults != nil && *s.MaxResults < 1 {
 43366  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 43367  	}
 43368  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 43369  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 43370  	}
 43371  
 43372  	if invalidParams.Len() > 0 {
 43373  		return invalidParams
 43374  	}
 43375  	return nil
 43376  }
 43377  
 43378  // SetMaxResults sets the MaxResults field's value.
 43379  func (s *GetBehaviorModelTrainingSummariesInput) SetMaxResults(v int64) *GetBehaviorModelTrainingSummariesInput {
 43380  	s.MaxResults = &v
 43381  	return s
 43382  }
 43383  
 43384  // SetNextToken sets the NextToken field's value.
 43385  func (s *GetBehaviorModelTrainingSummariesInput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesInput {
 43386  	s.NextToken = &v
 43387  	return s
 43388  }
 43389  
 43390  // SetSecurityProfileName sets the SecurityProfileName field's value.
 43391  func (s *GetBehaviorModelTrainingSummariesInput) SetSecurityProfileName(v string) *GetBehaviorModelTrainingSummariesInput {
 43392  	s.SecurityProfileName = &v
 43393  	return s
 43394  }
 43395  
 43396  type GetBehaviorModelTrainingSummariesOutput struct {
 43397  	_ struct{} `type:"structure"`
 43398  
 43399  	// A token that can be used to retrieve the next set of results, or null if
 43400  	// there are no additional results.
 43401  	NextToken *string `locationName:"nextToken" type:"string"`
 43402  
 43403  	// A list of all ML Detect behaviors and their model status for a given Security
 43404  	// Profile.
 43405  	Summaries []*BehaviorModelTrainingSummary `locationName:"summaries" type:"list"`
 43406  }
 43407  
 43408  // String returns the string representation.
 43409  //
 43410  // API parameter values that are decorated as "sensitive" in the API will not
 43411  // be included in the string output. The member name will be present, but the
 43412  // value will be replaced with "sensitive".
 43413  func (s GetBehaviorModelTrainingSummariesOutput) String() string {
 43414  	return awsutil.Prettify(s)
 43415  }
 43416  
 43417  // GoString returns the string representation.
 43418  //
 43419  // API parameter values that are decorated as "sensitive" in the API will not
 43420  // be included in the string output. The member name will be present, but the
 43421  // value will be replaced with "sensitive".
 43422  func (s GetBehaviorModelTrainingSummariesOutput) GoString() string {
 43423  	return s.String()
 43424  }
 43425  
 43426  // SetNextToken sets the NextToken field's value.
 43427  func (s *GetBehaviorModelTrainingSummariesOutput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesOutput {
 43428  	s.NextToken = &v
 43429  	return s
 43430  }
 43431  
 43432  // SetSummaries sets the Summaries field's value.
 43433  func (s *GetBehaviorModelTrainingSummariesOutput) SetSummaries(v []*BehaviorModelTrainingSummary) *GetBehaviorModelTrainingSummariesOutput {
 43434  	s.Summaries = v
 43435  	return s
 43436  }
 43437  
 43438  type GetBucketsAggregationInput struct {
 43439  	_ struct{} `type:"structure"`
 43440  
 43441  	// The aggregation field.
 43442  	//
 43443  	// AggregationField is a required field
 43444  	AggregationField *string `locationName:"aggregationField" min:"1" type:"string" required:"true"`
 43445  
 43446  	// The basic control of the response shape and the bucket aggregation type to
 43447  	// perform.
 43448  	//
 43449  	// BucketsAggregationType is a required field
 43450  	BucketsAggregationType *BucketsAggregationType `locationName:"bucketsAggregationType" type:"structure" required:"true"`
 43451  
 43452  	// The name of the index to search.
 43453  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 43454  
 43455  	// The search query string.
 43456  	//
 43457  	// QueryString is a required field
 43458  	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
 43459  
 43460  	// The version of the query.
 43461  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 43462  }
 43463  
 43464  // String returns the string representation.
 43465  //
 43466  // API parameter values that are decorated as "sensitive" in the API will not
 43467  // be included in the string output. The member name will be present, but the
 43468  // value will be replaced with "sensitive".
 43469  func (s GetBucketsAggregationInput) String() string {
 43470  	return awsutil.Prettify(s)
 43471  }
 43472  
 43473  // GoString returns the string representation.
 43474  //
 43475  // API parameter values that are decorated as "sensitive" in the API will not
 43476  // be included in the string output. The member name will be present, but the
 43477  // value will be replaced with "sensitive".
 43478  func (s GetBucketsAggregationInput) GoString() string {
 43479  	return s.String()
 43480  }
 43481  
 43482  // Validate inspects the fields of the type to determine if they are valid.
 43483  func (s *GetBucketsAggregationInput) Validate() error {
 43484  	invalidParams := request.ErrInvalidParams{Context: "GetBucketsAggregationInput"}
 43485  	if s.AggregationField == nil {
 43486  		invalidParams.Add(request.NewErrParamRequired("AggregationField"))
 43487  	}
 43488  	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
 43489  		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
 43490  	}
 43491  	if s.BucketsAggregationType == nil {
 43492  		invalidParams.Add(request.NewErrParamRequired("BucketsAggregationType"))
 43493  	}
 43494  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 43495  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 43496  	}
 43497  	if s.QueryString == nil {
 43498  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
 43499  	}
 43500  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 43501  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 43502  	}
 43503  	if s.BucketsAggregationType != nil {
 43504  		if err := s.BucketsAggregationType.Validate(); err != nil {
 43505  			invalidParams.AddNested("BucketsAggregationType", err.(request.ErrInvalidParams))
 43506  		}
 43507  	}
 43508  
 43509  	if invalidParams.Len() > 0 {
 43510  		return invalidParams
 43511  	}
 43512  	return nil
 43513  }
 43514  
 43515  // SetAggregationField sets the AggregationField field's value.
 43516  func (s *GetBucketsAggregationInput) SetAggregationField(v string) *GetBucketsAggregationInput {
 43517  	s.AggregationField = &v
 43518  	return s
 43519  }
 43520  
 43521  // SetBucketsAggregationType sets the BucketsAggregationType field's value.
 43522  func (s *GetBucketsAggregationInput) SetBucketsAggregationType(v *BucketsAggregationType) *GetBucketsAggregationInput {
 43523  	s.BucketsAggregationType = v
 43524  	return s
 43525  }
 43526  
 43527  // SetIndexName sets the IndexName field's value.
 43528  func (s *GetBucketsAggregationInput) SetIndexName(v string) *GetBucketsAggregationInput {
 43529  	s.IndexName = &v
 43530  	return s
 43531  }
 43532  
 43533  // SetQueryString sets the QueryString field's value.
 43534  func (s *GetBucketsAggregationInput) SetQueryString(v string) *GetBucketsAggregationInput {
 43535  	s.QueryString = &v
 43536  	return s
 43537  }
 43538  
 43539  // SetQueryVersion sets the QueryVersion field's value.
 43540  func (s *GetBucketsAggregationInput) SetQueryVersion(v string) *GetBucketsAggregationInput {
 43541  	s.QueryVersion = &v
 43542  	return s
 43543  }
 43544  
 43545  type GetBucketsAggregationOutput struct {
 43546  	_ struct{} `type:"structure"`
 43547  
 43548  	// The main part of the response with a list of buckets. Each bucket contains
 43549  	// a keyValue and a count.
 43550  	//
 43551  	// keyValue: The aggregation field value counted for the particular bucket.
 43552  	//
 43553  	// count: The number of documents that have that value.
 43554  	Buckets []*Bucket `locationName:"buckets" type:"list"`
 43555  
 43556  	// The total number of documents that fit the query string criteria and contain
 43557  	// a value for the Aggregation field targeted in the request.
 43558  	TotalCount *int64 `locationName:"totalCount" type:"integer"`
 43559  }
 43560  
 43561  // String returns the string representation.
 43562  //
 43563  // API parameter values that are decorated as "sensitive" in the API will not
 43564  // be included in the string output. The member name will be present, but the
 43565  // value will be replaced with "sensitive".
 43566  func (s GetBucketsAggregationOutput) String() string {
 43567  	return awsutil.Prettify(s)
 43568  }
 43569  
 43570  // GoString returns the string representation.
 43571  //
 43572  // API parameter values that are decorated as "sensitive" in the API will not
 43573  // be included in the string output. The member name will be present, but the
 43574  // value will be replaced with "sensitive".
 43575  func (s GetBucketsAggregationOutput) GoString() string {
 43576  	return s.String()
 43577  }
 43578  
 43579  // SetBuckets sets the Buckets field's value.
 43580  func (s *GetBucketsAggregationOutput) SetBuckets(v []*Bucket) *GetBucketsAggregationOutput {
 43581  	s.Buckets = v
 43582  	return s
 43583  }
 43584  
 43585  // SetTotalCount sets the TotalCount field's value.
 43586  func (s *GetBucketsAggregationOutput) SetTotalCount(v int64) *GetBucketsAggregationOutput {
 43587  	s.TotalCount = &v
 43588  	return s
 43589  }
 43590  
 43591  type GetCardinalityInput struct {
 43592  	_ struct{} `type:"structure"`
 43593  
 43594  	// The field to aggregate.
 43595  	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
 43596  
 43597  	// The name of the index to search.
 43598  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 43599  
 43600  	// The search query string.
 43601  	//
 43602  	// QueryString is a required field
 43603  	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
 43604  
 43605  	// The query version.
 43606  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 43607  }
 43608  
 43609  // String returns the string representation.
 43610  //
 43611  // API parameter values that are decorated as "sensitive" in the API will not
 43612  // be included in the string output. The member name will be present, but the
 43613  // value will be replaced with "sensitive".
 43614  func (s GetCardinalityInput) String() string {
 43615  	return awsutil.Prettify(s)
 43616  }
 43617  
 43618  // GoString returns the string representation.
 43619  //
 43620  // API parameter values that are decorated as "sensitive" in the API will not
 43621  // be included in the string output. The member name will be present, but the
 43622  // value will be replaced with "sensitive".
 43623  func (s GetCardinalityInput) GoString() string {
 43624  	return s.String()
 43625  }
 43626  
 43627  // Validate inspects the fields of the type to determine if they are valid.
 43628  func (s *GetCardinalityInput) Validate() error {
 43629  	invalidParams := request.ErrInvalidParams{Context: "GetCardinalityInput"}
 43630  	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
 43631  		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
 43632  	}
 43633  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 43634  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 43635  	}
 43636  	if s.QueryString == nil {
 43637  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
 43638  	}
 43639  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 43640  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 43641  	}
 43642  
 43643  	if invalidParams.Len() > 0 {
 43644  		return invalidParams
 43645  	}
 43646  	return nil
 43647  }
 43648  
 43649  // SetAggregationField sets the AggregationField field's value.
 43650  func (s *GetCardinalityInput) SetAggregationField(v string) *GetCardinalityInput {
 43651  	s.AggregationField = &v
 43652  	return s
 43653  }
 43654  
 43655  // SetIndexName sets the IndexName field's value.
 43656  func (s *GetCardinalityInput) SetIndexName(v string) *GetCardinalityInput {
 43657  	s.IndexName = &v
 43658  	return s
 43659  }
 43660  
 43661  // SetQueryString sets the QueryString field's value.
 43662  func (s *GetCardinalityInput) SetQueryString(v string) *GetCardinalityInput {
 43663  	s.QueryString = &v
 43664  	return s
 43665  }
 43666  
 43667  // SetQueryVersion sets the QueryVersion field's value.
 43668  func (s *GetCardinalityInput) SetQueryVersion(v string) *GetCardinalityInput {
 43669  	s.QueryVersion = &v
 43670  	return s
 43671  }
 43672  
 43673  type GetCardinalityOutput struct {
 43674  	_ struct{} `type:"structure"`
 43675  
 43676  	// The approximate count of unique values that match the query.
 43677  	Cardinality *int64 `locationName:"cardinality" type:"integer"`
 43678  }
 43679  
 43680  // String returns the string representation.
 43681  //
 43682  // API parameter values that are decorated as "sensitive" in the API will not
 43683  // be included in the string output. The member name will be present, but the
 43684  // value will be replaced with "sensitive".
 43685  func (s GetCardinalityOutput) String() string {
 43686  	return awsutil.Prettify(s)
 43687  }
 43688  
 43689  // GoString returns the string representation.
 43690  //
 43691  // API parameter values that are decorated as "sensitive" in the API will not
 43692  // be included in the string output. The member name will be present, but the
 43693  // value will be replaced with "sensitive".
 43694  func (s GetCardinalityOutput) GoString() string {
 43695  	return s.String()
 43696  }
 43697  
 43698  // SetCardinality sets the Cardinality field's value.
 43699  func (s *GetCardinalityOutput) SetCardinality(v int64) *GetCardinalityOutput {
 43700  	s.Cardinality = &v
 43701  	return s
 43702  }
 43703  
 43704  type GetEffectivePoliciesInput struct {
 43705  	_ struct{} `type:"structure"`
 43706  
 43707  	// The Cognito identity pool ID.
 43708  	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
 43709  
 43710  	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
 43711  	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
 43712  	// (region:id).
 43713  	Principal *string `locationName:"principal" type:"string"`
 43714  
 43715  	// The thing name.
 43716  	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
 43717  }
 43718  
 43719  // String returns the string representation.
 43720  //
 43721  // API parameter values that are decorated as "sensitive" in the API will not
 43722  // be included in the string output. The member name will be present, but the
 43723  // value will be replaced with "sensitive".
 43724  func (s GetEffectivePoliciesInput) String() string {
 43725  	return awsutil.Prettify(s)
 43726  }
 43727  
 43728  // GoString returns the string representation.
 43729  //
 43730  // API parameter values that are decorated as "sensitive" in the API will not
 43731  // be included in the string output. The member name will be present, but the
 43732  // value will be replaced with "sensitive".
 43733  func (s GetEffectivePoliciesInput) GoString() string {
 43734  	return s.String()
 43735  }
 43736  
 43737  // Validate inspects the fields of the type to determine if they are valid.
 43738  func (s *GetEffectivePoliciesInput) Validate() error {
 43739  	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
 43740  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 43741  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 43742  	}
 43743  
 43744  	if invalidParams.Len() > 0 {
 43745  		return invalidParams
 43746  	}
 43747  	return nil
 43748  }
 43749  
 43750  // SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
 43751  func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
 43752  	s.CognitoIdentityPoolId = &v
 43753  	return s
 43754  }
 43755  
 43756  // SetPrincipal sets the Principal field's value.
 43757  func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
 43758  	s.Principal = &v
 43759  	return s
 43760  }
 43761  
 43762  // SetThingName sets the ThingName field's value.
 43763  func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
 43764  	s.ThingName = &v
 43765  	return s
 43766  }
 43767  
 43768  type GetEffectivePoliciesOutput struct {
 43769  	_ struct{} `type:"structure"`
 43770  
 43771  	// The effective policies.
 43772  	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
 43773  }
 43774  
 43775  // String returns the string representation.
 43776  //
 43777  // API parameter values that are decorated as "sensitive" in the API will not
 43778  // be included in the string output. The member name will be present, but the
 43779  // value will be replaced with "sensitive".
 43780  func (s GetEffectivePoliciesOutput) String() string {
 43781  	return awsutil.Prettify(s)
 43782  }
 43783  
 43784  // GoString returns the string representation.
 43785  //
 43786  // API parameter values that are decorated as "sensitive" in the API will not
 43787  // be included in the string output. The member name will be present, but the
 43788  // value will be replaced with "sensitive".
 43789  func (s GetEffectivePoliciesOutput) GoString() string {
 43790  	return s.String()
 43791  }
 43792  
 43793  // SetEffectivePolicies sets the EffectivePolicies field's value.
 43794  func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
 43795  	s.EffectivePolicies = v
 43796  	return s
 43797  }
 43798  
 43799  type GetIndexingConfigurationInput struct {
 43800  	_ struct{} `type:"structure" nopayload:"true"`
 43801  }
 43802  
 43803  // String returns the string representation.
 43804  //
 43805  // API parameter values that are decorated as "sensitive" in the API will not
 43806  // be included in the string output. The member name will be present, but the
 43807  // value will be replaced with "sensitive".
 43808  func (s GetIndexingConfigurationInput) String() string {
 43809  	return awsutil.Prettify(s)
 43810  }
 43811  
 43812  // GoString returns the string representation.
 43813  //
 43814  // API parameter values that are decorated as "sensitive" in the API will not
 43815  // be included in the string output. The member name will be present, but the
 43816  // value will be replaced with "sensitive".
 43817  func (s GetIndexingConfigurationInput) GoString() string {
 43818  	return s.String()
 43819  }
 43820  
 43821  type GetIndexingConfigurationOutput struct {
 43822  	_ struct{} `type:"structure"`
 43823  
 43824  	// The index configuration.
 43825  	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
 43826  
 43827  	// Thing indexing configuration.
 43828  	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
 43829  }
 43830  
 43831  // String returns the string representation.
 43832  //
 43833  // API parameter values that are decorated as "sensitive" in the API will not
 43834  // be included in the string output. The member name will be present, but the
 43835  // value will be replaced with "sensitive".
 43836  func (s GetIndexingConfigurationOutput) String() string {
 43837  	return awsutil.Prettify(s)
 43838  }
 43839  
 43840  // GoString returns the string representation.
 43841  //
 43842  // API parameter values that are decorated as "sensitive" in the API will not
 43843  // be included in the string output. The member name will be present, but the
 43844  // value will be replaced with "sensitive".
 43845  func (s GetIndexingConfigurationOutput) GoString() string {
 43846  	return s.String()
 43847  }
 43848  
 43849  // SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
 43850  func (s *GetIndexingConfigurationOutput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *GetIndexingConfigurationOutput {
 43851  	s.ThingGroupIndexingConfiguration = v
 43852  	return s
 43853  }
 43854  
 43855  // SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
 43856  func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
 43857  	s.ThingIndexingConfiguration = v
 43858  	return s
 43859  }
 43860  
 43861  type GetJobDocumentInput struct {
 43862  	_ struct{} `type:"structure" nopayload:"true"`
 43863  
 43864  	// The unique identifier you assigned to this job when it was created.
 43865  	//
 43866  	// JobId is a required field
 43867  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 43868  }
 43869  
 43870  // String returns the string representation.
 43871  //
 43872  // API parameter values that are decorated as "sensitive" in the API will not
 43873  // be included in the string output. The member name will be present, but the
 43874  // value will be replaced with "sensitive".
 43875  func (s GetJobDocumentInput) String() string {
 43876  	return awsutil.Prettify(s)
 43877  }
 43878  
 43879  // GoString returns the string representation.
 43880  //
 43881  // API parameter values that are decorated as "sensitive" in the API will not
 43882  // be included in the string output. The member name will be present, but the
 43883  // value will be replaced with "sensitive".
 43884  func (s GetJobDocumentInput) GoString() string {
 43885  	return s.String()
 43886  }
 43887  
 43888  // Validate inspects the fields of the type to determine if they are valid.
 43889  func (s *GetJobDocumentInput) Validate() error {
 43890  	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
 43891  	if s.JobId == nil {
 43892  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 43893  	}
 43894  	if s.JobId != nil && len(*s.JobId) < 1 {
 43895  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 43896  	}
 43897  
 43898  	if invalidParams.Len() > 0 {
 43899  		return invalidParams
 43900  	}
 43901  	return nil
 43902  }
 43903  
 43904  // SetJobId sets the JobId field's value.
 43905  func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
 43906  	s.JobId = &v
 43907  	return s
 43908  }
 43909  
 43910  type GetJobDocumentOutput struct {
 43911  	_ struct{} `type:"structure"`
 43912  
 43913  	// The job document content.
 43914  	Document *string `locationName:"document" type:"string"`
 43915  }
 43916  
 43917  // String returns the string representation.
 43918  //
 43919  // API parameter values that are decorated as "sensitive" in the API will not
 43920  // be included in the string output. The member name will be present, but the
 43921  // value will be replaced with "sensitive".
 43922  func (s GetJobDocumentOutput) String() string {
 43923  	return awsutil.Prettify(s)
 43924  }
 43925  
 43926  // GoString returns the string representation.
 43927  //
 43928  // API parameter values that are decorated as "sensitive" in the API will not
 43929  // be included in the string output. The member name will be present, but the
 43930  // value will be replaced with "sensitive".
 43931  func (s GetJobDocumentOutput) GoString() string {
 43932  	return s.String()
 43933  }
 43934  
 43935  // SetDocument sets the Document field's value.
 43936  func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
 43937  	s.Document = &v
 43938  	return s
 43939  }
 43940  
 43941  // The input for the GetLoggingOptions operation.
 43942  type GetLoggingOptionsInput struct {
 43943  	_ struct{} `type:"structure" nopayload:"true"`
 43944  }
 43945  
 43946  // String returns the string representation.
 43947  //
 43948  // API parameter values that are decorated as "sensitive" in the API will not
 43949  // be included in the string output. The member name will be present, but the
 43950  // value will be replaced with "sensitive".
 43951  func (s GetLoggingOptionsInput) String() string {
 43952  	return awsutil.Prettify(s)
 43953  }
 43954  
 43955  // GoString returns the string representation.
 43956  //
 43957  // API parameter values that are decorated as "sensitive" in the API will not
 43958  // be included in the string output. The member name will be present, but the
 43959  // value will be replaced with "sensitive".
 43960  func (s GetLoggingOptionsInput) GoString() string {
 43961  	return s.String()
 43962  }
 43963  
 43964  // The output from the GetLoggingOptions operation.
 43965  type GetLoggingOptionsOutput struct {
 43966  	_ struct{} `type:"structure"`
 43967  
 43968  	// The logging level.
 43969  	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
 43970  
 43971  	// The ARN of the IAM role that grants access.
 43972  	RoleArn *string `locationName:"roleArn" type:"string"`
 43973  }
 43974  
 43975  // String returns the string representation.
 43976  //
 43977  // API parameter values that are decorated as "sensitive" in the API will not
 43978  // be included in the string output. The member name will be present, but the
 43979  // value will be replaced with "sensitive".
 43980  func (s GetLoggingOptionsOutput) String() string {
 43981  	return awsutil.Prettify(s)
 43982  }
 43983  
 43984  // GoString returns the string representation.
 43985  //
 43986  // API parameter values that are decorated as "sensitive" in the API will not
 43987  // be included in the string output. The member name will be present, but the
 43988  // value will be replaced with "sensitive".
 43989  func (s GetLoggingOptionsOutput) GoString() string {
 43990  	return s.String()
 43991  }
 43992  
 43993  // SetLogLevel sets the LogLevel field's value.
 43994  func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
 43995  	s.LogLevel = &v
 43996  	return s
 43997  }
 43998  
 43999  // SetRoleArn sets the RoleArn field's value.
 44000  func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
 44001  	s.RoleArn = &v
 44002  	return s
 44003  }
 44004  
 44005  type GetOTAUpdateInput struct {
 44006  	_ struct{} `type:"structure" nopayload:"true"`
 44007  
 44008  	// The OTA update ID.
 44009  	//
 44010  	// OtaUpdateId is a required field
 44011  	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
 44012  }
 44013  
 44014  // String returns the string representation.
 44015  //
 44016  // API parameter values that are decorated as "sensitive" in the API will not
 44017  // be included in the string output. The member name will be present, but the
 44018  // value will be replaced with "sensitive".
 44019  func (s GetOTAUpdateInput) String() string {
 44020  	return awsutil.Prettify(s)
 44021  }
 44022  
 44023  // GoString returns the string representation.
 44024  //
 44025  // API parameter values that are decorated as "sensitive" in the API will not
 44026  // be included in the string output. The member name will be present, but the
 44027  // value will be replaced with "sensitive".
 44028  func (s GetOTAUpdateInput) GoString() string {
 44029  	return s.String()
 44030  }
 44031  
 44032  // Validate inspects the fields of the type to determine if they are valid.
 44033  func (s *GetOTAUpdateInput) Validate() error {
 44034  	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
 44035  	if s.OtaUpdateId == nil {
 44036  		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
 44037  	}
 44038  	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
 44039  		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
 44040  	}
 44041  
 44042  	if invalidParams.Len() > 0 {
 44043  		return invalidParams
 44044  	}
 44045  	return nil
 44046  }
 44047  
 44048  // SetOtaUpdateId sets the OtaUpdateId field's value.
 44049  func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
 44050  	s.OtaUpdateId = &v
 44051  	return s
 44052  }
 44053  
 44054  type GetOTAUpdateOutput struct {
 44055  	_ struct{} `type:"structure"`
 44056  
 44057  	// The OTA update info.
 44058  	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
 44059  }
 44060  
 44061  // String returns the string representation.
 44062  //
 44063  // API parameter values that are decorated as "sensitive" in the API will not
 44064  // be included in the string output. The member name will be present, but the
 44065  // value will be replaced with "sensitive".
 44066  func (s GetOTAUpdateOutput) String() string {
 44067  	return awsutil.Prettify(s)
 44068  }
 44069  
 44070  // GoString returns the string representation.
 44071  //
 44072  // API parameter values that are decorated as "sensitive" in the API will not
 44073  // be included in the string output. The member name will be present, but the
 44074  // value will be replaced with "sensitive".
 44075  func (s GetOTAUpdateOutput) GoString() string {
 44076  	return s.String()
 44077  }
 44078  
 44079  // SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
 44080  func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
 44081  	s.OtaUpdateInfo = v
 44082  	return s
 44083  }
 44084  
 44085  type GetPercentilesInput struct {
 44086  	_ struct{} `type:"structure"`
 44087  
 44088  	// The field to aggregate.
 44089  	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
 44090  
 44091  	// The name of the index to search.
 44092  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 44093  
 44094  	// The percentile groups returned.
 44095  	Percents []*float64 `locationName:"percents" type:"list"`
 44096  
 44097  	// The search query string.
 44098  	//
 44099  	// QueryString is a required field
 44100  	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
 44101  
 44102  	// The query version.
 44103  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 44104  }
 44105  
 44106  // String returns the string representation.
 44107  //
 44108  // API parameter values that are decorated as "sensitive" in the API will not
 44109  // be included in the string output. The member name will be present, but the
 44110  // value will be replaced with "sensitive".
 44111  func (s GetPercentilesInput) String() string {
 44112  	return awsutil.Prettify(s)
 44113  }
 44114  
 44115  // GoString returns the string representation.
 44116  //
 44117  // API parameter values that are decorated as "sensitive" in the API will not
 44118  // be included in the string output. The member name will be present, but the
 44119  // value will be replaced with "sensitive".
 44120  func (s GetPercentilesInput) GoString() string {
 44121  	return s.String()
 44122  }
 44123  
 44124  // Validate inspects the fields of the type to determine if they are valid.
 44125  func (s *GetPercentilesInput) Validate() error {
 44126  	invalidParams := request.ErrInvalidParams{Context: "GetPercentilesInput"}
 44127  	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
 44128  		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
 44129  	}
 44130  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 44131  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 44132  	}
 44133  	if s.QueryString == nil {
 44134  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
 44135  	}
 44136  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 44137  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 44138  	}
 44139  
 44140  	if invalidParams.Len() > 0 {
 44141  		return invalidParams
 44142  	}
 44143  	return nil
 44144  }
 44145  
 44146  // SetAggregationField sets the AggregationField field's value.
 44147  func (s *GetPercentilesInput) SetAggregationField(v string) *GetPercentilesInput {
 44148  	s.AggregationField = &v
 44149  	return s
 44150  }
 44151  
 44152  // SetIndexName sets the IndexName field's value.
 44153  func (s *GetPercentilesInput) SetIndexName(v string) *GetPercentilesInput {
 44154  	s.IndexName = &v
 44155  	return s
 44156  }
 44157  
 44158  // SetPercents sets the Percents field's value.
 44159  func (s *GetPercentilesInput) SetPercents(v []*float64) *GetPercentilesInput {
 44160  	s.Percents = v
 44161  	return s
 44162  }
 44163  
 44164  // SetQueryString sets the QueryString field's value.
 44165  func (s *GetPercentilesInput) SetQueryString(v string) *GetPercentilesInput {
 44166  	s.QueryString = &v
 44167  	return s
 44168  }
 44169  
 44170  // SetQueryVersion sets the QueryVersion field's value.
 44171  func (s *GetPercentilesInput) SetQueryVersion(v string) *GetPercentilesInput {
 44172  	s.QueryVersion = &v
 44173  	return s
 44174  }
 44175  
 44176  type GetPercentilesOutput struct {
 44177  	_ struct{} `type:"structure"`
 44178  
 44179  	// The percentile values of the aggregated fields.
 44180  	Percentiles []*PercentPair `locationName:"percentiles" type:"list"`
 44181  }
 44182  
 44183  // String returns the string representation.
 44184  //
 44185  // API parameter values that are decorated as "sensitive" in the API will not
 44186  // be included in the string output. The member name will be present, but the
 44187  // value will be replaced with "sensitive".
 44188  func (s GetPercentilesOutput) String() string {
 44189  	return awsutil.Prettify(s)
 44190  }
 44191  
 44192  // GoString returns the string representation.
 44193  //
 44194  // API parameter values that are decorated as "sensitive" in the API will not
 44195  // be included in the string output. The member name will be present, but the
 44196  // value will be replaced with "sensitive".
 44197  func (s GetPercentilesOutput) GoString() string {
 44198  	return s.String()
 44199  }
 44200  
 44201  // SetPercentiles sets the Percentiles field's value.
 44202  func (s *GetPercentilesOutput) SetPercentiles(v []*PercentPair) *GetPercentilesOutput {
 44203  	s.Percentiles = v
 44204  	return s
 44205  }
 44206  
 44207  // The input for the GetPolicy operation.
 44208  type GetPolicyInput struct {
 44209  	_ struct{} `type:"structure" nopayload:"true"`
 44210  
 44211  	// The name of the policy.
 44212  	//
 44213  	// PolicyName is a required field
 44214  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 44215  }
 44216  
 44217  // String returns the string representation.
 44218  //
 44219  // API parameter values that are decorated as "sensitive" in the API will not
 44220  // be included in the string output. The member name will be present, but the
 44221  // value will be replaced with "sensitive".
 44222  func (s GetPolicyInput) String() string {
 44223  	return awsutil.Prettify(s)
 44224  }
 44225  
 44226  // GoString returns the string representation.
 44227  //
 44228  // API parameter values that are decorated as "sensitive" in the API will not
 44229  // be included in the string output. The member name will be present, but the
 44230  // value will be replaced with "sensitive".
 44231  func (s GetPolicyInput) GoString() string {
 44232  	return s.String()
 44233  }
 44234  
 44235  // Validate inspects the fields of the type to determine if they are valid.
 44236  func (s *GetPolicyInput) Validate() error {
 44237  	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
 44238  	if s.PolicyName == nil {
 44239  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 44240  	}
 44241  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 44242  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 44243  	}
 44244  
 44245  	if invalidParams.Len() > 0 {
 44246  		return invalidParams
 44247  	}
 44248  	return nil
 44249  }
 44250  
 44251  // SetPolicyName sets the PolicyName field's value.
 44252  func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
 44253  	s.PolicyName = &v
 44254  	return s
 44255  }
 44256  
 44257  // The output from the GetPolicy operation.
 44258  type GetPolicyOutput struct {
 44259  	_ struct{} `type:"structure"`
 44260  
 44261  	// The date the policy was created.
 44262  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 44263  
 44264  	// The default policy version ID.
 44265  	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
 44266  
 44267  	// The generation ID of the policy.
 44268  	GenerationId *string `locationName:"generationId" type:"string"`
 44269  
 44270  	// The date the policy was last modified.
 44271  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 44272  
 44273  	// The policy ARN.
 44274  	PolicyArn *string `locationName:"policyArn" type:"string"`
 44275  
 44276  	// The JSON document that describes the policy.
 44277  	PolicyDocument *string `locationName:"policyDocument" type:"string"`
 44278  
 44279  	// The policy name.
 44280  	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
 44281  }
 44282  
 44283  // String returns the string representation.
 44284  //
 44285  // API parameter values that are decorated as "sensitive" in the API will not
 44286  // be included in the string output. The member name will be present, but the
 44287  // value will be replaced with "sensitive".
 44288  func (s GetPolicyOutput) String() string {
 44289  	return awsutil.Prettify(s)
 44290  }
 44291  
 44292  // GoString returns the string representation.
 44293  //
 44294  // API parameter values that are decorated as "sensitive" in the API will not
 44295  // be included in the string output. The member name will be present, but the
 44296  // value will be replaced with "sensitive".
 44297  func (s GetPolicyOutput) GoString() string {
 44298  	return s.String()
 44299  }
 44300  
 44301  // SetCreationDate sets the CreationDate field's value.
 44302  func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
 44303  	s.CreationDate = &v
 44304  	return s
 44305  }
 44306  
 44307  // SetDefaultVersionId sets the DefaultVersionId field's value.
 44308  func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
 44309  	s.DefaultVersionId = &v
 44310  	return s
 44311  }
 44312  
 44313  // SetGenerationId sets the GenerationId field's value.
 44314  func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
 44315  	s.GenerationId = &v
 44316  	return s
 44317  }
 44318  
 44319  // SetLastModifiedDate sets the LastModifiedDate field's value.
 44320  func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
 44321  	s.LastModifiedDate = &v
 44322  	return s
 44323  }
 44324  
 44325  // SetPolicyArn sets the PolicyArn field's value.
 44326  func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
 44327  	s.PolicyArn = &v
 44328  	return s
 44329  }
 44330  
 44331  // SetPolicyDocument sets the PolicyDocument field's value.
 44332  func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
 44333  	s.PolicyDocument = &v
 44334  	return s
 44335  }
 44336  
 44337  // SetPolicyName sets the PolicyName field's value.
 44338  func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
 44339  	s.PolicyName = &v
 44340  	return s
 44341  }
 44342  
 44343  // The input for the GetPolicyVersion operation.
 44344  type GetPolicyVersionInput struct {
 44345  	_ struct{} `type:"structure" nopayload:"true"`
 44346  
 44347  	// The name of the policy.
 44348  	//
 44349  	// PolicyName is a required field
 44350  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 44351  
 44352  	// The policy version ID.
 44353  	//
 44354  	// PolicyVersionId is a required field
 44355  	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
 44356  }
 44357  
 44358  // String returns the string representation.
 44359  //
 44360  // API parameter values that are decorated as "sensitive" in the API will not
 44361  // be included in the string output. The member name will be present, but the
 44362  // value will be replaced with "sensitive".
 44363  func (s GetPolicyVersionInput) String() string {
 44364  	return awsutil.Prettify(s)
 44365  }
 44366  
 44367  // GoString returns the string representation.
 44368  //
 44369  // API parameter values that are decorated as "sensitive" in the API will not
 44370  // be included in the string output. The member name will be present, but the
 44371  // value will be replaced with "sensitive".
 44372  func (s GetPolicyVersionInput) GoString() string {
 44373  	return s.String()
 44374  }
 44375  
 44376  // Validate inspects the fields of the type to determine if they are valid.
 44377  func (s *GetPolicyVersionInput) Validate() error {
 44378  	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
 44379  	if s.PolicyName == nil {
 44380  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 44381  	}
 44382  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 44383  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 44384  	}
 44385  	if s.PolicyVersionId == nil {
 44386  		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
 44387  	}
 44388  	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
 44389  		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
 44390  	}
 44391  
 44392  	if invalidParams.Len() > 0 {
 44393  		return invalidParams
 44394  	}
 44395  	return nil
 44396  }
 44397  
 44398  // SetPolicyName sets the PolicyName field's value.
 44399  func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
 44400  	s.PolicyName = &v
 44401  	return s
 44402  }
 44403  
 44404  // SetPolicyVersionId sets the PolicyVersionId field's value.
 44405  func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
 44406  	s.PolicyVersionId = &v
 44407  	return s
 44408  }
 44409  
 44410  // The output from the GetPolicyVersion operation.
 44411  type GetPolicyVersionOutput struct {
 44412  	_ struct{} `type:"structure"`
 44413  
 44414  	// The date the policy was created.
 44415  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 44416  
 44417  	// The generation ID of the policy version.
 44418  	GenerationId *string `locationName:"generationId" type:"string"`
 44419  
 44420  	// Specifies whether the policy version is the default.
 44421  	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
 44422  
 44423  	// The date the policy was last modified.
 44424  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 44425  
 44426  	// The policy ARN.
 44427  	PolicyArn *string `locationName:"policyArn" type:"string"`
 44428  
 44429  	// The JSON document that describes the policy.
 44430  	PolicyDocument *string `locationName:"policyDocument" type:"string"`
 44431  
 44432  	// The policy name.
 44433  	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
 44434  
 44435  	// The policy version ID.
 44436  	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
 44437  }
 44438  
 44439  // String returns the string representation.
 44440  //
 44441  // API parameter values that are decorated as "sensitive" in the API will not
 44442  // be included in the string output. The member name will be present, but the
 44443  // value will be replaced with "sensitive".
 44444  func (s GetPolicyVersionOutput) String() string {
 44445  	return awsutil.Prettify(s)
 44446  }
 44447  
 44448  // GoString returns the string representation.
 44449  //
 44450  // API parameter values that are decorated as "sensitive" in the API will not
 44451  // be included in the string output. The member name will be present, but the
 44452  // value will be replaced with "sensitive".
 44453  func (s GetPolicyVersionOutput) GoString() string {
 44454  	return s.String()
 44455  }
 44456  
 44457  // SetCreationDate sets the CreationDate field's value.
 44458  func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
 44459  	s.CreationDate = &v
 44460  	return s
 44461  }
 44462  
 44463  // SetGenerationId sets the GenerationId field's value.
 44464  func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
 44465  	s.GenerationId = &v
 44466  	return s
 44467  }
 44468  
 44469  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 44470  func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
 44471  	s.IsDefaultVersion = &v
 44472  	return s
 44473  }
 44474  
 44475  // SetLastModifiedDate sets the LastModifiedDate field's value.
 44476  func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
 44477  	s.LastModifiedDate = &v
 44478  	return s
 44479  }
 44480  
 44481  // SetPolicyArn sets the PolicyArn field's value.
 44482  func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
 44483  	s.PolicyArn = &v
 44484  	return s
 44485  }
 44486  
 44487  // SetPolicyDocument sets the PolicyDocument field's value.
 44488  func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
 44489  	s.PolicyDocument = &v
 44490  	return s
 44491  }
 44492  
 44493  // SetPolicyName sets the PolicyName field's value.
 44494  func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
 44495  	s.PolicyName = &v
 44496  	return s
 44497  }
 44498  
 44499  // SetPolicyVersionId sets the PolicyVersionId field's value.
 44500  func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
 44501  	s.PolicyVersionId = &v
 44502  	return s
 44503  }
 44504  
 44505  // The input to the GetRegistrationCode operation.
 44506  type GetRegistrationCodeInput struct {
 44507  	_ struct{} `type:"structure" nopayload:"true"`
 44508  }
 44509  
 44510  // String returns the string representation.
 44511  //
 44512  // API parameter values that are decorated as "sensitive" in the API will not
 44513  // be included in the string output. The member name will be present, but the
 44514  // value will be replaced with "sensitive".
 44515  func (s GetRegistrationCodeInput) String() string {
 44516  	return awsutil.Prettify(s)
 44517  }
 44518  
 44519  // GoString returns the string representation.
 44520  //
 44521  // API parameter values that are decorated as "sensitive" in the API will not
 44522  // be included in the string output. The member name will be present, but the
 44523  // value will be replaced with "sensitive".
 44524  func (s GetRegistrationCodeInput) GoString() string {
 44525  	return s.String()
 44526  }
 44527  
 44528  // The output from the GetRegistrationCode operation.
 44529  type GetRegistrationCodeOutput struct {
 44530  	_ struct{} `type:"structure"`
 44531  
 44532  	// The CA certificate registration code.
 44533  	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
 44534  }
 44535  
 44536  // String returns the string representation.
 44537  //
 44538  // API parameter values that are decorated as "sensitive" in the API will not
 44539  // be included in the string output. The member name will be present, but the
 44540  // value will be replaced with "sensitive".
 44541  func (s GetRegistrationCodeOutput) String() string {
 44542  	return awsutil.Prettify(s)
 44543  }
 44544  
 44545  // GoString returns the string representation.
 44546  //
 44547  // API parameter values that are decorated as "sensitive" in the API will not
 44548  // be included in the string output. The member name will be present, but the
 44549  // value will be replaced with "sensitive".
 44550  func (s GetRegistrationCodeOutput) GoString() string {
 44551  	return s.String()
 44552  }
 44553  
 44554  // SetRegistrationCode sets the RegistrationCode field's value.
 44555  func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
 44556  	s.RegistrationCode = &v
 44557  	return s
 44558  }
 44559  
 44560  type GetStatisticsInput struct {
 44561  	_ struct{} `type:"structure"`
 44562  
 44563  	// The aggregation field name.
 44564  	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
 44565  
 44566  	// The name of the index to search. The default value is AWS_Things.
 44567  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 44568  
 44569  	// The query used to search. You can specify "*" for the query string to get
 44570  	// the count of all indexed things in your Amazon Web Services account.
 44571  	//
 44572  	// QueryString is a required field
 44573  	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
 44574  
 44575  	// The version of the query used to search.
 44576  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 44577  }
 44578  
 44579  // String returns the string representation.
 44580  //
 44581  // API parameter values that are decorated as "sensitive" in the API will not
 44582  // be included in the string output. The member name will be present, but the
 44583  // value will be replaced with "sensitive".
 44584  func (s GetStatisticsInput) String() string {
 44585  	return awsutil.Prettify(s)
 44586  }
 44587  
 44588  // GoString returns the string representation.
 44589  //
 44590  // API parameter values that are decorated as "sensitive" in the API will not
 44591  // be included in the string output. The member name will be present, but the
 44592  // value will be replaced with "sensitive".
 44593  func (s GetStatisticsInput) GoString() string {
 44594  	return s.String()
 44595  }
 44596  
 44597  // Validate inspects the fields of the type to determine if they are valid.
 44598  func (s *GetStatisticsInput) Validate() error {
 44599  	invalidParams := request.ErrInvalidParams{Context: "GetStatisticsInput"}
 44600  	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
 44601  		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
 44602  	}
 44603  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 44604  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 44605  	}
 44606  	if s.QueryString == nil {
 44607  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
 44608  	}
 44609  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 44610  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 44611  	}
 44612  
 44613  	if invalidParams.Len() > 0 {
 44614  		return invalidParams
 44615  	}
 44616  	return nil
 44617  }
 44618  
 44619  // SetAggregationField sets the AggregationField field's value.
 44620  func (s *GetStatisticsInput) SetAggregationField(v string) *GetStatisticsInput {
 44621  	s.AggregationField = &v
 44622  	return s
 44623  }
 44624  
 44625  // SetIndexName sets the IndexName field's value.
 44626  func (s *GetStatisticsInput) SetIndexName(v string) *GetStatisticsInput {
 44627  	s.IndexName = &v
 44628  	return s
 44629  }
 44630  
 44631  // SetQueryString sets the QueryString field's value.
 44632  func (s *GetStatisticsInput) SetQueryString(v string) *GetStatisticsInput {
 44633  	s.QueryString = &v
 44634  	return s
 44635  }
 44636  
 44637  // SetQueryVersion sets the QueryVersion field's value.
 44638  func (s *GetStatisticsInput) SetQueryVersion(v string) *GetStatisticsInput {
 44639  	s.QueryVersion = &v
 44640  	return s
 44641  }
 44642  
 44643  type GetStatisticsOutput struct {
 44644  	_ struct{} `type:"structure"`
 44645  
 44646  	// The statistics returned by the Fleet Indexing service based on the query
 44647  	// and aggregation field.
 44648  	Statistics *Statistics `locationName:"statistics" type:"structure"`
 44649  }
 44650  
 44651  // String returns the string representation.
 44652  //
 44653  // API parameter values that are decorated as "sensitive" in the API will not
 44654  // be included in the string output. The member name will be present, but the
 44655  // value will be replaced with "sensitive".
 44656  func (s GetStatisticsOutput) String() string {
 44657  	return awsutil.Prettify(s)
 44658  }
 44659  
 44660  // GoString returns the string representation.
 44661  //
 44662  // API parameter values that are decorated as "sensitive" in the API will not
 44663  // be included in the string output. The member name will be present, but the
 44664  // value will be replaced with "sensitive".
 44665  func (s GetStatisticsOutput) GoString() string {
 44666  	return s.String()
 44667  }
 44668  
 44669  // SetStatistics sets the Statistics field's value.
 44670  func (s *GetStatisticsOutput) SetStatistics(v *Statistics) *GetStatisticsOutput {
 44671  	s.Statistics = v
 44672  	return s
 44673  }
 44674  
 44675  type GetTopicRuleDestinationInput struct {
 44676  	_ struct{} `type:"structure" nopayload:"true"`
 44677  
 44678  	// The ARN of the topic rule destination.
 44679  	//
 44680  	// Arn is a required field
 44681  	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
 44682  }
 44683  
 44684  // String returns the string representation.
 44685  //
 44686  // API parameter values that are decorated as "sensitive" in the API will not
 44687  // be included in the string output. The member name will be present, but the
 44688  // value will be replaced with "sensitive".
 44689  func (s GetTopicRuleDestinationInput) String() string {
 44690  	return awsutil.Prettify(s)
 44691  }
 44692  
 44693  // GoString returns the string representation.
 44694  //
 44695  // API parameter values that are decorated as "sensitive" in the API will not
 44696  // be included in the string output. The member name will be present, but the
 44697  // value will be replaced with "sensitive".
 44698  func (s GetTopicRuleDestinationInput) GoString() string {
 44699  	return s.String()
 44700  }
 44701  
 44702  // Validate inspects the fields of the type to determine if they are valid.
 44703  func (s *GetTopicRuleDestinationInput) Validate() error {
 44704  	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleDestinationInput"}
 44705  	if s.Arn == nil {
 44706  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 44707  	}
 44708  	if s.Arn != nil && len(*s.Arn) < 1 {
 44709  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 44710  	}
 44711  
 44712  	if invalidParams.Len() > 0 {
 44713  		return invalidParams
 44714  	}
 44715  	return nil
 44716  }
 44717  
 44718  // SetArn sets the Arn field's value.
 44719  func (s *GetTopicRuleDestinationInput) SetArn(v string) *GetTopicRuleDestinationInput {
 44720  	s.Arn = &v
 44721  	return s
 44722  }
 44723  
 44724  type GetTopicRuleDestinationOutput struct {
 44725  	_ struct{} `type:"structure"`
 44726  
 44727  	// The topic rule destination.
 44728  	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
 44729  }
 44730  
 44731  // String returns the string representation.
 44732  //
 44733  // API parameter values that are decorated as "sensitive" in the API will not
 44734  // be included in the string output. The member name will be present, but the
 44735  // value will be replaced with "sensitive".
 44736  func (s GetTopicRuleDestinationOutput) String() string {
 44737  	return awsutil.Prettify(s)
 44738  }
 44739  
 44740  // GoString returns the string representation.
 44741  //
 44742  // API parameter values that are decorated as "sensitive" in the API will not
 44743  // be included in the string output. The member name will be present, but the
 44744  // value will be replaced with "sensitive".
 44745  func (s GetTopicRuleDestinationOutput) GoString() string {
 44746  	return s.String()
 44747  }
 44748  
 44749  // SetTopicRuleDestination sets the TopicRuleDestination field's value.
 44750  func (s *GetTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *GetTopicRuleDestinationOutput {
 44751  	s.TopicRuleDestination = v
 44752  	return s
 44753  }
 44754  
 44755  // The input for the GetTopicRule operation.
 44756  type GetTopicRuleInput struct {
 44757  	_ struct{} `type:"structure" nopayload:"true"`
 44758  
 44759  	// The name of the rule.
 44760  	//
 44761  	// RuleName is a required field
 44762  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
 44763  }
 44764  
 44765  // String returns the string representation.
 44766  //
 44767  // API parameter values that are decorated as "sensitive" in the API will not
 44768  // be included in the string output. The member name will be present, but the
 44769  // value will be replaced with "sensitive".
 44770  func (s GetTopicRuleInput) String() string {
 44771  	return awsutil.Prettify(s)
 44772  }
 44773  
 44774  // GoString returns the string representation.
 44775  //
 44776  // API parameter values that are decorated as "sensitive" in the API will not
 44777  // be included in the string output. The member name will be present, but the
 44778  // value will be replaced with "sensitive".
 44779  func (s GetTopicRuleInput) GoString() string {
 44780  	return s.String()
 44781  }
 44782  
 44783  // Validate inspects the fields of the type to determine if they are valid.
 44784  func (s *GetTopicRuleInput) Validate() error {
 44785  	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
 44786  	if s.RuleName == nil {
 44787  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
 44788  	}
 44789  	if s.RuleName != nil && len(*s.RuleName) < 1 {
 44790  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
 44791  	}
 44792  
 44793  	if invalidParams.Len() > 0 {
 44794  		return invalidParams
 44795  	}
 44796  	return nil
 44797  }
 44798  
 44799  // SetRuleName sets the RuleName field's value.
 44800  func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
 44801  	s.RuleName = &v
 44802  	return s
 44803  }
 44804  
 44805  // The output from the GetTopicRule operation.
 44806  type GetTopicRuleOutput struct {
 44807  	_ struct{} `type:"structure"`
 44808  
 44809  	// The rule.
 44810  	Rule *TopicRule `locationName:"rule" type:"structure"`
 44811  
 44812  	// The rule ARN.
 44813  	RuleArn *string `locationName:"ruleArn" type:"string"`
 44814  }
 44815  
 44816  // String returns the string representation.
 44817  //
 44818  // API parameter values that are decorated as "sensitive" in the API will not
 44819  // be included in the string output. The member name will be present, but the
 44820  // value will be replaced with "sensitive".
 44821  func (s GetTopicRuleOutput) String() string {
 44822  	return awsutil.Prettify(s)
 44823  }
 44824  
 44825  // GoString returns the string representation.
 44826  //
 44827  // API parameter values that are decorated as "sensitive" in the API will not
 44828  // be included in the string output. The member name will be present, but the
 44829  // value will be replaced with "sensitive".
 44830  func (s GetTopicRuleOutput) GoString() string {
 44831  	return s.String()
 44832  }
 44833  
 44834  // SetRule sets the Rule field's value.
 44835  func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
 44836  	s.Rule = v
 44837  	return s
 44838  }
 44839  
 44840  // SetRuleArn sets the RuleArn field's value.
 44841  func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
 44842  	s.RuleArn = &v
 44843  	return s
 44844  }
 44845  
 44846  type GetV2LoggingOptionsInput struct {
 44847  	_ struct{} `type:"structure" nopayload:"true"`
 44848  }
 44849  
 44850  // String returns the string representation.
 44851  //
 44852  // API parameter values that are decorated as "sensitive" in the API will not
 44853  // be included in the string output. The member name will be present, but the
 44854  // value will be replaced with "sensitive".
 44855  func (s GetV2LoggingOptionsInput) String() string {
 44856  	return awsutil.Prettify(s)
 44857  }
 44858  
 44859  // GoString returns the string representation.
 44860  //
 44861  // API parameter values that are decorated as "sensitive" in the API will not
 44862  // be included in the string output. The member name will be present, but the
 44863  // value will be replaced with "sensitive".
 44864  func (s GetV2LoggingOptionsInput) GoString() string {
 44865  	return s.String()
 44866  }
 44867  
 44868  type GetV2LoggingOptionsOutput struct {
 44869  	_ struct{} `type:"structure"`
 44870  
 44871  	// The default log level.
 44872  	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
 44873  
 44874  	// Disables all logs.
 44875  	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
 44876  
 44877  	// The IAM role ARN IoT uses to write to your CloudWatch logs.
 44878  	RoleArn *string `locationName:"roleArn" type:"string"`
 44879  }
 44880  
 44881  // String returns the string representation.
 44882  //
 44883  // API parameter values that are decorated as "sensitive" in the API will not
 44884  // be included in the string output. The member name will be present, but the
 44885  // value will be replaced with "sensitive".
 44886  func (s GetV2LoggingOptionsOutput) String() string {
 44887  	return awsutil.Prettify(s)
 44888  }
 44889  
 44890  // GoString returns the string representation.
 44891  //
 44892  // API parameter values that are decorated as "sensitive" in the API will not
 44893  // be included in the string output. The member name will be present, but the
 44894  // value will be replaced with "sensitive".
 44895  func (s GetV2LoggingOptionsOutput) GoString() string {
 44896  	return s.String()
 44897  }
 44898  
 44899  // SetDefaultLogLevel sets the DefaultLogLevel field's value.
 44900  func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
 44901  	s.DefaultLogLevel = &v
 44902  	return s
 44903  }
 44904  
 44905  // SetDisableAllLogs sets the DisableAllLogs field's value.
 44906  func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
 44907  	s.DisableAllLogs = &v
 44908  	return s
 44909  }
 44910  
 44911  // SetRoleArn sets the RoleArn field's value.
 44912  func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
 44913  	s.RoleArn = &v
 44914  	return s
 44915  }
 44916  
 44917  // The name and ARN of a group.
 44918  type GroupNameAndArn struct {
 44919  	_ struct{} `type:"structure"`
 44920  
 44921  	// The group ARN.
 44922  	GroupArn *string `locationName:"groupArn" type:"string"`
 44923  
 44924  	// The group name.
 44925  	GroupName *string `locationName:"groupName" min:"1" type:"string"`
 44926  }
 44927  
 44928  // String returns the string representation.
 44929  //
 44930  // API parameter values that are decorated as "sensitive" in the API will not
 44931  // be included in the string output. The member name will be present, but the
 44932  // value will be replaced with "sensitive".
 44933  func (s GroupNameAndArn) String() string {
 44934  	return awsutil.Prettify(s)
 44935  }
 44936  
 44937  // GoString returns the string representation.
 44938  //
 44939  // API parameter values that are decorated as "sensitive" in the API will not
 44940  // be included in the string output. The member name will be present, but the
 44941  // value will be replaced with "sensitive".
 44942  func (s GroupNameAndArn) GoString() string {
 44943  	return s.String()
 44944  }
 44945  
 44946  // SetGroupArn sets the GroupArn field's value.
 44947  func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
 44948  	s.GroupArn = &v
 44949  	return s
 44950  }
 44951  
 44952  // SetGroupName sets the GroupName field's value.
 44953  func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
 44954  	s.GroupName = &v
 44955  	return s
 44956  }
 44957  
 44958  // Send data to an HTTPS endpoint.
 44959  type HttpAction struct {
 44960  	_ struct{} `type:"structure"`
 44961  
 44962  	// The authentication method to use when sending data to an HTTPS endpoint.
 44963  	Auth *HttpAuthorization `locationName:"auth" type:"structure"`
 44964  
 44965  	// The URL to which IoT sends a confirmation message. The value of the confirmation
 44966  	// URL must be a prefix of the endpoint URL. If you do not specify a confirmation
 44967  	// URL IoT uses the endpoint URL as the confirmation URL. If you use substitution
 44968  	// templates in the confirmationUrl, you must create and enable topic rule destinations
 44969  	// that match each possible value of the substitution template before traffic
 44970  	// is allowed to your endpoint URL.
 44971  	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
 44972  
 44973  	// The HTTP headers to send with the message data.
 44974  	Headers []*HttpActionHeader `locationName:"headers" type:"list"`
 44975  
 44976  	// The endpoint URL. If substitution templates are used in the URL, you must
 44977  	// also specify a confirmationUrl. If this is a new destination, a new TopicRuleDestination
 44978  	// is created if possible.
 44979  	//
 44980  	// Url is a required field
 44981  	Url *string `locationName:"url" type:"string" required:"true"`
 44982  }
 44983  
 44984  // String returns the string representation.
 44985  //
 44986  // API parameter values that are decorated as "sensitive" in the API will not
 44987  // be included in the string output. The member name will be present, but the
 44988  // value will be replaced with "sensitive".
 44989  func (s HttpAction) String() string {
 44990  	return awsutil.Prettify(s)
 44991  }
 44992  
 44993  // GoString returns the string representation.
 44994  //
 44995  // API parameter values that are decorated as "sensitive" in the API will not
 44996  // be included in the string output. The member name will be present, but the
 44997  // value will be replaced with "sensitive".
 44998  func (s HttpAction) GoString() string {
 44999  	return s.String()
 45000  }
 45001  
 45002  // Validate inspects the fields of the type to determine if they are valid.
 45003  func (s *HttpAction) Validate() error {
 45004  	invalidParams := request.ErrInvalidParams{Context: "HttpAction"}
 45005  	if s.Url == nil {
 45006  		invalidParams.Add(request.NewErrParamRequired("Url"))
 45007  	}
 45008  	if s.Auth != nil {
 45009  		if err := s.Auth.Validate(); err != nil {
 45010  			invalidParams.AddNested("Auth", err.(request.ErrInvalidParams))
 45011  		}
 45012  	}
 45013  	if s.Headers != nil {
 45014  		for i, v := range s.Headers {
 45015  			if v == nil {
 45016  				continue
 45017  			}
 45018  			if err := v.Validate(); err != nil {
 45019  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
 45020  			}
 45021  		}
 45022  	}
 45023  
 45024  	if invalidParams.Len() > 0 {
 45025  		return invalidParams
 45026  	}
 45027  	return nil
 45028  }
 45029  
 45030  // SetAuth sets the Auth field's value.
 45031  func (s *HttpAction) SetAuth(v *HttpAuthorization) *HttpAction {
 45032  	s.Auth = v
 45033  	return s
 45034  }
 45035  
 45036  // SetConfirmationUrl sets the ConfirmationUrl field's value.
 45037  func (s *HttpAction) SetConfirmationUrl(v string) *HttpAction {
 45038  	s.ConfirmationUrl = &v
 45039  	return s
 45040  }
 45041  
 45042  // SetHeaders sets the Headers field's value.
 45043  func (s *HttpAction) SetHeaders(v []*HttpActionHeader) *HttpAction {
 45044  	s.Headers = v
 45045  	return s
 45046  }
 45047  
 45048  // SetUrl sets the Url field's value.
 45049  func (s *HttpAction) SetUrl(v string) *HttpAction {
 45050  	s.Url = &v
 45051  	return s
 45052  }
 45053  
 45054  // The HTTP action header.
 45055  type HttpActionHeader struct {
 45056  	_ struct{} `type:"structure"`
 45057  
 45058  	// The HTTP header key.
 45059  	//
 45060  	// Key is a required field
 45061  	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
 45062  
 45063  	// The HTTP header value. Substitution templates are supported.
 45064  	//
 45065  	// Value is a required field
 45066  	Value *string `locationName:"value" type:"string" required:"true"`
 45067  }
 45068  
 45069  // String returns the string representation.
 45070  //
 45071  // API parameter values that are decorated as "sensitive" in the API will not
 45072  // be included in the string output. The member name will be present, but the
 45073  // value will be replaced with "sensitive".
 45074  func (s HttpActionHeader) String() string {
 45075  	return awsutil.Prettify(s)
 45076  }
 45077  
 45078  // GoString returns the string representation.
 45079  //
 45080  // API parameter values that are decorated as "sensitive" in the API will not
 45081  // be included in the string output. The member name will be present, but the
 45082  // value will be replaced with "sensitive".
 45083  func (s HttpActionHeader) GoString() string {
 45084  	return s.String()
 45085  }
 45086  
 45087  // Validate inspects the fields of the type to determine if they are valid.
 45088  func (s *HttpActionHeader) Validate() error {
 45089  	invalidParams := request.ErrInvalidParams{Context: "HttpActionHeader"}
 45090  	if s.Key == nil {
 45091  		invalidParams.Add(request.NewErrParamRequired("Key"))
 45092  	}
 45093  	if s.Key != nil && len(*s.Key) < 1 {
 45094  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 45095  	}
 45096  	if s.Value == nil {
 45097  		invalidParams.Add(request.NewErrParamRequired("Value"))
 45098  	}
 45099  
 45100  	if invalidParams.Len() > 0 {
 45101  		return invalidParams
 45102  	}
 45103  	return nil
 45104  }
 45105  
 45106  // SetKey sets the Key field's value.
 45107  func (s *HttpActionHeader) SetKey(v string) *HttpActionHeader {
 45108  	s.Key = &v
 45109  	return s
 45110  }
 45111  
 45112  // SetValue sets the Value field's value.
 45113  func (s *HttpActionHeader) SetValue(v string) *HttpActionHeader {
 45114  	s.Value = &v
 45115  	return s
 45116  }
 45117  
 45118  // The authorization method used to send messages.
 45119  type HttpAuthorization struct {
 45120  	_ struct{} `type:"structure"`
 45121  
 45122  	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
 45123  	// Process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
 45124  	Sigv4 *SigV4Authorization `locationName:"sigv4" type:"structure"`
 45125  }
 45126  
 45127  // String returns the string representation.
 45128  //
 45129  // API parameter values that are decorated as "sensitive" in the API will not
 45130  // be included in the string output. The member name will be present, but the
 45131  // value will be replaced with "sensitive".
 45132  func (s HttpAuthorization) String() string {
 45133  	return awsutil.Prettify(s)
 45134  }
 45135  
 45136  // GoString returns the string representation.
 45137  //
 45138  // API parameter values that are decorated as "sensitive" in the API will not
 45139  // be included in the string output. The member name will be present, but the
 45140  // value will be replaced with "sensitive".
 45141  func (s HttpAuthorization) GoString() string {
 45142  	return s.String()
 45143  }
 45144  
 45145  // Validate inspects the fields of the type to determine if they are valid.
 45146  func (s *HttpAuthorization) Validate() error {
 45147  	invalidParams := request.ErrInvalidParams{Context: "HttpAuthorization"}
 45148  	if s.Sigv4 != nil {
 45149  		if err := s.Sigv4.Validate(); err != nil {
 45150  			invalidParams.AddNested("Sigv4", err.(request.ErrInvalidParams))
 45151  		}
 45152  	}
 45153  
 45154  	if invalidParams.Len() > 0 {
 45155  		return invalidParams
 45156  	}
 45157  	return nil
 45158  }
 45159  
 45160  // SetSigv4 sets the Sigv4 field's value.
 45161  func (s *HttpAuthorization) SetSigv4(v *SigV4Authorization) *HttpAuthorization {
 45162  	s.Sigv4 = v
 45163  	return s
 45164  }
 45165  
 45166  // Specifies the HTTP context to use for the test authorizer request.
 45167  type HttpContext struct {
 45168  	_ struct{} `type:"structure"`
 45169  
 45170  	// The header keys and values in an HTTP authorization request.
 45171  	Headers map[string]*string `locationName:"headers" type:"map"`
 45172  
 45173  	// The query string keys and values in an HTTP authorization request.
 45174  	QueryString *string `locationName:"queryString" min:"1" type:"string"`
 45175  }
 45176  
 45177  // String returns the string representation.
 45178  //
 45179  // API parameter values that are decorated as "sensitive" in the API will not
 45180  // be included in the string output. The member name will be present, but the
 45181  // value will be replaced with "sensitive".
 45182  func (s HttpContext) String() string {
 45183  	return awsutil.Prettify(s)
 45184  }
 45185  
 45186  // GoString returns the string representation.
 45187  //
 45188  // API parameter values that are decorated as "sensitive" in the API will not
 45189  // be included in the string output. The member name will be present, but the
 45190  // value will be replaced with "sensitive".
 45191  func (s HttpContext) GoString() string {
 45192  	return s.String()
 45193  }
 45194  
 45195  // Validate inspects the fields of the type to determine if they are valid.
 45196  func (s *HttpContext) Validate() error {
 45197  	invalidParams := request.ErrInvalidParams{Context: "HttpContext"}
 45198  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 45199  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 45200  	}
 45201  
 45202  	if invalidParams.Len() > 0 {
 45203  		return invalidParams
 45204  	}
 45205  	return nil
 45206  }
 45207  
 45208  // SetHeaders sets the Headers field's value.
 45209  func (s *HttpContext) SetHeaders(v map[string]*string) *HttpContext {
 45210  	s.Headers = v
 45211  	return s
 45212  }
 45213  
 45214  // SetQueryString sets the QueryString field's value.
 45215  func (s *HttpContext) SetQueryString(v string) *HttpContext {
 45216  	s.QueryString = &v
 45217  	return s
 45218  }
 45219  
 45220  // HTTP URL destination configuration used by the topic rule's HTTP action.
 45221  type HttpUrlDestinationConfiguration struct {
 45222  	_ struct{} `type:"structure"`
 45223  
 45224  	// The URL IoT uses to confirm ownership of or access to the topic rule destination
 45225  	// URL.
 45226  	//
 45227  	// ConfirmationUrl is a required field
 45228  	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string" required:"true"`
 45229  }
 45230  
 45231  // String returns the string representation.
 45232  //
 45233  // API parameter values that are decorated as "sensitive" in the API will not
 45234  // be included in the string output. The member name will be present, but the
 45235  // value will be replaced with "sensitive".
 45236  func (s HttpUrlDestinationConfiguration) String() string {
 45237  	return awsutil.Prettify(s)
 45238  }
 45239  
 45240  // GoString returns the string representation.
 45241  //
 45242  // API parameter values that are decorated as "sensitive" in the API will not
 45243  // be included in the string output. The member name will be present, but the
 45244  // value will be replaced with "sensitive".
 45245  func (s HttpUrlDestinationConfiguration) GoString() string {
 45246  	return s.String()
 45247  }
 45248  
 45249  // Validate inspects the fields of the type to determine if they are valid.
 45250  func (s *HttpUrlDestinationConfiguration) Validate() error {
 45251  	invalidParams := request.ErrInvalidParams{Context: "HttpUrlDestinationConfiguration"}
 45252  	if s.ConfirmationUrl == nil {
 45253  		invalidParams.Add(request.NewErrParamRequired("ConfirmationUrl"))
 45254  	}
 45255  
 45256  	if invalidParams.Len() > 0 {
 45257  		return invalidParams
 45258  	}
 45259  	return nil
 45260  }
 45261  
 45262  // SetConfirmationUrl sets the ConfirmationUrl field's value.
 45263  func (s *HttpUrlDestinationConfiguration) SetConfirmationUrl(v string) *HttpUrlDestinationConfiguration {
 45264  	s.ConfirmationUrl = &v
 45265  	return s
 45266  }
 45267  
 45268  // HTTP URL destination properties.
 45269  type HttpUrlDestinationProperties struct {
 45270  	_ struct{} `type:"structure"`
 45271  
 45272  	// The URL used to confirm the HTTP topic rule destination URL.
 45273  	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
 45274  }
 45275  
 45276  // String returns the string representation.
 45277  //
 45278  // API parameter values that are decorated as "sensitive" in the API will not
 45279  // be included in the string output. The member name will be present, but the
 45280  // value will be replaced with "sensitive".
 45281  func (s HttpUrlDestinationProperties) String() string {
 45282  	return awsutil.Prettify(s)
 45283  }
 45284  
 45285  // GoString returns the string representation.
 45286  //
 45287  // API parameter values that are decorated as "sensitive" in the API will not
 45288  // be included in the string output. The member name will be present, but the
 45289  // value will be replaced with "sensitive".
 45290  func (s HttpUrlDestinationProperties) GoString() string {
 45291  	return s.String()
 45292  }
 45293  
 45294  // SetConfirmationUrl sets the ConfirmationUrl field's value.
 45295  func (s *HttpUrlDestinationProperties) SetConfirmationUrl(v string) *HttpUrlDestinationProperties {
 45296  	s.ConfirmationUrl = &v
 45297  	return s
 45298  }
 45299  
 45300  // Information about an HTTP URL destination.
 45301  type HttpUrlDestinationSummary struct {
 45302  	_ struct{} `type:"structure"`
 45303  
 45304  	// The URL used to confirm ownership of or access to the HTTP topic rule destination
 45305  	// URL.
 45306  	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
 45307  }
 45308  
 45309  // String returns the string representation.
 45310  //
 45311  // API parameter values that are decorated as "sensitive" in the API will not
 45312  // be included in the string output. The member name will be present, but the
 45313  // value will be replaced with "sensitive".
 45314  func (s HttpUrlDestinationSummary) String() string {
 45315  	return awsutil.Prettify(s)
 45316  }
 45317  
 45318  // GoString returns the string representation.
 45319  //
 45320  // API parameter values that are decorated as "sensitive" in the API will not
 45321  // be included in the string output. The member name will be present, but the
 45322  // value will be replaced with "sensitive".
 45323  func (s HttpUrlDestinationSummary) GoString() string {
 45324  	return s.String()
 45325  }
 45326  
 45327  // SetConfirmationUrl sets the ConfirmationUrl field's value.
 45328  func (s *HttpUrlDestinationSummary) SetConfirmationUrl(v string) *HttpUrlDestinationSummary {
 45329  	s.ConfirmationUrl = &v
 45330  	return s
 45331  }
 45332  
 45333  // Information that implicitly denies authorization. When policy doesn't explicitly
 45334  // deny or allow an action on a resource it is considered an implicit deny.
 45335  type ImplicitDeny struct {
 45336  	_ struct{} `type:"structure"`
 45337  
 45338  	// Policies that don't contain a matching allow or deny statement for the specified
 45339  	// action on the specified resource.
 45340  	Policies []*Policy `locationName:"policies" type:"list"`
 45341  }
 45342  
 45343  // String returns the string representation.
 45344  //
 45345  // API parameter values that are decorated as "sensitive" in the API will not
 45346  // be included in the string output. The member name will be present, but the
 45347  // value will be replaced with "sensitive".
 45348  func (s ImplicitDeny) String() string {
 45349  	return awsutil.Prettify(s)
 45350  }
 45351  
 45352  // GoString returns the string representation.
 45353  //
 45354  // API parameter values that are decorated as "sensitive" in the API will not
 45355  // be included in the string output. The member name will be present, but the
 45356  // value will be replaced with "sensitive".
 45357  func (s ImplicitDeny) GoString() string {
 45358  	return s.String()
 45359  }
 45360  
 45361  // SetPolicies sets the Policies field's value.
 45362  func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
 45363  	s.Policies = v
 45364  	return s
 45365  }
 45366  
 45367  // The index is not ready.
 45368  type IndexNotReadyException struct {
 45369  	_            struct{}                  `type:"structure"`
 45370  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45371  
 45372  	// The message for the exception.
 45373  	Message_ *string `locationName:"message" type:"string"`
 45374  }
 45375  
 45376  // String returns the string representation.
 45377  //
 45378  // API parameter values that are decorated as "sensitive" in the API will not
 45379  // be included in the string output. The member name will be present, but the
 45380  // value will be replaced with "sensitive".
 45381  func (s IndexNotReadyException) String() string {
 45382  	return awsutil.Prettify(s)
 45383  }
 45384  
 45385  // GoString returns the string representation.
 45386  //
 45387  // API parameter values that are decorated as "sensitive" in the API will not
 45388  // be included in the string output. The member name will be present, but the
 45389  // value will be replaced with "sensitive".
 45390  func (s IndexNotReadyException) GoString() string {
 45391  	return s.String()
 45392  }
 45393  
 45394  func newErrorIndexNotReadyException(v protocol.ResponseMetadata) error {
 45395  	return &IndexNotReadyException{
 45396  		RespMetadata: v,
 45397  	}
 45398  }
 45399  
 45400  // Code returns the exception type name.
 45401  func (s *IndexNotReadyException) Code() string {
 45402  	return "IndexNotReadyException"
 45403  }
 45404  
 45405  // Message returns the exception's message.
 45406  func (s *IndexNotReadyException) Message() string {
 45407  	if s.Message_ != nil {
 45408  		return *s.Message_
 45409  	}
 45410  	return ""
 45411  }
 45412  
 45413  // OrigErr always returns nil, satisfies awserr.Error interface.
 45414  func (s *IndexNotReadyException) OrigErr() error {
 45415  	return nil
 45416  }
 45417  
 45418  func (s *IndexNotReadyException) Error() string {
 45419  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45420  }
 45421  
 45422  // Status code returns the HTTP status code for the request's response error.
 45423  func (s *IndexNotReadyException) StatusCode() int {
 45424  	return s.RespMetadata.StatusCode
 45425  }
 45426  
 45427  // RequestID returns the service's response RequestID for request.
 45428  func (s *IndexNotReadyException) RequestID() string {
 45429  	return s.RespMetadata.RequestID
 45430  }
 45431  
 45432  // An unexpected error has occurred.
 45433  type InternalException struct {
 45434  	_            struct{}                  `type:"structure"`
 45435  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45436  
 45437  	// The message for the exception.
 45438  	Message_ *string `locationName:"message" type:"string"`
 45439  }
 45440  
 45441  // String returns the string representation.
 45442  //
 45443  // API parameter values that are decorated as "sensitive" in the API will not
 45444  // be included in the string output. The member name will be present, but the
 45445  // value will be replaced with "sensitive".
 45446  func (s InternalException) String() string {
 45447  	return awsutil.Prettify(s)
 45448  }
 45449  
 45450  // GoString returns the string representation.
 45451  //
 45452  // API parameter values that are decorated as "sensitive" in the API will not
 45453  // be included in the string output. The member name will be present, but the
 45454  // value will be replaced with "sensitive".
 45455  func (s InternalException) GoString() string {
 45456  	return s.String()
 45457  }
 45458  
 45459  func newErrorInternalException(v protocol.ResponseMetadata) error {
 45460  	return &InternalException{
 45461  		RespMetadata: v,
 45462  	}
 45463  }
 45464  
 45465  // Code returns the exception type name.
 45466  func (s *InternalException) Code() string {
 45467  	return "InternalException"
 45468  }
 45469  
 45470  // Message returns the exception's message.
 45471  func (s *InternalException) Message() string {
 45472  	if s.Message_ != nil {
 45473  		return *s.Message_
 45474  	}
 45475  	return ""
 45476  }
 45477  
 45478  // OrigErr always returns nil, satisfies awserr.Error interface.
 45479  func (s *InternalException) OrigErr() error {
 45480  	return nil
 45481  }
 45482  
 45483  func (s *InternalException) Error() string {
 45484  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45485  }
 45486  
 45487  // Status code returns the HTTP status code for the request's response error.
 45488  func (s *InternalException) StatusCode() int {
 45489  	return s.RespMetadata.StatusCode
 45490  }
 45491  
 45492  // RequestID returns the service's response RequestID for request.
 45493  func (s *InternalException) RequestID() string {
 45494  	return s.RespMetadata.RequestID
 45495  }
 45496  
 45497  // An unexpected error has occurred.
 45498  type InternalFailureException struct {
 45499  	_            struct{}                  `type:"structure"`
 45500  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45501  
 45502  	// The message for the exception.
 45503  	Message_ *string `locationName:"message" type:"string"`
 45504  }
 45505  
 45506  // String returns the string representation.
 45507  //
 45508  // API parameter values that are decorated as "sensitive" in the API will not
 45509  // be included in the string output. The member name will be present, but the
 45510  // value will be replaced with "sensitive".
 45511  func (s InternalFailureException) String() string {
 45512  	return awsutil.Prettify(s)
 45513  }
 45514  
 45515  // GoString returns the string representation.
 45516  //
 45517  // API parameter values that are decorated as "sensitive" in the API will not
 45518  // be included in the string output. The member name will be present, but the
 45519  // value will be replaced with "sensitive".
 45520  func (s InternalFailureException) GoString() string {
 45521  	return s.String()
 45522  }
 45523  
 45524  func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
 45525  	return &InternalFailureException{
 45526  		RespMetadata: v,
 45527  	}
 45528  }
 45529  
 45530  // Code returns the exception type name.
 45531  func (s *InternalFailureException) Code() string {
 45532  	return "InternalFailureException"
 45533  }
 45534  
 45535  // Message returns the exception's message.
 45536  func (s *InternalFailureException) Message() string {
 45537  	if s.Message_ != nil {
 45538  		return *s.Message_
 45539  	}
 45540  	return ""
 45541  }
 45542  
 45543  // OrigErr always returns nil, satisfies awserr.Error interface.
 45544  func (s *InternalFailureException) OrigErr() error {
 45545  	return nil
 45546  }
 45547  
 45548  func (s *InternalFailureException) Error() string {
 45549  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45550  }
 45551  
 45552  // Status code returns the HTTP status code for the request's response error.
 45553  func (s *InternalFailureException) StatusCode() int {
 45554  	return s.RespMetadata.StatusCode
 45555  }
 45556  
 45557  // RequestID returns the service's response RequestID for request.
 45558  func (s *InternalFailureException) RequestID() string {
 45559  	return s.RespMetadata.RequestID
 45560  }
 45561  
 45562  // The aggregation is invalid.
 45563  type InvalidAggregationException struct {
 45564  	_            struct{}                  `type:"structure"`
 45565  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45566  
 45567  	Message_ *string `locationName:"message" type:"string"`
 45568  }
 45569  
 45570  // String returns the string representation.
 45571  //
 45572  // API parameter values that are decorated as "sensitive" in the API will not
 45573  // be included in the string output. The member name will be present, but the
 45574  // value will be replaced with "sensitive".
 45575  func (s InvalidAggregationException) String() string {
 45576  	return awsutil.Prettify(s)
 45577  }
 45578  
 45579  // GoString returns the string representation.
 45580  //
 45581  // API parameter values that are decorated as "sensitive" in the API will not
 45582  // be included in the string output. The member name will be present, but the
 45583  // value will be replaced with "sensitive".
 45584  func (s InvalidAggregationException) GoString() string {
 45585  	return s.String()
 45586  }
 45587  
 45588  func newErrorInvalidAggregationException(v protocol.ResponseMetadata) error {
 45589  	return &InvalidAggregationException{
 45590  		RespMetadata: v,
 45591  	}
 45592  }
 45593  
 45594  // Code returns the exception type name.
 45595  func (s *InvalidAggregationException) Code() string {
 45596  	return "InvalidAggregationException"
 45597  }
 45598  
 45599  // Message returns the exception's message.
 45600  func (s *InvalidAggregationException) Message() string {
 45601  	if s.Message_ != nil {
 45602  		return *s.Message_
 45603  	}
 45604  	return ""
 45605  }
 45606  
 45607  // OrigErr always returns nil, satisfies awserr.Error interface.
 45608  func (s *InvalidAggregationException) OrigErr() error {
 45609  	return nil
 45610  }
 45611  
 45612  func (s *InvalidAggregationException) Error() string {
 45613  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45614  }
 45615  
 45616  // Status code returns the HTTP status code for the request's response error.
 45617  func (s *InvalidAggregationException) StatusCode() int {
 45618  	return s.RespMetadata.StatusCode
 45619  }
 45620  
 45621  // RequestID returns the service's response RequestID for request.
 45622  func (s *InvalidAggregationException) RequestID() string {
 45623  	return s.RespMetadata.RequestID
 45624  }
 45625  
 45626  // The query is invalid.
 45627  type InvalidQueryException struct {
 45628  	_            struct{}                  `type:"structure"`
 45629  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45630  
 45631  	// The message for the exception.
 45632  	Message_ *string `locationName:"message" type:"string"`
 45633  }
 45634  
 45635  // String returns the string representation.
 45636  //
 45637  // API parameter values that are decorated as "sensitive" in the API will not
 45638  // be included in the string output. The member name will be present, but the
 45639  // value will be replaced with "sensitive".
 45640  func (s InvalidQueryException) String() string {
 45641  	return awsutil.Prettify(s)
 45642  }
 45643  
 45644  // GoString returns the string representation.
 45645  //
 45646  // API parameter values that are decorated as "sensitive" in the API will not
 45647  // be included in the string output. The member name will be present, but the
 45648  // value will be replaced with "sensitive".
 45649  func (s InvalidQueryException) GoString() string {
 45650  	return s.String()
 45651  }
 45652  
 45653  func newErrorInvalidQueryException(v protocol.ResponseMetadata) error {
 45654  	return &InvalidQueryException{
 45655  		RespMetadata: v,
 45656  	}
 45657  }
 45658  
 45659  // Code returns the exception type name.
 45660  func (s *InvalidQueryException) Code() string {
 45661  	return "InvalidQueryException"
 45662  }
 45663  
 45664  // Message returns the exception's message.
 45665  func (s *InvalidQueryException) Message() string {
 45666  	if s.Message_ != nil {
 45667  		return *s.Message_
 45668  	}
 45669  	return ""
 45670  }
 45671  
 45672  // OrigErr always returns nil, satisfies awserr.Error interface.
 45673  func (s *InvalidQueryException) OrigErr() error {
 45674  	return nil
 45675  }
 45676  
 45677  func (s *InvalidQueryException) Error() string {
 45678  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45679  }
 45680  
 45681  // Status code returns the HTTP status code for the request's response error.
 45682  func (s *InvalidQueryException) StatusCode() int {
 45683  	return s.RespMetadata.StatusCode
 45684  }
 45685  
 45686  // RequestID returns the service's response RequestID for request.
 45687  func (s *InvalidQueryException) RequestID() string {
 45688  	return s.RespMetadata.RequestID
 45689  }
 45690  
 45691  // The request is not valid.
 45692  type InvalidRequestException struct {
 45693  	_            struct{}                  `type:"structure"`
 45694  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45695  
 45696  	// The message for the exception.
 45697  	Message_ *string `locationName:"message" type:"string"`
 45698  }
 45699  
 45700  // String returns the string representation.
 45701  //
 45702  // API parameter values that are decorated as "sensitive" in the API will not
 45703  // be included in the string output. The member name will be present, but the
 45704  // value will be replaced with "sensitive".
 45705  func (s InvalidRequestException) String() string {
 45706  	return awsutil.Prettify(s)
 45707  }
 45708  
 45709  // GoString returns the string representation.
 45710  //
 45711  // API parameter values that are decorated as "sensitive" in the API will not
 45712  // be included in the string output. The member name will be present, but the
 45713  // value will be replaced with "sensitive".
 45714  func (s InvalidRequestException) GoString() string {
 45715  	return s.String()
 45716  }
 45717  
 45718  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
 45719  	return &InvalidRequestException{
 45720  		RespMetadata: v,
 45721  	}
 45722  }
 45723  
 45724  // Code returns the exception type name.
 45725  func (s *InvalidRequestException) Code() string {
 45726  	return "InvalidRequestException"
 45727  }
 45728  
 45729  // Message returns the exception's message.
 45730  func (s *InvalidRequestException) Message() string {
 45731  	if s.Message_ != nil {
 45732  		return *s.Message_
 45733  	}
 45734  	return ""
 45735  }
 45736  
 45737  // OrigErr always returns nil, satisfies awserr.Error interface.
 45738  func (s *InvalidRequestException) OrigErr() error {
 45739  	return nil
 45740  }
 45741  
 45742  func (s *InvalidRequestException) Error() string {
 45743  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45744  }
 45745  
 45746  // Status code returns the HTTP status code for the request's response error.
 45747  func (s *InvalidRequestException) StatusCode() int {
 45748  	return s.RespMetadata.StatusCode
 45749  }
 45750  
 45751  // RequestID returns the service's response RequestID for request.
 45752  func (s *InvalidRequestException) RequestID() string {
 45753  	return s.RespMetadata.RequestID
 45754  }
 45755  
 45756  // The response is invalid.
 45757  type InvalidResponseException struct {
 45758  	_            struct{}                  `type:"structure"`
 45759  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45760  
 45761  	// The message for the exception.
 45762  	Message_ *string `locationName:"message" type:"string"`
 45763  }
 45764  
 45765  // String returns the string representation.
 45766  //
 45767  // API parameter values that are decorated as "sensitive" in the API will not
 45768  // be included in the string output. The member name will be present, but the
 45769  // value will be replaced with "sensitive".
 45770  func (s InvalidResponseException) String() string {
 45771  	return awsutil.Prettify(s)
 45772  }
 45773  
 45774  // GoString returns the string representation.
 45775  //
 45776  // API parameter values that are decorated as "sensitive" in the API will not
 45777  // be included in the string output. The member name will be present, but the
 45778  // value will be replaced with "sensitive".
 45779  func (s InvalidResponseException) GoString() string {
 45780  	return s.String()
 45781  }
 45782  
 45783  func newErrorInvalidResponseException(v protocol.ResponseMetadata) error {
 45784  	return &InvalidResponseException{
 45785  		RespMetadata: v,
 45786  	}
 45787  }
 45788  
 45789  // Code returns the exception type name.
 45790  func (s *InvalidResponseException) Code() string {
 45791  	return "InvalidResponseException"
 45792  }
 45793  
 45794  // Message returns the exception's message.
 45795  func (s *InvalidResponseException) Message() string {
 45796  	if s.Message_ != nil {
 45797  		return *s.Message_
 45798  	}
 45799  	return ""
 45800  }
 45801  
 45802  // OrigErr always returns nil, satisfies awserr.Error interface.
 45803  func (s *InvalidResponseException) OrigErr() error {
 45804  	return nil
 45805  }
 45806  
 45807  func (s *InvalidResponseException) Error() string {
 45808  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45809  }
 45810  
 45811  // Status code returns the HTTP status code for the request's response error.
 45812  func (s *InvalidResponseException) StatusCode() int {
 45813  	return s.RespMetadata.StatusCode
 45814  }
 45815  
 45816  // RequestID returns the service's response RequestID for request.
 45817  func (s *InvalidResponseException) RequestID() string {
 45818  	return s.RespMetadata.RequestID
 45819  }
 45820  
 45821  // An attempt was made to change to an invalid state, for example by deleting
 45822  // a job or a job execution which is "IN_PROGRESS" without setting the force
 45823  // parameter.
 45824  type InvalidStateTransitionException struct {
 45825  	_            struct{}                  `type:"structure"`
 45826  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 45827  
 45828  	// The message for the exception.
 45829  	Message_ *string `locationName:"message" type:"string"`
 45830  }
 45831  
 45832  // String returns the string representation.
 45833  //
 45834  // API parameter values that are decorated as "sensitive" in the API will not
 45835  // be included in the string output. The member name will be present, but the
 45836  // value will be replaced with "sensitive".
 45837  func (s InvalidStateTransitionException) String() string {
 45838  	return awsutil.Prettify(s)
 45839  }
 45840  
 45841  // GoString returns the string representation.
 45842  //
 45843  // API parameter values that are decorated as "sensitive" in the API will not
 45844  // be included in the string output. The member name will be present, but the
 45845  // value will be replaced with "sensitive".
 45846  func (s InvalidStateTransitionException) GoString() string {
 45847  	return s.String()
 45848  }
 45849  
 45850  func newErrorInvalidStateTransitionException(v protocol.ResponseMetadata) error {
 45851  	return &InvalidStateTransitionException{
 45852  		RespMetadata: v,
 45853  	}
 45854  }
 45855  
 45856  // Code returns the exception type name.
 45857  func (s *InvalidStateTransitionException) Code() string {
 45858  	return "InvalidStateTransitionException"
 45859  }
 45860  
 45861  // Message returns the exception's message.
 45862  func (s *InvalidStateTransitionException) Message() string {
 45863  	if s.Message_ != nil {
 45864  		return *s.Message_
 45865  	}
 45866  	return ""
 45867  }
 45868  
 45869  // OrigErr always returns nil, satisfies awserr.Error interface.
 45870  func (s *InvalidStateTransitionException) OrigErr() error {
 45871  	return nil
 45872  }
 45873  
 45874  func (s *InvalidStateTransitionException) Error() string {
 45875  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 45876  }
 45877  
 45878  // Status code returns the HTTP status code for the request's response error.
 45879  func (s *InvalidStateTransitionException) StatusCode() int {
 45880  	return s.RespMetadata.StatusCode
 45881  }
 45882  
 45883  // RequestID returns the service's response RequestID for request.
 45884  func (s *InvalidStateTransitionException) RequestID() string {
 45885  	return s.RespMetadata.RequestID
 45886  }
 45887  
 45888  // Sends message data to an IoT Analytics channel.
 45889  type IotAnalyticsAction struct {
 45890  	_ struct{} `type:"structure"`
 45891  
 45892  	// Whether to process the action as a batch. The default value is false.
 45893  	//
 45894  	// When batchMode is true and the rule SQL statement evaluates to an Array,
 45895  	// each Array element is delivered as a separate message when passed by BatchPutMessage
 45896  	// (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html)
 45897  	// to the IoT Analytics channel. The resulting array can't have more than 100
 45898  	// messages.
 45899  	BatchMode *bool `locationName:"batchMode" type:"boolean"`
 45900  
 45901  	// (deprecated) The ARN of the IoT Analytics channel to which message data will
 45902  	// be sent.
 45903  	ChannelArn *string `locationName:"channelArn" type:"string"`
 45904  
 45905  	// The name of the IoT Analytics channel to which message data will be sent.
 45906  	ChannelName *string `locationName:"channelName" type:"string"`
 45907  
 45908  	// The ARN of the role which has a policy that grants IoT Analytics permission
 45909  	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
 45910  	RoleArn *string `locationName:"roleArn" type:"string"`
 45911  }
 45912  
 45913  // String returns the string representation.
 45914  //
 45915  // API parameter values that are decorated as "sensitive" in the API will not
 45916  // be included in the string output. The member name will be present, but the
 45917  // value will be replaced with "sensitive".
 45918  func (s IotAnalyticsAction) String() string {
 45919  	return awsutil.Prettify(s)
 45920  }
 45921  
 45922  // GoString returns the string representation.
 45923  //
 45924  // API parameter values that are decorated as "sensitive" in the API will not
 45925  // be included in the string output. The member name will be present, but the
 45926  // value will be replaced with "sensitive".
 45927  func (s IotAnalyticsAction) GoString() string {
 45928  	return s.String()
 45929  }
 45930  
 45931  // SetBatchMode sets the BatchMode field's value.
 45932  func (s *IotAnalyticsAction) SetBatchMode(v bool) *IotAnalyticsAction {
 45933  	s.BatchMode = &v
 45934  	return s
 45935  }
 45936  
 45937  // SetChannelArn sets the ChannelArn field's value.
 45938  func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
 45939  	s.ChannelArn = &v
 45940  	return s
 45941  }
 45942  
 45943  // SetChannelName sets the ChannelName field's value.
 45944  func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
 45945  	s.ChannelName = &v
 45946  	return s
 45947  }
 45948  
 45949  // SetRoleArn sets the RoleArn field's value.
 45950  func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
 45951  	s.RoleArn = &v
 45952  	return s
 45953  }
 45954  
 45955  // Sends an input to an IoT Events detector.
 45956  type IotEventsAction struct {
 45957  	_ struct{} `type:"structure"`
 45958  
 45959  	// Whether to process the event actions as a batch. The default value is false.
 45960  	//
 45961  	// When batchMode is true, you can't specify a messageId.
 45962  	//
 45963  	// When batchMode is true and the rule SQL statement evaluates to an Array,
 45964  	// each Array element is treated as a separate message when it's sent to IoT
 45965  	// Events by calling BatchPutMessage (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html).
 45966  	// The resulting array can't have more than 10 messages.
 45967  	BatchMode *bool `locationName:"batchMode" type:"boolean"`
 45968  
 45969  	// The name of the IoT Events input.
 45970  	//
 45971  	// InputName is a required field
 45972  	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
 45973  
 45974  	// The ID of the message. The default messageId is a new UUID value.
 45975  	//
 45976  	// When batchMode is true, you can't specify a messageId--a new UUID value will
 45977  	// be assigned.
 45978  	//
 45979  	// Assign a value to this property to ensure that only one input (message) with
 45980  	// a given messageId will be processed by an IoT Events detector.
 45981  	MessageId *string `locationName:"messageId" type:"string"`
 45982  
 45983  	// The ARN of the role that grants IoT permission to send an input to an IoT
 45984  	// Events detector. ("Action":"iotevents:BatchPutMessage").
 45985  	//
 45986  	// RoleArn is a required field
 45987  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 45988  }
 45989  
 45990  // String returns the string representation.
 45991  //
 45992  // API parameter values that are decorated as "sensitive" in the API will not
 45993  // be included in the string output. The member name will be present, but the
 45994  // value will be replaced with "sensitive".
 45995  func (s IotEventsAction) String() string {
 45996  	return awsutil.Prettify(s)
 45997  }
 45998  
 45999  // GoString returns the string representation.
 46000  //
 46001  // API parameter values that are decorated as "sensitive" in the API will not
 46002  // be included in the string output. The member name will be present, but the
 46003  // value will be replaced with "sensitive".
 46004  func (s IotEventsAction) GoString() string {
 46005  	return s.String()
 46006  }
 46007  
 46008  // Validate inspects the fields of the type to determine if they are valid.
 46009  func (s *IotEventsAction) Validate() error {
 46010  	invalidParams := request.ErrInvalidParams{Context: "IotEventsAction"}
 46011  	if s.InputName == nil {
 46012  		invalidParams.Add(request.NewErrParamRequired("InputName"))
 46013  	}
 46014  	if s.InputName != nil && len(*s.InputName) < 1 {
 46015  		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
 46016  	}
 46017  	if s.RoleArn == nil {
 46018  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 46019  	}
 46020  
 46021  	if invalidParams.Len() > 0 {
 46022  		return invalidParams
 46023  	}
 46024  	return nil
 46025  }
 46026  
 46027  // SetBatchMode sets the BatchMode field's value.
 46028  func (s *IotEventsAction) SetBatchMode(v bool) *IotEventsAction {
 46029  	s.BatchMode = &v
 46030  	return s
 46031  }
 46032  
 46033  // SetInputName sets the InputName field's value.
 46034  func (s *IotEventsAction) SetInputName(v string) *IotEventsAction {
 46035  	s.InputName = &v
 46036  	return s
 46037  }
 46038  
 46039  // SetMessageId sets the MessageId field's value.
 46040  func (s *IotEventsAction) SetMessageId(v string) *IotEventsAction {
 46041  	s.MessageId = &v
 46042  	return s
 46043  }
 46044  
 46045  // SetRoleArn sets the RoleArn field's value.
 46046  func (s *IotEventsAction) SetRoleArn(v string) *IotEventsAction {
 46047  	s.RoleArn = &v
 46048  	return s
 46049  }
 46050  
 46051  // Describes an action to send data from an MQTT message that triggered the
 46052  // rule to IoT SiteWise asset properties.
 46053  type IotSiteWiseAction struct {
 46054  	_ struct{} `type:"structure"`
 46055  
 46056  	// A list of asset property value entries.
 46057  	//
 46058  	// PutAssetPropertyValueEntries is a required field
 46059  	PutAssetPropertyValueEntries []*PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"`
 46060  
 46061  	// The ARN of the role that grants IoT permission to send an asset property
 46062  	// value to IoT SiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
 46063  	// The trust policy can restrict access to specific asset hierarchy paths.
 46064  	//
 46065  	// RoleArn is a required field
 46066  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 46067  }
 46068  
 46069  // String returns the string representation.
 46070  //
 46071  // API parameter values that are decorated as "sensitive" in the API will not
 46072  // be included in the string output. The member name will be present, but the
 46073  // value will be replaced with "sensitive".
 46074  func (s IotSiteWiseAction) String() string {
 46075  	return awsutil.Prettify(s)
 46076  }
 46077  
 46078  // GoString returns the string representation.
 46079  //
 46080  // API parameter values that are decorated as "sensitive" in the API will not
 46081  // be included in the string output. The member name will be present, but the
 46082  // value will be replaced with "sensitive".
 46083  func (s IotSiteWiseAction) GoString() string {
 46084  	return s.String()
 46085  }
 46086  
 46087  // Validate inspects the fields of the type to determine if they are valid.
 46088  func (s *IotSiteWiseAction) Validate() error {
 46089  	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
 46090  	if s.PutAssetPropertyValueEntries == nil {
 46091  		invalidParams.Add(request.NewErrParamRequired("PutAssetPropertyValueEntries"))
 46092  	}
 46093  	if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 {
 46094  		invalidParams.Add(request.NewErrParamMinLen("PutAssetPropertyValueEntries", 1))
 46095  	}
 46096  	if s.RoleArn == nil {
 46097  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 46098  	}
 46099  	if s.PutAssetPropertyValueEntries != nil {
 46100  		for i, v := range s.PutAssetPropertyValueEntries {
 46101  			if v == nil {
 46102  				continue
 46103  			}
 46104  			if err := v.Validate(); err != nil {
 46105  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(request.ErrInvalidParams))
 46106  			}
 46107  		}
 46108  	}
 46109  
 46110  	if invalidParams.Len() > 0 {
 46111  		return invalidParams
 46112  	}
 46113  	return nil
 46114  }
 46115  
 46116  // SetPutAssetPropertyValueEntries sets the PutAssetPropertyValueEntries field's value.
 46117  func (s *IotSiteWiseAction) SetPutAssetPropertyValueEntries(v []*PutAssetPropertyValueEntry) *IotSiteWiseAction {
 46118  	s.PutAssetPropertyValueEntries = v
 46119  	return s
 46120  }
 46121  
 46122  // SetRoleArn sets the RoleArn field's value.
 46123  func (s *IotSiteWiseAction) SetRoleArn(v string) *IotSiteWiseAction {
 46124  	s.RoleArn = &v
 46125  	return s
 46126  }
 46127  
 46128  // The Job object contains details about a job.
 46129  type Job struct {
 46130  	_ struct{} `type:"structure"`
 46131  
 46132  	// Configuration for criteria to abort the job.
 46133  	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
 46134  
 46135  	// If the job was updated, describes the reason for the update.
 46136  	Comment *string `locationName:"comment" type:"string"`
 46137  
 46138  	// The time, in seconds since the epoch, when the job was completed.
 46139  	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
 46140  
 46141  	// The time, in seconds since the epoch, when the job was created.
 46142  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 46143  
 46144  	// A short text description of the job.
 46145  	Description *string `locationName:"description" type:"string"`
 46146  
 46147  	// Will be true if the job was canceled with the optional force parameter set
 46148  	// to true.
 46149  	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
 46150  
 46151  	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
 46152  	JobArn *string `locationName:"jobArn" type:"string"`
 46153  
 46154  	// Allows you to create a staged rollout of a job.
 46155  	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
 46156  
 46157  	// The unique identifier you assigned to this job when it was created.
 46158  	JobId *string `locationName:"jobId" min:"1" type:"string"`
 46159  
 46160  	// Details about the job process.
 46161  	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
 46162  
 46163  	// The ARN of the job template used to create the job.
 46164  	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
 46165  
 46166  	// The time, in seconds since the epoch, when the job was last updated.
 46167  	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
 46168  
 46169  	// The namespace used to indicate that a job is a customer-managed job.
 46170  	//
 46171  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 46172  	// sends jobs notifications to MQTT topics that contain the value in the following
 46173  	// format.
 46174  	//
 46175  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 46176  	//
 46177  	// The namespaceId feature is in public preview.
 46178  	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
 46179  
 46180  	// Configuration for pre-signed S3 URLs.
 46181  	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
 46182  
 46183  	// If the job was updated, provides the reason code for the update.
 46184  	ReasonCode *string `locationName:"reasonCode" type:"string"`
 46185  
 46186  	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS
 46187  	// or COMPLETED.
 46188  	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
 46189  
 46190  	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
 46191  	// after all those things specified as targets have completed the job (SNAPSHOT).
 46192  	// If continuous, the job may also be run on a thing when a change is detected
 46193  	// in a target. For example, a job will run on a device when the thing representing
 46194  	// the device is added to a target group, even after the job was completed by
 46195  	// all things originally in the group.
 46196  	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
 46197  
 46198  	// A list of IoT things and thing groups to which the job should be sent.
 46199  	Targets []*string `locationName:"targets" min:"1" type:"list"`
 46200  
 46201  	// Specifies the amount of time each device has to finish its execution of the
 46202  	// job. A timer is started when the job execution status is set to IN_PROGRESS.
 46203  	// If the job execution status is not set to another terminal state before the
 46204  	// timer expires, it will be automatically set to TIMED_OUT.
 46205  	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
 46206  }
 46207  
 46208  // String returns the string representation.
 46209  //
 46210  // API parameter values that are decorated as "sensitive" in the API will not
 46211  // be included in the string output. The member name will be present, but the
 46212  // value will be replaced with "sensitive".
 46213  func (s Job) String() string {
 46214  	return awsutil.Prettify(s)
 46215  }
 46216  
 46217  // GoString returns the string representation.
 46218  //
 46219  // API parameter values that are decorated as "sensitive" in the API will not
 46220  // be included in the string output. The member name will be present, but the
 46221  // value will be replaced with "sensitive".
 46222  func (s Job) GoString() string {
 46223  	return s.String()
 46224  }
 46225  
 46226  // SetAbortConfig sets the AbortConfig field's value.
 46227  func (s *Job) SetAbortConfig(v *AbortConfig) *Job {
 46228  	s.AbortConfig = v
 46229  	return s
 46230  }
 46231  
 46232  // SetComment sets the Comment field's value.
 46233  func (s *Job) SetComment(v string) *Job {
 46234  	s.Comment = &v
 46235  	return s
 46236  }
 46237  
 46238  // SetCompletedAt sets the CompletedAt field's value.
 46239  func (s *Job) SetCompletedAt(v time.Time) *Job {
 46240  	s.CompletedAt = &v
 46241  	return s
 46242  }
 46243  
 46244  // SetCreatedAt sets the CreatedAt field's value.
 46245  func (s *Job) SetCreatedAt(v time.Time) *Job {
 46246  	s.CreatedAt = &v
 46247  	return s
 46248  }
 46249  
 46250  // SetDescription sets the Description field's value.
 46251  func (s *Job) SetDescription(v string) *Job {
 46252  	s.Description = &v
 46253  	return s
 46254  }
 46255  
 46256  // SetForceCanceled sets the ForceCanceled field's value.
 46257  func (s *Job) SetForceCanceled(v bool) *Job {
 46258  	s.ForceCanceled = &v
 46259  	return s
 46260  }
 46261  
 46262  // SetJobArn sets the JobArn field's value.
 46263  func (s *Job) SetJobArn(v string) *Job {
 46264  	s.JobArn = &v
 46265  	return s
 46266  }
 46267  
 46268  // SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
 46269  func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
 46270  	s.JobExecutionsRolloutConfig = v
 46271  	return s
 46272  }
 46273  
 46274  // SetJobId sets the JobId field's value.
 46275  func (s *Job) SetJobId(v string) *Job {
 46276  	s.JobId = &v
 46277  	return s
 46278  }
 46279  
 46280  // SetJobProcessDetails sets the JobProcessDetails field's value.
 46281  func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
 46282  	s.JobProcessDetails = v
 46283  	return s
 46284  }
 46285  
 46286  // SetJobTemplateArn sets the JobTemplateArn field's value.
 46287  func (s *Job) SetJobTemplateArn(v string) *Job {
 46288  	s.JobTemplateArn = &v
 46289  	return s
 46290  }
 46291  
 46292  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 46293  func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
 46294  	s.LastUpdatedAt = &v
 46295  	return s
 46296  }
 46297  
 46298  // SetNamespaceId sets the NamespaceId field's value.
 46299  func (s *Job) SetNamespaceId(v string) *Job {
 46300  	s.NamespaceId = &v
 46301  	return s
 46302  }
 46303  
 46304  // SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
 46305  func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
 46306  	s.PresignedUrlConfig = v
 46307  	return s
 46308  }
 46309  
 46310  // SetReasonCode sets the ReasonCode field's value.
 46311  func (s *Job) SetReasonCode(v string) *Job {
 46312  	s.ReasonCode = &v
 46313  	return s
 46314  }
 46315  
 46316  // SetStatus sets the Status field's value.
 46317  func (s *Job) SetStatus(v string) *Job {
 46318  	s.Status = &v
 46319  	return s
 46320  }
 46321  
 46322  // SetTargetSelection sets the TargetSelection field's value.
 46323  func (s *Job) SetTargetSelection(v string) *Job {
 46324  	s.TargetSelection = &v
 46325  	return s
 46326  }
 46327  
 46328  // SetTargets sets the Targets field's value.
 46329  func (s *Job) SetTargets(v []*string) *Job {
 46330  	s.Targets = v
 46331  	return s
 46332  }
 46333  
 46334  // SetTimeoutConfig sets the TimeoutConfig field's value.
 46335  func (s *Job) SetTimeoutConfig(v *TimeoutConfig) *Job {
 46336  	s.TimeoutConfig = v
 46337  	return s
 46338  }
 46339  
 46340  // The job execution object represents the execution of a job on a particular
 46341  // device.
 46342  type JobExecution struct {
 46343  	_ struct{} `type:"structure"`
 46344  
 46345  	// The estimated number of seconds that remain before the job execution status
 46346  	// will be changed to TIMED_OUT. The timeout interval can be anywhere between
 46347  	// 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout
 46348  	// can occur up to 60 seconds later than the estimated duration. This value
 46349  	// will not be included if the job execution has reached a terminal status.
 46350  	ApproximateSecondsBeforeTimedOut *int64 `locationName:"approximateSecondsBeforeTimedOut" type:"long"`
 46351  
 46352  	// A string (consisting of the digits "0" through "9") which identifies this
 46353  	// particular job execution on this particular device. It can be used in commands
 46354  	// which return or update job execution information.
 46355  	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
 46356  
 46357  	// Will be true if the job execution was canceled with the optional force parameter
 46358  	// set to true.
 46359  	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
 46360  
 46361  	// The unique identifier you assigned to the job when it was created.
 46362  	JobId *string `locationName:"jobId" min:"1" type:"string"`
 46363  
 46364  	// The time, in seconds since the epoch, when the job execution was last updated.
 46365  	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
 46366  
 46367  	// The time, in seconds since the epoch, when the job execution was queued.
 46368  	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
 46369  
 46370  	// The time, in seconds since the epoch, when the job execution started.
 46371  	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
 46372  
 46373  	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
 46374  	// TIMED_OUT, CANCELED, or REJECTED).
 46375  	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
 46376  
 46377  	// A collection of name/value pairs that describe the status of the job execution.
 46378  	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
 46379  
 46380  	// The ARN of the thing on which the job execution is running.
 46381  	ThingArn *string `locationName:"thingArn" type:"string"`
 46382  
 46383  	// The version of the job execution. Job execution versions are incremented
 46384  	// each time they are updated by a device.
 46385  	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
 46386  }
 46387  
 46388  // String returns the string representation.
 46389  //
 46390  // API parameter values that are decorated as "sensitive" in the API will not
 46391  // be included in the string output. The member name will be present, but the
 46392  // value will be replaced with "sensitive".
 46393  func (s JobExecution) String() string {
 46394  	return awsutil.Prettify(s)
 46395  }
 46396  
 46397  // GoString returns the string representation.
 46398  //
 46399  // API parameter values that are decorated as "sensitive" in the API will not
 46400  // be included in the string output. The member name will be present, but the
 46401  // value will be replaced with "sensitive".
 46402  func (s JobExecution) GoString() string {
 46403  	return s.String()
 46404  }
 46405  
 46406  // SetApproximateSecondsBeforeTimedOut sets the ApproximateSecondsBeforeTimedOut field's value.
 46407  func (s *JobExecution) SetApproximateSecondsBeforeTimedOut(v int64) *JobExecution {
 46408  	s.ApproximateSecondsBeforeTimedOut = &v
 46409  	return s
 46410  }
 46411  
 46412  // SetExecutionNumber sets the ExecutionNumber field's value.
 46413  func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
 46414  	s.ExecutionNumber = &v
 46415  	return s
 46416  }
 46417  
 46418  // SetForceCanceled sets the ForceCanceled field's value.
 46419  func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
 46420  	s.ForceCanceled = &v
 46421  	return s
 46422  }
 46423  
 46424  // SetJobId sets the JobId field's value.
 46425  func (s *JobExecution) SetJobId(v string) *JobExecution {
 46426  	s.JobId = &v
 46427  	return s
 46428  }
 46429  
 46430  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 46431  func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
 46432  	s.LastUpdatedAt = &v
 46433  	return s
 46434  }
 46435  
 46436  // SetQueuedAt sets the QueuedAt field's value.
 46437  func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
 46438  	s.QueuedAt = &v
 46439  	return s
 46440  }
 46441  
 46442  // SetStartedAt sets the StartedAt field's value.
 46443  func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
 46444  	s.StartedAt = &v
 46445  	return s
 46446  }
 46447  
 46448  // SetStatus sets the Status field's value.
 46449  func (s *JobExecution) SetStatus(v string) *JobExecution {
 46450  	s.Status = &v
 46451  	return s
 46452  }
 46453  
 46454  // SetStatusDetails sets the StatusDetails field's value.
 46455  func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
 46456  	s.StatusDetails = v
 46457  	return s
 46458  }
 46459  
 46460  // SetThingArn sets the ThingArn field's value.
 46461  func (s *JobExecution) SetThingArn(v string) *JobExecution {
 46462  	s.ThingArn = &v
 46463  	return s
 46464  }
 46465  
 46466  // SetVersionNumber sets the VersionNumber field's value.
 46467  func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
 46468  	s.VersionNumber = &v
 46469  	return s
 46470  }
 46471  
 46472  // Details of the job execution status.
 46473  type JobExecutionStatusDetails struct {
 46474  	_ struct{} `type:"structure"`
 46475  
 46476  	// The job execution status.
 46477  	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
 46478  }
 46479  
 46480  // String returns the string representation.
 46481  //
 46482  // API parameter values that are decorated as "sensitive" in the API will not
 46483  // be included in the string output. The member name will be present, but the
 46484  // value will be replaced with "sensitive".
 46485  func (s JobExecutionStatusDetails) String() string {
 46486  	return awsutil.Prettify(s)
 46487  }
 46488  
 46489  // GoString returns the string representation.
 46490  //
 46491  // API parameter values that are decorated as "sensitive" in the API will not
 46492  // be included in the string output. The member name will be present, but the
 46493  // value will be replaced with "sensitive".
 46494  func (s JobExecutionStatusDetails) GoString() string {
 46495  	return s.String()
 46496  }
 46497  
 46498  // SetDetailsMap sets the DetailsMap field's value.
 46499  func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
 46500  	s.DetailsMap = v
 46501  	return s
 46502  }
 46503  
 46504  // The job execution summary.
 46505  type JobExecutionSummary struct {
 46506  	_ struct{} `type:"structure"`
 46507  
 46508  	// A string (consisting of the digits "0" through "9") which identifies this
 46509  	// particular job execution on this particular device. It can be used later
 46510  	// in commands which return or update job execution information.
 46511  	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
 46512  
 46513  	// The time, in seconds since the epoch, when the job execution was last updated.
 46514  	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
 46515  
 46516  	// The time, in seconds since the epoch, when the job execution was queued.
 46517  	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
 46518  
 46519  	// The time, in seconds since the epoch, when the job execution started.
 46520  	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
 46521  
 46522  	// The status of the job execution.
 46523  	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
 46524  }
 46525  
 46526  // String returns the string representation.
 46527  //
 46528  // API parameter values that are decorated as "sensitive" in the API will not
 46529  // be included in the string output. The member name will be present, but the
 46530  // value will be replaced with "sensitive".
 46531  func (s JobExecutionSummary) String() string {
 46532  	return awsutil.Prettify(s)
 46533  }
 46534  
 46535  // GoString returns the string representation.
 46536  //
 46537  // API parameter values that are decorated as "sensitive" in the API will not
 46538  // be included in the string output. The member name will be present, but the
 46539  // value will be replaced with "sensitive".
 46540  func (s JobExecutionSummary) GoString() string {
 46541  	return s.String()
 46542  }
 46543  
 46544  // SetExecutionNumber sets the ExecutionNumber field's value.
 46545  func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
 46546  	s.ExecutionNumber = &v
 46547  	return s
 46548  }
 46549  
 46550  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 46551  func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
 46552  	s.LastUpdatedAt = &v
 46553  	return s
 46554  }
 46555  
 46556  // SetQueuedAt sets the QueuedAt field's value.
 46557  func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
 46558  	s.QueuedAt = &v
 46559  	return s
 46560  }
 46561  
 46562  // SetStartedAt sets the StartedAt field's value.
 46563  func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
 46564  	s.StartedAt = &v
 46565  	return s
 46566  }
 46567  
 46568  // SetStatus sets the Status field's value.
 46569  func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
 46570  	s.Status = &v
 46571  	return s
 46572  }
 46573  
 46574  // Contains a summary of information about job executions for a specific job.
 46575  type JobExecutionSummaryForJob struct {
 46576  	_ struct{} `type:"structure"`
 46577  
 46578  	// Contains a subset of information about a job execution.
 46579  	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
 46580  
 46581  	// The ARN of the thing on which the job execution is running.
 46582  	ThingArn *string `locationName:"thingArn" type:"string"`
 46583  }
 46584  
 46585  // String returns the string representation.
 46586  //
 46587  // API parameter values that are decorated as "sensitive" in the API will not
 46588  // be included in the string output. The member name will be present, but the
 46589  // value will be replaced with "sensitive".
 46590  func (s JobExecutionSummaryForJob) String() string {
 46591  	return awsutil.Prettify(s)
 46592  }
 46593  
 46594  // GoString returns the string representation.
 46595  //
 46596  // API parameter values that are decorated as "sensitive" in the API will not
 46597  // be included in the string output. The member name will be present, but the
 46598  // value will be replaced with "sensitive".
 46599  func (s JobExecutionSummaryForJob) GoString() string {
 46600  	return s.String()
 46601  }
 46602  
 46603  // SetJobExecutionSummary sets the JobExecutionSummary field's value.
 46604  func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
 46605  	s.JobExecutionSummary = v
 46606  	return s
 46607  }
 46608  
 46609  // SetThingArn sets the ThingArn field's value.
 46610  func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
 46611  	s.ThingArn = &v
 46612  	return s
 46613  }
 46614  
 46615  // The job execution summary for a thing.
 46616  type JobExecutionSummaryForThing struct {
 46617  	_ struct{} `type:"structure"`
 46618  
 46619  	// Contains a subset of information about a job execution.
 46620  	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
 46621  
 46622  	// The unique identifier you assigned to this job when it was created.
 46623  	JobId *string `locationName:"jobId" min:"1" type:"string"`
 46624  }
 46625  
 46626  // String returns the string representation.
 46627  //
 46628  // API parameter values that are decorated as "sensitive" in the API will not
 46629  // be included in the string output. The member name will be present, but the
 46630  // value will be replaced with "sensitive".
 46631  func (s JobExecutionSummaryForThing) String() string {
 46632  	return awsutil.Prettify(s)
 46633  }
 46634  
 46635  // GoString returns the string representation.
 46636  //
 46637  // API parameter values that are decorated as "sensitive" in the API will not
 46638  // be included in the string output. The member name will be present, but the
 46639  // value will be replaced with "sensitive".
 46640  func (s JobExecutionSummaryForThing) GoString() string {
 46641  	return s.String()
 46642  }
 46643  
 46644  // SetJobExecutionSummary sets the JobExecutionSummary field's value.
 46645  func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
 46646  	s.JobExecutionSummary = v
 46647  	return s
 46648  }
 46649  
 46650  // SetJobId sets the JobId field's value.
 46651  func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
 46652  	s.JobId = &v
 46653  	return s
 46654  }
 46655  
 46656  // Allows you to create a staged rollout of a job.
 46657  type JobExecutionsRolloutConfig struct {
 46658  	_ struct{} `type:"structure"`
 46659  
 46660  	// The rate of increase for a job rollout. This parameter allows you to define
 46661  	// an exponential rate for a job rollout.
 46662  	ExponentialRate *ExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
 46663  
 46664  	// The maximum number of things that will be notified of a pending job, per
 46665  	// minute. This parameter allows you to create a staged rollout.
 46666  	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
 46667  }
 46668  
 46669  // String returns the string representation.
 46670  //
 46671  // API parameter values that are decorated as "sensitive" in the API will not
 46672  // be included in the string output. The member name will be present, but the
 46673  // value will be replaced with "sensitive".
 46674  func (s JobExecutionsRolloutConfig) String() string {
 46675  	return awsutil.Prettify(s)
 46676  }
 46677  
 46678  // GoString returns the string representation.
 46679  //
 46680  // API parameter values that are decorated as "sensitive" in the API will not
 46681  // be included in the string output. The member name will be present, but the
 46682  // value will be replaced with "sensitive".
 46683  func (s JobExecutionsRolloutConfig) GoString() string {
 46684  	return s.String()
 46685  }
 46686  
 46687  // Validate inspects the fields of the type to determine if they are valid.
 46688  func (s *JobExecutionsRolloutConfig) Validate() error {
 46689  	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
 46690  	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
 46691  		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
 46692  	}
 46693  	if s.ExponentialRate != nil {
 46694  		if err := s.ExponentialRate.Validate(); err != nil {
 46695  			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
 46696  		}
 46697  	}
 46698  
 46699  	if invalidParams.Len() > 0 {
 46700  		return invalidParams
 46701  	}
 46702  	return nil
 46703  }
 46704  
 46705  // SetExponentialRate sets the ExponentialRate field's value.
 46706  func (s *JobExecutionsRolloutConfig) SetExponentialRate(v *ExponentialRolloutRate) *JobExecutionsRolloutConfig {
 46707  	s.ExponentialRate = v
 46708  	return s
 46709  }
 46710  
 46711  // SetMaximumPerMinute sets the MaximumPerMinute field's value.
 46712  func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
 46713  	s.MaximumPerMinute = &v
 46714  	return s
 46715  }
 46716  
 46717  // The job process details.
 46718  type JobProcessDetails struct {
 46719  	_ struct{} `type:"structure"`
 46720  
 46721  	// The number of things that cancelled the job.
 46722  	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
 46723  
 46724  	// The number of things that failed executing the job.
 46725  	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
 46726  
 46727  	// The number of things currently executing the job.
 46728  	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
 46729  
 46730  	// The number of things that are awaiting execution of the job.
 46731  	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
 46732  
 46733  	// The number of things that rejected the job.
 46734  	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
 46735  
 46736  	// The number of things that are no longer scheduled to execute the job because
 46737  	// they have been deleted or have been removed from the group that was a target
 46738  	// of the job.
 46739  	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
 46740  
 46741  	// The number of things which successfully completed the job.
 46742  	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
 46743  
 46744  	// The number of things whose job execution status is TIMED_OUT.
 46745  	NumberOfTimedOutThings *int64 `locationName:"numberOfTimedOutThings" type:"integer"`
 46746  
 46747  	// The target devices to which the job execution is being rolled out. This value
 46748  	// will be null after the job execution has finished rolling out to all the
 46749  	// target devices.
 46750  	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
 46751  }
 46752  
 46753  // String returns the string representation.
 46754  //
 46755  // API parameter values that are decorated as "sensitive" in the API will not
 46756  // be included in the string output. The member name will be present, but the
 46757  // value will be replaced with "sensitive".
 46758  func (s JobProcessDetails) String() string {
 46759  	return awsutil.Prettify(s)
 46760  }
 46761  
 46762  // GoString returns the string representation.
 46763  //
 46764  // API parameter values that are decorated as "sensitive" in the API will not
 46765  // be included in the string output. The member name will be present, but the
 46766  // value will be replaced with "sensitive".
 46767  func (s JobProcessDetails) GoString() string {
 46768  	return s.String()
 46769  }
 46770  
 46771  // SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
 46772  func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
 46773  	s.NumberOfCanceledThings = &v
 46774  	return s
 46775  }
 46776  
 46777  // SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
 46778  func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
 46779  	s.NumberOfFailedThings = &v
 46780  	return s
 46781  }
 46782  
 46783  // SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
 46784  func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
 46785  	s.NumberOfInProgressThings = &v
 46786  	return s
 46787  }
 46788  
 46789  // SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
 46790  func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
 46791  	s.NumberOfQueuedThings = &v
 46792  	return s
 46793  }
 46794  
 46795  // SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
 46796  func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
 46797  	s.NumberOfRejectedThings = &v
 46798  	return s
 46799  }
 46800  
 46801  // SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
 46802  func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
 46803  	s.NumberOfRemovedThings = &v
 46804  	return s
 46805  }
 46806  
 46807  // SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
 46808  func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
 46809  	s.NumberOfSucceededThings = &v
 46810  	return s
 46811  }
 46812  
 46813  // SetNumberOfTimedOutThings sets the NumberOfTimedOutThings field's value.
 46814  func (s *JobProcessDetails) SetNumberOfTimedOutThings(v int64) *JobProcessDetails {
 46815  	s.NumberOfTimedOutThings = &v
 46816  	return s
 46817  }
 46818  
 46819  // SetProcessingTargets sets the ProcessingTargets field's value.
 46820  func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
 46821  	s.ProcessingTargets = v
 46822  	return s
 46823  }
 46824  
 46825  // The job summary.
 46826  type JobSummary struct {
 46827  	_ struct{} `type:"structure"`
 46828  
 46829  	// The time, in seconds since the epoch, when the job completed.
 46830  	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
 46831  
 46832  	// The time, in seconds since the epoch, when the job was created.
 46833  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 46834  
 46835  	// The job ARN.
 46836  	JobArn *string `locationName:"jobArn" type:"string"`
 46837  
 46838  	// The unique identifier you assigned to this job when it was created.
 46839  	JobId *string `locationName:"jobId" min:"1" type:"string"`
 46840  
 46841  	// The time, in seconds since the epoch, when the job was last updated.
 46842  	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
 46843  
 46844  	// The job summary status.
 46845  	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
 46846  
 46847  	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
 46848  	// after all those things specified as targets have completed the job (SNAPSHOT).
 46849  	// If continuous, the job may also be run on a thing when a change is detected
 46850  	// in a target. For example, a job will run on a thing when the thing is added
 46851  	// to a target group, even after the job was completed by all things originally
 46852  	// in the group.
 46853  	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
 46854  
 46855  	// The ID of the thing group.
 46856  	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
 46857  }
 46858  
 46859  // String returns the string representation.
 46860  //
 46861  // API parameter values that are decorated as "sensitive" in the API will not
 46862  // be included in the string output. The member name will be present, but the
 46863  // value will be replaced with "sensitive".
 46864  func (s JobSummary) String() string {
 46865  	return awsutil.Prettify(s)
 46866  }
 46867  
 46868  // GoString returns the string representation.
 46869  //
 46870  // API parameter values that are decorated as "sensitive" in the API will not
 46871  // be included in the string output. The member name will be present, but the
 46872  // value will be replaced with "sensitive".
 46873  func (s JobSummary) GoString() string {
 46874  	return s.String()
 46875  }
 46876  
 46877  // SetCompletedAt sets the CompletedAt field's value.
 46878  func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
 46879  	s.CompletedAt = &v
 46880  	return s
 46881  }
 46882  
 46883  // SetCreatedAt sets the CreatedAt field's value.
 46884  func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
 46885  	s.CreatedAt = &v
 46886  	return s
 46887  }
 46888  
 46889  // SetJobArn sets the JobArn field's value.
 46890  func (s *JobSummary) SetJobArn(v string) *JobSummary {
 46891  	s.JobArn = &v
 46892  	return s
 46893  }
 46894  
 46895  // SetJobId sets the JobId field's value.
 46896  func (s *JobSummary) SetJobId(v string) *JobSummary {
 46897  	s.JobId = &v
 46898  	return s
 46899  }
 46900  
 46901  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 46902  func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
 46903  	s.LastUpdatedAt = &v
 46904  	return s
 46905  }
 46906  
 46907  // SetStatus sets the Status field's value.
 46908  func (s *JobSummary) SetStatus(v string) *JobSummary {
 46909  	s.Status = &v
 46910  	return s
 46911  }
 46912  
 46913  // SetTargetSelection sets the TargetSelection field's value.
 46914  func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
 46915  	s.TargetSelection = &v
 46916  	return s
 46917  }
 46918  
 46919  // SetThingGroupId sets the ThingGroupId field's value.
 46920  func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
 46921  	s.ThingGroupId = &v
 46922  	return s
 46923  }
 46924  
 46925  // An object that contains information about the job template.
 46926  type JobTemplateSummary struct {
 46927  	_ struct{} `type:"structure"`
 46928  
 46929  	// The time, in seconds since the epoch, when the job template was created.
 46930  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 46931  
 46932  	// A description of the job template.
 46933  	Description *string `locationName:"description" type:"string"`
 46934  
 46935  	// The ARN of the job template.
 46936  	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
 46937  
 46938  	// The unique identifier of the job template.
 46939  	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
 46940  }
 46941  
 46942  // String returns the string representation.
 46943  //
 46944  // API parameter values that are decorated as "sensitive" in the API will not
 46945  // be included in the string output. The member name will be present, but the
 46946  // value will be replaced with "sensitive".
 46947  func (s JobTemplateSummary) String() string {
 46948  	return awsutil.Prettify(s)
 46949  }
 46950  
 46951  // GoString returns the string representation.
 46952  //
 46953  // API parameter values that are decorated as "sensitive" in the API will not
 46954  // be included in the string output. The member name will be present, but the
 46955  // value will be replaced with "sensitive".
 46956  func (s JobTemplateSummary) GoString() string {
 46957  	return s.String()
 46958  }
 46959  
 46960  // SetCreatedAt sets the CreatedAt field's value.
 46961  func (s *JobTemplateSummary) SetCreatedAt(v time.Time) *JobTemplateSummary {
 46962  	s.CreatedAt = &v
 46963  	return s
 46964  }
 46965  
 46966  // SetDescription sets the Description field's value.
 46967  func (s *JobTemplateSummary) SetDescription(v string) *JobTemplateSummary {
 46968  	s.Description = &v
 46969  	return s
 46970  }
 46971  
 46972  // SetJobTemplateArn sets the JobTemplateArn field's value.
 46973  func (s *JobTemplateSummary) SetJobTemplateArn(v string) *JobTemplateSummary {
 46974  	s.JobTemplateArn = &v
 46975  	return s
 46976  }
 46977  
 46978  // SetJobTemplateId sets the JobTemplateId field's value.
 46979  func (s *JobTemplateSummary) SetJobTemplateId(v string) *JobTemplateSummary {
 46980  	s.JobTemplateId = &v
 46981  	return s
 46982  }
 46983  
 46984  // Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
 46985  // or self-managed Apache Kafka cluster.
 46986  type KafkaAction struct {
 46987  	_ struct{} `type:"structure"`
 46988  
 46989  	// Properties of the Apache Kafka producer client.
 46990  	//
 46991  	// ClientProperties is a required field
 46992  	ClientProperties map[string]*string `locationName:"clientProperties" type:"map" required:"true"`
 46993  
 46994  	// The ARN of Kafka action's VPC TopicRuleDestination.
 46995  	//
 46996  	// DestinationArn is a required field
 46997  	DestinationArn *string `locationName:"destinationArn" type:"string" required:"true"`
 46998  
 46999  	// The Kafka message key.
 47000  	Key *string `locationName:"key" type:"string"`
 47001  
 47002  	// The Kafka message partition.
 47003  	Partition *string `locationName:"partition" type:"string"`
 47004  
 47005  	// The Kafka topic for messages to be sent to the Kafka broker.
 47006  	//
 47007  	// Topic is a required field
 47008  	Topic *string `locationName:"topic" type:"string" required:"true"`
 47009  }
 47010  
 47011  // String returns the string representation.
 47012  //
 47013  // API parameter values that are decorated as "sensitive" in the API will not
 47014  // be included in the string output. The member name will be present, but the
 47015  // value will be replaced with "sensitive".
 47016  func (s KafkaAction) String() string {
 47017  	return awsutil.Prettify(s)
 47018  }
 47019  
 47020  // GoString returns the string representation.
 47021  //
 47022  // API parameter values that are decorated as "sensitive" in the API will not
 47023  // be included in the string output. The member name will be present, but the
 47024  // value will be replaced with "sensitive".
 47025  func (s KafkaAction) GoString() string {
 47026  	return s.String()
 47027  }
 47028  
 47029  // Validate inspects the fields of the type to determine if they are valid.
 47030  func (s *KafkaAction) Validate() error {
 47031  	invalidParams := request.ErrInvalidParams{Context: "KafkaAction"}
 47032  	if s.ClientProperties == nil {
 47033  		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
 47034  	}
 47035  	if s.DestinationArn == nil {
 47036  		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
 47037  	}
 47038  	if s.Topic == nil {
 47039  		invalidParams.Add(request.NewErrParamRequired("Topic"))
 47040  	}
 47041  
 47042  	if invalidParams.Len() > 0 {
 47043  		return invalidParams
 47044  	}
 47045  	return nil
 47046  }
 47047  
 47048  // SetClientProperties sets the ClientProperties field's value.
 47049  func (s *KafkaAction) SetClientProperties(v map[string]*string) *KafkaAction {
 47050  	s.ClientProperties = v
 47051  	return s
 47052  }
 47053  
 47054  // SetDestinationArn sets the DestinationArn field's value.
 47055  func (s *KafkaAction) SetDestinationArn(v string) *KafkaAction {
 47056  	s.DestinationArn = &v
 47057  	return s
 47058  }
 47059  
 47060  // SetKey sets the Key field's value.
 47061  func (s *KafkaAction) SetKey(v string) *KafkaAction {
 47062  	s.Key = &v
 47063  	return s
 47064  }
 47065  
 47066  // SetPartition sets the Partition field's value.
 47067  func (s *KafkaAction) SetPartition(v string) *KafkaAction {
 47068  	s.Partition = &v
 47069  	return s
 47070  }
 47071  
 47072  // SetTopic sets the Topic field's value.
 47073  func (s *KafkaAction) SetTopic(v string) *KafkaAction {
 47074  	s.Topic = &v
 47075  	return s
 47076  }
 47077  
 47078  // Describes a key pair.
 47079  type KeyPair struct {
 47080  	_ struct{} `type:"structure"`
 47081  
 47082  	// The private key.
 47083  	//
 47084  	// PrivateKey is a sensitive parameter and its value will be
 47085  	// replaced with "sensitive" in string returned by KeyPair's
 47086  	// String and GoString methods.
 47087  	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
 47088  
 47089  	// The public key.
 47090  	PublicKey *string `min:"1" type:"string"`
 47091  }
 47092  
 47093  // String returns the string representation.
 47094  //
 47095  // API parameter values that are decorated as "sensitive" in the API will not
 47096  // be included in the string output. The member name will be present, but the
 47097  // value will be replaced with "sensitive".
 47098  func (s KeyPair) String() string {
 47099  	return awsutil.Prettify(s)
 47100  }
 47101  
 47102  // GoString returns the string representation.
 47103  //
 47104  // API parameter values that are decorated as "sensitive" in the API will not
 47105  // be included in the string output. The member name will be present, but the
 47106  // value will be replaced with "sensitive".
 47107  func (s KeyPair) GoString() string {
 47108  	return s.String()
 47109  }
 47110  
 47111  // SetPrivateKey sets the PrivateKey field's value.
 47112  func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
 47113  	s.PrivateKey = &v
 47114  	return s
 47115  }
 47116  
 47117  // SetPublicKey sets the PublicKey field's value.
 47118  func (s *KeyPair) SetPublicKey(v string) *KeyPair {
 47119  	s.PublicKey = &v
 47120  	return s
 47121  }
 47122  
 47123  // Describes an action to write data to an Amazon Kinesis stream.
 47124  type KinesisAction struct {
 47125  	_ struct{} `type:"structure"`
 47126  
 47127  	// The partition key.
 47128  	PartitionKey *string `locationName:"partitionKey" type:"string"`
 47129  
 47130  	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
 47131  	//
 47132  	// RoleArn is a required field
 47133  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 47134  
 47135  	// The name of the Amazon Kinesis stream.
 47136  	//
 47137  	// StreamName is a required field
 47138  	StreamName *string `locationName:"streamName" type:"string" required:"true"`
 47139  }
 47140  
 47141  // String returns the string representation.
 47142  //
 47143  // API parameter values that are decorated as "sensitive" in the API will not
 47144  // be included in the string output. The member name will be present, but the
 47145  // value will be replaced with "sensitive".
 47146  func (s KinesisAction) String() string {
 47147  	return awsutil.Prettify(s)
 47148  }
 47149  
 47150  // GoString returns the string representation.
 47151  //
 47152  // API parameter values that are decorated as "sensitive" in the API will not
 47153  // be included in the string output. The member name will be present, but the
 47154  // value will be replaced with "sensitive".
 47155  func (s KinesisAction) GoString() string {
 47156  	return s.String()
 47157  }
 47158  
 47159  // Validate inspects the fields of the type to determine if they are valid.
 47160  func (s *KinesisAction) Validate() error {
 47161  	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
 47162  	if s.RoleArn == nil {
 47163  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 47164  	}
 47165  	if s.StreamName == nil {
 47166  		invalidParams.Add(request.NewErrParamRequired("StreamName"))
 47167  	}
 47168  
 47169  	if invalidParams.Len() > 0 {
 47170  		return invalidParams
 47171  	}
 47172  	return nil
 47173  }
 47174  
 47175  // SetPartitionKey sets the PartitionKey field's value.
 47176  func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
 47177  	s.PartitionKey = &v
 47178  	return s
 47179  }
 47180  
 47181  // SetRoleArn sets the RoleArn field's value.
 47182  func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
 47183  	s.RoleArn = &v
 47184  	return s
 47185  }
 47186  
 47187  // SetStreamName sets the StreamName field's value.
 47188  func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
 47189  	s.StreamName = &v
 47190  	return s
 47191  }
 47192  
 47193  // Describes an action to invoke a Lambda function.
 47194  type LambdaAction struct {
 47195  	_ struct{} `type:"structure"`
 47196  
 47197  	// The ARN of the Lambda function.
 47198  	//
 47199  	// FunctionArn is a required field
 47200  	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
 47201  }
 47202  
 47203  // String returns the string representation.
 47204  //
 47205  // API parameter values that are decorated as "sensitive" in the API will not
 47206  // be included in the string output. The member name will be present, but the
 47207  // value will be replaced with "sensitive".
 47208  func (s LambdaAction) String() string {
 47209  	return awsutil.Prettify(s)
 47210  }
 47211  
 47212  // GoString returns the string representation.
 47213  //
 47214  // API parameter values that are decorated as "sensitive" in the API will not
 47215  // be included in the string output. The member name will be present, but the
 47216  // value will be replaced with "sensitive".
 47217  func (s LambdaAction) GoString() string {
 47218  	return s.String()
 47219  }
 47220  
 47221  // Validate inspects the fields of the type to determine if they are valid.
 47222  func (s *LambdaAction) Validate() error {
 47223  	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
 47224  	if s.FunctionArn == nil {
 47225  		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
 47226  	}
 47227  
 47228  	if invalidParams.Len() > 0 {
 47229  		return invalidParams
 47230  	}
 47231  	return nil
 47232  }
 47233  
 47234  // SetFunctionArn sets the FunctionArn field's value.
 47235  func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
 47236  	s.FunctionArn = &v
 47237  	return s
 47238  }
 47239  
 47240  // A limit has been exceeded.
 47241  type LimitExceededException struct {
 47242  	_            struct{}                  `type:"structure"`
 47243  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 47244  
 47245  	// The message for the exception.
 47246  	Message_ *string `locationName:"message" type:"string"`
 47247  }
 47248  
 47249  // String returns the string representation.
 47250  //
 47251  // API parameter values that are decorated as "sensitive" in the API will not
 47252  // be included in the string output. The member name will be present, but the
 47253  // value will be replaced with "sensitive".
 47254  func (s LimitExceededException) String() string {
 47255  	return awsutil.Prettify(s)
 47256  }
 47257  
 47258  // GoString returns the string representation.
 47259  //
 47260  // API parameter values that are decorated as "sensitive" in the API will not
 47261  // be included in the string output. The member name will be present, but the
 47262  // value will be replaced with "sensitive".
 47263  func (s LimitExceededException) GoString() string {
 47264  	return s.String()
 47265  }
 47266  
 47267  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
 47268  	return &LimitExceededException{
 47269  		RespMetadata: v,
 47270  	}
 47271  }
 47272  
 47273  // Code returns the exception type name.
 47274  func (s *LimitExceededException) Code() string {
 47275  	return "LimitExceededException"
 47276  }
 47277  
 47278  // Message returns the exception's message.
 47279  func (s *LimitExceededException) Message() string {
 47280  	if s.Message_ != nil {
 47281  		return *s.Message_
 47282  	}
 47283  	return ""
 47284  }
 47285  
 47286  // OrigErr always returns nil, satisfies awserr.Error interface.
 47287  func (s *LimitExceededException) OrigErr() error {
 47288  	return nil
 47289  }
 47290  
 47291  func (s *LimitExceededException) Error() string {
 47292  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 47293  }
 47294  
 47295  // Status code returns the HTTP status code for the request's response error.
 47296  func (s *LimitExceededException) StatusCode() int {
 47297  	return s.RespMetadata.StatusCode
 47298  }
 47299  
 47300  // RequestID returns the service's response RequestID for request.
 47301  func (s *LimitExceededException) RequestID() string {
 47302  	return s.RespMetadata.RequestID
 47303  }
 47304  
 47305  type ListActiveViolationsInput struct {
 47306  	_ struct{} `type:"structure" nopayload:"true"`
 47307  
 47308  	// The criteria for a behavior.
 47309  	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
 47310  
 47311  	// A list of all suppressed alerts.
 47312  	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
 47313  
 47314  	// The maximum number of results to return at one time.
 47315  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 47316  
 47317  	// The token for the next set of results.
 47318  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 47319  
 47320  	// The name of the Device Defender security profile for which violations are
 47321  	// listed.
 47322  	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
 47323  
 47324  	// The name of the thing whose active violations are listed.
 47325  	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
 47326  
 47327  	// The verification state of the violation (detect alarm).
 47328  	VerificationState *string `location:"querystring" locationName:"verificationState" type:"string" enum:"VerificationState"`
 47329  }
 47330  
 47331  // String returns the string representation.
 47332  //
 47333  // API parameter values that are decorated as "sensitive" in the API will not
 47334  // be included in the string output. The member name will be present, but the
 47335  // value will be replaced with "sensitive".
 47336  func (s ListActiveViolationsInput) String() string {
 47337  	return awsutil.Prettify(s)
 47338  }
 47339  
 47340  // GoString returns the string representation.
 47341  //
 47342  // API parameter values that are decorated as "sensitive" in the API will not
 47343  // be included in the string output. The member name will be present, but the
 47344  // value will be replaced with "sensitive".
 47345  func (s ListActiveViolationsInput) GoString() string {
 47346  	return s.String()
 47347  }
 47348  
 47349  // Validate inspects the fields of the type to determine if they are valid.
 47350  func (s *ListActiveViolationsInput) Validate() error {
 47351  	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
 47352  	if s.MaxResults != nil && *s.MaxResults < 1 {
 47353  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 47354  	}
 47355  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 47356  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 47357  	}
 47358  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 47359  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 47360  	}
 47361  
 47362  	if invalidParams.Len() > 0 {
 47363  		return invalidParams
 47364  	}
 47365  	return nil
 47366  }
 47367  
 47368  // SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
 47369  func (s *ListActiveViolationsInput) SetBehaviorCriteriaType(v string) *ListActiveViolationsInput {
 47370  	s.BehaviorCriteriaType = &v
 47371  	return s
 47372  }
 47373  
 47374  // SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
 47375  func (s *ListActiveViolationsInput) SetListSuppressedAlerts(v bool) *ListActiveViolationsInput {
 47376  	s.ListSuppressedAlerts = &v
 47377  	return s
 47378  }
 47379  
 47380  // SetMaxResults sets the MaxResults field's value.
 47381  func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
 47382  	s.MaxResults = &v
 47383  	return s
 47384  }
 47385  
 47386  // SetNextToken sets the NextToken field's value.
 47387  func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
 47388  	s.NextToken = &v
 47389  	return s
 47390  }
 47391  
 47392  // SetSecurityProfileName sets the SecurityProfileName field's value.
 47393  func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
 47394  	s.SecurityProfileName = &v
 47395  	return s
 47396  }
 47397  
 47398  // SetThingName sets the ThingName field's value.
 47399  func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
 47400  	s.ThingName = &v
 47401  	return s
 47402  }
 47403  
 47404  // SetVerificationState sets the VerificationState field's value.
 47405  func (s *ListActiveViolationsInput) SetVerificationState(v string) *ListActiveViolationsInput {
 47406  	s.VerificationState = &v
 47407  	return s
 47408  }
 47409  
 47410  type ListActiveViolationsOutput struct {
 47411  	_ struct{} `type:"structure"`
 47412  
 47413  	// The list of active violations.
 47414  	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
 47415  
 47416  	// A token that can be used to retrieve the next set of results, or null if
 47417  	// there are no additional results.
 47418  	NextToken *string `locationName:"nextToken" type:"string"`
 47419  }
 47420  
 47421  // String returns the string representation.
 47422  //
 47423  // API parameter values that are decorated as "sensitive" in the API will not
 47424  // be included in the string output. The member name will be present, but the
 47425  // value will be replaced with "sensitive".
 47426  func (s ListActiveViolationsOutput) String() string {
 47427  	return awsutil.Prettify(s)
 47428  }
 47429  
 47430  // GoString returns the string representation.
 47431  //
 47432  // API parameter values that are decorated as "sensitive" in the API will not
 47433  // be included in the string output. The member name will be present, but the
 47434  // value will be replaced with "sensitive".
 47435  func (s ListActiveViolationsOutput) GoString() string {
 47436  	return s.String()
 47437  }
 47438  
 47439  // SetActiveViolations sets the ActiveViolations field's value.
 47440  func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
 47441  	s.ActiveViolations = v
 47442  	return s
 47443  }
 47444  
 47445  // SetNextToken sets the NextToken field's value.
 47446  func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
 47447  	s.NextToken = &v
 47448  	return s
 47449  }
 47450  
 47451  type ListAttachedPoliciesInput struct {
 47452  	_ struct{} `type:"structure" nopayload:"true"`
 47453  
 47454  	// The token to retrieve the next set of results.
 47455  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 47456  
 47457  	// The maximum number of results to be returned per request.
 47458  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 47459  
 47460  	// When true, recursively list attached policies.
 47461  	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
 47462  
 47463  	// The group or principal for which the policies will be listed. Valid principals
 47464  	// are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId), thingGroupArn
 47465  	// (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId (region:id).
 47466  	//
 47467  	// Target is a required field
 47468  	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
 47469  }
 47470  
 47471  // String returns the string representation.
 47472  //
 47473  // API parameter values that are decorated as "sensitive" in the API will not
 47474  // be included in the string output. The member name will be present, but the
 47475  // value will be replaced with "sensitive".
 47476  func (s ListAttachedPoliciesInput) String() string {
 47477  	return awsutil.Prettify(s)
 47478  }
 47479  
 47480  // GoString returns the string representation.
 47481  //
 47482  // API parameter values that are decorated as "sensitive" in the API will not
 47483  // be included in the string output. The member name will be present, but the
 47484  // value will be replaced with "sensitive".
 47485  func (s ListAttachedPoliciesInput) GoString() string {
 47486  	return s.String()
 47487  }
 47488  
 47489  // Validate inspects the fields of the type to determine if they are valid.
 47490  func (s *ListAttachedPoliciesInput) Validate() error {
 47491  	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
 47492  	if s.PageSize != nil && *s.PageSize < 1 {
 47493  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 47494  	}
 47495  	if s.Target == nil {
 47496  		invalidParams.Add(request.NewErrParamRequired("Target"))
 47497  	}
 47498  	if s.Target != nil && len(*s.Target) < 1 {
 47499  		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
 47500  	}
 47501  
 47502  	if invalidParams.Len() > 0 {
 47503  		return invalidParams
 47504  	}
 47505  	return nil
 47506  }
 47507  
 47508  // SetMarker sets the Marker field's value.
 47509  func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
 47510  	s.Marker = &v
 47511  	return s
 47512  }
 47513  
 47514  // SetPageSize sets the PageSize field's value.
 47515  func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
 47516  	s.PageSize = &v
 47517  	return s
 47518  }
 47519  
 47520  // SetRecursive sets the Recursive field's value.
 47521  func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
 47522  	s.Recursive = &v
 47523  	return s
 47524  }
 47525  
 47526  // SetTarget sets the Target field's value.
 47527  func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
 47528  	s.Target = &v
 47529  	return s
 47530  }
 47531  
 47532  type ListAttachedPoliciesOutput struct {
 47533  	_ struct{} `type:"structure"`
 47534  
 47535  	// The token to retrieve the next set of results, or ``null`` if there are no
 47536  	// more results.
 47537  	NextMarker *string `locationName:"nextMarker" type:"string"`
 47538  
 47539  	// The policies.
 47540  	Policies []*Policy `locationName:"policies" type:"list"`
 47541  }
 47542  
 47543  // String returns the string representation.
 47544  //
 47545  // API parameter values that are decorated as "sensitive" in the API will not
 47546  // be included in the string output. The member name will be present, but the
 47547  // value will be replaced with "sensitive".
 47548  func (s ListAttachedPoliciesOutput) String() string {
 47549  	return awsutil.Prettify(s)
 47550  }
 47551  
 47552  // GoString returns the string representation.
 47553  //
 47554  // API parameter values that are decorated as "sensitive" in the API will not
 47555  // be included in the string output. The member name will be present, but the
 47556  // value will be replaced with "sensitive".
 47557  func (s ListAttachedPoliciesOutput) GoString() string {
 47558  	return s.String()
 47559  }
 47560  
 47561  // SetNextMarker sets the NextMarker field's value.
 47562  func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
 47563  	s.NextMarker = &v
 47564  	return s
 47565  }
 47566  
 47567  // SetPolicies sets the Policies field's value.
 47568  func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
 47569  	s.Policies = v
 47570  	return s
 47571  }
 47572  
 47573  type ListAuditFindingsInput struct {
 47574  	_ struct{} `type:"structure"`
 47575  
 47576  	// A filter to limit results to the findings for the specified audit check.
 47577  	CheckName *string `locationName:"checkName" type:"string"`
 47578  
 47579  	// A filter to limit results to those found before the specified time. You must
 47580  	// specify either the startTime and endTime or the taskId, but not both.
 47581  	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
 47582  
 47583  	// Boolean flag indicating whether only the suppressed findings or the unsuppressed
 47584  	// findings should be listed. If this parameter isn't provided, the response
 47585  	// will list both suppressed and unsuppressed findings.
 47586  	ListSuppressedFindings *bool `locationName:"listSuppressedFindings" type:"boolean"`
 47587  
 47588  	// The maximum number of results to return at one time. The default is 25.
 47589  	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
 47590  
 47591  	// The token for the next set of results.
 47592  	NextToken *string `locationName:"nextToken" type:"string"`
 47593  
 47594  	// Information identifying the noncompliant resource.
 47595  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
 47596  
 47597  	// A filter to limit results to those found after the specified time. You must
 47598  	// specify either the startTime and endTime or the taskId, but not both.
 47599  	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
 47600  
 47601  	// A filter to limit results to the audit with the specified ID. You must specify
 47602  	// either the taskId or the startTime and endTime, but not both.
 47603  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 47604  }
 47605  
 47606  // String returns the string representation.
 47607  //
 47608  // API parameter values that are decorated as "sensitive" in the API will not
 47609  // be included in the string output. The member name will be present, but the
 47610  // value will be replaced with "sensitive".
 47611  func (s ListAuditFindingsInput) String() string {
 47612  	return awsutil.Prettify(s)
 47613  }
 47614  
 47615  // GoString returns the string representation.
 47616  //
 47617  // API parameter values that are decorated as "sensitive" in the API will not
 47618  // be included in the string output. The member name will be present, but the
 47619  // value will be replaced with "sensitive".
 47620  func (s ListAuditFindingsInput) GoString() string {
 47621  	return s.String()
 47622  }
 47623  
 47624  // Validate inspects the fields of the type to determine if they are valid.
 47625  func (s *ListAuditFindingsInput) Validate() error {
 47626  	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
 47627  	if s.MaxResults != nil && *s.MaxResults < 1 {
 47628  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 47629  	}
 47630  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 47631  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 47632  	}
 47633  	if s.ResourceIdentifier != nil {
 47634  		if err := s.ResourceIdentifier.Validate(); err != nil {
 47635  			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
 47636  		}
 47637  	}
 47638  
 47639  	if invalidParams.Len() > 0 {
 47640  		return invalidParams
 47641  	}
 47642  	return nil
 47643  }
 47644  
 47645  // SetCheckName sets the CheckName field's value.
 47646  func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
 47647  	s.CheckName = &v
 47648  	return s
 47649  }
 47650  
 47651  // SetEndTime sets the EndTime field's value.
 47652  func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
 47653  	s.EndTime = &v
 47654  	return s
 47655  }
 47656  
 47657  // SetListSuppressedFindings sets the ListSuppressedFindings field's value.
 47658  func (s *ListAuditFindingsInput) SetListSuppressedFindings(v bool) *ListAuditFindingsInput {
 47659  	s.ListSuppressedFindings = &v
 47660  	return s
 47661  }
 47662  
 47663  // SetMaxResults sets the MaxResults field's value.
 47664  func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
 47665  	s.MaxResults = &v
 47666  	return s
 47667  }
 47668  
 47669  // SetNextToken sets the NextToken field's value.
 47670  func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
 47671  	s.NextToken = &v
 47672  	return s
 47673  }
 47674  
 47675  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 47676  func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
 47677  	s.ResourceIdentifier = v
 47678  	return s
 47679  }
 47680  
 47681  // SetStartTime sets the StartTime field's value.
 47682  func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
 47683  	s.StartTime = &v
 47684  	return s
 47685  }
 47686  
 47687  // SetTaskId sets the TaskId field's value.
 47688  func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
 47689  	s.TaskId = &v
 47690  	return s
 47691  }
 47692  
 47693  type ListAuditFindingsOutput struct {
 47694  	_ struct{} `type:"structure"`
 47695  
 47696  	// The findings (results) of the audit.
 47697  	Findings []*AuditFinding `locationName:"findings" type:"list"`
 47698  
 47699  	// A token that can be used to retrieve the next set of results, or null if
 47700  	// there are no additional results.
 47701  	NextToken *string `locationName:"nextToken" type:"string"`
 47702  }
 47703  
 47704  // String returns the string representation.
 47705  //
 47706  // API parameter values that are decorated as "sensitive" in the API will not
 47707  // be included in the string output. The member name will be present, but the
 47708  // value will be replaced with "sensitive".
 47709  func (s ListAuditFindingsOutput) String() string {
 47710  	return awsutil.Prettify(s)
 47711  }
 47712  
 47713  // GoString returns the string representation.
 47714  //
 47715  // API parameter values that are decorated as "sensitive" in the API will not
 47716  // be included in the string output. The member name will be present, but the
 47717  // value will be replaced with "sensitive".
 47718  func (s ListAuditFindingsOutput) GoString() string {
 47719  	return s.String()
 47720  }
 47721  
 47722  // SetFindings sets the Findings field's value.
 47723  func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
 47724  	s.Findings = v
 47725  	return s
 47726  }
 47727  
 47728  // SetNextToken sets the NextToken field's value.
 47729  func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
 47730  	s.NextToken = &v
 47731  	return s
 47732  }
 47733  
 47734  type ListAuditMitigationActionsExecutionsInput struct {
 47735  	_ struct{} `type:"structure" nopayload:"true"`
 47736  
 47737  	// Specify this filter to limit results to those with a specific status.
 47738  	ActionStatus *string `location:"querystring" locationName:"actionStatus" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
 47739  
 47740  	// Specify this filter to limit results to those that were applied to a specific
 47741  	// audit finding.
 47742  	//
 47743  	// FindingId is a required field
 47744  	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string" required:"true"`
 47745  
 47746  	// The maximum number of results to return at one time. The default is 25.
 47747  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 47748  
 47749  	// The token for the next set of results.
 47750  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 47751  
 47752  	// Specify this filter to limit results to actions for a specific audit mitigation
 47753  	// actions task.
 47754  	//
 47755  	// TaskId is a required field
 47756  	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string" required:"true"`
 47757  }
 47758  
 47759  // String returns the string representation.
 47760  //
 47761  // API parameter values that are decorated as "sensitive" in the API will not
 47762  // be included in the string output. The member name will be present, but the
 47763  // value will be replaced with "sensitive".
 47764  func (s ListAuditMitigationActionsExecutionsInput) String() string {
 47765  	return awsutil.Prettify(s)
 47766  }
 47767  
 47768  // GoString returns the string representation.
 47769  //
 47770  // API parameter values that are decorated as "sensitive" in the API will not
 47771  // be included in the string output. The member name will be present, but the
 47772  // value will be replaced with "sensitive".
 47773  func (s ListAuditMitigationActionsExecutionsInput) GoString() string {
 47774  	return s.String()
 47775  }
 47776  
 47777  // Validate inspects the fields of the type to determine if they are valid.
 47778  func (s *ListAuditMitigationActionsExecutionsInput) Validate() error {
 47779  	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsExecutionsInput"}
 47780  	if s.FindingId == nil {
 47781  		invalidParams.Add(request.NewErrParamRequired("FindingId"))
 47782  	}
 47783  	if s.FindingId != nil && len(*s.FindingId) < 1 {
 47784  		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
 47785  	}
 47786  	if s.MaxResults != nil && *s.MaxResults < 1 {
 47787  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 47788  	}
 47789  	if s.TaskId == nil {
 47790  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 47791  	}
 47792  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 47793  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 47794  	}
 47795  
 47796  	if invalidParams.Len() > 0 {
 47797  		return invalidParams
 47798  	}
 47799  	return nil
 47800  }
 47801  
 47802  // SetActionStatus sets the ActionStatus field's value.
 47803  func (s *ListAuditMitigationActionsExecutionsInput) SetActionStatus(v string) *ListAuditMitigationActionsExecutionsInput {
 47804  	s.ActionStatus = &v
 47805  	return s
 47806  }
 47807  
 47808  // SetFindingId sets the FindingId field's value.
 47809  func (s *ListAuditMitigationActionsExecutionsInput) SetFindingId(v string) *ListAuditMitigationActionsExecutionsInput {
 47810  	s.FindingId = &v
 47811  	return s
 47812  }
 47813  
 47814  // SetMaxResults sets the MaxResults field's value.
 47815  func (s *ListAuditMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListAuditMitigationActionsExecutionsInput {
 47816  	s.MaxResults = &v
 47817  	return s
 47818  }
 47819  
 47820  // SetNextToken sets the NextToken field's value.
 47821  func (s *ListAuditMitigationActionsExecutionsInput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsInput {
 47822  	s.NextToken = &v
 47823  	return s
 47824  }
 47825  
 47826  // SetTaskId sets the TaskId field's value.
 47827  func (s *ListAuditMitigationActionsExecutionsInput) SetTaskId(v string) *ListAuditMitigationActionsExecutionsInput {
 47828  	s.TaskId = &v
 47829  	return s
 47830  }
 47831  
 47832  type ListAuditMitigationActionsExecutionsOutput struct {
 47833  	_ struct{} `type:"structure"`
 47834  
 47835  	// A set of task execution results based on the input parameters. Details include
 47836  	// the mitigation action applied, start time, and task status.
 47837  	ActionsExecutions []*AuditMitigationActionExecutionMetadata `locationName:"actionsExecutions" type:"list"`
 47838  
 47839  	// The token for the next set of results.
 47840  	NextToken *string `locationName:"nextToken" type:"string"`
 47841  }
 47842  
 47843  // String returns the string representation.
 47844  //
 47845  // API parameter values that are decorated as "sensitive" in the API will not
 47846  // be included in the string output. The member name will be present, but the
 47847  // value will be replaced with "sensitive".
 47848  func (s ListAuditMitigationActionsExecutionsOutput) String() string {
 47849  	return awsutil.Prettify(s)
 47850  }
 47851  
 47852  // GoString returns the string representation.
 47853  //
 47854  // API parameter values that are decorated as "sensitive" in the API will not
 47855  // be included in the string output. The member name will be present, but the
 47856  // value will be replaced with "sensitive".
 47857  func (s ListAuditMitigationActionsExecutionsOutput) GoString() string {
 47858  	return s.String()
 47859  }
 47860  
 47861  // SetActionsExecutions sets the ActionsExecutions field's value.
 47862  func (s *ListAuditMitigationActionsExecutionsOutput) SetActionsExecutions(v []*AuditMitigationActionExecutionMetadata) *ListAuditMitigationActionsExecutionsOutput {
 47863  	s.ActionsExecutions = v
 47864  	return s
 47865  }
 47866  
 47867  // SetNextToken sets the NextToken field's value.
 47868  func (s *ListAuditMitigationActionsExecutionsOutput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsOutput {
 47869  	s.NextToken = &v
 47870  	return s
 47871  }
 47872  
 47873  type ListAuditMitigationActionsTasksInput struct {
 47874  	_ struct{} `type:"structure" nopayload:"true"`
 47875  
 47876  	// Specify this filter to limit results to tasks that were applied to results
 47877  	// for a specific audit.
 47878  	AuditTaskId *string `location:"querystring" locationName:"auditTaskId" min:"1" type:"string"`
 47879  
 47880  	// Specify this filter to limit results to tasks that were completed or canceled
 47881  	// on or before a specific date and time.
 47882  	//
 47883  	// EndTime is a required field
 47884  	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
 47885  
 47886  	// Specify this filter to limit results to tasks that were applied to a specific
 47887  	// audit finding.
 47888  	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string"`
 47889  
 47890  	// The maximum number of results to return at one time. The default is 25.
 47891  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 47892  
 47893  	// The token for the next set of results.
 47894  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 47895  
 47896  	// Specify this filter to limit results to tasks that began on or after a specific
 47897  	// date and time.
 47898  	//
 47899  	// StartTime is a required field
 47900  	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
 47901  
 47902  	// Specify this filter to limit results to tasks that are in a specific state.
 47903  	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
 47904  }
 47905  
 47906  // String returns the string representation.
 47907  //
 47908  // API parameter values that are decorated as "sensitive" in the API will not
 47909  // be included in the string output. The member name will be present, but the
 47910  // value will be replaced with "sensitive".
 47911  func (s ListAuditMitigationActionsTasksInput) String() string {
 47912  	return awsutil.Prettify(s)
 47913  }
 47914  
 47915  // GoString returns the string representation.
 47916  //
 47917  // API parameter values that are decorated as "sensitive" in the API will not
 47918  // be included in the string output. The member name will be present, but the
 47919  // value will be replaced with "sensitive".
 47920  func (s ListAuditMitigationActionsTasksInput) GoString() string {
 47921  	return s.String()
 47922  }
 47923  
 47924  // Validate inspects the fields of the type to determine if they are valid.
 47925  func (s *ListAuditMitigationActionsTasksInput) Validate() error {
 47926  	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsTasksInput"}
 47927  	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
 47928  		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
 47929  	}
 47930  	if s.EndTime == nil {
 47931  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 47932  	}
 47933  	if s.FindingId != nil && len(*s.FindingId) < 1 {
 47934  		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
 47935  	}
 47936  	if s.MaxResults != nil && *s.MaxResults < 1 {
 47937  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 47938  	}
 47939  	if s.StartTime == nil {
 47940  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 47941  	}
 47942  
 47943  	if invalidParams.Len() > 0 {
 47944  		return invalidParams
 47945  	}
 47946  	return nil
 47947  }
 47948  
 47949  // SetAuditTaskId sets the AuditTaskId field's value.
 47950  func (s *ListAuditMitigationActionsTasksInput) SetAuditTaskId(v string) *ListAuditMitigationActionsTasksInput {
 47951  	s.AuditTaskId = &v
 47952  	return s
 47953  }
 47954  
 47955  // SetEndTime sets the EndTime field's value.
 47956  func (s *ListAuditMitigationActionsTasksInput) SetEndTime(v time.Time) *ListAuditMitigationActionsTasksInput {
 47957  	s.EndTime = &v
 47958  	return s
 47959  }
 47960  
 47961  // SetFindingId sets the FindingId field's value.
 47962  func (s *ListAuditMitigationActionsTasksInput) SetFindingId(v string) *ListAuditMitigationActionsTasksInput {
 47963  	s.FindingId = &v
 47964  	return s
 47965  }
 47966  
 47967  // SetMaxResults sets the MaxResults field's value.
 47968  func (s *ListAuditMitigationActionsTasksInput) SetMaxResults(v int64) *ListAuditMitigationActionsTasksInput {
 47969  	s.MaxResults = &v
 47970  	return s
 47971  }
 47972  
 47973  // SetNextToken sets the NextToken field's value.
 47974  func (s *ListAuditMitigationActionsTasksInput) SetNextToken(v string) *ListAuditMitigationActionsTasksInput {
 47975  	s.NextToken = &v
 47976  	return s
 47977  }
 47978  
 47979  // SetStartTime sets the StartTime field's value.
 47980  func (s *ListAuditMitigationActionsTasksInput) SetStartTime(v time.Time) *ListAuditMitigationActionsTasksInput {
 47981  	s.StartTime = &v
 47982  	return s
 47983  }
 47984  
 47985  // SetTaskStatus sets the TaskStatus field's value.
 47986  func (s *ListAuditMitigationActionsTasksInput) SetTaskStatus(v string) *ListAuditMitigationActionsTasksInput {
 47987  	s.TaskStatus = &v
 47988  	return s
 47989  }
 47990  
 47991  type ListAuditMitigationActionsTasksOutput struct {
 47992  	_ struct{} `type:"structure"`
 47993  
 47994  	// The token for the next set of results.
 47995  	NextToken *string `locationName:"nextToken" type:"string"`
 47996  
 47997  	// The collection of audit mitigation tasks that matched the filter criteria.
 47998  	Tasks []*AuditMitigationActionsTaskMetadata `locationName:"tasks" type:"list"`
 47999  }
 48000  
 48001  // String returns the string representation.
 48002  //
 48003  // API parameter values that are decorated as "sensitive" in the API will not
 48004  // be included in the string output. The member name will be present, but the
 48005  // value will be replaced with "sensitive".
 48006  func (s ListAuditMitigationActionsTasksOutput) String() string {
 48007  	return awsutil.Prettify(s)
 48008  }
 48009  
 48010  // GoString returns the string representation.
 48011  //
 48012  // API parameter values that are decorated as "sensitive" in the API will not
 48013  // be included in the string output. The member name will be present, but the
 48014  // value will be replaced with "sensitive".
 48015  func (s ListAuditMitigationActionsTasksOutput) GoString() string {
 48016  	return s.String()
 48017  }
 48018  
 48019  // SetNextToken sets the NextToken field's value.
 48020  func (s *ListAuditMitigationActionsTasksOutput) SetNextToken(v string) *ListAuditMitigationActionsTasksOutput {
 48021  	s.NextToken = &v
 48022  	return s
 48023  }
 48024  
 48025  // SetTasks sets the Tasks field's value.
 48026  func (s *ListAuditMitigationActionsTasksOutput) SetTasks(v []*AuditMitigationActionsTaskMetadata) *ListAuditMitigationActionsTasksOutput {
 48027  	s.Tasks = v
 48028  	return s
 48029  }
 48030  
 48031  type ListAuditSuppressionsInput struct {
 48032  	_ struct{} `type:"structure"`
 48033  
 48034  	// Determines whether suppressions are listed in ascending order by expiration
 48035  	// date or not. If parameter isn't provided, ascendingOrder=true.
 48036  	AscendingOrder *bool `locationName:"ascendingOrder" type:"boolean"`
 48037  
 48038  	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
 48039  	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 48040  	// to select which checks are enabled.)
 48041  	CheckName *string `locationName:"checkName" type:"string"`
 48042  
 48043  	// The maximum number of results to return at one time. The default is 25.
 48044  	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
 48045  
 48046  	// The token for the next set of results.
 48047  	NextToken *string `locationName:"nextToken" type:"string"`
 48048  
 48049  	// Information that identifies the noncompliant resource.
 48050  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
 48051  }
 48052  
 48053  // String returns the string representation.
 48054  //
 48055  // API parameter values that are decorated as "sensitive" in the API will not
 48056  // be included in the string output. The member name will be present, but the
 48057  // value will be replaced with "sensitive".
 48058  func (s ListAuditSuppressionsInput) String() string {
 48059  	return awsutil.Prettify(s)
 48060  }
 48061  
 48062  // GoString returns the string representation.
 48063  //
 48064  // API parameter values that are decorated as "sensitive" in the API will not
 48065  // be included in the string output. The member name will be present, but the
 48066  // value will be replaced with "sensitive".
 48067  func (s ListAuditSuppressionsInput) GoString() string {
 48068  	return s.String()
 48069  }
 48070  
 48071  // Validate inspects the fields of the type to determine if they are valid.
 48072  func (s *ListAuditSuppressionsInput) Validate() error {
 48073  	invalidParams := request.ErrInvalidParams{Context: "ListAuditSuppressionsInput"}
 48074  	if s.MaxResults != nil && *s.MaxResults < 1 {
 48075  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 48076  	}
 48077  	if s.ResourceIdentifier != nil {
 48078  		if err := s.ResourceIdentifier.Validate(); err != nil {
 48079  			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
 48080  		}
 48081  	}
 48082  
 48083  	if invalidParams.Len() > 0 {
 48084  		return invalidParams
 48085  	}
 48086  	return nil
 48087  }
 48088  
 48089  // SetAscendingOrder sets the AscendingOrder field's value.
 48090  func (s *ListAuditSuppressionsInput) SetAscendingOrder(v bool) *ListAuditSuppressionsInput {
 48091  	s.AscendingOrder = &v
 48092  	return s
 48093  }
 48094  
 48095  // SetCheckName sets the CheckName field's value.
 48096  func (s *ListAuditSuppressionsInput) SetCheckName(v string) *ListAuditSuppressionsInput {
 48097  	s.CheckName = &v
 48098  	return s
 48099  }
 48100  
 48101  // SetMaxResults sets the MaxResults field's value.
 48102  func (s *ListAuditSuppressionsInput) SetMaxResults(v int64) *ListAuditSuppressionsInput {
 48103  	s.MaxResults = &v
 48104  	return s
 48105  }
 48106  
 48107  // SetNextToken sets the NextToken field's value.
 48108  func (s *ListAuditSuppressionsInput) SetNextToken(v string) *ListAuditSuppressionsInput {
 48109  	s.NextToken = &v
 48110  	return s
 48111  }
 48112  
 48113  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 48114  func (s *ListAuditSuppressionsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditSuppressionsInput {
 48115  	s.ResourceIdentifier = v
 48116  	return s
 48117  }
 48118  
 48119  type ListAuditSuppressionsOutput struct {
 48120  	_ struct{} `type:"structure"`
 48121  
 48122  	// A token that can be used to retrieve the next set of results, or null if
 48123  	// there are no additional results.
 48124  	NextToken *string `locationName:"nextToken" type:"string"`
 48125  
 48126  	// List of audit suppressions.
 48127  	Suppressions []*AuditSuppression `locationName:"suppressions" type:"list"`
 48128  }
 48129  
 48130  // String returns the string representation.
 48131  //
 48132  // API parameter values that are decorated as "sensitive" in the API will not
 48133  // be included in the string output. The member name will be present, but the
 48134  // value will be replaced with "sensitive".
 48135  func (s ListAuditSuppressionsOutput) String() string {
 48136  	return awsutil.Prettify(s)
 48137  }
 48138  
 48139  // GoString returns the string representation.
 48140  //
 48141  // API parameter values that are decorated as "sensitive" in the API will not
 48142  // be included in the string output. The member name will be present, but the
 48143  // value will be replaced with "sensitive".
 48144  func (s ListAuditSuppressionsOutput) GoString() string {
 48145  	return s.String()
 48146  }
 48147  
 48148  // SetNextToken sets the NextToken field's value.
 48149  func (s *ListAuditSuppressionsOutput) SetNextToken(v string) *ListAuditSuppressionsOutput {
 48150  	s.NextToken = &v
 48151  	return s
 48152  }
 48153  
 48154  // SetSuppressions sets the Suppressions field's value.
 48155  func (s *ListAuditSuppressionsOutput) SetSuppressions(v []*AuditSuppression) *ListAuditSuppressionsOutput {
 48156  	s.Suppressions = v
 48157  	return s
 48158  }
 48159  
 48160  type ListAuditTasksInput struct {
 48161  	_ struct{} `type:"structure" nopayload:"true"`
 48162  
 48163  	// The end of the time period.
 48164  	//
 48165  	// EndTime is a required field
 48166  	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
 48167  
 48168  	// The maximum number of results to return at one time. The default is 25.
 48169  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 48170  
 48171  	// The token for the next set of results.
 48172  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 48173  
 48174  	// The beginning of the time period. Audit information is retained for a limited
 48175  	// time (90 days). Requesting a start time prior to what is retained results
 48176  	// in an "InvalidRequestException".
 48177  	//
 48178  	// StartTime is a required field
 48179  	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
 48180  
 48181  	// A filter to limit the output to audits with the specified completion status:
 48182  	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".
 48183  	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
 48184  
 48185  	// A filter to limit the output to the specified type of audit: can be one of
 48186  	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
 48187  	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
 48188  }
 48189  
 48190  // String returns the string representation.
 48191  //
 48192  // API parameter values that are decorated as "sensitive" in the API will not
 48193  // be included in the string output. The member name will be present, but the
 48194  // value will be replaced with "sensitive".
 48195  func (s ListAuditTasksInput) String() string {
 48196  	return awsutil.Prettify(s)
 48197  }
 48198  
 48199  // GoString returns the string representation.
 48200  //
 48201  // API parameter values that are decorated as "sensitive" in the API will not
 48202  // be included in the string output. The member name will be present, but the
 48203  // value will be replaced with "sensitive".
 48204  func (s ListAuditTasksInput) GoString() string {
 48205  	return s.String()
 48206  }
 48207  
 48208  // Validate inspects the fields of the type to determine if they are valid.
 48209  func (s *ListAuditTasksInput) Validate() error {
 48210  	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
 48211  	if s.EndTime == nil {
 48212  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 48213  	}
 48214  	if s.MaxResults != nil && *s.MaxResults < 1 {
 48215  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 48216  	}
 48217  	if s.StartTime == nil {
 48218  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 48219  	}
 48220  
 48221  	if invalidParams.Len() > 0 {
 48222  		return invalidParams
 48223  	}
 48224  	return nil
 48225  }
 48226  
 48227  // SetEndTime sets the EndTime field's value.
 48228  func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
 48229  	s.EndTime = &v
 48230  	return s
 48231  }
 48232  
 48233  // SetMaxResults sets the MaxResults field's value.
 48234  func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
 48235  	s.MaxResults = &v
 48236  	return s
 48237  }
 48238  
 48239  // SetNextToken sets the NextToken field's value.
 48240  func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
 48241  	s.NextToken = &v
 48242  	return s
 48243  }
 48244  
 48245  // SetStartTime sets the StartTime field's value.
 48246  func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
 48247  	s.StartTime = &v
 48248  	return s
 48249  }
 48250  
 48251  // SetTaskStatus sets the TaskStatus field's value.
 48252  func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
 48253  	s.TaskStatus = &v
 48254  	return s
 48255  }
 48256  
 48257  // SetTaskType sets the TaskType field's value.
 48258  func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
 48259  	s.TaskType = &v
 48260  	return s
 48261  }
 48262  
 48263  type ListAuditTasksOutput struct {
 48264  	_ struct{} `type:"structure"`
 48265  
 48266  	// A token that can be used to retrieve the next set of results, or null if
 48267  	// there are no additional results.
 48268  	NextToken *string `locationName:"nextToken" type:"string"`
 48269  
 48270  	// The audits that were performed during the specified time period.
 48271  	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
 48272  }
 48273  
 48274  // String returns the string representation.
 48275  //
 48276  // API parameter values that are decorated as "sensitive" in the API will not
 48277  // be included in the string output. The member name will be present, but the
 48278  // value will be replaced with "sensitive".
 48279  func (s ListAuditTasksOutput) String() string {
 48280  	return awsutil.Prettify(s)
 48281  }
 48282  
 48283  // GoString returns the string representation.
 48284  //
 48285  // API parameter values that are decorated as "sensitive" in the API will not
 48286  // be included in the string output. The member name will be present, but the
 48287  // value will be replaced with "sensitive".
 48288  func (s ListAuditTasksOutput) GoString() string {
 48289  	return s.String()
 48290  }
 48291  
 48292  // SetNextToken sets the NextToken field's value.
 48293  func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
 48294  	s.NextToken = &v
 48295  	return s
 48296  }
 48297  
 48298  // SetTasks sets the Tasks field's value.
 48299  func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
 48300  	s.Tasks = v
 48301  	return s
 48302  }
 48303  
 48304  type ListAuthorizersInput struct {
 48305  	_ struct{} `type:"structure" nopayload:"true"`
 48306  
 48307  	// Return the list of authorizers in ascending alphabetical order.
 48308  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 48309  
 48310  	// A marker used to get the next set of results.
 48311  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 48312  
 48313  	// The maximum number of results to return at one time.
 48314  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 48315  
 48316  	// The status of the list authorizers request.
 48317  	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
 48318  }
 48319  
 48320  // String returns the string representation.
 48321  //
 48322  // API parameter values that are decorated as "sensitive" in the API will not
 48323  // be included in the string output. The member name will be present, but the
 48324  // value will be replaced with "sensitive".
 48325  func (s ListAuthorizersInput) String() string {
 48326  	return awsutil.Prettify(s)
 48327  }
 48328  
 48329  // GoString returns the string representation.
 48330  //
 48331  // API parameter values that are decorated as "sensitive" in the API will not
 48332  // be included in the string output. The member name will be present, but the
 48333  // value will be replaced with "sensitive".
 48334  func (s ListAuthorizersInput) GoString() string {
 48335  	return s.String()
 48336  }
 48337  
 48338  // Validate inspects the fields of the type to determine if they are valid.
 48339  func (s *ListAuthorizersInput) Validate() error {
 48340  	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
 48341  	if s.PageSize != nil && *s.PageSize < 1 {
 48342  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 48343  	}
 48344  
 48345  	if invalidParams.Len() > 0 {
 48346  		return invalidParams
 48347  	}
 48348  	return nil
 48349  }
 48350  
 48351  // SetAscendingOrder sets the AscendingOrder field's value.
 48352  func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
 48353  	s.AscendingOrder = &v
 48354  	return s
 48355  }
 48356  
 48357  // SetMarker sets the Marker field's value.
 48358  func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
 48359  	s.Marker = &v
 48360  	return s
 48361  }
 48362  
 48363  // SetPageSize sets the PageSize field's value.
 48364  func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
 48365  	s.PageSize = &v
 48366  	return s
 48367  }
 48368  
 48369  // SetStatus sets the Status field's value.
 48370  func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
 48371  	s.Status = &v
 48372  	return s
 48373  }
 48374  
 48375  type ListAuthorizersOutput struct {
 48376  	_ struct{} `type:"structure"`
 48377  
 48378  	// The authorizers.
 48379  	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
 48380  
 48381  	// A marker used to get the next set of results.
 48382  	NextMarker *string `locationName:"nextMarker" type:"string"`
 48383  }
 48384  
 48385  // String returns the string representation.
 48386  //
 48387  // API parameter values that are decorated as "sensitive" in the API will not
 48388  // be included in the string output. The member name will be present, but the
 48389  // value will be replaced with "sensitive".
 48390  func (s ListAuthorizersOutput) String() string {
 48391  	return awsutil.Prettify(s)
 48392  }
 48393  
 48394  // GoString returns the string representation.
 48395  //
 48396  // API parameter values that are decorated as "sensitive" in the API will not
 48397  // be included in the string output. The member name will be present, but the
 48398  // value will be replaced with "sensitive".
 48399  func (s ListAuthorizersOutput) GoString() string {
 48400  	return s.String()
 48401  }
 48402  
 48403  // SetAuthorizers sets the Authorizers field's value.
 48404  func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
 48405  	s.Authorizers = v
 48406  	return s
 48407  }
 48408  
 48409  // SetNextMarker sets the NextMarker field's value.
 48410  func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
 48411  	s.NextMarker = &v
 48412  	return s
 48413  }
 48414  
 48415  type ListBillingGroupsInput struct {
 48416  	_ struct{} `type:"structure" nopayload:"true"`
 48417  
 48418  	// The maximum number of results to return per request.
 48419  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 48420  
 48421  	// Limit the results to billing groups whose names have the given prefix.
 48422  	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
 48423  
 48424  	// To retrieve the next set of results, the nextToken value from a previous
 48425  	// response; otherwise null to receive the first set of results.
 48426  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 48427  }
 48428  
 48429  // String returns the string representation.
 48430  //
 48431  // API parameter values that are decorated as "sensitive" in the API will not
 48432  // be included in the string output. The member name will be present, but the
 48433  // value will be replaced with "sensitive".
 48434  func (s ListBillingGroupsInput) String() string {
 48435  	return awsutil.Prettify(s)
 48436  }
 48437  
 48438  // GoString returns the string representation.
 48439  //
 48440  // API parameter values that are decorated as "sensitive" in the API will not
 48441  // be included in the string output. The member name will be present, but the
 48442  // value will be replaced with "sensitive".
 48443  func (s ListBillingGroupsInput) GoString() string {
 48444  	return s.String()
 48445  }
 48446  
 48447  // Validate inspects the fields of the type to determine if they are valid.
 48448  func (s *ListBillingGroupsInput) Validate() error {
 48449  	invalidParams := request.ErrInvalidParams{Context: "ListBillingGroupsInput"}
 48450  	if s.MaxResults != nil && *s.MaxResults < 1 {
 48451  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 48452  	}
 48453  	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
 48454  		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
 48455  	}
 48456  
 48457  	if invalidParams.Len() > 0 {
 48458  		return invalidParams
 48459  	}
 48460  	return nil
 48461  }
 48462  
 48463  // SetMaxResults sets the MaxResults field's value.
 48464  func (s *ListBillingGroupsInput) SetMaxResults(v int64) *ListBillingGroupsInput {
 48465  	s.MaxResults = &v
 48466  	return s
 48467  }
 48468  
 48469  // SetNamePrefixFilter sets the NamePrefixFilter field's value.
 48470  func (s *ListBillingGroupsInput) SetNamePrefixFilter(v string) *ListBillingGroupsInput {
 48471  	s.NamePrefixFilter = &v
 48472  	return s
 48473  }
 48474  
 48475  // SetNextToken sets the NextToken field's value.
 48476  func (s *ListBillingGroupsInput) SetNextToken(v string) *ListBillingGroupsInput {
 48477  	s.NextToken = &v
 48478  	return s
 48479  }
 48480  
 48481  type ListBillingGroupsOutput struct {
 48482  	_ struct{} `type:"structure"`
 48483  
 48484  	// The list of billing groups.
 48485  	BillingGroups []*GroupNameAndArn `locationName:"billingGroups" type:"list"`
 48486  
 48487  	// The token to use to get the next set of results, or null if there are no
 48488  	// additional results.
 48489  	NextToken *string `locationName:"nextToken" type:"string"`
 48490  }
 48491  
 48492  // String returns the string representation.
 48493  //
 48494  // API parameter values that are decorated as "sensitive" in the API will not
 48495  // be included in the string output. The member name will be present, but the
 48496  // value will be replaced with "sensitive".
 48497  func (s ListBillingGroupsOutput) String() string {
 48498  	return awsutil.Prettify(s)
 48499  }
 48500  
 48501  // GoString returns the string representation.
 48502  //
 48503  // API parameter values that are decorated as "sensitive" in the API will not
 48504  // be included in the string output. The member name will be present, but the
 48505  // value will be replaced with "sensitive".
 48506  func (s ListBillingGroupsOutput) GoString() string {
 48507  	return s.String()
 48508  }
 48509  
 48510  // SetBillingGroups sets the BillingGroups field's value.
 48511  func (s *ListBillingGroupsOutput) SetBillingGroups(v []*GroupNameAndArn) *ListBillingGroupsOutput {
 48512  	s.BillingGroups = v
 48513  	return s
 48514  }
 48515  
 48516  // SetNextToken sets the NextToken field's value.
 48517  func (s *ListBillingGroupsOutput) SetNextToken(v string) *ListBillingGroupsOutput {
 48518  	s.NextToken = &v
 48519  	return s
 48520  }
 48521  
 48522  // Input for the ListCACertificates operation.
 48523  type ListCACertificatesInput struct {
 48524  	_ struct{} `type:"structure" nopayload:"true"`
 48525  
 48526  	// Determines the order of the results.
 48527  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 48528  
 48529  	// The marker for the next set of results.
 48530  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 48531  
 48532  	// The result page size.
 48533  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 48534  }
 48535  
 48536  // String returns the string representation.
 48537  //
 48538  // API parameter values that are decorated as "sensitive" in the API will not
 48539  // be included in the string output. The member name will be present, but the
 48540  // value will be replaced with "sensitive".
 48541  func (s ListCACertificatesInput) String() string {
 48542  	return awsutil.Prettify(s)
 48543  }
 48544  
 48545  // GoString returns the string representation.
 48546  //
 48547  // API parameter values that are decorated as "sensitive" in the API will not
 48548  // be included in the string output. The member name will be present, but the
 48549  // value will be replaced with "sensitive".
 48550  func (s ListCACertificatesInput) GoString() string {
 48551  	return s.String()
 48552  }
 48553  
 48554  // Validate inspects the fields of the type to determine if they are valid.
 48555  func (s *ListCACertificatesInput) Validate() error {
 48556  	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
 48557  	if s.PageSize != nil && *s.PageSize < 1 {
 48558  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 48559  	}
 48560  
 48561  	if invalidParams.Len() > 0 {
 48562  		return invalidParams
 48563  	}
 48564  	return nil
 48565  }
 48566  
 48567  // SetAscendingOrder sets the AscendingOrder field's value.
 48568  func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
 48569  	s.AscendingOrder = &v
 48570  	return s
 48571  }
 48572  
 48573  // SetMarker sets the Marker field's value.
 48574  func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
 48575  	s.Marker = &v
 48576  	return s
 48577  }
 48578  
 48579  // SetPageSize sets the PageSize field's value.
 48580  func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
 48581  	s.PageSize = &v
 48582  	return s
 48583  }
 48584  
 48585  // The output from the ListCACertificates operation.
 48586  type ListCACertificatesOutput struct {
 48587  	_ struct{} `type:"structure"`
 48588  
 48589  	// The CA certificates registered in your Amazon Web Services account.
 48590  	Certificates []*CACertificate `locationName:"certificates" type:"list"`
 48591  
 48592  	// The current position within the list of CA certificates.
 48593  	NextMarker *string `locationName:"nextMarker" type:"string"`
 48594  }
 48595  
 48596  // String returns the string representation.
 48597  //
 48598  // API parameter values that are decorated as "sensitive" in the API will not
 48599  // be included in the string output. The member name will be present, but the
 48600  // value will be replaced with "sensitive".
 48601  func (s ListCACertificatesOutput) String() string {
 48602  	return awsutil.Prettify(s)
 48603  }
 48604  
 48605  // GoString returns the string representation.
 48606  //
 48607  // API parameter values that are decorated as "sensitive" in the API will not
 48608  // be included in the string output. The member name will be present, but the
 48609  // value will be replaced with "sensitive".
 48610  func (s ListCACertificatesOutput) GoString() string {
 48611  	return s.String()
 48612  }
 48613  
 48614  // SetCertificates sets the Certificates field's value.
 48615  func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
 48616  	s.Certificates = v
 48617  	return s
 48618  }
 48619  
 48620  // SetNextMarker sets the NextMarker field's value.
 48621  func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
 48622  	s.NextMarker = &v
 48623  	return s
 48624  }
 48625  
 48626  // The input to the ListCertificatesByCA operation.
 48627  type ListCertificatesByCAInput struct {
 48628  	_ struct{} `type:"structure" nopayload:"true"`
 48629  
 48630  	// Specifies the order for results. If True, the results are returned in ascending
 48631  	// order, based on the creation date.
 48632  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 48633  
 48634  	// The ID of the CA certificate. This operation will list all registered device
 48635  	// certificate that were signed by this CA certificate.
 48636  	//
 48637  	// CaCertificateId is a required field
 48638  	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
 48639  
 48640  	// The marker for the next set of results.
 48641  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 48642  
 48643  	// The result page size.
 48644  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 48645  }
 48646  
 48647  // String returns the string representation.
 48648  //
 48649  // API parameter values that are decorated as "sensitive" in the API will not
 48650  // be included in the string output. The member name will be present, but the
 48651  // value will be replaced with "sensitive".
 48652  func (s ListCertificatesByCAInput) String() string {
 48653  	return awsutil.Prettify(s)
 48654  }
 48655  
 48656  // GoString returns the string representation.
 48657  //
 48658  // API parameter values that are decorated as "sensitive" in the API will not
 48659  // be included in the string output. The member name will be present, but the
 48660  // value will be replaced with "sensitive".
 48661  func (s ListCertificatesByCAInput) GoString() string {
 48662  	return s.String()
 48663  }
 48664  
 48665  // Validate inspects the fields of the type to determine if they are valid.
 48666  func (s *ListCertificatesByCAInput) Validate() error {
 48667  	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
 48668  	if s.CaCertificateId == nil {
 48669  		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
 48670  	}
 48671  	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
 48672  		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
 48673  	}
 48674  	if s.PageSize != nil && *s.PageSize < 1 {
 48675  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 48676  	}
 48677  
 48678  	if invalidParams.Len() > 0 {
 48679  		return invalidParams
 48680  	}
 48681  	return nil
 48682  }
 48683  
 48684  // SetAscendingOrder sets the AscendingOrder field's value.
 48685  func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
 48686  	s.AscendingOrder = &v
 48687  	return s
 48688  }
 48689  
 48690  // SetCaCertificateId sets the CaCertificateId field's value.
 48691  func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
 48692  	s.CaCertificateId = &v
 48693  	return s
 48694  }
 48695  
 48696  // SetMarker sets the Marker field's value.
 48697  func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
 48698  	s.Marker = &v
 48699  	return s
 48700  }
 48701  
 48702  // SetPageSize sets the PageSize field's value.
 48703  func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
 48704  	s.PageSize = &v
 48705  	return s
 48706  }
 48707  
 48708  // The output of the ListCertificatesByCA operation.
 48709  type ListCertificatesByCAOutput struct {
 48710  	_ struct{} `type:"structure"`
 48711  
 48712  	// The device certificates signed by the specified CA certificate.
 48713  	Certificates []*Certificate `locationName:"certificates" type:"list"`
 48714  
 48715  	// The marker for the next set of results, or null if there are no additional
 48716  	// results.
 48717  	NextMarker *string `locationName:"nextMarker" type:"string"`
 48718  }
 48719  
 48720  // String returns the string representation.
 48721  //
 48722  // API parameter values that are decorated as "sensitive" in the API will not
 48723  // be included in the string output. The member name will be present, but the
 48724  // value will be replaced with "sensitive".
 48725  func (s ListCertificatesByCAOutput) String() string {
 48726  	return awsutil.Prettify(s)
 48727  }
 48728  
 48729  // GoString returns the string representation.
 48730  //
 48731  // API parameter values that are decorated as "sensitive" in the API will not
 48732  // be included in the string output. The member name will be present, but the
 48733  // value will be replaced with "sensitive".
 48734  func (s ListCertificatesByCAOutput) GoString() string {
 48735  	return s.String()
 48736  }
 48737  
 48738  // SetCertificates sets the Certificates field's value.
 48739  func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
 48740  	s.Certificates = v
 48741  	return s
 48742  }
 48743  
 48744  // SetNextMarker sets the NextMarker field's value.
 48745  func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
 48746  	s.NextMarker = &v
 48747  	return s
 48748  }
 48749  
 48750  // The input for the ListCertificates operation.
 48751  type ListCertificatesInput struct {
 48752  	_ struct{} `type:"structure" nopayload:"true"`
 48753  
 48754  	// Specifies the order for results. If True, the results are returned in ascending
 48755  	// order, based on the creation date.
 48756  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 48757  
 48758  	// The marker for the next set of results.
 48759  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 48760  
 48761  	// The result page size.
 48762  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 48763  }
 48764  
 48765  // String returns the string representation.
 48766  //
 48767  // API parameter values that are decorated as "sensitive" in the API will not
 48768  // be included in the string output. The member name will be present, but the
 48769  // value will be replaced with "sensitive".
 48770  func (s ListCertificatesInput) String() string {
 48771  	return awsutil.Prettify(s)
 48772  }
 48773  
 48774  // GoString returns the string representation.
 48775  //
 48776  // API parameter values that are decorated as "sensitive" in the API will not
 48777  // be included in the string output. The member name will be present, but the
 48778  // value will be replaced with "sensitive".
 48779  func (s ListCertificatesInput) GoString() string {
 48780  	return s.String()
 48781  }
 48782  
 48783  // Validate inspects the fields of the type to determine if they are valid.
 48784  func (s *ListCertificatesInput) Validate() error {
 48785  	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
 48786  	if s.PageSize != nil && *s.PageSize < 1 {
 48787  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 48788  	}
 48789  
 48790  	if invalidParams.Len() > 0 {
 48791  		return invalidParams
 48792  	}
 48793  	return nil
 48794  }
 48795  
 48796  // SetAscendingOrder sets the AscendingOrder field's value.
 48797  func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
 48798  	s.AscendingOrder = &v
 48799  	return s
 48800  }
 48801  
 48802  // SetMarker sets the Marker field's value.
 48803  func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
 48804  	s.Marker = &v
 48805  	return s
 48806  }
 48807  
 48808  // SetPageSize sets the PageSize field's value.
 48809  func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
 48810  	s.PageSize = &v
 48811  	return s
 48812  }
 48813  
 48814  // The output of the ListCertificates operation.
 48815  type ListCertificatesOutput struct {
 48816  	_ struct{} `type:"structure"`
 48817  
 48818  	// The descriptions of the certificates.
 48819  	Certificates []*Certificate `locationName:"certificates" type:"list"`
 48820  
 48821  	// The marker for the next set of results, or null if there are no additional
 48822  	// results.
 48823  	NextMarker *string `locationName:"nextMarker" type:"string"`
 48824  }
 48825  
 48826  // String returns the string representation.
 48827  //
 48828  // API parameter values that are decorated as "sensitive" in the API will not
 48829  // be included in the string output. The member name will be present, but the
 48830  // value will be replaced with "sensitive".
 48831  func (s ListCertificatesOutput) String() string {
 48832  	return awsutil.Prettify(s)
 48833  }
 48834  
 48835  // GoString returns the string representation.
 48836  //
 48837  // API parameter values that are decorated as "sensitive" in the API will not
 48838  // be included in the string output. The member name will be present, but the
 48839  // value will be replaced with "sensitive".
 48840  func (s ListCertificatesOutput) GoString() string {
 48841  	return s.String()
 48842  }
 48843  
 48844  // SetCertificates sets the Certificates field's value.
 48845  func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
 48846  	s.Certificates = v
 48847  	return s
 48848  }
 48849  
 48850  // SetNextMarker sets the NextMarker field's value.
 48851  func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
 48852  	s.NextMarker = &v
 48853  	return s
 48854  }
 48855  
 48856  type ListCustomMetricsInput struct {
 48857  	_ struct{} `type:"structure" nopayload:"true"`
 48858  
 48859  	// The maximum number of results to return at one time. The default is 25.
 48860  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 48861  
 48862  	// The token for the next set of results.
 48863  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 48864  }
 48865  
 48866  // String returns the string representation.
 48867  //
 48868  // API parameter values that are decorated as "sensitive" in the API will not
 48869  // be included in the string output. The member name will be present, but the
 48870  // value will be replaced with "sensitive".
 48871  func (s ListCustomMetricsInput) String() string {
 48872  	return awsutil.Prettify(s)
 48873  }
 48874  
 48875  // GoString returns the string representation.
 48876  //
 48877  // API parameter values that are decorated as "sensitive" in the API will not
 48878  // be included in the string output. The member name will be present, but the
 48879  // value will be replaced with "sensitive".
 48880  func (s ListCustomMetricsInput) GoString() string {
 48881  	return s.String()
 48882  }
 48883  
 48884  // Validate inspects the fields of the type to determine if they are valid.
 48885  func (s *ListCustomMetricsInput) Validate() error {
 48886  	invalidParams := request.ErrInvalidParams{Context: "ListCustomMetricsInput"}
 48887  	if s.MaxResults != nil && *s.MaxResults < 1 {
 48888  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 48889  	}
 48890  
 48891  	if invalidParams.Len() > 0 {
 48892  		return invalidParams
 48893  	}
 48894  	return nil
 48895  }
 48896  
 48897  // SetMaxResults sets the MaxResults field's value.
 48898  func (s *ListCustomMetricsInput) SetMaxResults(v int64) *ListCustomMetricsInput {
 48899  	s.MaxResults = &v
 48900  	return s
 48901  }
 48902  
 48903  // SetNextToken sets the NextToken field's value.
 48904  func (s *ListCustomMetricsInput) SetNextToken(v string) *ListCustomMetricsInput {
 48905  	s.NextToken = &v
 48906  	return s
 48907  }
 48908  
 48909  type ListCustomMetricsOutput struct {
 48910  	_ struct{} `type:"structure"`
 48911  
 48912  	// The name of the custom metric.
 48913  	MetricNames []*string `locationName:"metricNames" type:"list"`
 48914  
 48915  	// A token that can be used to retrieve the next set of results, or null if
 48916  	// there are no additional results.
 48917  	NextToken *string `locationName:"nextToken" type:"string"`
 48918  }
 48919  
 48920  // String returns the string representation.
 48921  //
 48922  // API parameter values that are decorated as "sensitive" in the API will not
 48923  // be included in the string output. The member name will be present, but the
 48924  // value will be replaced with "sensitive".
 48925  func (s ListCustomMetricsOutput) String() string {
 48926  	return awsutil.Prettify(s)
 48927  }
 48928  
 48929  // GoString returns the string representation.
 48930  //
 48931  // API parameter values that are decorated as "sensitive" in the API will not
 48932  // be included in the string output. The member name will be present, but the
 48933  // value will be replaced with "sensitive".
 48934  func (s ListCustomMetricsOutput) GoString() string {
 48935  	return s.String()
 48936  }
 48937  
 48938  // SetMetricNames sets the MetricNames field's value.
 48939  func (s *ListCustomMetricsOutput) SetMetricNames(v []*string) *ListCustomMetricsOutput {
 48940  	s.MetricNames = v
 48941  	return s
 48942  }
 48943  
 48944  // SetNextToken sets the NextToken field's value.
 48945  func (s *ListCustomMetricsOutput) SetNextToken(v string) *ListCustomMetricsOutput {
 48946  	s.NextToken = &v
 48947  	return s
 48948  }
 48949  
 48950  type ListDetectMitigationActionsExecutionsInput struct {
 48951  	_ struct{} `type:"structure" nopayload:"true"`
 48952  
 48953  	// The end of the time period for which ML Detect mitigation actions executions
 48954  	// are returned.
 48955  	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp"`
 48956  
 48957  	// The maximum number of results to return at one time. The default is 25.
 48958  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 48959  
 48960  	// The token for the next set of results.
 48961  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 48962  
 48963  	// A filter to limit results to those found after the specified time. You must
 48964  	// specify either the startTime and endTime or the taskId, but not both.
 48965  	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp"`
 48966  
 48967  	// The unique identifier of the task.
 48968  	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string"`
 48969  
 48970  	// The name of the thing whose mitigation actions are listed.
 48971  	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
 48972  
 48973  	// The unique identifier of the violation.
 48974  	ViolationId *string `location:"querystring" locationName:"violationId" min:"1" type:"string"`
 48975  }
 48976  
 48977  // String returns the string representation.
 48978  //
 48979  // API parameter values that are decorated as "sensitive" in the API will not
 48980  // be included in the string output. The member name will be present, but the
 48981  // value will be replaced with "sensitive".
 48982  func (s ListDetectMitigationActionsExecutionsInput) String() string {
 48983  	return awsutil.Prettify(s)
 48984  }
 48985  
 48986  // GoString returns the string representation.
 48987  //
 48988  // API parameter values that are decorated as "sensitive" in the API will not
 48989  // be included in the string output. The member name will be present, but the
 48990  // value will be replaced with "sensitive".
 48991  func (s ListDetectMitigationActionsExecutionsInput) GoString() string {
 48992  	return s.String()
 48993  }
 48994  
 48995  // Validate inspects the fields of the type to determine if they are valid.
 48996  func (s *ListDetectMitigationActionsExecutionsInput) Validate() error {
 48997  	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsExecutionsInput"}
 48998  	if s.MaxResults != nil && *s.MaxResults < 1 {
 48999  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49000  	}
 49001  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 49002  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 49003  	}
 49004  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 49005  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 49006  	}
 49007  	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
 49008  		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
 49009  	}
 49010  
 49011  	if invalidParams.Len() > 0 {
 49012  		return invalidParams
 49013  	}
 49014  	return nil
 49015  }
 49016  
 49017  // SetEndTime sets the EndTime field's value.
 49018  func (s *ListDetectMitigationActionsExecutionsInput) SetEndTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
 49019  	s.EndTime = &v
 49020  	return s
 49021  }
 49022  
 49023  // SetMaxResults sets the MaxResults field's value.
 49024  func (s *ListDetectMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListDetectMitigationActionsExecutionsInput {
 49025  	s.MaxResults = &v
 49026  	return s
 49027  }
 49028  
 49029  // SetNextToken sets the NextToken field's value.
 49030  func (s *ListDetectMitigationActionsExecutionsInput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsInput {
 49031  	s.NextToken = &v
 49032  	return s
 49033  }
 49034  
 49035  // SetStartTime sets the StartTime field's value.
 49036  func (s *ListDetectMitigationActionsExecutionsInput) SetStartTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
 49037  	s.StartTime = &v
 49038  	return s
 49039  }
 49040  
 49041  // SetTaskId sets the TaskId field's value.
 49042  func (s *ListDetectMitigationActionsExecutionsInput) SetTaskId(v string) *ListDetectMitigationActionsExecutionsInput {
 49043  	s.TaskId = &v
 49044  	return s
 49045  }
 49046  
 49047  // SetThingName sets the ThingName field's value.
 49048  func (s *ListDetectMitigationActionsExecutionsInput) SetThingName(v string) *ListDetectMitigationActionsExecutionsInput {
 49049  	s.ThingName = &v
 49050  	return s
 49051  }
 49052  
 49053  // SetViolationId sets the ViolationId field's value.
 49054  func (s *ListDetectMitigationActionsExecutionsInput) SetViolationId(v string) *ListDetectMitigationActionsExecutionsInput {
 49055  	s.ViolationId = &v
 49056  	return s
 49057  }
 49058  
 49059  type ListDetectMitigationActionsExecutionsOutput struct {
 49060  	_ struct{} `type:"structure"`
 49061  
 49062  	// List of actions executions.
 49063  	ActionsExecutions []*DetectMitigationActionExecution `locationName:"actionsExecutions" type:"list"`
 49064  
 49065  	// A token that can be used to retrieve the next set of results, or null if
 49066  	// there are no additional results.
 49067  	NextToken *string `locationName:"nextToken" type:"string"`
 49068  }
 49069  
 49070  // String returns the string representation.
 49071  //
 49072  // API parameter values that are decorated as "sensitive" in the API will not
 49073  // be included in the string output. The member name will be present, but the
 49074  // value will be replaced with "sensitive".
 49075  func (s ListDetectMitigationActionsExecutionsOutput) String() string {
 49076  	return awsutil.Prettify(s)
 49077  }
 49078  
 49079  // GoString returns the string representation.
 49080  //
 49081  // API parameter values that are decorated as "sensitive" in the API will not
 49082  // be included in the string output. The member name will be present, but the
 49083  // value will be replaced with "sensitive".
 49084  func (s ListDetectMitigationActionsExecutionsOutput) GoString() string {
 49085  	return s.String()
 49086  }
 49087  
 49088  // SetActionsExecutions sets the ActionsExecutions field's value.
 49089  func (s *ListDetectMitigationActionsExecutionsOutput) SetActionsExecutions(v []*DetectMitigationActionExecution) *ListDetectMitigationActionsExecutionsOutput {
 49090  	s.ActionsExecutions = v
 49091  	return s
 49092  }
 49093  
 49094  // SetNextToken sets the NextToken field's value.
 49095  func (s *ListDetectMitigationActionsExecutionsOutput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsOutput {
 49096  	s.NextToken = &v
 49097  	return s
 49098  }
 49099  
 49100  type ListDetectMitigationActionsTasksInput struct {
 49101  	_ struct{} `type:"structure" nopayload:"true"`
 49102  
 49103  	// The end of the time period for which ML Detect mitigation actions tasks are
 49104  	// returned.
 49105  	//
 49106  	// EndTime is a required field
 49107  	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
 49108  
 49109  	// The maximum number of results to return at one time. The default is 25.
 49110  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49111  
 49112  	// The token for the next set of results.
 49113  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49114  
 49115  	// A filter to limit results to those found after the specified time. You must
 49116  	// specify either the startTime and endTime or the taskId, but not both.
 49117  	//
 49118  	// StartTime is a required field
 49119  	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
 49120  }
 49121  
 49122  // String returns the string representation.
 49123  //
 49124  // API parameter values that are decorated as "sensitive" in the API will not
 49125  // be included in the string output. The member name will be present, but the
 49126  // value will be replaced with "sensitive".
 49127  func (s ListDetectMitigationActionsTasksInput) String() string {
 49128  	return awsutil.Prettify(s)
 49129  }
 49130  
 49131  // GoString returns the string representation.
 49132  //
 49133  // API parameter values that are decorated as "sensitive" in the API will not
 49134  // be included in the string output. The member name will be present, but the
 49135  // value will be replaced with "sensitive".
 49136  func (s ListDetectMitigationActionsTasksInput) GoString() string {
 49137  	return s.String()
 49138  }
 49139  
 49140  // Validate inspects the fields of the type to determine if they are valid.
 49141  func (s *ListDetectMitigationActionsTasksInput) Validate() error {
 49142  	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsTasksInput"}
 49143  	if s.EndTime == nil {
 49144  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 49145  	}
 49146  	if s.MaxResults != nil && *s.MaxResults < 1 {
 49147  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49148  	}
 49149  	if s.StartTime == nil {
 49150  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 49151  	}
 49152  
 49153  	if invalidParams.Len() > 0 {
 49154  		return invalidParams
 49155  	}
 49156  	return nil
 49157  }
 49158  
 49159  // SetEndTime sets the EndTime field's value.
 49160  func (s *ListDetectMitigationActionsTasksInput) SetEndTime(v time.Time) *ListDetectMitigationActionsTasksInput {
 49161  	s.EndTime = &v
 49162  	return s
 49163  }
 49164  
 49165  // SetMaxResults sets the MaxResults field's value.
 49166  func (s *ListDetectMitigationActionsTasksInput) SetMaxResults(v int64) *ListDetectMitigationActionsTasksInput {
 49167  	s.MaxResults = &v
 49168  	return s
 49169  }
 49170  
 49171  // SetNextToken sets the NextToken field's value.
 49172  func (s *ListDetectMitigationActionsTasksInput) SetNextToken(v string) *ListDetectMitigationActionsTasksInput {
 49173  	s.NextToken = &v
 49174  	return s
 49175  }
 49176  
 49177  // SetStartTime sets the StartTime field's value.
 49178  func (s *ListDetectMitigationActionsTasksInput) SetStartTime(v time.Time) *ListDetectMitigationActionsTasksInput {
 49179  	s.StartTime = &v
 49180  	return s
 49181  }
 49182  
 49183  type ListDetectMitigationActionsTasksOutput struct {
 49184  	_ struct{} `type:"structure"`
 49185  
 49186  	// A token that can be used to retrieve the next set of results, or null if
 49187  	// there are no additional results.
 49188  	NextToken *string `locationName:"nextToken" type:"string"`
 49189  
 49190  	// The collection of ML Detect mitigation tasks that matched the filter criteria.
 49191  	Tasks []*DetectMitigationActionsTaskSummary `locationName:"tasks" type:"list"`
 49192  }
 49193  
 49194  // String returns the string representation.
 49195  //
 49196  // API parameter values that are decorated as "sensitive" in the API will not
 49197  // be included in the string output. The member name will be present, but the
 49198  // value will be replaced with "sensitive".
 49199  func (s ListDetectMitigationActionsTasksOutput) String() string {
 49200  	return awsutil.Prettify(s)
 49201  }
 49202  
 49203  // GoString returns the string representation.
 49204  //
 49205  // API parameter values that are decorated as "sensitive" in the API will not
 49206  // be included in the string output. The member name will be present, but the
 49207  // value will be replaced with "sensitive".
 49208  func (s ListDetectMitigationActionsTasksOutput) GoString() string {
 49209  	return s.String()
 49210  }
 49211  
 49212  // SetNextToken sets the NextToken field's value.
 49213  func (s *ListDetectMitigationActionsTasksOutput) SetNextToken(v string) *ListDetectMitigationActionsTasksOutput {
 49214  	s.NextToken = &v
 49215  	return s
 49216  }
 49217  
 49218  // SetTasks sets the Tasks field's value.
 49219  func (s *ListDetectMitigationActionsTasksOutput) SetTasks(v []*DetectMitigationActionsTaskSummary) *ListDetectMitigationActionsTasksOutput {
 49220  	s.Tasks = v
 49221  	return s
 49222  }
 49223  
 49224  type ListDimensionsInput struct {
 49225  	_ struct{} `type:"structure" nopayload:"true"`
 49226  
 49227  	// The maximum number of results to retrieve at one time.
 49228  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49229  
 49230  	// The token for the next set of results.
 49231  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49232  }
 49233  
 49234  // String returns the string representation.
 49235  //
 49236  // API parameter values that are decorated as "sensitive" in the API will not
 49237  // be included in the string output. The member name will be present, but the
 49238  // value will be replaced with "sensitive".
 49239  func (s ListDimensionsInput) String() string {
 49240  	return awsutil.Prettify(s)
 49241  }
 49242  
 49243  // GoString returns the string representation.
 49244  //
 49245  // API parameter values that are decorated as "sensitive" in the API will not
 49246  // be included in the string output. The member name will be present, but the
 49247  // value will be replaced with "sensitive".
 49248  func (s ListDimensionsInput) GoString() string {
 49249  	return s.String()
 49250  }
 49251  
 49252  // Validate inspects the fields of the type to determine if they are valid.
 49253  func (s *ListDimensionsInput) Validate() error {
 49254  	invalidParams := request.ErrInvalidParams{Context: "ListDimensionsInput"}
 49255  	if s.MaxResults != nil && *s.MaxResults < 1 {
 49256  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49257  	}
 49258  
 49259  	if invalidParams.Len() > 0 {
 49260  		return invalidParams
 49261  	}
 49262  	return nil
 49263  }
 49264  
 49265  // SetMaxResults sets the MaxResults field's value.
 49266  func (s *ListDimensionsInput) SetMaxResults(v int64) *ListDimensionsInput {
 49267  	s.MaxResults = &v
 49268  	return s
 49269  }
 49270  
 49271  // SetNextToken sets the NextToken field's value.
 49272  func (s *ListDimensionsInput) SetNextToken(v string) *ListDimensionsInput {
 49273  	s.NextToken = &v
 49274  	return s
 49275  }
 49276  
 49277  type ListDimensionsOutput struct {
 49278  	_ struct{} `type:"structure"`
 49279  
 49280  	// A list of the names of the defined dimensions. Use DescribeDimension to get
 49281  	// details for a dimension.
 49282  	DimensionNames []*string `locationName:"dimensionNames" type:"list"`
 49283  
 49284  	// A token that can be used to retrieve the next set of results, or null if
 49285  	// there are no additional results.
 49286  	NextToken *string `locationName:"nextToken" type:"string"`
 49287  }
 49288  
 49289  // String returns the string representation.
 49290  //
 49291  // API parameter values that are decorated as "sensitive" in the API will not
 49292  // be included in the string output. The member name will be present, but the
 49293  // value will be replaced with "sensitive".
 49294  func (s ListDimensionsOutput) String() string {
 49295  	return awsutil.Prettify(s)
 49296  }
 49297  
 49298  // GoString returns the string representation.
 49299  //
 49300  // API parameter values that are decorated as "sensitive" in the API will not
 49301  // be included in the string output. The member name will be present, but the
 49302  // value will be replaced with "sensitive".
 49303  func (s ListDimensionsOutput) GoString() string {
 49304  	return s.String()
 49305  }
 49306  
 49307  // SetDimensionNames sets the DimensionNames field's value.
 49308  func (s *ListDimensionsOutput) SetDimensionNames(v []*string) *ListDimensionsOutput {
 49309  	s.DimensionNames = v
 49310  	return s
 49311  }
 49312  
 49313  // SetNextToken sets the NextToken field's value.
 49314  func (s *ListDimensionsOutput) SetNextToken(v string) *ListDimensionsOutput {
 49315  	s.NextToken = &v
 49316  	return s
 49317  }
 49318  
 49319  type ListDomainConfigurationsInput struct {
 49320  	_ struct{} `type:"structure" nopayload:"true"`
 49321  
 49322  	// The marker for the next set of results.
 49323  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 49324  
 49325  	// The result page size.
 49326  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 49327  
 49328  	// The type of service delivered by the endpoint.
 49329  	ServiceType *string `location:"querystring" locationName:"serviceType" type:"string" enum:"ServiceType"`
 49330  }
 49331  
 49332  // String returns the string representation.
 49333  //
 49334  // API parameter values that are decorated as "sensitive" in the API will not
 49335  // be included in the string output. The member name will be present, but the
 49336  // value will be replaced with "sensitive".
 49337  func (s ListDomainConfigurationsInput) String() string {
 49338  	return awsutil.Prettify(s)
 49339  }
 49340  
 49341  // GoString returns the string representation.
 49342  //
 49343  // API parameter values that are decorated as "sensitive" in the API will not
 49344  // be included in the string output. The member name will be present, but the
 49345  // value will be replaced with "sensitive".
 49346  func (s ListDomainConfigurationsInput) GoString() string {
 49347  	return s.String()
 49348  }
 49349  
 49350  // Validate inspects the fields of the type to determine if they are valid.
 49351  func (s *ListDomainConfigurationsInput) Validate() error {
 49352  	invalidParams := request.ErrInvalidParams{Context: "ListDomainConfigurationsInput"}
 49353  	if s.PageSize != nil && *s.PageSize < 1 {
 49354  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 49355  	}
 49356  
 49357  	if invalidParams.Len() > 0 {
 49358  		return invalidParams
 49359  	}
 49360  	return nil
 49361  }
 49362  
 49363  // SetMarker sets the Marker field's value.
 49364  func (s *ListDomainConfigurationsInput) SetMarker(v string) *ListDomainConfigurationsInput {
 49365  	s.Marker = &v
 49366  	return s
 49367  }
 49368  
 49369  // SetPageSize sets the PageSize field's value.
 49370  func (s *ListDomainConfigurationsInput) SetPageSize(v int64) *ListDomainConfigurationsInput {
 49371  	s.PageSize = &v
 49372  	return s
 49373  }
 49374  
 49375  // SetServiceType sets the ServiceType field's value.
 49376  func (s *ListDomainConfigurationsInput) SetServiceType(v string) *ListDomainConfigurationsInput {
 49377  	s.ServiceType = &v
 49378  	return s
 49379  }
 49380  
 49381  type ListDomainConfigurationsOutput struct {
 49382  	_ struct{} `type:"structure"`
 49383  
 49384  	// A list of objects that contain summary information about the user's domain
 49385  	// configurations.
 49386  	DomainConfigurations []*DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"`
 49387  
 49388  	// The marker for the next set of results.
 49389  	NextMarker *string `locationName:"nextMarker" type:"string"`
 49390  }
 49391  
 49392  // String returns the string representation.
 49393  //
 49394  // API parameter values that are decorated as "sensitive" in the API will not
 49395  // be included in the string output. The member name will be present, but the
 49396  // value will be replaced with "sensitive".
 49397  func (s ListDomainConfigurationsOutput) String() string {
 49398  	return awsutil.Prettify(s)
 49399  }
 49400  
 49401  // GoString returns the string representation.
 49402  //
 49403  // API parameter values that are decorated as "sensitive" in the API will not
 49404  // be included in the string output. The member name will be present, but the
 49405  // value will be replaced with "sensitive".
 49406  func (s ListDomainConfigurationsOutput) GoString() string {
 49407  	return s.String()
 49408  }
 49409  
 49410  // SetDomainConfigurations sets the DomainConfigurations field's value.
 49411  func (s *ListDomainConfigurationsOutput) SetDomainConfigurations(v []*DomainConfigurationSummary) *ListDomainConfigurationsOutput {
 49412  	s.DomainConfigurations = v
 49413  	return s
 49414  }
 49415  
 49416  // SetNextMarker sets the NextMarker field's value.
 49417  func (s *ListDomainConfigurationsOutput) SetNextMarker(v string) *ListDomainConfigurationsOutput {
 49418  	s.NextMarker = &v
 49419  	return s
 49420  }
 49421  
 49422  type ListFleetMetricsInput struct {
 49423  	_ struct{} `type:"structure" nopayload:"true"`
 49424  
 49425  	// The maximum number of results to return in this operation.
 49426  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49427  
 49428  	// To retrieve the next set of results, the nextToken value from a previous
 49429  	// response; otherwise null to receive the first set of results.
 49430  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49431  }
 49432  
 49433  // String returns the string representation.
 49434  //
 49435  // API parameter values that are decorated as "sensitive" in the API will not
 49436  // be included in the string output. The member name will be present, but the
 49437  // value will be replaced with "sensitive".
 49438  func (s ListFleetMetricsInput) String() string {
 49439  	return awsutil.Prettify(s)
 49440  }
 49441  
 49442  // GoString returns the string representation.
 49443  //
 49444  // API parameter values that are decorated as "sensitive" in the API will not
 49445  // be included in the string output. The member name will be present, but the
 49446  // value will be replaced with "sensitive".
 49447  func (s ListFleetMetricsInput) GoString() string {
 49448  	return s.String()
 49449  }
 49450  
 49451  // Validate inspects the fields of the type to determine if they are valid.
 49452  func (s *ListFleetMetricsInput) Validate() error {
 49453  	invalidParams := request.ErrInvalidParams{Context: "ListFleetMetricsInput"}
 49454  	if s.MaxResults != nil && *s.MaxResults < 1 {
 49455  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49456  	}
 49457  
 49458  	if invalidParams.Len() > 0 {
 49459  		return invalidParams
 49460  	}
 49461  	return nil
 49462  }
 49463  
 49464  // SetMaxResults sets the MaxResults field's value.
 49465  func (s *ListFleetMetricsInput) SetMaxResults(v int64) *ListFleetMetricsInput {
 49466  	s.MaxResults = &v
 49467  	return s
 49468  }
 49469  
 49470  // SetNextToken sets the NextToken field's value.
 49471  func (s *ListFleetMetricsInput) SetNextToken(v string) *ListFleetMetricsInput {
 49472  	s.NextToken = &v
 49473  	return s
 49474  }
 49475  
 49476  type ListFleetMetricsOutput struct {
 49477  	_ struct{} `type:"structure"`
 49478  
 49479  	// The list of fleet metrics objects.
 49480  	FleetMetrics []*FleetMetricNameAndArn `locationName:"fleetMetrics" type:"list"`
 49481  
 49482  	// The token for the next set of results. Will not be returned if the operation
 49483  	// has returned all results.
 49484  	NextToken *string `locationName:"nextToken" type:"string"`
 49485  }
 49486  
 49487  // String returns the string representation.
 49488  //
 49489  // API parameter values that are decorated as "sensitive" in the API will not
 49490  // be included in the string output. The member name will be present, but the
 49491  // value will be replaced with "sensitive".
 49492  func (s ListFleetMetricsOutput) String() string {
 49493  	return awsutil.Prettify(s)
 49494  }
 49495  
 49496  // GoString returns the string representation.
 49497  //
 49498  // API parameter values that are decorated as "sensitive" in the API will not
 49499  // be included in the string output. The member name will be present, but the
 49500  // value will be replaced with "sensitive".
 49501  func (s ListFleetMetricsOutput) GoString() string {
 49502  	return s.String()
 49503  }
 49504  
 49505  // SetFleetMetrics sets the FleetMetrics field's value.
 49506  func (s *ListFleetMetricsOutput) SetFleetMetrics(v []*FleetMetricNameAndArn) *ListFleetMetricsOutput {
 49507  	s.FleetMetrics = v
 49508  	return s
 49509  }
 49510  
 49511  // SetNextToken sets the NextToken field's value.
 49512  func (s *ListFleetMetricsOutput) SetNextToken(v string) *ListFleetMetricsOutput {
 49513  	s.NextToken = &v
 49514  	return s
 49515  }
 49516  
 49517  type ListIndicesInput struct {
 49518  	_ struct{} `type:"structure" nopayload:"true"`
 49519  
 49520  	// The maximum number of results to return at one time.
 49521  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49522  
 49523  	// The token used to get the next set of results, or null if there are no additional
 49524  	// results.
 49525  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49526  }
 49527  
 49528  // String returns the string representation.
 49529  //
 49530  // API parameter values that are decorated as "sensitive" in the API will not
 49531  // be included in the string output. The member name will be present, but the
 49532  // value will be replaced with "sensitive".
 49533  func (s ListIndicesInput) String() string {
 49534  	return awsutil.Prettify(s)
 49535  }
 49536  
 49537  // GoString returns the string representation.
 49538  //
 49539  // API parameter values that are decorated as "sensitive" in the API will not
 49540  // be included in the string output. The member name will be present, but the
 49541  // value will be replaced with "sensitive".
 49542  func (s ListIndicesInput) GoString() string {
 49543  	return s.String()
 49544  }
 49545  
 49546  // Validate inspects the fields of the type to determine if they are valid.
 49547  func (s *ListIndicesInput) Validate() error {
 49548  	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
 49549  	if s.MaxResults != nil && *s.MaxResults < 1 {
 49550  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49551  	}
 49552  
 49553  	if invalidParams.Len() > 0 {
 49554  		return invalidParams
 49555  	}
 49556  	return nil
 49557  }
 49558  
 49559  // SetMaxResults sets the MaxResults field's value.
 49560  func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
 49561  	s.MaxResults = &v
 49562  	return s
 49563  }
 49564  
 49565  // SetNextToken sets the NextToken field's value.
 49566  func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
 49567  	s.NextToken = &v
 49568  	return s
 49569  }
 49570  
 49571  type ListIndicesOutput struct {
 49572  	_ struct{} `type:"structure"`
 49573  
 49574  	// The index names.
 49575  	IndexNames []*string `locationName:"indexNames" type:"list"`
 49576  
 49577  	// The token used to get the next set of results, or null if there are no additional
 49578  	// results.
 49579  	NextToken *string `locationName:"nextToken" type:"string"`
 49580  }
 49581  
 49582  // String returns the string representation.
 49583  //
 49584  // API parameter values that are decorated as "sensitive" in the API will not
 49585  // be included in the string output. The member name will be present, but the
 49586  // value will be replaced with "sensitive".
 49587  func (s ListIndicesOutput) String() string {
 49588  	return awsutil.Prettify(s)
 49589  }
 49590  
 49591  // GoString returns the string representation.
 49592  //
 49593  // API parameter values that are decorated as "sensitive" in the API will not
 49594  // be included in the string output. The member name will be present, but the
 49595  // value will be replaced with "sensitive".
 49596  func (s ListIndicesOutput) GoString() string {
 49597  	return s.String()
 49598  }
 49599  
 49600  // SetIndexNames sets the IndexNames field's value.
 49601  func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
 49602  	s.IndexNames = v
 49603  	return s
 49604  }
 49605  
 49606  // SetNextToken sets the NextToken field's value.
 49607  func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
 49608  	s.NextToken = &v
 49609  	return s
 49610  }
 49611  
 49612  type ListJobExecutionsForJobInput struct {
 49613  	_ struct{} `type:"structure" nopayload:"true"`
 49614  
 49615  	// The unique identifier you assigned to this job when it was created.
 49616  	//
 49617  	// JobId is a required field
 49618  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 49619  
 49620  	// The maximum number of results to be returned per request.
 49621  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49622  
 49623  	// The token to retrieve the next set of results.
 49624  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49625  
 49626  	// The status of the job.
 49627  	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
 49628  }
 49629  
 49630  // String returns the string representation.
 49631  //
 49632  // API parameter values that are decorated as "sensitive" in the API will not
 49633  // be included in the string output. The member name will be present, but the
 49634  // value will be replaced with "sensitive".
 49635  func (s ListJobExecutionsForJobInput) String() string {
 49636  	return awsutil.Prettify(s)
 49637  }
 49638  
 49639  // GoString returns the string representation.
 49640  //
 49641  // API parameter values that are decorated as "sensitive" in the API will not
 49642  // be included in the string output. The member name will be present, but the
 49643  // value will be replaced with "sensitive".
 49644  func (s ListJobExecutionsForJobInput) GoString() string {
 49645  	return s.String()
 49646  }
 49647  
 49648  // Validate inspects the fields of the type to determine if they are valid.
 49649  func (s *ListJobExecutionsForJobInput) Validate() error {
 49650  	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
 49651  	if s.JobId == nil {
 49652  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 49653  	}
 49654  	if s.JobId != nil && len(*s.JobId) < 1 {
 49655  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 49656  	}
 49657  	if s.MaxResults != nil && *s.MaxResults < 1 {
 49658  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49659  	}
 49660  
 49661  	if invalidParams.Len() > 0 {
 49662  		return invalidParams
 49663  	}
 49664  	return nil
 49665  }
 49666  
 49667  // SetJobId sets the JobId field's value.
 49668  func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
 49669  	s.JobId = &v
 49670  	return s
 49671  }
 49672  
 49673  // SetMaxResults sets the MaxResults field's value.
 49674  func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
 49675  	s.MaxResults = &v
 49676  	return s
 49677  }
 49678  
 49679  // SetNextToken sets the NextToken field's value.
 49680  func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
 49681  	s.NextToken = &v
 49682  	return s
 49683  }
 49684  
 49685  // SetStatus sets the Status field's value.
 49686  func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
 49687  	s.Status = &v
 49688  	return s
 49689  }
 49690  
 49691  type ListJobExecutionsForJobOutput struct {
 49692  	_ struct{} `type:"structure"`
 49693  
 49694  	// A list of job execution summaries.
 49695  	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
 49696  
 49697  	// The token for the next set of results, or null if there are no additional
 49698  	// results.
 49699  	NextToken *string `locationName:"nextToken" type:"string"`
 49700  }
 49701  
 49702  // String returns the string representation.
 49703  //
 49704  // API parameter values that are decorated as "sensitive" in the API will not
 49705  // be included in the string output. The member name will be present, but the
 49706  // value will be replaced with "sensitive".
 49707  func (s ListJobExecutionsForJobOutput) String() string {
 49708  	return awsutil.Prettify(s)
 49709  }
 49710  
 49711  // GoString returns the string representation.
 49712  //
 49713  // API parameter values that are decorated as "sensitive" in the API will not
 49714  // be included in the string output. The member name will be present, but the
 49715  // value will be replaced with "sensitive".
 49716  func (s ListJobExecutionsForJobOutput) GoString() string {
 49717  	return s.String()
 49718  }
 49719  
 49720  // SetExecutionSummaries sets the ExecutionSummaries field's value.
 49721  func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
 49722  	s.ExecutionSummaries = v
 49723  	return s
 49724  }
 49725  
 49726  // SetNextToken sets the NextToken field's value.
 49727  func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
 49728  	s.NextToken = &v
 49729  	return s
 49730  }
 49731  
 49732  type ListJobExecutionsForThingInput struct {
 49733  	_ struct{} `type:"structure" nopayload:"true"`
 49734  
 49735  	// The maximum number of results to be returned per request.
 49736  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49737  
 49738  	// The namespace used to indicate that a job is a customer-managed job.
 49739  	//
 49740  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 49741  	// sends jobs notifications to MQTT topics that contain the value in the following
 49742  	// format.
 49743  	//
 49744  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 49745  	//
 49746  	// The namespaceId feature is in public preview.
 49747  	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
 49748  
 49749  	// The token to retrieve the next set of results.
 49750  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49751  
 49752  	// An optional filter that lets you search for jobs that have the specified
 49753  	// status.
 49754  	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
 49755  
 49756  	// The thing name.
 49757  	//
 49758  	// ThingName is a required field
 49759  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 49760  }
 49761  
 49762  // String returns the string representation.
 49763  //
 49764  // API parameter values that are decorated as "sensitive" in the API will not
 49765  // be included in the string output. The member name will be present, but the
 49766  // value will be replaced with "sensitive".
 49767  func (s ListJobExecutionsForThingInput) String() string {
 49768  	return awsutil.Prettify(s)
 49769  }
 49770  
 49771  // GoString returns the string representation.
 49772  //
 49773  // API parameter values that are decorated as "sensitive" in the API will not
 49774  // be included in the string output. The member name will be present, but the
 49775  // value will be replaced with "sensitive".
 49776  func (s ListJobExecutionsForThingInput) GoString() string {
 49777  	return s.String()
 49778  }
 49779  
 49780  // Validate inspects the fields of the type to determine if they are valid.
 49781  func (s *ListJobExecutionsForThingInput) Validate() error {
 49782  	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
 49783  	if s.MaxResults != nil && *s.MaxResults < 1 {
 49784  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49785  	}
 49786  	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
 49787  		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
 49788  	}
 49789  	if s.ThingName == nil {
 49790  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 49791  	}
 49792  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 49793  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 49794  	}
 49795  
 49796  	if invalidParams.Len() > 0 {
 49797  		return invalidParams
 49798  	}
 49799  	return nil
 49800  }
 49801  
 49802  // SetMaxResults sets the MaxResults field's value.
 49803  func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
 49804  	s.MaxResults = &v
 49805  	return s
 49806  }
 49807  
 49808  // SetNamespaceId sets the NamespaceId field's value.
 49809  func (s *ListJobExecutionsForThingInput) SetNamespaceId(v string) *ListJobExecutionsForThingInput {
 49810  	s.NamespaceId = &v
 49811  	return s
 49812  }
 49813  
 49814  // SetNextToken sets the NextToken field's value.
 49815  func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
 49816  	s.NextToken = &v
 49817  	return s
 49818  }
 49819  
 49820  // SetStatus sets the Status field's value.
 49821  func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
 49822  	s.Status = &v
 49823  	return s
 49824  }
 49825  
 49826  // SetThingName sets the ThingName field's value.
 49827  func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
 49828  	s.ThingName = &v
 49829  	return s
 49830  }
 49831  
 49832  type ListJobExecutionsForThingOutput struct {
 49833  	_ struct{} `type:"structure"`
 49834  
 49835  	// A list of job execution summaries.
 49836  	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
 49837  
 49838  	// The token for the next set of results, or null if there are no additional
 49839  	// results.
 49840  	NextToken *string `locationName:"nextToken" type:"string"`
 49841  }
 49842  
 49843  // String returns the string representation.
 49844  //
 49845  // API parameter values that are decorated as "sensitive" in the API will not
 49846  // be included in the string output. The member name will be present, but the
 49847  // value will be replaced with "sensitive".
 49848  func (s ListJobExecutionsForThingOutput) String() string {
 49849  	return awsutil.Prettify(s)
 49850  }
 49851  
 49852  // GoString returns the string representation.
 49853  //
 49854  // API parameter values that are decorated as "sensitive" in the API will not
 49855  // be included in the string output. The member name will be present, but the
 49856  // value will be replaced with "sensitive".
 49857  func (s ListJobExecutionsForThingOutput) GoString() string {
 49858  	return s.String()
 49859  }
 49860  
 49861  // SetExecutionSummaries sets the ExecutionSummaries field's value.
 49862  func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
 49863  	s.ExecutionSummaries = v
 49864  	return s
 49865  }
 49866  
 49867  // SetNextToken sets the NextToken field's value.
 49868  func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
 49869  	s.NextToken = &v
 49870  	return s
 49871  }
 49872  
 49873  type ListJobTemplatesInput struct {
 49874  	_ struct{} `type:"structure" nopayload:"true"`
 49875  
 49876  	// The maximum number of results to return in the list.
 49877  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49878  
 49879  	// The token to use to return the next set of results in the list.
 49880  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49881  }
 49882  
 49883  // String returns the string representation.
 49884  //
 49885  // API parameter values that are decorated as "sensitive" in the API will not
 49886  // be included in the string output. The member name will be present, but the
 49887  // value will be replaced with "sensitive".
 49888  func (s ListJobTemplatesInput) String() string {
 49889  	return awsutil.Prettify(s)
 49890  }
 49891  
 49892  // GoString returns the string representation.
 49893  //
 49894  // API parameter values that are decorated as "sensitive" in the API will not
 49895  // be included in the string output. The member name will be present, but the
 49896  // value will be replaced with "sensitive".
 49897  func (s ListJobTemplatesInput) GoString() string {
 49898  	return s.String()
 49899  }
 49900  
 49901  // Validate inspects the fields of the type to determine if they are valid.
 49902  func (s *ListJobTemplatesInput) Validate() error {
 49903  	invalidParams := request.ErrInvalidParams{Context: "ListJobTemplatesInput"}
 49904  	if s.MaxResults != nil && *s.MaxResults < 1 {
 49905  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 49906  	}
 49907  
 49908  	if invalidParams.Len() > 0 {
 49909  		return invalidParams
 49910  	}
 49911  	return nil
 49912  }
 49913  
 49914  // SetMaxResults sets the MaxResults field's value.
 49915  func (s *ListJobTemplatesInput) SetMaxResults(v int64) *ListJobTemplatesInput {
 49916  	s.MaxResults = &v
 49917  	return s
 49918  }
 49919  
 49920  // SetNextToken sets the NextToken field's value.
 49921  func (s *ListJobTemplatesInput) SetNextToken(v string) *ListJobTemplatesInput {
 49922  	s.NextToken = &v
 49923  	return s
 49924  }
 49925  
 49926  type ListJobTemplatesOutput struct {
 49927  	_ struct{} `type:"structure"`
 49928  
 49929  	// A list of objects that contain information about the job templates.
 49930  	JobTemplates []*JobTemplateSummary `locationName:"jobTemplates" type:"list"`
 49931  
 49932  	// The token for the next set of results, or null if there are no additional
 49933  	// results.
 49934  	NextToken *string `locationName:"nextToken" type:"string"`
 49935  }
 49936  
 49937  // String returns the string representation.
 49938  //
 49939  // API parameter values that are decorated as "sensitive" in the API will not
 49940  // be included in the string output. The member name will be present, but the
 49941  // value will be replaced with "sensitive".
 49942  func (s ListJobTemplatesOutput) String() string {
 49943  	return awsutil.Prettify(s)
 49944  }
 49945  
 49946  // GoString returns the string representation.
 49947  //
 49948  // API parameter values that are decorated as "sensitive" in the API will not
 49949  // be included in the string output. The member name will be present, but the
 49950  // value will be replaced with "sensitive".
 49951  func (s ListJobTemplatesOutput) GoString() string {
 49952  	return s.String()
 49953  }
 49954  
 49955  // SetJobTemplates sets the JobTemplates field's value.
 49956  func (s *ListJobTemplatesOutput) SetJobTemplates(v []*JobTemplateSummary) *ListJobTemplatesOutput {
 49957  	s.JobTemplates = v
 49958  	return s
 49959  }
 49960  
 49961  // SetNextToken sets the NextToken field's value.
 49962  func (s *ListJobTemplatesOutput) SetNextToken(v string) *ListJobTemplatesOutput {
 49963  	s.NextToken = &v
 49964  	return s
 49965  }
 49966  
 49967  type ListJobsInput struct {
 49968  	_ struct{} `type:"structure" nopayload:"true"`
 49969  
 49970  	// The maximum number of results to return per request.
 49971  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 49972  
 49973  	// The namespace used to indicate that a job is a customer-managed job.
 49974  	//
 49975  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 49976  	// sends jobs notifications to MQTT topics that contain the value in the following
 49977  	// format.
 49978  	//
 49979  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 49980  	//
 49981  	// The namespaceId feature is in public preview.
 49982  	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
 49983  
 49984  	// The token to retrieve the next set of results.
 49985  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 49986  
 49987  	// An optional filter that lets you search for jobs that have the specified
 49988  	// status.
 49989  	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
 49990  
 49991  	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
 49992  	// after all those things specified as targets have completed the job (SNAPSHOT).
 49993  	// If continuous, the job may also be run on a thing when a change is detected
 49994  	// in a target. For example, a job will run on a thing when the thing is added
 49995  	// to a target group, even after the job was completed by all things originally
 49996  	// in the group.
 49997  	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
 49998  
 49999  	// A filter that limits the returned jobs to those for the specified group.
 50000  	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
 50001  
 50002  	// A filter that limits the returned jobs to those for the specified group.
 50003  	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
 50004  }
 50005  
 50006  // String returns the string representation.
 50007  //
 50008  // API parameter values that are decorated as "sensitive" in the API will not
 50009  // be included in the string output. The member name will be present, but the
 50010  // value will be replaced with "sensitive".
 50011  func (s ListJobsInput) String() string {
 50012  	return awsutil.Prettify(s)
 50013  }
 50014  
 50015  // GoString returns the string representation.
 50016  //
 50017  // API parameter values that are decorated as "sensitive" in the API will not
 50018  // be included in the string output. The member name will be present, but the
 50019  // value will be replaced with "sensitive".
 50020  func (s ListJobsInput) GoString() string {
 50021  	return s.String()
 50022  }
 50023  
 50024  // Validate inspects the fields of the type to determine if they are valid.
 50025  func (s *ListJobsInput) Validate() error {
 50026  	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
 50027  	if s.MaxResults != nil && *s.MaxResults < 1 {
 50028  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 50029  	}
 50030  	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
 50031  		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
 50032  	}
 50033  	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
 50034  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
 50035  	}
 50036  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 50037  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 50038  	}
 50039  
 50040  	if invalidParams.Len() > 0 {
 50041  		return invalidParams
 50042  	}
 50043  	return nil
 50044  }
 50045  
 50046  // SetMaxResults sets the MaxResults field's value.
 50047  func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
 50048  	s.MaxResults = &v
 50049  	return s
 50050  }
 50051  
 50052  // SetNamespaceId sets the NamespaceId field's value.
 50053  func (s *ListJobsInput) SetNamespaceId(v string) *ListJobsInput {
 50054  	s.NamespaceId = &v
 50055  	return s
 50056  }
 50057  
 50058  // SetNextToken sets the NextToken field's value.
 50059  func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
 50060  	s.NextToken = &v
 50061  	return s
 50062  }
 50063  
 50064  // SetStatus sets the Status field's value.
 50065  func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
 50066  	s.Status = &v
 50067  	return s
 50068  }
 50069  
 50070  // SetTargetSelection sets the TargetSelection field's value.
 50071  func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
 50072  	s.TargetSelection = &v
 50073  	return s
 50074  }
 50075  
 50076  // SetThingGroupId sets the ThingGroupId field's value.
 50077  func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
 50078  	s.ThingGroupId = &v
 50079  	return s
 50080  }
 50081  
 50082  // SetThingGroupName sets the ThingGroupName field's value.
 50083  func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
 50084  	s.ThingGroupName = &v
 50085  	return s
 50086  }
 50087  
 50088  type ListJobsOutput struct {
 50089  	_ struct{} `type:"structure"`
 50090  
 50091  	// A list of jobs.
 50092  	Jobs []*JobSummary `locationName:"jobs" type:"list"`
 50093  
 50094  	// The token for the next set of results, or null if there are no additional
 50095  	// results.
 50096  	NextToken *string `locationName:"nextToken" type:"string"`
 50097  }
 50098  
 50099  // String returns the string representation.
 50100  //
 50101  // API parameter values that are decorated as "sensitive" in the API will not
 50102  // be included in the string output. The member name will be present, but the
 50103  // value will be replaced with "sensitive".
 50104  func (s ListJobsOutput) String() string {
 50105  	return awsutil.Prettify(s)
 50106  }
 50107  
 50108  // GoString returns the string representation.
 50109  //
 50110  // API parameter values that are decorated as "sensitive" in the API will not
 50111  // be included in the string output. The member name will be present, but the
 50112  // value will be replaced with "sensitive".
 50113  func (s ListJobsOutput) GoString() string {
 50114  	return s.String()
 50115  }
 50116  
 50117  // SetJobs sets the Jobs field's value.
 50118  func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
 50119  	s.Jobs = v
 50120  	return s
 50121  }
 50122  
 50123  // SetNextToken sets the NextToken field's value.
 50124  func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
 50125  	s.NextToken = &v
 50126  	return s
 50127  }
 50128  
 50129  type ListMitigationActionsInput struct {
 50130  	_ struct{} `type:"structure" nopayload:"true"`
 50131  
 50132  	// Specify a value to limit the result to mitigation actions with a specific
 50133  	// action type.
 50134  	ActionType *string `location:"querystring" locationName:"actionType" type:"string" enum:"MitigationActionType"`
 50135  
 50136  	// The maximum number of results to return at one time. The default is 25.
 50137  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 50138  
 50139  	// The token for the next set of results.
 50140  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 50141  }
 50142  
 50143  // String returns the string representation.
 50144  //
 50145  // API parameter values that are decorated as "sensitive" in the API will not
 50146  // be included in the string output. The member name will be present, but the
 50147  // value will be replaced with "sensitive".
 50148  func (s ListMitigationActionsInput) String() string {
 50149  	return awsutil.Prettify(s)
 50150  }
 50151  
 50152  // GoString returns the string representation.
 50153  //
 50154  // API parameter values that are decorated as "sensitive" in the API will not
 50155  // be included in the string output. The member name will be present, but the
 50156  // value will be replaced with "sensitive".
 50157  func (s ListMitigationActionsInput) GoString() string {
 50158  	return s.String()
 50159  }
 50160  
 50161  // Validate inspects the fields of the type to determine if they are valid.
 50162  func (s *ListMitigationActionsInput) Validate() error {
 50163  	invalidParams := request.ErrInvalidParams{Context: "ListMitigationActionsInput"}
 50164  	if s.MaxResults != nil && *s.MaxResults < 1 {
 50165  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 50166  	}
 50167  
 50168  	if invalidParams.Len() > 0 {
 50169  		return invalidParams
 50170  	}
 50171  	return nil
 50172  }
 50173  
 50174  // SetActionType sets the ActionType field's value.
 50175  func (s *ListMitigationActionsInput) SetActionType(v string) *ListMitigationActionsInput {
 50176  	s.ActionType = &v
 50177  	return s
 50178  }
 50179  
 50180  // SetMaxResults sets the MaxResults field's value.
 50181  func (s *ListMitigationActionsInput) SetMaxResults(v int64) *ListMitigationActionsInput {
 50182  	s.MaxResults = &v
 50183  	return s
 50184  }
 50185  
 50186  // SetNextToken sets the NextToken field's value.
 50187  func (s *ListMitigationActionsInput) SetNextToken(v string) *ListMitigationActionsInput {
 50188  	s.NextToken = &v
 50189  	return s
 50190  }
 50191  
 50192  type ListMitigationActionsOutput struct {
 50193  	_ struct{} `type:"structure"`
 50194  
 50195  	// A set of actions that matched the specified filter criteria.
 50196  	ActionIdentifiers []*MitigationActionIdentifier `locationName:"actionIdentifiers" type:"list"`
 50197  
 50198  	// The token for the next set of results.
 50199  	NextToken *string `locationName:"nextToken" type:"string"`
 50200  }
 50201  
 50202  // String returns the string representation.
 50203  //
 50204  // API parameter values that are decorated as "sensitive" in the API will not
 50205  // be included in the string output. The member name will be present, but the
 50206  // value will be replaced with "sensitive".
 50207  func (s ListMitigationActionsOutput) String() string {
 50208  	return awsutil.Prettify(s)
 50209  }
 50210  
 50211  // GoString returns the string representation.
 50212  //
 50213  // API parameter values that are decorated as "sensitive" in the API will not
 50214  // be included in the string output. The member name will be present, but the
 50215  // value will be replaced with "sensitive".
 50216  func (s ListMitigationActionsOutput) GoString() string {
 50217  	return s.String()
 50218  }
 50219  
 50220  // SetActionIdentifiers sets the ActionIdentifiers field's value.
 50221  func (s *ListMitigationActionsOutput) SetActionIdentifiers(v []*MitigationActionIdentifier) *ListMitigationActionsOutput {
 50222  	s.ActionIdentifiers = v
 50223  	return s
 50224  }
 50225  
 50226  // SetNextToken sets the NextToken field's value.
 50227  func (s *ListMitigationActionsOutput) SetNextToken(v string) *ListMitigationActionsOutput {
 50228  	s.NextToken = &v
 50229  	return s
 50230  }
 50231  
 50232  type ListOTAUpdatesInput struct {
 50233  	_ struct{} `type:"structure" nopayload:"true"`
 50234  
 50235  	// The maximum number of results to return at one time.
 50236  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 50237  
 50238  	// A token used to retrieve the next set of results.
 50239  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 50240  
 50241  	// The OTA update job status.
 50242  	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
 50243  }
 50244  
 50245  // String returns the string representation.
 50246  //
 50247  // API parameter values that are decorated as "sensitive" in the API will not
 50248  // be included in the string output. The member name will be present, but the
 50249  // value will be replaced with "sensitive".
 50250  func (s ListOTAUpdatesInput) String() string {
 50251  	return awsutil.Prettify(s)
 50252  }
 50253  
 50254  // GoString returns the string representation.
 50255  //
 50256  // API parameter values that are decorated as "sensitive" in the API will not
 50257  // be included in the string output. The member name will be present, but the
 50258  // value will be replaced with "sensitive".
 50259  func (s ListOTAUpdatesInput) GoString() string {
 50260  	return s.String()
 50261  }
 50262  
 50263  // Validate inspects the fields of the type to determine if they are valid.
 50264  func (s *ListOTAUpdatesInput) Validate() error {
 50265  	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
 50266  	if s.MaxResults != nil && *s.MaxResults < 1 {
 50267  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 50268  	}
 50269  
 50270  	if invalidParams.Len() > 0 {
 50271  		return invalidParams
 50272  	}
 50273  	return nil
 50274  }
 50275  
 50276  // SetMaxResults sets the MaxResults field's value.
 50277  func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
 50278  	s.MaxResults = &v
 50279  	return s
 50280  }
 50281  
 50282  // SetNextToken sets the NextToken field's value.
 50283  func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
 50284  	s.NextToken = &v
 50285  	return s
 50286  }
 50287  
 50288  // SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
 50289  func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
 50290  	s.OtaUpdateStatus = &v
 50291  	return s
 50292  }
 50293  
 50294  type ListOTAUpdatesOutput struct {
 50295  	_ struct{} `type:"structure"`
 50296  
 50297  	// A token to use to get the next set of results.
 50298  	NextToken *string `locationName:"nextToken" type:"string"`
 50299  
 50300  	// A list of OTA update jobs.
 50301  	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
 50302  }
 50303  
 50304  // String returns the string representation.
 50305  //
 50306  // API parameter values that are decorated as "sensitive" in the API will not
 50307  // be included in the string output. The member name will be present, but the
 50308  // value will be replaced with "sensitive".
 50309  func (s ListOTAUpdatesOutput) String() string {
 50310  	return awsutil.Prettify(s)
 50311  }
 50312  
 50313  // GoString returns the string representation.
 50314  //
 50315  // API parameter values that are decorated as "sensitive" in the API will not
 50316  // be included in the string output. The member name will be present, but the
 50317  // value will be replaced with "sensitive".
 50318  func (s ListOTAUpdatesOutput) GoString() string {
 50319  	return s.String()
 50320  }
 50321  
 50322  // SetNextToken sets the NextToken field's value.
 50323  func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
 50324  	s.NextToken = &v
 50325  	return s
 50326  }
 50327  
 50328  // SetOtaUpdates sets the OtaUpdates field's value.
 50329  func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
 50330  	s.OtaUpdates = v
 50331  	return s
 50332  }
 50333  
 50334  // The input to the ListOutgoingCertificates operation.
 50335  type ListOutgoingCertificatesInput struct {
 50336  	_ struct{} `type:"structure" nopayload:"true"`
 50337  
 50338  	// Specifies the order for results. If True, the results are returned in ascending
 50339  	// order, based on the creation date.
 50340  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 50341  
 50342  	// The marker for the next set of results.
 50343  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 50344  
 50345  	// The result page size.
 50346  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 50347  }
 50348  
 50349  // String returns the string representation.
 50350  //
 50351  // API parameter values that are decorated as "sensitive" in the API will not
 50352  // be included in the string output. The member name will be present, but the
 50353  // value will be replaced with "sensitive".
 50354  func (s ListOutgoingCertificatesInput) String() string {
 50355  	return awsutil.Prettify(s)
 50356  }
 50357  
 50358  // GoString returns the string representation.
 50359  //
 50360  // API parameter values that are decorated as "sensitive" in the API will not
 50361  // be included in the string output. The member name will be present, but the
 50362  // value will be replaced with "sensitive".
 50363  func (s ListOutgoingCertificatesInput) GoString() string {
 50364  	return s.String()
 50365  }
 50366  
 50367  // Validate inspects the fields of the type to determine if they are valid.
 50368  func (s *ListOutgoingCertificatesInput) Validate() error {
 50369  	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
 50370  	if s.PageSize != nil && *s.PageSize < 1 {
 50371  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 50372  	}
 50373  
 50374  	if invalidParams.Len() > 0 {
 50375  		return invalidParams
 50376  	}
 50377  	return nil
 50378  }
 50379  
 50380  // SetAscendingOrder sets the AscendingOrder field's value.
 50381  func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
 50382  	s.AscendingOrder = &v
 50383  	return s
 50384  }
 50385  
 50386  // SetMarker sets the Marker field's value.
 50387  func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
 50388  	s.Marker = &v
 50389  	return s
 50390  }
 50391  
 50392  // SetPageSize sets the PageSize field's value.
 50393  func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
 50394  	s.PageSize = &v
 50395  	return s
 50396  }
 50397  
 50398  // The output from the ListOutgoingCertificates operation.
 50399  type ListOutgoingCertificatesOutput struct {
 50400  	_ struct{} `type:"structure"`
 50401  
 50402  	// The marker for the next set of results.
 50403  	NextMarker *string `locationName:"nextMarker" type:"string"`
 50404  
 50405  	// The certificates that are being transferred but not yet accepted.
 50406  	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
 50407  }
 50408  
 50409  // String returns the string representation.
 50410  //
 50411  // API parameter values that are decorated as "sensitive" in the API will not
 50412  // be included in the string output. The member name will be present, but the
 50413  // value will be replaced with "sensitive".
 50414  func (s ListOutgoingCertificatesOutput) String() string {
 50415  	return awsutil.Prettify(s)
 50416  }
 50417  
 50418  // GoString returns the string representation.
 50419  //
 50420  // API parameter values that are decorated as "sensitive" in the API will not
 50421  // be included in the string output. The member name will be present, but the
 50422  // value will be replaced with "sensitive".
 50423  func (s ListOutgoingCertificatesOutput) GoString() string {
 50424  	return s.String()
 50425  }
 50426  
 50427  // SetNextMarker sets the NextMarker field's value.
 50428  func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
 50429  	s.NextMarker = &v
 50430  	return s
 50431  }
 50432  
 50433  // SetOutgoingCertificates sets the OutgoingCertificates field's value.
 50434  func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
 50435  	s.OutgoingCertificates = v
 50436  	return s
 50437  }
 50438  
 50439  // The input for the ListPolicies operation.
 50440  type ListPoliciesInput struct {
 50441  	_ struct{} `type:"structure" nopayload:"true"`
 50442  
 50443  	// Specifies the order for results. If true, the results are returned in ascending
 50444  	// creation order.
 50445  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 50446  
 50447  	// The marker for the next set of results.
 50448  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 50449  
 50450  	// The result page size.
 50451  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 50452  }
 50453  
 50454  // String returns the string representation.
 50455  //
 50456  // API parameter values that are decorated as "sensitive" in the API will not
 50457  // be included in the string output. The member name will be present, but the
 50458  // value will be replaced with "sensitive".
 50459  func (s ListPoliciesInput) String() string {
 50460  	return awsutil.Prettify(s)
 50461  }
 50462  
 50463  // GoString returns the string representation.
 50464  //
 50465  // API parameter values that are decorated as "sensitive" in the API will not
 50466  // be included in the string output. The member name will be present, but the
 50467  // value will be replaced with "sensitive".
 50468  func (s ListPoliciesInput) GoString() string {
 50469  	return s.String()
 50470  }
 50471  
 50472  // Validate inspects the fields of the type to determine if they are valid.
 50473  func (s *ListPoliciesInput) Validate() error {
 50474  	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
 50475  	if s.PageSize != nil && *s.PageSize < 1 {
 50476  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 50477  	}
 50478  
 50479  	if invalidParams.Len() > 0 {
 50480  		return invalidParams
 50481  	}
 50482  	return nil
 50483  }
 50484  
 50485  // SetAscendingOrder sets the AscendingOrder field's value.
 50486  func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
 50487  	s.AscendingOrder = &v
 50488  	return s
 50489  }
 50490  
 50491  // SetMarker sets the Marker field's value.
 50492  func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
 50493  	s.Marker = &v
 50494  	return s
 50495  }
 50496  
 50497  // SetPageSize sets the PageSize field's value.
 50498  func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
 50499  	s.PageSize = &v
 50500  	return s
 50501  }
 50502  
 50503  // The output from the ListPolicies operation.
 50504  type ListPoliciesOutput struct {
 50505  	_ struct{} `type:"structure"`
 50506  
 50507  	// The marker for the next set of results, or null if there are no additional
 50508  	// results.
 50509  	NextMarker *string `locationName:"nextMarker" type:"string"`
 50510  
 50511  	// The descriptions of the policies.
 50512  	Policies []*Policy `locationName:"policies" type:"list"`
 50513  }
 50514  
 50515  // String returns the string representation.
 50516  //
 50517  // API parameter values that are decorated as "sensitive" in the API will not
 50518  // be included in the string output. The member name will be present, but the
 50519  // value will be replaced with "sensitive".
 50520  func (s ListPoliciesOutput) String() string {
 50521  	return awsutil.Prettify(s)
 50522  }
 50523  
 50524  // GoString returns the string representation.
 50525  //
 50526  // API parameter values that are decorated as "sensitive" in the API will not
 50527  // be included in the string output. The member name will be present, but the
 50528  // value will be replaced with "sensitive".
 50529  func (s ListPoliciesOutput) GoString() string {
 50530  	return s.String()
 50531  }
 50532  
 50533  // SetNextMarker sets the NextMarker field's value.
 50534  func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
 50535  	s.NextMarker = &v
 50536  	return s
 50537  }
 50538  
 50539  // SetPolicies sets the Policies field's value.
 50540  func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
 50541  	s.Policies = v
 50542  	return s
 50543  }
 50544  
 50545  // The input for the ListPolicyPrincipals operation.
 50546  type ListPolicyPrincipalsInput struct {
 50547  	_ struct{} `type:"structure" nopayload:"true"`
 50548  
 50549  	// Specifies the order for results. If true, the results are returned in ascending
 50550  	// creation order.
 50551  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 50552  
 50553  	// The marker for the next set of results.
 50554  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 50555  
 50556  	// The result page size.
 50557  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 50558  
 50559  	// The policy name.
 50560  	//
 50561  	// PolicyName is a required field
 50562  	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
 50563  }
 50564  
 50565  // String returns the string representation.
 50566  //
 50567  // API parameter values that are decorated as "sensitive" in the API will not
 50568  // be included in the string output. The member name will be present, but the
 50569  // value will be replaced with "sensitive".
 50570  func (s ListPolicyPrincipalsInput) String() string {
 50571  	return awsutil.Prettify(s)
 50572  }
 50573  
 50574  // GoString returns the string representation.
 50575  //
 50576  // API parameter values that are decorated as "sensitive" in the API will not
 50577  // be included in the string output. The member name will be present, but the
 50578  // value will be replaced with "sensitive".
 50579  func (s ListPolicyPrincipalsInput) GoString() string {
 50580  	return s.String()
 50581  }
 50582  
 50583  // Validate inspects the fields of the type to determine if they are valid.
 50584  func (s *ListPolicyPrincipalsInput) Validate() error {
 50585  	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
 50586  	if s.PageSize != nil && *s.PageSize < 1 {
 50587  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 50588  	}
 50589  	if s.PolicyName == nil {
 50590  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 50591  	}
 50592  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 50593  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 50594  	}
 50595  
 50596  	if invalidParams.Len() > 0 {
 50597  		return invalidParams
 50598  	}
 50599  	return nil
 50600  }
 50601  
 50602  // SetAscendingOrder sets the AscendingOrder field's value.
 50603  func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
 50604  	s.AscendingOrder = &v
 50605  	return s
 50606  }
 50607  
 50608  // SetMarker sets the Marker field's value.
 50609  func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
 50610  	s.Marker = &v
 50611  	return s
 50612  }
 50613  
 50614  // SetPageSize sets the PageSize field's value.
 50615  func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
 50616  	s.PageSize = &v
 50617  	return s
 50618  }
 50619  
 50620  // SetPolicyName sets the PolicyName field's value.
 50621  func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
 50622  	s.PolicyName = &v
 50623  	return s
 50624  }
 50625  
 50626  // The output from the ListPolicyPrincipals operation.
 50627  type ListPolicyPrincipalsOutput struct {
 50628  	_ struct{} `type:"structure"`
 50629  
 50630  	// The marker for the next set of results, or null if there are no additional
 50631  	// results.
 50632  	NextMarker *string `locationName:"nextMarker" type:"string"`
 50633  
 50634  	// The descriptions of the principals.
 50635  	Principals []*string `locationName:"principals" type:"list"`
 50636  }
 50637  
 50638  // String returns the string representation.
 50639  //
 50640  // API parameter values that are decorated as "sensitive" in the API will not
 50641  // be included in the string output. The member name will be present, but the
 50642  // value will be replaced with "sensitive".
 50643  func (s ListPolicyPrincipalsOutput) String() string {
 50644  	return awsutil.Prettify(s)
 50645  }
 50646  
 50647  // GoString returns the string representation.
 50648  //
 50649  // API parameter values that are decorated as "sensitive" in the API will not
 50650  // be included in the string output. The member name will be present, but the
 50651  // value will be replaced with "sensitive".
 50652  func (s ListPolicyPrincipalsOutput) GoString() string {
 50653  	return s.String()
 50654  }
 50655  
 50656  // SetNextMarker sets the NextMarker field's value.
 50657  func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
 50658  	s.NextMarker = &v
 50659  	return s
 50660  }
 50661  
 50662  // SetPrincipals sets the Principals field's value.
 50663  func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
 50664  	s.Principals = v
 50665  	return s
 50666  }
 50667  
 50668  // The input for the ListPolicyVersions operation.
 50669  type ListPolicyVersionsInput struct {
 50670  	_ struct{} `type:"structure" nopayload:"true"`
 50671  
 50672  	// The policy name.
 50673  	//
 50674  	// PolicyName is a required field
 50675  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 50676  }
 50677  
 50678  // String returns the string representation.
 50679  //
 50680  // API parameter values that are decorated as "sensitive" in the API will not
 50681  // be included in the string output. The member name will be present, but the
 50682  // value will be replaced with "sensitive".
 50683  func (s ListPolicyVersionsInput) String() string {
 50684  	return awsutil.Prettify(s)
 50685  }
 50686  
 50687  // GoString returns the string representation.
 50688  //
 50689  // API parameter values that are decorated as "sensitive" in the API will not
 50690  // be included in the string output. The member name will be present, but the
 50691  // value will be replaced with "sensitive".
 50692  func (s ListPolicyVersionsInput) GoString() string {
 50693  	return s.String()
 50694  }
 50695  
 50696  // Validate inspects the fields of the type to determine if they are valid.
 50697  func (s *ListPolicyVersionsInput) Validate() error {
 50698  	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
 50699  	if s.PolicyName == nil {
 50700  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 50701  	}
 50702  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 50703  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 50704  	}
 50705  
 50706  	if invalidParams.Len() > 0 {
 50707  		return invalidParams
 50708  	}
 50709  	return nil
 50710  }
 50711  
 50712  // SetPolicyName sets the PolicyName field's value.
 50713  func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
 50714  	s.PolicyName = &v
 50715  	return s
 50716  }
 50717  
 50718  // The output from the ListPolicyVersions operation.
 50719  type ListPolicyVersionsOutput struct {
 50720  	_ struct{} `type:"structure"`
 50721  
 50722  	// The policy versions.
 50723  	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
 50724  }
 50725  
 50726  // String returns the string representation.
 50727  //
 50728  // API parameter values that are decorated as "sensitive" in the API will not
 50729  // be included in the string output. The member name will be present, but the
 50730  // value will be replaced with "sensitive".
 50731  func (s ListPolicyVersionsOutput) String() string {
 50732  	return awsutil.Prettify(s)
 50733  }
 50734  
 50735  // GoString returns the string representation.
 50736  //
 50737  // API parameter values that are decorated as "sensitive" in the API will not
 50738  // be included in the string output. The member name will be present, but the
 50739  // value will be replaced with "sensitive".
 50740  func (s ListPolicyVersionsOutput) GoString() string {
 50741  	return s.String()
 50742  }
 50743  
 50744  // SetPolicyVersions sets the PolicyVersions field's value.
 50745  func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
 50746  	s.PolicyVersions = v
 50747  	return s
 50748  }
 50749  
 50750  // The input for the ListPrincipalPolicies operation.
 50751  type ListPrincipalPoliciesInput struct {
 50752  	_ struct{} `type:"structure" nopayload:"true"`
 50753  
 50754  	// Specifies the order for results. If true, results are returned in ascending
 50755  	// creation order.
 50756  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 50757  
 50758  	// The marker for the next set of results.
 50759  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 50760  
 50761  	// The result page size.
 50762  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 50763  
 50764  	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
 50765  	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
 50766  	// (region:id).
 50767  	//
 50768  	// Principal is a required field
 50769  	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
 50770  }
 50771  
 50772  // String returns the string representation.
 50773  //
 50774  // API parameter values that are decorated as "sensitive" in the API will not
 50775  // be included in the string output. The member name will be present, but the
 50776  // value will be replaced with "sensitive".
 50777  func (s ListPrincipalPoliciesInput) String() string {
 50778  	return awsutil.Prettify(s)
 50779  }
 50780  
 50781  // GoString returns the string representation.
 50782  //
 50783  // API parameter values that are decorated as "sensitive" in the API will not
 50784  // be included in the string output. The member name will be present, but the
 50785  // value will be replaced with "sensitive".
 50786  func (s ListPrincipalPoliciesInput) GoString() string {
 50787  	return s.String()
 50788  }
 50789  
 50790  // Validate inspects the fields of the type to determine if they are valid.
 50791  func (s *ListPrincipalPoliciesInput) Validate() error {
 50792  	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
 50793  	if s.PageSize != nil && *s.PageSize < 1 {
 50794  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 50795  	}
 50796  	if s.Principal == nil {
 50797  		invalidParams.Add(request.NewErrParamRequired("Principal"))
 50798  	}
 50799  
 50800  	if invalidParams.Len() > 0 {
 50801  		return invalidParams
 50802  	}
 50803  	return nil
 50804  }
 50805  
 50806  // SetAscendingOrder sets the AscendingOrder field's value.
 50807  func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
 50808  	s.AscendingOrder = &v
 50809  	return s
 50810  }
 50811  
 50812  // SetMarker sets the Marker field's value.
 50813  func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
 50814  	s.Marker = &v
 50815  	return s
 50816  }
 50817  
 50818  // SetPageSize sets the PageSize field's value.
 50819  func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
 50820  	s.PageSize = &v
 50821  	return s
 50822  }
 50823  
 50824  // SetPrincipal sets the Principal field's value.
 50825  func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
 50826  	s.Principal = &v
 50827  	return s
 50828  }
 50829  
 50830  // The output from the ListPrincipalPolicies operation.
 50831  type ListPrincipalPoliciesOutput struct {
 50832  	_ struct{} `type:"structure"`
 50833  
 50834  	// The marker for the next set of results, or null if there are no additional
 50835  	// results.
 50836  	NextMarker *string `locationName:"nextMarker" type:"string"`
 50837  
 50838  	// The policies.
 50839  	Policies []*Policy `locationName:"policies" type:"list"`
 50840  }
 50841  
 50842  // String returns the string representation.
 50843  //
 50844  // API parameter values that are decorated as "sensitive" in the API will not
 50845  // be included in the string output. The member name will be present, but the
 50846  // value will be replaced with "sensitive".
 50847  func (s ListPrincipalPoliciesOutput) String() string {
 50848  	return awsutil.Prettify(s)
 50849  }
 50850  
 50851  // GoString returns the string representation.
 50852  //
 50853  // API parameter values that are decorated as "sensitive" in the API will not
 50854  // be included in the string output. The member name will be present, but the
 50855  // value will be replaced with "sensitive".
 50856  func (s ListPrincipalPoliciesOutput) GoString() string {
 50857  	return s.String()
 50858  }
 50859  
 50860  // SetNextMarker sets the NextMarker field's value.
 50861  func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
 50862  	s.NextMarker = &v
 50863  	return s
 50864  }
 50865  
 50866  // SetPolicies sets the Policies field's value.
 50867  func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
 50868  	s.Policies = v
 50869  	return s
 50870  }
 50871  
 50872  // The input for the ListPrincipalThings operation.
 50873  type ListPrincipalThingsInput struct {
 50874  	_ struct{} `type:"structure" nopayload:"true"`
 50875  
 50876  	// The maximum number of results to return in this operation.
 50877  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 50878  
 50879  	// To retrieve the next set of results, the nextToken value from a previous
 50880  	// response; otherwise null to receive the first set of results.
 50881  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 50882  
 50883  	// The principal.
 50884  	//
 50885  	// Principal is a required field
 50886  	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
 50887  }
 50888  
 50889  // String returns the string representation.
 50890  //
 50891  // API parameter values that are decorated as "sensitive" in the API will not
 50892  // be included in the string output. The member name will be present, but the
 50893  // value will be replaced with "sensitive".
 50894  func (s ListPrincipalThingsInput) String() string {
 50895  	return awsutil.Prettify(s)
 50896  }
 50897  
 50898  // GoString returns the string representation.
 50899  //
 50900  // API parameter values that are decorated as "sensitive" in the API will not
 50901  // be included in the string output. The member name will be present, but the
 50902  // value will be replaced with "sensitive".
 50903  func (s ListPrincipalThingsInput) GoString() string {
 50904  	return s.String()
 50905  }
 50906  
 50907  // Validate inspects the fields of the type to determine if they are valid.
 50908  func (s *ListPrincipalThingsInput) Validate() error {
 50909  	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
 50910  	if s.MaxResults != nil && *s.MaxResults < 1 {
 50911  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 50912  	}
 50913  	if s.Principal == nil {
 50914  		invalidParams.Add(request.NewErrParamRequired("Principal"))
 50915  	}
 50916  
 50917  	if invalidParams.Len() > 0 {
 50918  		return invalidParams
 50919  	}
 50920  	return nil
 50921  }
 50922  
 50923  // SetMaxResults sets the MaxResults field's value.
 50924  func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
 50925  	s.MaxResults = &v
 50926  	return s
 50927  }
 50928  
 50929  // SetNextToken sets the NextToken field's value.
 50930  func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
 50931  	s.NextToken = &v
 50932  	return s
 50933  }
 50934  
 50935  // SetPrincipal sets the Principal field's value.
 50936  func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
 50937  	s.Principal = &v
 50938  	return s
 50939  }
 50940  
 50941  // The output from the ListPrincipalThings operation.
 50942  type ListPrincipalThingsOutput struct {
 50943  	_ struct{} `type:"structure"`
 50944  
 50945  	// The token to use to get the next set of results, or null if there are no
 50946  	// additional results.
 50947  	NextToken *string `locationName:"nextToken" type:"string"`
 50948  
 50949  	// The things.
 50950  	Things []*string `locationName:"things" type:"list"`
 50951  }
 50952  
 50953  // String returns the string representation.
 50954  //
 50955  // API parameter values that are decorated as "sensitive" in the API will not
 50956  // be included in the string output. The member name will be present, but the
 50957  // value will be replaced with "sensitive".
 50958  func (s ListPrincipalThingsOutput) String() string {
 50959  	return awsutil.Prettify(s)
 50960  }
 50961  
 50962  // GoString returns the string representation.
 50963  //
 50964  // API parameter values that are decorated as "sensitive" in the API will not
 50965  // be included in the string output. The member name will be present, but the
 50966  // value will be replaced with "sensitive".
 50967  func (s ListPrincipalThingsOutput) GoString() string {
 50968  	return s.String()
 50969  }
 50970  
 50971  // SetNextToken sets the NextToken field's value.
 50972  func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
 50973  	s.NextToken = &v
 50974  	return s
 50975  }
 50976  
 50977  // SetThings sets the Things field's value.
 50978  func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
 50979  	s.Things = v
 50980  	return s
 50981  }
 50982  
 50983  type ListProvisioningTemplateVersionsInput struct {
 50984  	_ struct{} `type:"structure" nopayload:"true"`
 50985  
 50986  	// The maximum number of results to return at one time.
 50987  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 50988  
 50989  	// A token to retrieve the next set of results.
 50990  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 50991  
 50992  	// The name of the fleet provisioning template.
 50993  	//
 50994  	// TemplateName is a required field
 50995  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 50996  }
 50997  
 50998  // String returns the string representation.
 50999  //
 51000  // API parameter values that are decorated as "sensitive" in the API will not
 51001  // be included in the string output. The member name will be present, but the
 51002  // value will be replaced with "sensitive".
 51003  func (s ListProvisioningTemplateVersionsInput) String() string {
 51004  	return awsutil.Prettify(s)
 51005  }
 51006  
 51007  // GoString returns the string representation.
 51008  //
 51009  // API parameter values that are decorated as "sensitive" in the API will not
 51010  // be included in the string output. The member name will be present, but the
 51011  // value will be replaced with "sensitive".
 51012  func (s ListProvisioningTemplateVersionsInput) GoString() string {
 51013  	return s.String()
 51014  }
 51015  
 51016  // Validate inspects the fields of the type to determine if they are valid.
 51017  func (s *ListProvisioningTemplateVersionsInput) Validate() error {
 51018  	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"}
 51019  	if s.MaxResults != nil && *s.MaxResults < 1 {
 51020  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 51021  	}
 51022  	if s.TemplateName == nil {
 51023  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 51024  	}
 51025  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 51026  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 51027  	}
 51028  
 51029  	if invalidParams.Len() > 0 {
 51030  		return invalidParams
 51031  	}
 51032  	return nil
 51033  }
 51034  
 51035  // SetMaxResults sets the MaxResults field's value.
 51036  func (s *ListProvisioningTemplateVersionsInput) SetMaxResults(v int64) *ListProvisioningTemplateVersionsInput {
 51037  	s.MaxResults = &v
 51038  	return s
 51039  }
 51040  
 51041  // SetNextToken sets the NextToken field's value.
 51042  func (s *ListProvisioningTemplateVersionsInput) SetNextToken(v string) *ListProvisioningTemplateVersionsInput {
 51043  	s.NextToken = &v
 51044  	return s
 51045  }
 51046  
 51047  // SetTemplateName sets the TemplateName field's value.
 51048  func (s *ListProvisioningTemplateVersionsInput) SetTemplateName(v string) *ListProvisioningTemplateVersionsInput {
 51049  	s.TemplateName = &v
 51050  	return s
 51051  }
 51052  
 51053  type ListProvisioningTemplateVersionsOutput struct {
 51054  	_ struct{} `type:"structure"`
 51055  
 51056  	// A token to retrieve the next set of results.
 51057  	NextToken *string `locationName:"nextToken" type:"string"`
 51058  
 51059  	// The list of fleet provisioning template versions.
 51060  	Versions []*ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"`
 51061  }
 51062  
 51063  // String returns the string representation.
 51064  //
 51065  // API parameter values that are decorated as "sensitive" in the API will not
 51066  // be included in the string output. The member name will be present, but the
 51067  // value will be replaced with "sensitive".
 51068  func (s ListProvisioningTemplateVersionsOutput) String() string {
 51069  	return awsutil.Prettify(s)
 51070  }
 51071  
 51072  // GoString returns the string representation.
 51073  //
 51074  // API parameter values that are decorated as "sensitive" in the API will not
 51075  // be included in the string output. The member name will be present, but the
 51076  // value will be replaced with "sensitive".
 51077  func (s ListProvisioningTemplateVersionsOutput) GoString() string {
 51078  	return s.String()
 51079  }
 51080  
 51081  // SetNextToken sets the NextToken field's value.
 51082  func (s *ListProvisioningTemplateVersionsOutput) SetNextToken(v string) *ListProvisioningTemplateVersionsOutput {
 51083  	s.NextToken = &v
 51084  	return s
 51085  }
 51086  
 51087  // SetVersions sets the Versions field's value.
 51088  func (s *ListProvisioningTemplateVersionsOutput) SetVersions(v []*ProvisioningTemplateVersionSummary) *ListProvisioningTemplateVersionsOutput {
 51089  	s.Versions = v
 51090  	return s
 51091  }
 51092  
 51093  type ListProvisioningTemplatesInput struct {
 51094  	_ struct{} `type:"structure" nopayload:"true"`
 51095  
 51096  	// The maximum number of results to return at one time.
 51097  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 51098  
 51099  	// A token to retrieve the next set of results.
 51100  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 51101  }
 51102  
 51103  // String returns the string representation.
 51104  //
 51105  // API parameter values that are decorated as "sensitive" in the API will not
 51106  // be included in the string output. The member name will be present, but the
 51107  // value will be replaced with "sensitive".
 51108  func (s ListProvisioningTemplatesInput) String() string {
 51109  	return awsutil.Prettify(s)
 51110  }
 51111  
 51112  // GoString returns the string representation.
 51113  //
 51114  // API parameter values that are decorated as "sensitive" in the API will not
 51115  // be included in the string output. The member name will be present, but the
 51116  // value will be replaced with "sensitive".
 51117  func (s ListProvisioningTemplatesInput) GoString() string {
 51118  	return s.String()
 51119  }
 51120  
 51121  // Validate inspects the fields of the type to determine if they are valid.
 51122  func (s *ListProvisioningTemplatesInput) Validate() error {
 51123  	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"}
 51124  	if s.MaxResults != nil && *s.MaxResults < 1 {
 51125  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 51126  	}
 51127  
 51128  	if invalidParams.Len() > 0 {
 51129  		return invalidParams
 51130  	}
 51131  	return nil
 51132  }
 51133  
 51134  // SetMaxResults sets the MaxResults field's value.
 51135  func (s *ListProvisioningTemplatesInput) SetMaxResults(v int64) *ListProvisioningTemplatesInput {
 51136  	s.MaxResults = &v
 51137  	return s
 51138  }
 51139  
 51140  // SetNextToken sets the NextToken field's value.
 51141  func (s *ListProvisioningTemplatesInput) SetNextToken(v string) *ListProvisioningTemplatesInput {
 51142  	s.NextToken = &v
 51143  	return s
 51144  }
 51145  
 51146  type ListProvisioningTemplatesOutput struct {
 51147  	_ struct{} `type:"structure"`
 51148  
 51149  	// A token to retrieve the next set of results.
 51150  	NextToken *string `locationName:"nextToken" type:"string"`
 51151  
 51152  	// A list of fleet provisioning templates
 51153  	Templates []*ProvisioningTemplateSummary `locationName:"templates" type:"list"`
 51154  }
 51155  
 51156  // String returns the string representation.
 51157  //
 51158  // API parameter values that are decorated as "sensitive" in the API will not
 51159  // be included in the string output. The member name will be present, but the
 51160  // value will be replaced with "sensitive".
 51161  func (s ListProvisioningTemplatesOutput) String() string {
 51162  	return awsutil.Prettify(s)
 51163  }
 51164  
 51165  // GoString returns the string representation.
 51166  //
 51167  // API parameter values that are decorated as "sensitive" in the API will not
 51168  // be included in the string output. The member name will be present, but the
 51169  // value will be replaced with "sensitive".
 51170  func (s ListProvisioningTemplatesOutput) GoString() string {
 51171  	return s.String()
 51172  }
 51173  
 51174  // SetNextToken sets the NextToken field's value.
 51175  func (s *ListProvisioningTemplatesOutput) SetNextToken(v string) *ListProvisioningTemplatesOutput {
 51176  	s.NextToken = &v
 51177  	return s
 51178  }
 51179  
 51180  // SetTemplates sets the Templates field's value.
 51181  func (s *ListProvisioningTemplatesOutput) SetTemplates(v []*ProvisioningTemplateSummary) *ListProvisioningTemplatesOutput {
 51182  	s.Templates = v
 51183  	return s
 51184  }
 51185  
 51186  type ListRoleAliasesInput struct {
 51187  	_ struct{} `type:"structure" nopayload:"true"`
 51188  
 51189  	// Return the list of role aliases in ascending alphabetical order.
 51190  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 51191  
 51192  	// A marker used to get the next set of results.
 51193  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 51194  
 51195  	// The maximum number of results to return at one time.
 51196  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 51197  }
 51198  
 51199  // String returns the string representation.
 51200  //
 51201  // API parameter values that are decorated as "sensitive" in the API will not
 51202  // be included in the string output. The member name will be present, but the
 51203  // value will be replaced with "sensitive".
 51204  func (s ListRoleAliasesInput) String() string {
 51205  	return awsutil.Prettify(s)
 51206  }
 51207  
 51208  // GoString returns the string representation.
 51209  //
 51210  // API parameter values that are decorated as "sensitive" in the API will not
 51211  // be included in the string output. The member name will be present, but the
 51212  // value will be replaced with "sensitive".
 51213  func (s ListRoleAliasesInput) GoString() string {
 51214  	return s.String()
 51215  }
 51216  
 51217  // Validate inspects the fields of the type to determine if they are valid.
 51218  func (s *ListRoleAliasesInput) Validate() error {
 51219  	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
 51220  	if s.PageSize != nil && *s.PageSize < 1 {
 51221  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 51222  	}
 51223  
 51224  	if invalidParams.Len() > 0 {
 51225  		return invalidParams
 51226  	}
 51227  	return nil
 51228  }
 51229  
 51230  // SetAscendingOrder sets the AscendingOrder field's value.
 51231  func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
 51232  	s.AscendingOrder = &v
 51233  	return s
 51234  }
 51235  
 51236  // SetMarker sets the Marker field's value.
 51237  func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
 51238  	s.Marker = &v
 51239  	return s
 51240  }
 51241  
 51242  // SetPageSize sets the PageSize field's value.
 51243  func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
 51244  	s.PageSize = &v
 51245  	return s
 51246  }
 51247  
 51248  type ListRoleAliasesOutput struct {
 51249  	_ struct{} `type:"structure"`
 51250  
 51251  	// A marker used to get the next set of results.
 51252  	NextMarker *string `locationName:"nextMarker" type:"string"`
 51253  
 51254  	// The role aliases.
 51255  	RoleAliases []*string `locationName:"roleAliases" type:"list"`
 51256  }
 51257  
 51258  // String returns the string representation.
 51259  //
 51260  // API parameter values that are decorated as "sensitive" in the API will not
 51261  // be included in the string output. The member name will be present, but the
 51262  // value will be replaced with "sensitive".
 51263  func (s ListRoleAliasesOutput) String() string {
 51264  	return awsutil.Prettify(s)
 51265  }
 51266  
 51267  // GoString returns the string representation.
 51268  //
 51269  // API parameter values that are decorated as "sensitive" in the API will not
 51270  // be included in the string output. The member name will be present, but the
 51271  // value will be replaced with "sensitive".
 51272  func (s ListRoleAliasesOutput) GoString() string {
 51273  	return s.String()
 51274  }
 51275  
 51276  // SetNextMarker sets the NextMarker field's value.
 51277  func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
 51278  	s.NextMarker = &v
 51279  	return s
 51280  }
 51281  
 51282  // SetRoleAliases sets the RoleAliases field's value.
 51283  func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
 51284  	s.RoleAliases = v
 51285  	return s
 51286  }
 51287  
 51288  type ListScheduledAuditsInput struct {
 51289  	_ struct{} `type:"structure" nopayload:"true"`
 51290  
 51291  	// The maximum number of results to return at one time. The default is 25.
 51292  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 51293  
 51294  	// The token for the next set of results.
 51295  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 51296  }
 51297  
 51298  // String returns the string representation.
 51299  //
 51300  // API parameter values that are decorated as "sensitive" in the API will not
 51301  // be included in the string output. The member name will be present, but the
 51302  // value will be replaced with "sensitive".
 51303  func (s ListScheduledAuditsInput) String() string {
 51304  	return awsutil.Prettify(s)
 51305  }
 51306  
 51307  // GoString returns the string representation.
 51308  //
 51309  // API parameter values that are decorated as "sensitive" in the API will not
 51310  // be included in the string output. The member name will be present, but the
 51311  // value will be replaced with "sensitive".
 51312  func (s ListScheduledAuditsInput) GoString() string {
 51313  	return s.String()
 51314  }
 51315  
 51316  // Validate inspects the fields of the type to determine if they are valid.
 51317  func (s *ListScheduledAuditsInput) Validate() error {
 51318  	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
 51319  	if s.MaxResults != nil && *s.MaxResults < 1 {
 51320  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 51321  	}
 51322  
 51323  	if invalidParams.Len() > 0 {
 51324  		return invalidParams
 51325  	}
 51326  	return nil
 51327  }
 51328  
 51329  // SetMaxResults sets the MaxResults field's value.
 51330  func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
 51331  	s.MaxResults = &v
 51332  	return s
 51333  }
 51334  
 51335  // SetNextToken sets the NextToken field's value.
 51336  func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
 51337  	s.NextToken = &v
 51338  	return s
 51339  }
 51340  
 51341  type ListScheduledAuditsOutput struct {
 51342  	_ struct{} `type:"structure"`
 51343  
 51344  	// A token that can be used to retrieve the next set of results, or null if
 51345  	// there are no additional results.
 51346  	NextToken *string `locationName:"nextToken" type:"string"`
 51347  
 51348  	// The list of scheduled audits.
 51349  	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
 51350  }
 51351  
 51352  // String returns the string representation.
 51353  //
 51354  // API parameter values that are decorated as "sensitive" in the API will not
 51355  // be included in the string output. The member name will be present, but the
 51356  // value will be replaced with "sensitive".
 51357  func (s ListScheduledAuditsOutput) String() string {
 51358  	return awsutil.Prettify(s)
 51359  }
 51360  
 51361  // GoString returns the string representation.
 51362  //
 51363  // API parameter values that are decorated as "sensitive" in the API will not
 51364  // be included in the string output. The member name will be present, but the
 51365  // value will be replaced with "sensitive".
 51366  func (s ListScheduledAuditsOutput) GoString() string {
 51367  	return s.String()
 51368  }
 51369  
 51370  // SetNextToken sets the NextToken field's value.
 51371  func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
 51372  	s.NextToken = &v
 51373  	return s
 51374  }
 51375  
 51376  // SetScheduledAudits sets the ScheduledAudits field's value.
 51377  func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
 51378  	s.ScheduledAudits = v
 51379  	return s
 51380  }
 51381  
 51382  type ListSecurityProfilesForTargetInput struct {
 51383  	_ struct{} `type:"structure" nopayload:"true"`
 51384  
 51385  	// The maximum number of results to return at one time.
 51386  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 51387  
 51388  	// The token for the next set of results.
 51389  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 51390  
 51391  	// If true, return child groups too.
 51392  	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
 51393  
 51394  	// The ARN of the target (thing group) whose attached security profiles you
 51395  	// want to get.
 51396  	//
 51397  	// SecurityProfileTargetArn is a required field
 51398  	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
 51399  }
 51400  
 51401  // String returns the string representation.
 51402  //
 51403  // API parameter values that are decorated as "sensitive" in the API will not
 51404  // be included in the string output. The member name will be present, but the
 51405  // value will be replaced with "sensitive".
 51406  func (s ListSecurityProfilesForTargetInput) String() string {
 51407  	return awsutil.Prettify(s)
 51408  }
 51409  
 51410  // GoString returns the string representation.
 51411  //
 51412  // API parameter values that are decorated as "sensitive" in the API will not
 51413  // be included in the string output. The member name will be present, but the
 51414  // value will be replaced with "sensitive".
 51415  func (s ListSecurityProfilesForTargetInput) GoString() string {
 51416  	return s.String()
 51417  }
 51418  
 51419  // Validate inspects the fields of the type to determine if they are valid.
 51420  func (s *ListSecurityProfilesForTargetInput) Validate() error {
 51421  	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
 51422  	if s.MaxResults != nil && *s.MaxResults < 1 {
 51423  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 51424  	}
 51425  	if s.SecurityProfileTargetArn == nil {
 51426  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
 51427  	}
 51428  
 51429  	if invalidParams.Len() > 0 {
 51430  		return invalidParams
 51431  	}
 51432  	return nil
 51433  }
 51434  
 51435  // SetMaxResults sets the MaxResults field's value.
 51436  func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
 51437  	s.MaxResults = &v
 51438  	return s
 51439  }
 51440  
 51441  // SetNextToken sets the NextToken field's value.
 51442  func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
 51443  	s.NextToken = &v
 51444  	return s
 51445  }
 51446  
 51447  // SetRecursive sets the Recursive field's value.
 51448  func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
 51449  	s.Recursive = &v
 51450  	return s
 51451  }
 51452  
 51453  // SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
 51454  func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
 51455  	s.SecurityProfileTargetArn = &v
 51456  	return s
 51457  }
 51458  
 51459  type ListSecurityProfilesForTargetOutput struct {
 51460  	_ struct{} `type:"structure"`
 51461  
 51462  	// A token that can be used to retrieve the next set of results, or null if
 51463  	// there are no additional results.
 51464  	NextToken *string `locationName:"nextToken" type:"string"`
 51465  
 51466  	// A list of security profiles and their associated targets.
 51467  	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
 51468  }
 51469  
 51470  // String returns the string representation.
 51471  //
 51472  // API parameter values that are decorated as "sensitive" in the API will not
 51473  // be included in the string output. The member name will be present, but the
 51474  // value will be replaced with "sensitive".
 51475  func (s ListSecurityProfilesForTargetOutput) String() string {
 51476  	return awsutil.Prettify(s)
 51477  }
 51478  
 51479  // GoString returns the string representation.
 51480  //
 51481  // API parameter values that are decorated as "sensitive" in the API will not
 51482  // be included in the string output. The member name will be present, but the
 51483  // value will be replaced with "sensitive".
 51484  func (s ListSecurityProfilesForTargetOutput) GoString() string {
 51485  	return s.String()
 51486  }
 51487  
 51488  // SetNextToken sets the NextToken field's value.
 51489  func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
 51490  	s.NextToken = &v
 51491  	return s
 51492  }
 51493  
 51494  // SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
 51495  func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
 51496  	s.SecurityProfileTargetMappings = v
 51497  	return s
 51498  }
 51499  
 51500  type ListSecurityProfilesInput struct {
 51501  	_ struct{} `type:"structure" nopayload:"true"`
 51502  
 51503  	// A filter to limit results to the security profiles that use the defined dimension.
 51504  	// Cannot be used with metricName
 51505  	DimensionName *string `location:"querystring" locationName:"dimensionName" min:"1" type:"string"`
 51506  
 51507  	// The maximum number of results to return at one time.
 51508  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 51509  
 51510  	// The name of the custom metric. Cannot be used with dimensionName.
 51511  	MetricName *string `location:"querystring" locationName:"metricName" min:"1" type:"string"`
 51512  
 51513  	// The token for the next set of results.
 51514  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 51515  }
 51516  
 51517  // String returns the string representation.
 51518  //
 51519  // API parameter values that are decorated as "sensitive" in the API will not
 51520  // be included in the string output. The member name will be present, but the
 51521  // value will be replaced with "sensitive".
 51522  func (s ListSecurityProfilesInput) String() string {
 51523  	return awsutil.Prettify(s)
 51524  }
 51525  
 51526  // GoString returns the string representation.
 51527  //
 51528  // API parameter values that are decorated as "sensitive" in the API will not
 51529  // be included in the string output. The member name will be present, but the
 51530  // value will be replaced with "sensitive".
 51531  func (s ListSecurityProfilesInput) GoString() string {
 51532  	return s.String()
 51533  }
 51534  
 51535  // Validate inspects the fields of the type to determine if they are valid.
 51536  func (s *ListSecurityProfilesInput) Validate() error {
 51537  	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
 51538  	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
 51539  		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
 51540  	}
 51541  	if s.MaxResults != nil && *s.MaxResults < 1 {
 51542  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 51543  	}
 51544  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 51545  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 51546  	}
 51547  
 51548  	if invalidParams.Len() > 0 {
 51549  		return invalidParams
 51550  	}
 51551  	return nil
 51552  }
 51553  
 51554  // SetDimensionName sets the DimensionName field's value.
 51555  func (s *ListSecurityProfilesInput) SetDimensionName(v string) *ListSecurityProfilesInput {
 51556  	s.DimensionName = &v
 51557  	return s
 51558  }
 51559  
 51560  // SetMaxResults sets the MaxResults field's value.
 51561  func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
 51562  	s.MaxResults = &v
 51563  	return s
 51564  }
 51565  
 51566  // SetMetricName sets the MetricName field's value.
 51567  func (s *ListSecurityProfilesInput) SetMetricName(v string) *ListSecurityProfilesInput {
 51568  	s.MetricName = &v
 51569  	return s
 51570  }
 51571  
 51572  // SetNextToken sets the NextToken field's value.
 51573  func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
 51574  	s.NextToken = &v
 51575  	return s
 51576  }
 51577  
 51578  type ListSecurityProfilesOutput struct {
 51579  	_ struct{} `type:"structure"`
 51580  
 51581  	// A token that can be used to retrieve the next set of results, or null if
 51582  	// there are no additional results.
 51583  	NextToken *string `locationName:"nextToken" type:"string"`
 51584  
 51585  	// A list of security profile identifiers (names and ARNs).
 51586  	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
 51587  }
 51588  
 51589  // String returns the string representation.
 51590  //
 51591  // API parameter values that are decorated as "sensitive" in the API will not
 51592  // be included in the string output. The member name will be present, but the
 51593  // value will be replaced with "sensitive".
 51594  func (s ListSecurityProfilesOutput) String() string {
 51595  	return awsutil.Prettify(s)
 51596  }
 51597  
 51598  // GoString returns the string representation.
 51599  //
 51600  // API parameter values that are decorated as "sensitive" in the API will not
 51601  // be included in the string output. The member name will be present, but the
 51602  // value will be replaced with "sensitive".
 51603  func (s ListSecurityProfilesOutput) GoString() string {
 51604  	return s.String()
 51605  }
 51606  
 51607  // SetNextToken sets the NextToken field's value.
 51608  func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
 51609  	s.NextToken = &v
 51610  	return s
 51611  }
 51612  
 51613  // SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
 51614  func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
 51615  	s.SecurityProfileIdentifiers = v
 51616  	return s
 51617  }
 51618  
 51619  type ListStreamsInput struct {
 51620  	_ struct{} `type:"structure" nopayload:"true"`
 51621  
 51622  	// Set to true to return the list of streams in ascending order.
 51623  	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
 51624  
 51625  	// The maximum number of results to return at a time.
 51626  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 51627  
 51628  	// A token used to get the next set of results.
 51629  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 51630  }
 51631  
 51632  // String returns the string representation.
 51633  //
 51634  // API parameter values that are decorated as "sensitive" in the API will not
 51635  // be included in the string output. The member name will be present, but the
 51636  // value will be replaced with "sensitive".
 51637  func (s ListStreamsInput) String() string {
 51638  	return awsutil.Prettify(s)
 51639  }
 51640  
 51641  // GoString returns the string representation.
 51642  //
 51643  // API parameter values that are decorated as "sensitive" in the API will not
 51644  // be included in the string output. The member name will be present, but the
 51645  // value will be replaced with "sensitive".
 51646  func (s ListStreamsInput) GoString() string {
 51647  	return s.String()
 51648  }
 51649  
 51650  // Validate inspects the fields of the type to determine if they are valid.
 51651  func (s *ListStreamsInput) Validate() error {
 51652  	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
 51653  	if s.MaxResults != nil && *s.MaxResults < 1 {
 51654  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 51655  	}
 51656  
 51657  	if invalidParams.Len() > 0 {
 51658  		return invalidParams
 51659  	}
 51660  	return nil
 51661  }
 51662  
 51663  // SetAscendingOrder sets the AscendingOrder field's value.
 51664  func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
 51665  	s.AscendingOrder = &v
 51666  	return s
 51667  }
 51668  
 51669  // SetMaxResults sets the MaxResults field's value.
 51670  func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
 51671  	s.MaxResults = &v
 51672  	return s
 51673  }
 51674  
 51675  // SetNextToken sets the NextToken field's value.
 51676  func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
 51677  	s.NextToken = &v
 51678  	return s
 51679  }
 51680  
 51681  type ListStreamsOutput struct {
 51682  	_ struct{} `type:"structure"`
 51683  
 51684  	// A token used to get the next set of results.
 51685  	NextToken *string `locationName:"nextToken" type:"string"`
 51686  
 51687  	// A list of streams.
 51688  	Streams []*StreamSummary `locationName:"streams" type:"list"`
 51689  }
 51690  
 51691  // String returns the string representation.
 51692  //
 51693  // API parameter values that are decorated as "sensitive" in the API will not
 51694  // be included in the string output. The member name will be present, but the
 51695  // value will be replaced with "sensitive".
 51696  func (s ListStreamsOutput) String() string {
 51697  	return awsutil.Prettify(s)
 51698  }
 51699  
 51700  // GoString returns the string representation.
 51701  //
 51702  // API parameter values that are decorated as "sensitive" in the API will not
 51703  // be included in the string output. The member name will be present, but the
 51704  // value will be replaced with "sensitive".
 51705  func (s ListStreamsOutput) GoString() string {
 51706  	return s.String()
 51707  }
 51708  
 51709  // SetNextToken sets the NextToken field's value.
 51710  func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
 51711  	s.NextToken = &v
 51712  	return s
 51713  }
 51714  
 51715  // SetStreams sets the Streams field's value.
 51716  func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
 51717  	s.Streams = v
 51718  	return s
 51719  }
 51720  
 51721  type ListTagsForResourceInput struct {
 51722  	_ struct{} `type:"structure" nopayload:"true"`
 51723  
 51724  	// To retrieve the next set of results, the nextToken value from a previous
 51725  	// response; otherwise null to receive the first set of results.
 51726  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 51727  
 51728  	// The ARN of the resource.
 51729  	//
 51730  	// ResourceArn is a required field
 51731  	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
 51732  }
 51733  
 51734  // String returns the string representation.
 51735  //
 51736  // API parameter values that are decorated as "sensitive" in the API will not
 51737  // be included in the string output. The member name will be present, but the
 51738  // value will be replaced with "sensitive".
 51739  func (s ListTagsForResourceInput) String() string {
 51740  	return awsutil.Prettify(s)
 51741  }
 51742  
 51743  // GoString returns the string representation.
 51744  //
 51745  // API parameter values that are decorated as "sensitive" in the API will not
 51746  // be included in the string output. The member name will be present, but the
 51747  // value will be replaced with "sensitive".
 51748  func (s ListTagsForResourceInput) GoString() string {
 51749  	return s.String()
 51750  }
 51751  
 51752  // Validate inspects the fields of the type to determine if they are valid.
 51753  func (s *ListTagsForResourceInput) Validate() error {
 51754  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 51755  	if s.ResourceArn == nil {
 51756  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 51757  	}
 51758  
 51759  	if invalidParams.Len() > 0 {
 51760  		return invalidParams
 51761  	}
 51762  	return nil
 51763  }
 51764  
 51765  // SetNextToken sets the NextToken field's value.
 51766  func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
 51767  	s.NextToken = &v
 51768  	return s
 51769  }
 51770  
 51771  // SetResourceArn sets the ResourceArn field's value.
 51772  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
 51773  	s.ResourceArn = &v
 51774  	return s
 51775  }
 51776  
 51777  type ListTagsForResourceOutput struct {
 51778  	_ struct{} `type:"structure"`
 51779  
 51780  	// The token to use to get the next set of results, or null if there are no
 51781  	// additional results.
 51782  	NextToken *string `locationName:"nextToken" type:"string"`
 51783  
 51784  	// The list of tags assigned to the resource.
 51785  	Tags []*Tag `locationName:"tags" type:"list"`
 51786  }
 51787  
 51788  // String returns the string representation.
 51789  //
 51790  // API parameter values that are decorated as "sensitive" in the API will not
 51791  // be included in the string output. The member name will be present, but the
 51792  // value will be replaced with "sensitive".
 51793  func (s ListTagsForResourceOutput) String() string {
 51794  	return awsutil.Prettify(s)
 51795  }
 51796  
 51797  // GoString returns the string representation.
 51798  //
 51799  // API parameter values that are decorated as "sensitive" in the API will not
 51800  // be included in the string output. The member name will be present, but the
 51801  // value will be replaced with "sensitive".
 51802  func (s ListTagsForResourceOutput) GoString() string {
 51803  	return s.String()
 51804  }
 51805  
 51806  // SetNextToken sets the NextToken field's value.
 51807  func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
 51808  	s.NextToken = &v
 51809  	return s
 51810  }
 51811  
 51812  // SetTags sets the Tags field's value.
 51813  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
 51814  	s.Tags = v
 51815  	return s
 51816  }
 51817  
 51818  type ListTargetsForPolicyInput struct {
 51819  	_ struct{} `type:"structure" nopayload:"true"`
 51820  
 51821  	// A marker used to get the next set of results.
 51822  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
 51823  
 51824  	// The maximum number of results to return at one time.
 51825  	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
 51826  
 51827  	// The policy name.
 51828  	//
 51829  	// PolicyName is a required field
 51830  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 51831  }
 51832  
 51833  // String returns the string representation.
 51834  //
 51835  // API parameter values that are decorated as "sensitive" in the API will not
 51836  // be included in the string output. The member name will be present, but the
 51837  // value will be replaced with "sensitive".
 51838  func (s ListTargetsForPolicyInput) String() string {
 51839  	return awsutil.Prettify(s)
 51840  }
 51841  
 51842  // GoString returns the string representation.
 51843  //
 51844  // API parameter values that are decorated as "sensitive" in the API will not
 51845  // be included in the string output. The member name will be present, but the
 51846  // value will be replaced with "sensitive".
 51847  func (s ListTargetsForPolicyInput) GoString() string {
 51848  	return s.String()
 51849  }
 51850  
 51851  // Validate inspects the fields of the type to determine if they are valid.
 51852  func (s *ListTargetsForPolicyInput) Validate() error {
 51853  	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
 51854  	if s.PageSize != nil && *s.PageSize < 1 {
 51855  		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
 51856  	}
 51857  	if s.PolicyName == nil {
 51858  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 51859  	}
 51860  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 51861  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 51862  	}
 51863  
 51864  	if invalidParams.Len() > 0 {
 51865  		return invalidParams
 51866  	}
 51867  	return nil
 51868  }
 51869  
 51870  // SetMarker sets the Marker field's value.
 51871  func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
 51872  	s.Marker = &v
 51873  	return s
 51874  }
 51875  
 51876  // SetPageSize sets the PageSize field's value.
 51877  func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
 51878  	s.PageSize = &v
 51879  	return s
 51880  }
 51881  
 51882  // SetPolicyName sets the PolicyName field's value.
 51883  func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
 51884  	s.PolicyName = &v
 51885  	return s
 51886  }
 51887  
 51888  type ListTargetsForPolicyOutput struct {
 51889  	_ struct{} `type:"structure"`
 51890  
 51891  	// A marker used to get the next set of results.
 51892  	NextMarker *string `locationName:"nextMarker" type:"string"`
 51893  
 51894  	// The policy targets.
 51895  	Targets []*string `locationName:"targets" type:"list"`
 51896  }
 51897  
 51898  // String returns the string representation.
 51899  //
 51900  // API parameter values that are decorated as "sensitive" in the API will not
 51901  // be included in the string output. The member name will be present, but the
 51902  // value will be replaced with "sensitive".
 51903  func (s ListTargetsForPolicyOutput) String() string {
 51904  	return awsutil.Prettify(s)
 51905  }
 51906  
 51907  // GoString returns the string representation.
 51908  //
 51909  // API parameter values that are decorated as "sensitive" in the API will not
 51910  // be included in the string output. The member name will be present, but the
 51911  // value will be replaced with "sensitive".
 51912  func (s ListTargetsForPolicyOutput) GoString() string {
 51913  	return s.String()
 51914  }
 51915  
 51916  // SetNextMarker sets the NextMarker field's value.
 51917  func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
 51918  	s.NextMarker = &v
 51919  	return s
 51920  }
 51921  
 51922  // SetTargets sets the Targets field's value.
 51923  func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
 51924  	s.Targets = v
 51925  	return s
 51926  }
 51927  
 51928  type ListTargetsForSecurityProfileInput struct {
 51929  	_ struct{} `type:"structure" nopayload:"true"`
 51930  
 51931  	// The maximum number of results to return at one time.
 51932  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 51933  
 51934  	// The token for the next set of results.
 51935  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 51936  
 51937  	// The security profile.
 51938  	//
 51939  	// SecurityProfileName is a required field
 51940  	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
 51941  }
 51942  
 51943  // String returns the string representation.
 51944  //
 51945  // API parameter values that are decorated as "sensitive" in the API will not
 51946  // be included in the string output. The member name will be present, but the
 51947  // value will be replaced with "sensitive".
 51948  func (s ListTargetsForSecurityProfileInput) String() string {
 51949  	return awsutil.Prettify(s)
 51950  }
 51951  
 51952  // GoString returns the string representation.
 51953  //
 51954  // API parameter values that are decorated as "sensitive" in the API will not
 51955  // be included in the string output. The member name will be present, but the
 51956  // value will be replaced with "sensitive".
 51957  func (s ListTargetsForSecurityProfileInput) GoString() string {
 51958  	return s.String()
 51959  }
 51960  
 51961  // Validate inspects the fields of the type to determine if they are valid.
 51962  func (s *ListTargetsForSecurityProfileInput) Validate() error {
 51963  	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
 51964  	if s.MaxResults != nil && *s.MaxResults < 1 {
 51965  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 51966  	}
 51967  	if s.SecurityProfileName == nil {
 51968  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
 51969  	}
 51970  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 51971  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 51972  	}
 51973  
 51974  	if invalidParams.Len() > 0 {
 51975  		return invalidParams
 51976  	}
 51977  	return nil
 51978  }
 51979  
 51980  // SetMaxResults sets the MaxResults field's value.
 51981  func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
 51982  	s.MaxResults = &v
 51983  	return s
 51984  }
 51985  
 51986  // SetNextToken sets the NextToken field's value.
 51987  func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
 51988  	s.NextToken = &v
 51989  	return s
 51990  }
 51991  
 51992  // SetSecurityProfileName sets the SecurityProfileName field's value.
 51993  func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
 51994  	s.SecurityProfileName = &v
 51995  	return s
 51996  }
 51997  
 51998  type ListTargetsForSecurityProfileOutput struct {
 51999  	_ struct{} `type:"structure"`
 52000  
 52001  	// A token that can be used to retrieve the next set of results, or null if
 52002  	// there are no additional results.
 52003  	NextToken *string `locationName:"nextToken" type:"string"`
 52004  
 52005  	// The thing groups to which the security profile is attached.
 52006  	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
 52007  }
 52008  
 52009  // String returns the string representation.
 52010  //
 52011  // API parameter values that are decorated as "sensitive" in the API will not
 52012  // be included in the string output. The member name will be present, but the
 52013  // value will be replaced with "sensitive".
 52014  func (s ListTargetsForSecurityProfileOutput) String() string {
 52015  	return awsutil.Prettify(s)
 52016  }
 52017  
 52018  // GoString returns the string representation.
 52019  //
 52020  // API parameter values that are decorated as "sensitive" in the API will not
 52021  // be included in the string output. The member name will be present, but the
 52022  // value will be replaced with "sensitive".
 52023  func (s ListTargetsForSecurityProfileOutput) GoString() string {
 52024  	return s.String()
 52025  }
 52026  
 52027  // SetNextToken sets the NextToken field's value.
 52028  func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
 52029  	s.NextToken = &v
 52030  	return s
 52031  }
 52032  
 52033  // SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
 52034  func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
 52035  	s.SecurityProfileTargets = v
 52036  	return s
 52037  }
 52038  
 52039  type ListThingGroupsForThingInput struct {
 52040  	_ struct{} `type:"structure" nopayload:"true"`
 52041  
 52042  	// The maximum number of results to return at one time.
 52043  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52044  
 52045  	// To retrieve the next set of results, the nextToken value from a previous
 52046  	// response; otherwise null to receive the first set of results.
 52047  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52048  
 52049  	// The thing name.
 52050  	//
 52051  	// ThingName is a required field
 52052  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 52053  }
 52054  
 52055  // String returns the string representation.
 52056  //
 52057  // API parameter values that are decorated as "sensitive" in the API will not
 52058  // be included in the string output. The member name will be present, but the
 52059  // value will be replaced with "sensitive".
 52060  func (s ListThingGroupsForThingInput) String() string {
 52061  	return awsutil.Prettify(s)
 52062  }
 52063  
 52064  // GoString returns the string representation.
 52065  //
 52066  // API parameter values that are decorated as "sensitive" in the API will not
 52067  // be included in the string output. The member name will be present, but the
 52068  // value will be replaced with "sensitive".
 52069  func (s ListThingGroupsForThingInput) GoString() string {
 52070  	return s.String()
 52071  }
 52072  
 52073  // Validate inspects the fields of the type to determine if they are valid.
 52074  func (s *ListThingGroupsForThingInput) Validate() error {
 52075  	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
 52076  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52077  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52078  	}
 52079  	if s.ThingName == nil {
 52080  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 52081  	}
 52082  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 52083  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 52084  	}
 52085  
 52086  	if invalidParams.Len() > 0 {
 52087  		return invalidParams
 52088  	}
 52089  	return nil
 52090  }
 52091  
 52092  // SetMaxResults sets the MaxResults field's value.
 52093  func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
 52094  	s.MaxResults = &v
 52095  	return s
 52096  }
 52097  
 52098  // SetNextToken sets the NextToken field's value.
 52099  func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
 52100  	s.NextToken = &v
 52101  	return s
 52102  }
 52103  
 52104  // SetThingName sets the ThingName field's value.
 52105  func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
 52106  	s.ThingName = &v
 52107  	return s
 52108  }
 52109  
 52110  type ListThingGroupsForThingOutput struct {
 52111  	_ struct{} `type:"structure"`
 52112  
 52113  	// The token to use to get the next set of results, or null if there are no
 52114  	// additional results.
 52115  	NextToken *string `locationName:"nextToken" type:"string"`
 52116  
 52117  	// The thing groups.
 52118  	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
 52119  }
 52120  
 52121  // String returns the string representation.
 52122  //
 52123  // API parameter values that are decorated as "sensitive" in the API will not
 52124  // be included in the string output. The member name will be present, but the
 52125  // value will be replaced with "sensitive".
 52126  func (s ListThingGroupsForThingOutput) String() string {
 52127  	return awsutil.Prettify(s)
 52128  }
 52129  
 52130  // GoString returns the string representation.
 52131  //
 52132  // API parameter values that are decorated as "sensitive" in the API will not
 52133  // be included in the string output. The member name will be present, but the
 52134  // value will be replaced with "sensitive".
 52135  func (s ListThingGroupsForThingOutput) GoString() string {
 52136  	return s.String()
 52137  }
 52138  
 52139  // SetNextToken sets the NextToken field's value.
 52140  func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
 52141  	s.NextToken = &v
 52142  	return s
 52143  }
 52144  
 52145  // SetThingGroups sets the ThingGroups field's value.
 52146  func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
 52147  	s.ThingGroups = v
 52148  	return s
 52149  }
 52150  
 52151  type ListThingGroupsInput struct {
 52152  	_ struct{} `type:"structure" nopayload:"true"`
 52153  
 52154  	// The maximum number of results to return at one time.
 52155  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52156  
 52157  	// A filter that limits the results to those with the specified name prefix.
 52158  	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
 52159  
 52160  	// To retrieve the next set of results, the nextToken value from a previous
 52161  	// response; otherwise null to receive the first set of results.
 52162  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52163  
 52164  	// A filter that limits the results to those with the specified parent group.
 52165  	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
 52166  
 52167  	// If true, return child groups as well.
 52168  	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
 52169  }
 52170  
 52171  // String returns the string representation.
 52172  //
 52173  // API parameter values that are decorated as "sensitive" in the API will not
 52174  // be included in the string output. The member name will be present, but the
 52175  // value will be replaced with "sensitive".
 52176  func (s ListThingGroupsInput) String() string {
 52177  	return awsutil.Prettify(s)
 52178  }
 52179  
 52180  // GoString returns the string representation.
 52181  //
 52182  // API parameter values that are decorated as "sensitive" in the API will not
 52183  // be included in the string output. The member name will be present, but the
 52184  // value will be replaced with "sensitive".
 52185  func (s ListThingGroupsInput) GoString() string {
 52186  	return s.String()
 52187  }
 52188  
 52189  // Validate inspects the fields of the type to determine if they are valid.
 52190  func (s *ListThingGroupsInput) Validate() error {
 52191  	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
 52192  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52193  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52194  	}
 52195  	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
 52196  		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
 52197  	}
 52198  	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
 52199  		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
 52200  	}
 52201  
 52202  	if invalidParams.Len() > 0 {
 52203  		return invalidParams
 52204  	}
 52205  	return nil
 52206  }
 52207  
 52208  // SetMaxResults sets the MaxResults field's value.
 52209  func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
 52210  	s.MaxResults = &v
 52211  	return s
 52212  }
 52213  
 52214  // SetNamePrefixFilter sets the NamePrefixFilter field's value.
 52215  func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
 52216  	s.NamePrefixFilter = &v
 52217  	return s
 52218  }
 52219  
 52220  // SetNextToken sets the NextToken field's value.
 52221  func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
 52222  	s.NextToken = &v
 52223  	return s
 52224  }
 52225  
 52226  // SetParentGroup sets the ParentGroup field's value.
 52227  func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
 52228  	s.ParentGroup = &v
 52229  	return s
 52230  }
 52231  
 52232  // SetRecursive sets the Recursive field's value.
 52233  func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
 52234  	s.Recursive = &v
 52235  	return s
 52236  }
 52237  
 52238  type ListThingGroupsOutput struct {
 52239  	_ struct{} `type:"structure"`
 52240  
 52241  	// The token to use to get the next set of results. Will not be returned if
 52242  	// operation has returned all results.
 52243  	NextToken *string `locationName:"nextToken" type:"string"`
 52244  
 52245  	// The thing groups.
 52246  	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
 52247  }
 52248  
 52249  // String returns the string representation.
 52250  //
 52251  // API parameter values that are decorated as "sensitive" in the API will not
 52252  // be included in the string output. The member name will be present, but the
 52253  // value will be replaced with "sensitive".
 52254  func (s ListThingGroupsOutput) String() string {
 52255  	return awsutil.Prettify(s)
 52256  }
 52257  
 52258  // GoString returns the string representation.
 52259  //
 52260  // API parameter values that are decorated as "sensitive" in the API will not
 52261  // be included in the string output. The member name will be present, but the
 52262  // value will be replaced with "sensitive".
 52263  func (s ListThingGroupsOutput) GoString() string {
 52264  	return s.String()
 52265  }
 52266  
 52267  // SetNextToken sets the NextToken field's value.
 52268  func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
 52269  	s.NextToken = &v
 52270  	return s
 52271  }
 52272  
 52273  // SetThingGroups sets the ThingGroups field's value.
 52274  func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
 52275  	s.ThingGroups = v
 52276  	return s
 52277  }
 52278  
 52279  // The input for the ListThingPrincipal operation.
 52280  type ListThingPrincipalsInput struct {
 52281  	_ struct{} `type:"structure" nopayload:"true"`
 52282  
 52283  	// The maximum number of results to return in this operation.
 52284  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52285  
 52286  	// To retrieve the next set of results, the nextToken value from a previous
 52287  	// response; otherwise null to receive the first set of results.
 52288  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52289  
 52290  	// The name of the thing.
 52291  	//
 52292  	// ThingName is a required field
 52293  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 52294  }
 52295  
 52296  // String returns the string representation.
 52297  //
 52298  // API parameter values that are decorated as "sensitive" in the API will not
 52299  // be included in the string output. The member name will be present, but the
 52300  // value will be replaced with "sensitive".
 52301  func (s ListThingPrincipalsInput) String() string {
 52302  	return awsutil.Prettify(s)
 52303  }
 52304  
 52305  // GoString returns the string representation.
 52306  //
 52307  // API parameter values that are decorated as "sensitive" in the API will not
 52308  // be included in the string output. The member name will be present, but the
 52309  // value will be replaced with "sensitive".
 52310  func (s ListThingPrincipalsInput) GoString() string {
 52311  	return s.String()
 52312  }
 52313  
 52314  // Validate inspects the fields of the type to determine if they are valid.
 52315  func (s *ListThingPrincipalsInput) Validate() error {
 52316  	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
 52317  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52318  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52319  	}
 52320  	if s.ThingName == nil {
 52321  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 52322  	}
 52323  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 52324  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 52325  	}
 52326  
 52327  	if invalidParams.Len() > 0 {
 52328  		return invalidParams
 52329  	}
 52330  	return nil
 52331  }
 52332  
 52333  // SetMaxResults sets the MaxResults field's value.
 52334  func (s *ListThingPrincipalsInput) SetMaxResults(v int64) *ListThingPrincipalsInput {
 52335  	s.MaxResults = &v
 52336  	return s
 52337  }
 52338  
 52339  // SetNextToken sets the NextToken field's value.
 52340  func (s *ListThingPrincipalsInput) SetNextToken(v string) *ListThingPrincipalsInput {
 52341  	s.NextToken = &v
 52342  	return s
 52343  }
 52344  
 52345  // SetThingName sets the ThingName field's value.
 52346  func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
 52347  	s.ThingName = &v
 52348  	return s
 52349  }
 52350  
 52351  // The output from the ListThingPrincipals operation.
 52352  type ListThingPrincipalsOutput struct {
 52353  	_ struct{} `type:"structure"`
 52354  
 52355  	// The token to use to get the next set of results, or null if there are no
 52356  	// additional results.
 52357  	NextToken *string `locationName:"nextToken" type:"string"`
 52358  
 52359  	// The principals associated with the thing.
 52360  	Principals []*string `locationName:"principals" type:"list"`
 52361  }
 52362  
 52363  // String returns the string representation.
 52364  //
 52365  // API parameter values that are decorated as "sensitive" in the API will not
 52366  // be included in the string output. The member name will be present, but the
 52367  // value will be replaced with "sensitive".
 52368  func (s ListThingPrincipalsOutput) String() string {
 52369  	return awsutil.Prettify(s)
 52370  }
 52371  
 52372  // GoString returns the string representation.
 52373  //
 52374  // API parameter values that are decorated as "sensitive" in the API will not
 52375  // be included in the string output. The member name will be present, but the
 52376  // value will be replaced with "sensitive".
 52377  func (s ListThingPrincipalsOutput) GoString() string {
 52378  	return s.String()
 52379  }
 52380  
 52381  // SetNextToken sets the NextToken field's value.
 52382  func (s *ListThingPrincipalsOutput) SetNextToken(v string) *ListThingPrincipalsOutput {
 52383  	s.NextToken = &v
 52384  	return s
 52385  }
 52386  
 52387  // SetPrincipals sets the Principals field's value.
 52388  func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
 52389  	s.Principals = v
 52390  	return s
 52391  }
 52392  
 52393  type ListThingRegistrationTaskReportsInput struct {
 52394  	_ struct{} `type:"structure" nopayload:"true"`
 52395  
 52396  	// The maximum number of results to return per request.
 52397  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52398  
 52399  	// To retrieve the next set of results, the nextToken value from a previous
 52400  	// response; otherwise null to receive the first set of results.
 52401  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52402  
 52403  	// The type of task report.
 52404  	//
 52405  	// ReportType is a required field
 52406  	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
 52407  
 52408  	// The id of the task.
 52409  	//
 52410  	// TaskId is a required field
 52411  	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
 52412  }
 52413  
 52414  // String returns the string representation.
 52415  //
 52416  // API parameter values that are decorated as "sensitive" in the API will not
 52417  // be included in the string output. The member name will be present, but the
 52418  // value will be replaced with "sensitive".
 52419  func (s ListThingRegistrationTaskReportsInput) String() string {
 52420  	return awsutil.Prettify(s)
 52421  }
 52422  
 52423  // GoString returns the string representation.
 52424  //
 52425  // API parameter values that are decorated as "sensitive" in the API will not
 52426  // be included in the string output. The member name will be present, but the
 52427  // value will be replaced with "sensitive".
 52428  func (s ListThingRegistrationTaskReportsInput) GoString() string {
 52429  	return s.String()
 52430  }
 52431  
 52432  // Validate inspects the fields of the type to determine if they are valid.
 52433  func (s *ListThingRegistrationTaskReportsInput) Validate() error {
 52434  	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
 52435  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52436  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52437  	}
 52438  	if s.ReportType == nil {
 52439  		invalidParams.Add(request.NewErrParamRequired("ReportType"))
 52440  	}
 52441  	if s.TaskId == nil {
 52442  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 52443  	}
 52444  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 52445  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 52446  	}
 52447  
 52448  	if invalidParams.Len() > 0 {
 52449  		return invalidParams
 52450  	}
 52451  	return nil
 52452  }
 52453  
 52454  // SetMaxResults sets the MaxResults field's value.
 52455  func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
 52456  	s.MaxResults = &v
 52457  	return s
 52458  }
 52459  
 52460  // SetNextToken sets the NextToken field's value.
 52461  func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
 52462  	s.NextToken = &v
 52463  	return s
 52464  }
 52465  
 52466  // SetReportType sets the ReportType field's value.
 52467  func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
 52468  	s.ReportType = &v
 52469  	return s
 52470  }
 52471  
 52472  // SetTaskId sets the TaskId field's value.
 52473  func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
 52474  	s.TaskId = &v
 52475  	return s
 52476  }
 52477  
 52478  type ListThingRegistrationTaskReportsOutput struct {
 52479  	_ struct{} `type:"structure"`
 52480  
 52481  	// The token to use to get the next set of results, or null if there are no
 52482  	// additional results.
 52483  	NextToken *string `locationName:"nextToken" type:"string"`
 52484  
 52485  	// The type of task report.
 52486  	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
 52487  
 52488  	// Links to the task resources.
 52489  	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
 52490  }
 52491  
 52492  // String returns the string representation.
 52493  //
 52494  // API parameter values that are decorated as "sensitive" in the API will not
 52495  // be included in the string output. The member name will be present, but the
 52496  // value will be replaced with "sensitive".
 52497  func (s ListThingRegistrationTaskReportsOutput) String() string {
 52498  	return awsutil.Prettify(s)
 52499  }
 52500  
 52501  // GoString returns the string representation.
 52502  //
 52503  // API parameter values that are decorated as "sensitive" in the API will not
 52504  // be included in the string output. The member name will be present, but the
 52505  // value will be replaced with "sensitive".
 52506  func (s ListThingRegistrationTaskReportsOutput) GoString() string {
 52507  	return s.String()
 52508  }
 52509  
 52510  // SetNextToken sets the NextToken field's value.
 52511  func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
 52512  	s.NextToken = &v
 52513  	return s
 52514  }
 52515  
 52516  // SetReportType sets the ReportType field's value.
 52517  func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
 52518  	s.ReportType = &v
 52519  	return s
 52520  }
 52521  
 52522  // SetResourceLinks sets the ResourceLinks field's value.
 52523  func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
 52524  	s.ResourceLinks = v
 52525  	return s
 52526  }
 52527  
 52528  type ListThingRegistrationTasksInput struct {
 52529  	_ struct{} `type:"structure" nopayload:"true"`
 52530  
 52531  	// The maximum number of results to return at one time.
 52532  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52533  
 52534  	// To retrieve the next set of results, the nextToken value from a previous
 52535  	// response; otherwise null to receive the first set of results.
 52536  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52537  
 52538  	// The status of the bulk thing provisioning task.
 52539  	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
 52540  }
 52541  
 52542  // String returns the string representation.
 52543  //
 52544  // API parameter values that are decorated as "sensitive" in the API will not
 52545  // be included in the string output. The member name will be present, but the
 52546  // value will be replaced with "sensitive".
 52547  func (s ListThingRegistrationTasksInput) String() string {
 52548  	return awsutil.Prettify(s)
 52549  }
 52550  
 52551  // GoString returns the string representation.
 52552  //
 52553  // API parameter values that are decorated as "sensitive" in the API will not
 52554  // be included in the string output. The member name will be present, but the
 52555  // value will be replaced with "sensitive".
 52556  func (s ListThingRegistrationTasksInput) GoString() string {
 52557  	return s.String()
 52558  }
 52559  
 52560  // Validate inspects the fields of the type to determine if they are valid.
 52561  func (s *ListThingRegistrationTasksInput) Validate() error {
 52562  	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
 52563  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52564  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52565  	}
 52566  
 52567  	if invalidParams.Len() > 0 {
 52568  		return invalidParams
 52569  	}
 52570  	return nil
 52571  }
 52572  
 52573  // SetMaxResults sets the MaxResults field's value.
 52574  func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
 52575  	s.MaxResults = &v
 52576  	return s
 52577  }
 52578  
 52579  // SetNextToken sets the NextToken field's value.
 52580  func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
 52581  	s.NextToken = &v
 52582  	return s
 52583  }
 52584  
 52585  // SetStatus sets the Status field's value.
 52586  func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
 52587  	s.Status = &v
 52588  	return s
 52589  }
 52590  
 52591  type ListThingRegistrationTasksOutput struct {
 52592  	_ struct{} `type:"structure"`
 52593  
 52594  	// The token to use to get the next set of results, or null if there are no
 52595  	// additional results.
 52596  	NextToken *string `locationName:"nextToken" type:"string"`
 52597  
 52598  	// A list of bulk thing provisioning task IDs.
 52599  	TaskIds []*string `locationName:"taskIds" type:"list"`
 52600  }
 52601  
 52602  // String returns the string representation.
 52603  //
 52604  // API parameter values that are decorated as "sensitive" in the API will not
 52605  // be included in the string output. The member name will be present, but the
 52606  // value will be replaced with "sensitive".
 52607  func (s ListThingRegistrationTasksOutput) String() string {
 52608  	return awsutil.Prettify(s)
 52609  }
 52610  
 52611  // GoString returns the string representation.
 52612  //
 52613  // API parameter values that are decorated as "sensitive" in the API will not
 52614  // be included in the string output. The member name will be present, but the
 52615  // value will be replaced with "sensitive".
 52616  func (s ListThingRegistrationTasksOutput) GoString() string {
 52617  	return s.String()
 52618  }
 52619  
 52620  // SetNextToken sets the NextToken field's value.
 52621  func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
 52622  	s.NextToken = &v
 52623  	return s
 52624  }
 52625  
 52626  // SetTaskIds sets the TaskIds field's value.
 52627  func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
 52628  	s.TaskIds = v
 52629  	return s
 52630  }
 52631  
 52632  // The input for the ListThingTypes operation.
 52633  type ListThingTypesInput struct {
 52634  	_ struct{} `type:"structure" nopayload:"true"`
 52635  
 52636  	// The maximum number of results to return in this operation.
 52637  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52638  
 52639  	// To retrieve the next set of results, the nextToken value from a previous
 52640  	// response; otherwise null to receive the first set of results.
 52641  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52642  
 52643  	// The name of the thing type.
 52644  	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
 52645  }
 52646  
 52647  // String returns the string representation.
 52648  //
 52649  // API parameter values that are decorated as "sensitive" in the API will not
 52650  // be included in the string output. The member name will be present, but the
 52651  // value will be replaced with "sensitive".
 52652  func (s ListThingTypesInput) String() string {
 52653  	return awsutil.Prettify(s)
 52654  }
 52655  
 52656  // GoString returns the string representation.
 52657  //
 52658  // API parameter values that are decorated as "sensitive" in the API will not
 52659  // be included in the string output. The member name will be present, but the
 52660  // value will be replaced with "sensitive".
 52661  func (s ListThingTypesInput) GoString() string {
 52662  	return s.String()
 52663  }
 52664  
 52665  // Validate inspects the fields of the type to determine if they are valid.
 52666  func (s *ListThingTypesInput) Validate() error {
 52667  	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
 52668  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52669  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52670  	}
 52671  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 52672  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 52673  	}
 52674  
 52675  	if invalidParams.Len() > 0 {
 52676  		return invalidParams
 52677  	}
 52678  	return nil
 52679  }
 52680  
 52681  // SetMaxResults sets the MaxResults field's value.
 52682  func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
 52683  	s.MaxResults = &v
 52684  	return s
 52685  }
 52686  
 52687  // SetNextToken sets the NextToken field's value.
 52688  func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
 52689  	s.NextToken = &v
 52690  	return s
 52691  }
 52692  
 52693  // SetThingTypeName sets the ThingTypeName field's value.
 52694  func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
 52695  	s.ThingTypeName = &v
 52696  	return s
 52697  }
 52698  
 52699  // The output for the ListThingTypes operation.
 52700  type ListThingTypesOutput struct {
 52701  	_ struct{} `type:"structure"`
 52702  
 52703  	// The token for the next set of results. Will not be returned if operation
 52704  	// has returned all results.
 52705  	NextToken *string `locationName:"nextToken" type:"string"`
 52706  
 52707  	// The thing types.
 52708  	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
 52709  }
 52710  
 52711  // String returns the string representation.
 52712  //
 52713  // API parameter values that are decorated as "sensitive" in the API will not
 52714  // be included in the string output. The member name will be present, but the
 52715  // value will be replaced with "sensitive".
 52716  func (s ListThingTypesOutput) String() string {
 52717  	return awsutil.Prettify(s)
 52718  }
 52719  
 52720  // GoString returns the string representation.
 52721  //
 52722  // API parameter values that are decorated as "sensitive" in the API will not
 52723  // be included in the string output. The member name will be present, but the
 52724  // value will be replaced with "sensitive".
 52725  func (s ListThingTypesOutput) GoString() string {
 52726  	return s.String()
 52727  }
 52728  
 52729  // SetNextToken sets the NextToken field's value.
 52730  func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
 52731  	s.NextToken = &v
 52732  	return s
 52733  }
 52734  
 52735  // SetThingTypes sets the ThingTypes field's value.
 52736  func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
 52737  	s.ThingTypes = v
 52738  	return s
 52739  }
 52740  
 52741  type ListThingsInBillingGroupInput struct {
 52742  	_ struct{} `type:"structure" nopayload:"true"`
 52743  
 52744  	// The name of the billing group.
 52745  	//
 52746  	// BillingGroupName is a required field
 52747  	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
 52748  
 52749  	// The maximum number of results to return per request.
 52750  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52751  
 52752  	// To retrieve the next set of results, the nextToken value from a previous
 52753  	// response; otherwise null to receive the first set of results.
 52754  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52755  }
 52756  
 52757  // String returns the string representation.
 52758  //
 52759  // API parameter values that are decorated as "sensitive" in the API will not
 52760  // be included in the string output. The member name will be present, but the
 52761  // value will be replaced with "sensitive".
 52762  func (s ListThingsInBillingGroupInput) String() string {
 52763  	return awsutil.Prettify(s)
 52764  }
 52765  
 52766  // GoString returns the string representation.
 52767  //
 52768  // API parameter values that are decorated as "sensitive" in the API will not
 52769  // be included in the string output. The member name will be present, but the
 52770  // value will be replaced with "sensitive".
 52771  func (s ListThingsInBillingGroupInput) GoString() string {
 52772  	return s.String()
 52773  }
 52774  
 52775  // Validate inspects the fields of the type to determine if they are valid.
 52776  func (s *ListThingsInBillingGroupInput) Validate() error {
 52777  	invalidParams := request.ErrInvalidParams{Context: "ListThingsInBillingGroupInput"}
 52778  	if s.BillingGroupName == nil {
 52779  		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
 52780  	}
 52781  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 52782  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 52783  	}
 52784  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52785  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52786  	}
 52787  
 52788  	if invalidParams.Len() > 0 {
 52789  		return invalidParams
 52790  	}
 52791  	return nil
 52792  }
 52793  
 52794  // SetBillingGroupName sets the BillingGroupName field's value.
 52795  func (s *ListThingsInBillingGroupInput) SetBillingGroupName(v string) *ListThingsInBillingGroupInput {
 52796  	s.BillingGroupName = &v
 52797  	return s
 52798  }
 52799  
 52800  // SetMaxResults sets the MaxResults field's value.
 52801  func (s *ListThingsInBillingGroupInput) SetMaxResults(v int64) *ListThingsInBillingGroupInput {
 52802  	s.MaxResults = &v
 52803  	return s
 52804  }
 52805  
 52806  // SetNextToken sets the NextToken field's value.
 52807  func (s *ListThingsInBillingGroupInput) SetNextToken(v string) *ListThingsInBillingGroupInput {
 52808  	s.NextToken = &v
 52809  	return s
 52810  }
 52811  
 52812  type ListThingsInBillingGroupOutput struct {
 52813  	_ struct{} `type:"structure"`
 52814  
 52815  	// The token to use to get the next set of results. Will not be returned if
 52816  	// operation has returned all results.
 52817  	NextToken *string `locationName:"nextToken" type:"string"`
 52818  
 52819  	// A list of things in the billing group.
 52820  	Things []*string `locationName:"things" type:"list"`
 52821  }
 52822  
 52823  // String returns the string representation.
 52824  //
 52825  // API parameter values that are decorated as "sensitive" in the API will not
 52826  // be included in the string output. The member name will be present, but the
 52827  // value will be replaced with "sensitive".
 52828  func (s ListThingsInBillingGroupOutput) String() string {
 52829  	return awsutil.Prettify(s)
 52830  }
 52831  
 52832  // GoString returns the string representation.
 52833  //
 52834  // API parameter values that are decorated as "sensitive" in the API will not
 52835  // be included in the string output. The member name will be present, but the
 52836  // value will be replaced with "sensitive".
 52837  func (s ListThingsInBillingGroupOutput) GoString() string {
 52838  	return s.String()
 52839  }
 52840  
 52841  // SetNextToken sets the NextToken field's value.
 52842  func (s *ListThingsInBillingGroupOutput) SetNextToken(v string) *ListThingsInBillingGroupOutput {
 52843  	s.NextToken = &v
 52844  	return s
 52845  }
 52846  
 52847  // SetThings sets the Things field's value.
 52848  func (s *ListThingsInBillingGroupOutput) SetThings(v []*string) *ListThingsInBillingGroupOutput {
 52849  	s.Things = v
 52850  	return s
 52851  }
 52852  
 52853  type ListThingsInThingGroupInput struct {
 52854  	_ struct{} `type:"structure" nopayload:"true"`
 52855  
 52856  	// The maximum number of results to return at one time.
 52857  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52858  
 52859  	// To retrieve the next set of results, the nextToken value from a previous
 52860  	// response; otherwise null to receive the first set of results.
 52861  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52862  
 52863  	// When true, list things in this thing group and in all child groups as well.
 52864  	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
 52865  
 52866  	// The thing group name.
 52867  	//
 52868  	// ThingGroupName is a required field
 52869  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 52870  }
 52871  
 52872  // String returns the string representation.
 52873  //
 52874  // API parameter values that are decorated as "sensitive" in the API will not
 52875  // be included in the string output. The member name will be present, but the
 52876  // value will be replaced with "sensitive".
 52877  func (s ListThingsInThingGroupInput) String() string {
 52878  	return awsutil.Prettify(s)
 52879  }
 52880  
 52881  // GoString returns the string representation.
 52882  //
 52883  // API parameter values that are decorated as "sensitive" in the API will not
 52884  // be included in the string output. The member name will be present, but the
 52885  // value will be replaced with "sensitive".
 52886  func (s ListThingsInThingGroupInput) GoString() string {
 52887  	return s.String()
 52888  }
 52889  
 52890  // Validate inspects the fields of the type to determine if they are valid.
 52891  func (s *ListThingsInThingGroupInput) Validate() error {
 52892  	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
 52893  	if s.MaxResults != nil && *s.MaxResults < 1 {
 52894  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 52895  	}
 52896  	if s.ThingGroupName == nil {
 52897  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 52898  	}
 52899  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 52900  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 52901  	}
 52902  
 52903  	if invalidParams.Len() > 0 {
 52904  		return invalidParams
 52905  	}
 52906  	return nil
 52907  }
 52908  
 52909  // SetMaxResults sets the MaxResults field's value.
 52910  func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
 52911  	s.MaxResults = &v
 52912  	return s
 52913  }
 52914  
 52915  // SetNextToken sets the NextToken field's value.
 52916  func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
 52917  	s.NextToken = &v
 52918  	return s
 52919  }
 52920  
 52921  // SetRecursive sets the Recursive field's value.
 52922  func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
 52923  	s.Recursive = &v
 52924  	return s
 52925  }
 52926  
 52927  // SetThingGroupName sets the ThingGroupName field's value.
 52928  func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
 52929  	s.ThingGroupName = &v
 52930  	return s
 52931  }
 52932  
 52933  type ListThingsInThingGroupOutput struct {
 52934  	_ struct{} `type:"structure"`
 52935  
 52936  	// The token to use to get the next set of results, or null if there are no
 52937  	// additional results.
 52938  	NextToken *string `locationName:"nextToken" type:"string"`
 52939  
 52940  	// The things in the specified thing group.
 52941  	Things []*string `locationName:"things" type:"list"`
 52942  }
 52943  
 52944  // String returns the string representation.
 52945  //
 52946  // API parameter values that are decorated as "sensitive" in the API will not
 52947  // be included in the string output. The member name will be present, but the
 52948  // value will be replaced with "sensitive".
 52949  func (s ListThingsInThingGroupOutput) String() string {
 52950  	return awsutil.Prettify(s)
 52951  }
 52952  
 52953  // GoString returns the string representation.
 52954  //
 52955  // API parameter values that are decorated as "sensitive" in the API will not
 52956  // be included in the string output. The member name will be present, but the
 52957  // value will be replaced with "sensitive".
 52958  func (s ListThingsInThingGroupOutput) GoString() string {
 52959  	return s.String()
 52960  }
 52961  
 52962  // SetNextToken sets the NextToken field's value.
 52963  func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
 52964  	s.NextToken = &v
 52965  	return s
 52966  }
 52967  
 52968  // SetThings sets the Things field's value.
 52969  func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
 52970  	s.Things = v
 52971  	return s
 52972  }
 52973  
 52974  // The input for the ListThings operation.
 52975  type ListThingsInput struct {
 52976  	_ struct{} `type:"structure" nopayload:"true"`
 52977  
 52978  	// The attribute name used to search for things.
 52979  	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
 52980  
 52981  	// The attribute value used to search for things.
 52982  	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
 52983  
 52984  	// The maximum number of results to return in this operation.
 52985  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 52986  
 52987  	// To retrieve the next set of results, the nextToken value from a previous
 52988  	// response; otherwise null to receive the first set of results.
 52989  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 52990  
 52991  	// The name of the thing type used to search for things.
 52992  	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
 52993  
 52994  	// When true, the action returns the thing resources with attribute values that
 52995  	// start with the attributeValue provided.
 52996  	//
 52997  	// When false, or not present, the action returns only the thing resources with
 52998  	// attribute values that match the entire attributeValue provided.
 52999  	UsePrefixAttributeValue *bool `location:"querystring" locationName:"usePrefixAttributeValue" type:"boolean"`
 53000  }
 53001  
 53002  // String returns the string representation.
 53003  //
 53004  // API parameter values that are decorated as "sensitive" in the API will not
 53005  // be included in the string output. The member name will be present, but the
 53006  // value will be replaced with "sensitive".
 53007  func (s ListThingsInput) String() string {
 53008  	return awsutil.Prettify(s)
 53009  }
 53010  
 53011  // GoString returns the string representation.
 53012  //
 53013  // API parameter values that are decorated as "sensitive" in the API will not
 53014  // be included in the string output. The member name will be present, but the
 53015  // value will be replaced with "sensitive".
 53016  func (s ListThingsInput) GoString() string {
 53017  	return s.String()
 53018  }
 53019  
 53020  // Validate inspects the fields of the type to determine if they are valid.
 53021  func (s *ListThingsInput) Validate() error {
 53022  	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
 53023  	if s.MaxResults != nil && *s.MaxResults < 1 {
 53024  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 53025  	}
 53026  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 53027  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 53028  	}
 53029  
 53030  	if invalidParams.Len() > 0 {
 53031  		return invalidParams
 53032  	}
 53033  	return nil
 53034  }
 53035  
 53036  // SetAttributeName sets the AttributeName field's value.
 53037  func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
 53038  	s.AttributeName = &v
 53039  	return s
 53040  }
 53041  
 53042  // SetAttributeValue sets the AttributeValue field's value.
 53043  func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
 53044  	s.AttributeValue = &v
 53045  	return s
 53046  }
 53047  
 53048  // SetMaxResults sets the MaxResults field's value.
 53049  func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
 53050  	s.MaxResults = &v
 53051  	return s
 53052  }
 53053  
 53054  // SetNextToken sets the NextToken field's value.
 53055  func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
 53056  	s.NextToken = &v
 53057  	return s
 53058  }
 53059  
 53060  // SetThingTypeName sets the ThingTypeName field's value.
 53061  func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
 53062  	s.ThingTypeName = &v
 53063  	return s
 53064  }
 53065  
 53066  // SetUsePrefixAttributeValue sets the UsePrefixAttributeValue field's value.
 53067  func (s *ListThingsInput) SetUsePrefixAttributeValue(v bool) *ListThingsInput {
 53068  	s.UsePrefixAttributeValue = &v
 53069  	return s
 53070  }
 53071  
 53072  // The output from the ListThings operation.
 53073  type ListThingsOutput struct {
 53074  	_ struct{} `type:"structure"`
 53075  
 53076  	// The token to use to get the next set of results. Will not be returned if
 53077  	// operation has returned all results.
 53078  	NextToken *string `locationName:"nextToken" type:"string"`
 53079  
 53080  	// The things.
 53081  	Things []*ThingAttribute `locationName:"things" type:"list"`
 53082  }
 53083  
 53084  // String returns the string representation.
 53085  //
 53086  // API parameter values that are decorated as "sensitive" in the API will not
 53087  // be included in the string output. The member name will be present, but the
 53088  // value will be replaced with "sensitive".
 53089  func (s ListThingsOutput) String() string {
 53090  	return awsutil.Prettify(s)
 53091  }
 53092  
 53093  // GoString returns the string representation.
 53094  //
 53095  // API parameter values that are decorated as "sensitive" in the API will not
 53096  // be included in the string output. The member name will be present, but the
 53097  // value will be replaced with "sensitive".
 53098  func (s ListThingsOutput) GoString() string {
 53099  	return s.String()
 53100  }
 53101  
 53102  // SetNextToken sets the NextToken field's value.
 53103  func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
 53104  	s.NextToken = &v
 53105  	return s
 53106  }
 53107  
 53108  // SetThings sets the Things field's value.
 53109  func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
 53110  	s.Things = v
 53111  	return s
 53112  }
 53113  
 53114  type ListTopicRuleDestinationsInput struct {
 53115  	_ struct{} `type:"structure" nopayload:"true"`
 53116  
 53117  	// The maximum number of results to return at one time.
 53118  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 53119  
 53120  	// To retrieve the next set of results, the nextToken value from a previous
 53121  	// response; otherwise null to receive the first set of results.
 53122  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 53123  }
 53124  
 53125  // String returns the string representation.
 53126  //
 53127  // API parameter values that are decorated as "sensitive" in the API will not
 53128  // be included in the string output. The member name will be present, but the
 53129  // value will be replaced with "sensitive".
 53130  func (s ListTopicRuleDestinationsInput) String() string {
 53131  	return awsutil.Prettify(s)
 53132  }
 53133  
 53134  // GoString returns the string representation.
 53135  //
 53136  // API parameter values that are decorated as "sensitive" in the API will not
 53137  // be included in the string output. The member name will be present, but the
 53138  // value will be replaced with "sensitive".
 53139  func (s ListTopicRuleDestinationsInput) GoString() string {
 53140  	return s.String()
 53141  }
 53142  
 53143  // Validate inspects the fields of the type to determine if they are valid.
 53144  func (s *ListTopicRuleDestinationsInput) Validate() error {
 53145  	invalidParams := request.ErrInvalidParams{Context: "ListTopicRuleDestinationsInput"}
 53146  	if s.MaxResults != nil && *s.MaxResults < 1 {
 53147  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 53148  	}
 53149  
 53150  	if invalidParams.Len() > 0 {
 53151  		return invalidParams
 53152  	}
 53153  	return nil
 53154  }
 53155  
 53156  // SetMaxResults sets the MaxResults field's value.
 53157  func (s *ListTopicRuleDestinationsInput) SetMaxResults(v int64) *ListTopicRuleDestinationsInput {
 53158  	s.MaxResults = &v
 53159  	return s
 53160  }
 53161  
 53162  // SetNextToken sets the NextToken field's value.
 53163  func (s *ListTopicRuleDestinationsInput) SetNextToken(v string) *ListTopicRuleDestinationsInput {
 53164  	s.NextToken = &v
 53165  	return s
 53166  }
 53167  
 53168  type ListTopicRuleDestinationsOutput struct {
 53169  	_ struct{} `type:"structure"`
 53170  
 53171  	// Information about a topic rule destination.
 53172  	DestinationSummaries []*TopicRuleDestinationSummary `locationName:"destinationSummaries" type:"list"`
 53173  
 53174  	// The token to use to get the next set of results, or null if there are no
 53175  	// additional results.
 53176  	NextToken *string `locationName:"nextToken" type:"string"`
 53177  }
 53178  
 53179  // String returns the string representation.
 53180  //
 53181  // API parameter values that are decorated as "sensitive" in the API will not
 53182  // be included in the string output. The member name will be present, but the
 53183  // value will be replaced with "sensitive".
 53184  func (s ListTopicRuleDestinationsOutput) String() string {
 53185  	return awsutil.Prettify(s)
 53186  }
 53187  
 53188  // GoString returns the string representation.
 53189  //
 53190  // API parameter values that are decorated as "sensitive" in the API will not
 53191  // be included in the string output. The member name will be present, but the
 53192  // value will be replaced with "sensitive".
 53193  func (s ListTopicRuleDestinationsOutput) GoString() string {
 53194  	return s.String()
 53195  }
 53196  
 53197  // SetDestinationSummaries sets the DestinationSummaries field's value.
 53198  func (s *ListTopicRuleDestinationsOutput) SetDestinationSummaries(v []*TopicRuleDestinationSummary) *ListTopicRuleDestinationsOutput {
 53199  	s.DestinationSummaries = v
 53200  	return s
 53201  }
 53202  
 53203  // SetNextToken sets the NextToken field's value.
 53204  func (s *ListTopicRuleDestinationsOutput) SetNextToken(v string) *ListTopicRuleDestinationsOutput {
 53205  	s.NextToken = &v
 53206  	return s
 53207  }
 53208  
 53209  // The input for the ListTopicRules operation.
 53210  type ListTopicRulesInput struct {
 53211  	_ struct{} `type:"structure" nopayload:"true"`
 53212  
 53213  	// The maximum number of results to return.
 53214  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 53215  
 53216  	// To retrieve the next set of results, the nextToken value from a previous
 53217  	// response; otherwise null to receive the first set of results.
 53218  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 53219  
 53220  	// Specifies whether the rule is disabled.
 53221  	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
 53222  
 53223  	// The topic.
 53224  	Topic *string `location:"querystring" locationName:"topic" type:"string"`
 53225  }
 53226  
 53227  // String returns the string representation.
 53228  //
 53229  // API parameter values that are decorated as "sensitive" in the API will not
 53230  // be included in the string output. The member name will be present, but the
 53231  // value will be replaced with "sensitive".
 53232  func (s ListTopicRulesInput) String() string {
 53233  	return awsutil.Prettify(s)
 53234  }
 53235  
 53236  // GoString returns the string representation.
 53237  //
 53238  // API parameter values that are decorated as "sensitive" in the API will not
 53239  // be included in the string output. The member name will be present, but the
 53240  // value will be replaced with "sensitive".
 53241  func (s ListTopicRulesInput) GoString() string {
 53242  	return s.String()
 53243  }
 53244  
 53245  // Validate inspects the fields of the type to determine if they are valid.
 53246  func (s *ListTopicRulesInput) Validate() error {
 53247  	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
 53248  	if s.MaxResults != nil && *s.MaxResults < 1 {
 53249  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 53250  	}
 53251  
 53252  	if invalidParams.Len() > 0 {
 53253  		return invalidParams
 53254  	}
 53255  	return nil
 53256  }
 53257  
 53258  // SetMaxResults sets the MaxResults field's value.
 53259  func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
 53260  	s.MaxResults = &v
 53261  	return s
 53262  }
 53263  
 53264  // SetNextToken sets the NextToken field's value.
 53265  func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
 53266  	s.NextToken = &v
 53267  	return s
 53268  }
 53269  
 53270  // SetRuleDisabled sets the RuleDisabled field's value.
 53271  func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
 53272  	s.RuleDisabled = &v
 53273  	return s
 53274  }
 53275  
 53276  // SetTopic sets the Topic field's value.
 53277  func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
 53278  	s.Topic = &v
 53279  	return s
 53280  }
 53281  
 53282  // The output from the ListTopicRules operation.
 53283  type ListTopicRulesOutput struct {
 53284  	_ struct{} `type:"structure"`
 53285  
 53286  	// The token to use to get the next set of results, or null if there are no
 53287  	// additional results.
 53288  	NextToken *string `locationName:"nextToken" type:"string"`
 53289  
 53290  	// The rules.
 53291  	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
 53292  }
 53293  
 53294  // String returns the string representation.
 53295  //
 53296  // API parameter values that are decorated as "sensitive" in the API will not
 53297  // be included in the string output. The member name will be present, but the
 53298  // value will be replaced with "sensitive".
 53299  func (s ListTopicRulesOutput) String() string {
 53300  	return awsutil.Prettify(s)
 53301  }
 53302  
 53303  // GoString returns the string representation.
 53304  //
 53305  // API parameter values that are decorated as "sensitive" in the API will not
 53306  // be included in the string output. The member name will be present, but the
 53307  // value will be replaced with "sensitive".
 53308  func (s ListTopicRulesOutput) GoString() string {
 53309  	return s.String()
 53310  }
 53311  
 53312  // SetNextToken sets the NextToken field's value.
 53313  func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
 53314  	s.NextToken = &v
 53315  	return s
 53316  }
 53317  
 53318  // SetRules sets the Rules field's value.
 53319  func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
 53320  	s.Rules = v
 53321  	return s
 53322  }
 53323  
 53324  type ListV2LoggingLevelsInput struct {
 53325  	_ struct{} `type:"structure" nopayload:"true"`
 53326  
 53327  	// The maximum number of results to return at one time.
 53328  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 53329  
 53330  	// To retrieve the next set of results, the nextToken value from a previous
 53331  	// response; otherwise null to receive the first set of results.
 53332  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 53333  
 53334  	// The type of resource for which you are configuring logging. Must be THING_Group.
 53335  	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
 53336  }
 53337  
 53338  // String returns the string representation.
 53339  //
 53340  // API parameter values that are decorated as "sensitive" in the API will not
 53341  // be included in the string output. The member name will be present, but the
 53342  // value will be replaced with "sensitive".
 53343  func (s ListV2LoggingLevelsInput) String() string {
 53344  	return awsutil.Prettify(s)
 53345  }
 53346  
 53347  // GoString returns the string representation.
 53348  //
 53349  // API parameter values that are decorated as "sensitive" in the API will not
 53350  // be included in the string output. The member name will be present, but the
 53351  // value will be replaced with "sensitive".
 53352  func (s ListV2LoggingLevelsInput) GoString() string {
 53353  	return s.String()
 53354  }
 53355  
 53356  // Validate inspects the fields of the type to determine if they are valid.
 53357  func (s *ListV2LoggingLevelsInput) Validate() error {
 53358  	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
 53359  	if s.MaxResults != nil && *s.MaxResults < 1 {
 53360  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 53361  	}
 53362  
 53363  	if invalidParams.Len() > 0 {
 53364  		return invalidParams
 53365  	}
 53366  	return nil
 53367  }
 53368  
 53369  // SetMaxResults sets the MaxResults field's value.
 53370  func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
 53371  	s.MaxResults = &v
 53372  	return s
 53373  }
 53374  
 53375  // SetNextToken sets the NextToken field's value.
 53376  func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
 53377  	s.NextToken = &v
 53378  	return s
 53379  }
 53380  
 53381  // SetTargetType sets the TargetType field's value.
 53382  func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
 53383  	s.TargetType = &v
 53384  	return s
 53385  }
 53386  
 53387  type ListV2LoggingLevelsOutput struct {
 53388  	_ struct{} `type:"structure"`
 53389  
 53390  	// The logging configuration for a target.
 53391  	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
 53392  
 53393  	// The token to use to get the next set of results, or null if there are no
 53394  	// additional results.
 53395  	NextToken *string `locationName:"nextToken" type:"string"`
 53396  }
 53397  
 53398  // String returns the string representation.
 53399  //
 53400  // API parameter values that are decorated as "sensitive" in the API will not
 53401  // be included in the string output. The member name will be present, but the
 53402  // value will be replaced with "sensitive".
 53403  func (s ListV2LoggingLevelsOutput) String() string {
 53404  	return awsutil.Prettify(s)
 53405  }
 53406  
 53407  // GoString returns the string representation.
 53408  //
 53409  // API parameter values that are decorated as "sensitive" in the API will not
 53410  // be included in the string output. The member name will be present, but the
 53411  // value will be replaced with "sensitive".
 53412  func (s ListV2LoggingLevelsOutput) GoString() string {
 53413  	return s.String()
 53414  }
 53415  
 53416  // SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
 53417  func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
 53418  	s.LogTargetConfigurations = v
 53419  	return s
 53420  }
 53421  
 53422  // SetNextToken sets the NextToken field's value.
 53423  func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
 53424  	s.NextToken = &v
 53425  	return s
 53426  }
 53427  
 53428  type ListViolationEventsInput struct {
 53429  	_ struct{} `type:"structure" nopayload:"true"`
 53430  
 53431  	// The criteria for a behavior.
 53432  	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
 53433  
 53434  	// The end time for the alerts to be listed.
 53435  	//
 53436  	// EndTime is a required field
 53437  	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
 53438  
 53439  	// A list of all suppressed alerts.
 53440  	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
 53441  
 53442  	// The maximum number of results to return at one time.
 53443  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
 53444  
 53445  	// The token for the next set of results.
 53446  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 53447  
 53448  	// A filter to limit results to those alerts generated by the specified security
 53449  	// profile.
 53450  	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
 53451  
 53452  	// The start time for the alerts to be listed.
 53453  	//
 53454  	// StartTime is a required field
 53455  	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
 53456  
 53457  	// A filter to limit results to those alerts caused by the specified thing.
 53458  	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
 53459  
 53460  	// The verification state of the violation (detect alarm).
 53461  	VerificationState *string `location:"querystring" locationName:"verificationState" type:"string" enum:"VerificationState"`
 53462  }
 53463  
 53464  // String returns the string representation.
 53465  //
 53466  // API parameter values that are decorated as "sensitive" in the API will not
 53467  // be included in the string output. The member name will be present, but the
 53468  // value will be replaced with "sensitive".
 53469  func (s ListViolationEventsInput) String() string {
 53470  	return awsutil.Prettify(s)
 53471  }
 53472  
 53473  // GoString returns the string representation.
 53474  //
 53475  // API parameter values that are decorated as "sensitive" in the API will not
 53476  // be included in the string output. The member name will be present, but the
 53477  // value will be replaced with "sensitive".
 53478  func (s ListViolationEventsInput) GoString() string {
 53479  	return s.String()
 53480  }
 53481  
 53482  // Validate inspects the fields of the type to determine if they are valid.
 53483  func (s *ListViolationEventsInput) Validate() error {
 53484  	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
 53485  	if s.EndTime == nil {
 53486  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 53487  	}
 53488  	if s.MaxResults != nil && *s.MaxResults < 1 {
 53489  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 53490  	}
 53491  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 53492  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 53493  	}
 53494  	if s.StartTime == nil {
 53495  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 53496  	}
 53497  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 53498  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 53499  	}
 53500  
 53501  	if invalidParams.Len() > 0 {
 53502  		return invalidParams
 53503  	}
 53504  	return nil
 53505  }
 53506  
 53507  // SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
 53508  func (s *ListViolationEventsInput) SetBehaviorCriteriaType(v string) *ListViolationEventsInput {
 53509  	s.BehaviorCriteriaType = &v
 53510  	return s
 53511  }
 53512  
 53513  // SetEndTime sets the EndTime field's value.
 53514  func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
 53515  	s.EndTime = &v
 53516  	return s
 53517  }
 53518  
 53519  // SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
 53520  func (s *ListViolationEventsInput) SetListSuppressedAlerts(v bool) *ListViolationEventsInput {
 53521  	s.ListSuppressedAlerts = &v
 53522  	return s
 53523  }
 53524  
 53525  // SetMaxResults sets the MaxResults field's value.
 53526  func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
 53527  	s.MaxResults = &v
 53528  	return s
 53529  }
 53530  
 53531  // SetNextToken sets the NextToken field's value.
 53532  func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
 53533  	s.NextToken = &v
 53534  	return s
 53535  }
 53536  
 53537  // SetSecurityProfileName sets the SecurityProfileName field's value.
 53538  func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
 53539  	s.SecurityProfileName = &v
 53540  	return s
 53541  }
 53542  
 53543  // SetStartTime sets the StartTime field's value.
 53544  func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
 53545  	s.StartTime = &v
 53546  	return s
 53547  }
 53548  
 53549  // SetThingName sets the ThingName field's value.
 53550  func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
 53551  	s.ThingName = &v
 53552  	return s
 53553  }
 53554  
 53555  // SetVerificationState sets the VerificationState field's value.
 53556  func (s *ListViolationEventsInput) SetVerificationState(v string) *ListViolationEventsInput {
 53557  	s.VerificationState = &v
 53558  	return s
 53559  }
 53560  
 53561  type ListViolationEventsOutput struct {
 53562  	_ struct{} `type:"structure"`
 53563  
 53564  	// A token that can be used to retrieve the next set of results, or null if
 53565  	// there are no additional results.
 53566  	NextToken *string `locationName:"nextToken" type:"string"`
 53567  
 53568  	// The security profile violation alerts issued for this account during the
 53569  	// given time period, potentially filtered by security profile, behavior violated,
 53570  	// or thing (device) violating.
 53571  	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
 53572  }
 53573  
 53574  // String returns the string representation.
 53575  //
 53576  // API parameter values that are decorated as "sensitive" in the API will not
 53577  // be included in the string output. The member name will be present, but the
 53578  // value will be replaced with "sensitive".
 53579  func (s ListViolationEventsOutput) String() string {
 53580  	return awsutil.Prettify(s)
 53581  }
 53582  
 53583  // GoString returns the string representation.
 53584  //
 53585  // API parameter values that are decorated as "sensitive" in the API will not
 53586  // be included in the string output. The member name will be present, but the
 53587  // value will be replaced with "sensitive".
 53588  func (s ListViolationEventsOutput) GoString() string {
 53589  	return s.String()
 53590  }
 53591  
 53592  // SetNextToken sets the NextToken field's value.
 53593  func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
 53594  	s.NextToken = &v
 53595  	return s
 53596  }
 53597  
 53598  // SetViolationEvents sets the ViolationEvents field's value.
 53599  func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
 53600  	s.ViolationEvents = v
 53601  	return s
 53602  }
 53603  
 53604  // A log target.
 53605  type LogTarget struct {
 53606  	_ struct{} `type:"structure"`
 53607  
 53608  	// The target name.
 53609  	TargetName *string `locationName:"targetName" type:"string"`
 53610  
 53611  	// The target type.
 53612  	//
 53613  	// TargetType is a required field
 53614  	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
 53615  }
 53616  
 53617  // String returns the string representation.
 53618  //
 53619  // API parameter values that are decorated as "sensitive" in the API will not
 53620  // be included in the string output. The member name will be present, but the
 53621  // value will be replaced with "sensitive".
 53622  func (s LogTarget) String() string {
 53623  	return awsutil.Prettify(s)
 53624  }
 53625  
 53626  // GoString returns the string representation.
 53627  //
 53628  // API parameter values that are decorated as "sensitive" in the API will not
 53629  // be included in the string output. The member name will be present, but the
 53630  // value will be replaced with "sensitive".
 53631  func (s LogTarget) GoString() string {
 53632  	return s.String()
 53633  }
 53634  
 53635  // Validate inspects the fields of the type to determine if they are valid.
 53636  func (s *LogTarget) Validate() error {
 53637  	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
 53638  	if s.TargetType == nil {
 53639  		invalidParams.Add(request.NewErrParamRequired("TargetType"))
 53640  	}
 53641  
 53642  	if invalidParams.Len() > 0 {
 53643  		return invalidParams
 53644  	}
 53645  	return nil
 53646  }
 53647  
 53648  // SetTargetName sets the TargetName field's value.
 53649  func (s *LogTarget) SetTargetName(v string) *LogTarget {
 53650  	s.TargetName = &v
 53651  	return s
 53652  }
 53653  
 53654  // SetTargetType sets the TargetType field's value.
 53655  func (s *LogTarget) SetTargetType(v string) *LogTarget {
 53656  	s.TargetType = &v
 53657  	return s
 53658  }
 53659  
 53660  // The target configuration.
 53661  type LogTargetConfiguration struct {
 53662  	_ struct{} `type:"structure"`
 53663  
 53664  	// The logging level.
 53665  	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
 53666  
 53667  	// A log target
 53668  	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
 53669  }
 53670  
 53671  // String returns the string representation.
 53672  //
 53673  // API parameter values that are decorated as "sensitive" in the API will not
 53674  // be included in the string output. The member name will be present, but the
 53675  // value will be replaced with "sensitive".
 53676  func (s LogTargetConfiguration) String() string {
 53677  	return awsutil.Prettify(s)
 53678  }
 53679  
 53680  // GoString returns the string representation.
 53681  //
 53682  // API parameter values that are decorated as "sensitive" in the API will not
 53683  // be included in the string output. The member name will be present, but the
 53684  // value will be replaced with "sensitive".
 53685  func (s LogTargetConfiguration) GoString() string {
 53686  	return s.String()
 53687  }
 53688  
 53689  // SetLogLevel sets the LogLevel field's value.
 53690  func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
 53691  	s.LogLevel = &v
 53692  	return s
 53693  }
 53694  
 53695  // SetLogTarget sets the LogTarget field's value.
 53696  func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
 53697  	s.LogTarget = v
 53698  	return s
 53699  }
 53700  
 53701  // Describes the logging options payload.
 53702  type LoggingOptionsPayload struct {
 53703  	_ struct{} `type:"structure"`
 53704  
 53705  	// The log level.
 53706  	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
 53707  
 53708  	// The ARN of the IAM role that grants access.
 53709  	//
 53710  	// RoleArn is a required field
 53711  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 53712  }
 53713  
 53714  // String returns the string representation.
 53715  //
 53716  // API parameter values that are decorated as "sensitive" in the API will not
 53717  // be included in the string output. The member name will be present, but the
 53718  // value will be replaced with "sensitive".
 53719  func (s LoggingOptionsPayload) String() string {
 53720  	return awsutil.Prettify(s)
 53721  }
 53722  
 53723  // GoString returns the string representation.
 53724  //
 53725  // API parameter values that are decorated as "sensitive" in the API will not
 53726  // be included in the string output. The member name will be present, but the
 53727  // value will be replaced with "sensitive".
 53728  func (s LoggingOptionsPayload) GoString() string {
 53729  	return s.String()
 53730  }
 53731  
 53732  // Validate inspects the fields of the type to determine if they are valid.
 53733  func (s *LoggingOptionsPayload) Validate() error {
 53734  	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
 53735  	if s.RoleArn == nil {
 53736  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 53737  	}
 53738  
 53739  	if invalidParams.Len() > 0 {
 53740  		return invalidParams
 53741  	}
 53742  	return nil
 53743  }
 53744  
 53745  // SetLogLevel sets the LogLevel field's value.
 53746  func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
 53747  	s.LogLevel = &v
 53748  	return s
 53749  }
 53750  
 53751  // SetRoleArn sets the RoleArn field's value.
 53752  func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
 53753  	s.RoleArn = &v
 53754  	return s
 53755  }
 53756  
 53757  // The configuration of an ML Detect Security Profile.
 53758  type MachineLearningDetectionConfig struct {
 53759  	_ struct{} `type:"structure"`
 53760  
 53761  	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
 53762  	// High.
 53763  	//
 53764  	// ConfidenceLevel is a required field
 53765  	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" required:"true" enum:"ConfidenceLevel"`
 53766  }
 53767  
 53768  // String returns the string representation.
 53769  //
 53770  // API parameter values that are decorated as "sensitive" in the API will not
 53771  // be included in the string output. The member name will be present, but the
 53772  // value will be replaced with "sensitive".
 53773  func (s MachineLearningDetectionConfig) String() string {
 53774  	return awsutil.Prettify(s)
 53775  }
 53776  
 53777  // GoString returns the string representation.
 53778  //
 53779  // API parameter values that are decorated as "sensitive" in the API will not
 53780  // be included in the string output. The member name will be present, but the
 53781  // value will be replaced with "sensitive".
 53782  func (s MachineLearningDetectionConfig) GoString() string {
 53783  	return s.String()
 53784  }
 53785  
 53786  // Validate inspects the fields of the type to determine if they are valid.
 53787  func (s *MachineLearningDetectionConfig) Validate() error {
 53788  	invalidParams := request.ErrInvalidParams{Context: "MachineLearningDetectionConfig"}
 53789  	if s.ConfidenceLevel == nil {
 53790  		invalidParams.Add(request.NewErrParamRequired("ConfidenceLevel"))
 53791  	}
 53792  
 53793  	if invalidParams.Len() > 0 {
 53794  		return invalidParams
 53795  	}
 53796  	return nil
 53797  }
 53798  
 53799  // SetConfidenceLevel sets the ConfidenceLevel field's value.
 53800  func (s *MachineLearningDetectionConfig) SetConfidenceLevel(v string) *MachineLearningDetectionConfig {
 53801  	s.ConfidenceLevel = &v
 53802  	return s
 53803  }
 53804  
 53805  // The policy documentation is not valid.
 53806  type MalformedPolicyException struct {
 53807  	_            struct{}                  `type:"structure"`
 53808  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 53809  
 53810  	// The message for the exception.
 53811  	Message_ *string `locationName:"message" type:"string"`
 53812  }
 53813  
 53814  // String returns the string representation.
 53815  //
 53816  // API parameter values that are decorated as "sensitive" in the API will not
 53817  // be included in the string output. The member name will be present, but the
 53818  // value will be replaced with "sensitive".
 53819  func (s MalformedPolicyException) String() string {
 53820  	return awsutil.Prettify(s)
 53821  }
 53822  
 53823  // GoString returns the string representation.
 53824  //
 53825  // API parameter values that are decorated as "sensitive" in the API will not
 53826  // be included in the string output. The member name will be present, but the
 53827  // value will be replaced with "sensitive".
 53828  func (s MalformedPolicyException) GoString() string {
 53829  	return s.String()
 53830  }
 53831  
 53832  func newErrorMalformedPolicyException(v protocol.ResponseMetadata) error {
 53833  	return &MalformedPolicyException{
 53834  		RespMetadata: v,
 53835  	}
 53836  }
 53837  
 53838  // Code returns the exception type name.
 53839  func (s *MalformedPolicyException) Code() string {
 53840  	return "MalformedPolicyException"
 53841  }
 53842  
 53843  // Message returns the exception's message.
 53844  func (s *MalformedPolicyException) Message() string {
 53845  	if s.Message_ != nil {
 53846  		return *s.Message_
 53847  	}
 53848  	return ""
 53849  }
 53850  
 53851  // OrigErr always returns nil, satisfies awserr.Error interface.
 53852  func (s *MalformedPolicyException) OrigErr() error {
 53853  	return nil
 53854  }
 53855  
 53856  func (s *MalformedPolicyException) Error() string {
 53857  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 53858  }
 53859  
 53860  // Status code returns the HTTP status code for the request's response error.
 53861  func (s *MalformedPolicyException) StatusCode() int {
 53862  	return s.RespMetadata.StatusCode
 53863  }
 53864  
 53865  // RequestID returns the service's response RequestID for request.
 53866  func (s *MalformedPolicyException) RequestID() string {
 53867  	return s.RespMetadata.RequestID
 53868  }
 53869  
 53870  // The dimension of a metric.
 53871  type MetricDimension struct {
 53872  	_ struct{} `type:"structure"`
 53873  
 53874  	// A unique identifier for the dimension.
 53875  	//
 53876  	// DimensionName is a required field
 53877  	DimensionName *string `locationName:"dimensionName" min:"1" type:"string" required:"true"`
 53878  
 53879  	// Defines how the dimensionValues of a dimension are interpreted. For example,
 53880  	// for dimension type TOPIC_FILTER, the IN operator, a message will be counted
 53881  	// only if its topic matches one of the topic filters. With NOT_IN operator,
 53882  	// a message will be counted only if it doesn't match any of the topic filters.
 53883  	// The operator is optional: if it's not provided (is null), it will be interpreted
 53884  	// as IN.
 53885  	Operator *string `locationName:"operator" type:"string" enum:"DimensionValueOperator"`
 53886  }
 53887  
 53888  // String returns the string representation.
 53889  //
 53890  // API parameter values that are decorated as "sensitive" in the API will not
 53891  // be included in the string output. The member name will be present, but the
 53892  // value will be replaced with "sensitive".
 53893  func (s MetricDimension) String() string {
 53894  	return awsutil.Prettify(s)
 53895  }
 53896  
 53897  // GoString returns the string representation.
 53898  //
 53899  // API parameter values that are decorated as "sensitive" in the API will not
 53900  // be included in the string output. The member name will be present, but the
 53901  // value will be replaced with "sensitive".
 53902  func (s MetricDimension) GoString() string {
 53903  	return s.String()
 53904  }
 53905  
 53906  // Validate inspects the fields of the type to determine if they are valid.
 53907  func (s *MetricDimension) Validate() error {
 53908  	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
 53909  	if s.DimensionName == nil {
 53910  		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
 53911  	}
 53912  	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
 53913  		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
 53914  	}
 53915  
 53916  	if invalidParams.Len() > 0 {
 53917  		return invalidParams
 53918  	}
 53919  	return nil
 53920  }
 53921  
 53922  // SetDimensionName sets the DimensionName field's value.
 53923  func (s *MetricDimension) SetDimensionName(v string) *MetricDimension {
 53924  	s.DimensionName = &v
 53925  	return s
 53926  }
 53927  
 53928  // SetOperator sets the Operator field's value.
 53929  func (s *MetricDimension) SetOperator(v string) *MetricDimension {
 53930  	s.Operator = &v
 53931  	return s
 53932  }
 53933  
 53934  // The metric you want to retain. Dimensions are optional.
 53935  type MetricToRetain struct {
 53936  	_ struct{} `type:"structure"`
 53937  
 53938  	// What is measured by the behavior.
 53939  	//
 53940  	// Metric is a required field
 53941  	Metric *string `locationName:"metric" type:"string" required:"true"`
 53942  
 53943  	// The dimension of a metric. This can't be used with custom metrics.
 53944  	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
 53945  }
 53946  
 53947  // String returns the string representation.
 53948  //
 53949  // API parameter values that are decorated as "sensitive" in the API will not
 53950  // be included in the string output. The member name will be present, but the
 53951  // value will be replaced with "sensitive".
 53952  func (s MetricToRetain) String() string {
 53953  	return awsutil.Prettify(s)
 53954  }
 53955  
 53956  // GoString returns the string representation.
 53957  //
 53958  // API parameter values that are decorated as "sensitive" in the API will not
 53959  // be included in the string output. The member name will be present, but the
 53960  // value will be replaced with "sensitive".
 53961  func (s MetricToRetain) GoString() string {
 53962  	return s.String()
 53963  }
 53964  
 53965  // Validate inspects the fields of the type to determine if they are valid.
 53966  func (s *MetricToRetain) Validate() error {
 53967  	invalidParams := request.ErrInvalidParams{Context: "MetricToRetain"}
 53968  	if s.Metric == nil {
 53969  		invalidParams.Add(request.NewErrParamRequired("Metric"))
 53970  	}
 53971  	if s.MetricDimension != nil {
 53972  		if err := s.MetricDimension.Validate(); err != nil {
 53973  			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
 53974  		}
 53975  	}
 53976  
 53977  	if invalidParams.Len() > 0 {
 53978  		return invalidParams
 53979  	}
 53980  	return nil
 53981  }
 53982  
 53983  // SetMetric sets the Metric field's value.
 53984  func (s *MetricToRetain) SetMetric(v string) *MetricToRetain {
 53985  	s.Metric = &v
 53986  	return s
 53987  }
 53988  
 53989  // SetMetricDimension sets the MetricDimension field's value.
 53990  func (s *MetricToRetain) SetMetricDimension(v *MetricDimension) *MetricToRetain {
 53991  	s.MetricDimension = v
 53992  	return s
 53993  }
 53994  
 53995  // The value to be compared with the metric.
 53996  type MetricValue struct {
 53997  	_ struct{} `type:"structure"`
 53998  
 53999  	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
 54000  	// set to be compared with the metric.
 54001  	Cidrs []*string `locationName:"cidrs" type:"list"`
 54002  
 54003  	// If the comparisonOperator calls for a numeric value, use this to specify
 54004  	// that numeric value to be compared with the metric.
 54005  	Count *int64 `locationName:"count" type:"long"`
 54006  
 54007  	// The numeral value of a metric.
 54008  	Number *float64 `locationName:"number" type:"double"`
 54009  
 54010  	// The numeral values of a metric.
 54011  	Numbers []*float64 `locationName:"numbers" type:"list"`
 54012  
 54013  	// If the comparisonOperator calls for a set of ports, use this to specify that
 54014  	// set to be compared with the metric.
 54015  	Ports []*int64 `locationName:"ports" type:"list"`
 54016  
 54017  	// The string values of a metric.
 54018  	Strings []*string `locationName:"strings" type:"list"`
 54019  }
 54020  
 54021  // String returns the string representation.
 54022  //
 54023  // API parameter values that are decorated as "sensitive" in the API will not
 54024  // be included in the string output. The member name will be present, but the
 54025  // value will be replaced with "sensitive".
 54026  func (s MetricValue) String() string {
 54027  	return awsutil.Prettify(s)
 54028  }
 54029  
 54030  // GoString returns the string representation.
 54031  //
 54032  // API parameter values that are decorated as "sensitive" in the API will not
 54033  // be included in the string output. The member name will be present, but the
 54034  // value will be replaced with "sensitive".
 54035  func (s MetricValue) GoString() string {
 54036  	return s.String()
 54037  }
 54038  
 54039  // SetCidrs sets the Cidrs field's value.
 54040  func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
 54041  	s.Cidrs = v
 54042  	return s
 54043  }
 54044  
 54045  // SetCount sets the Count field's value.
 54046  func (s *MetricValue) SetCount(v int64) *MetricValue {
 54047  	s.Count = &v
 54048  	return s
 54049  }
 54050  
 54051  // SetNumber sets the Number field's value.
 54052  func (s *MetricValue) SetNumber(v float64) *MetricValue {
 54053  	s.Number = &v
 54054  	return s
 54055  }
 54056  
 54057  // SetNumbers sets the Numbers field's value.
 54058  func (s *MetricValue) SetNumbers(v []*float64) *MetricValue {
 54059  	s.Numbers = v
 54060  	return s
 54061  }
 54062  
 54063  // SetPorts sets the Ports field's value.
 54064  func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
 54065  	s.Ports = v
 54066  	return s
 54067  }
 54068  
 54069  // SetStrings sets the Strings field's value.
 54070  func (s *MetricValue) SetStrings(v []*string) *MetricValue {
 54071  	s.Strings = v
 54072  	return s
 54073  }
 54074  
 54075  // Describes which changes should be applied as part of a mitigation action.
 54076  type MitigationAction struct {
 54077  	_ struct{} `type:"structure"`
 54078  
 54079  	// The set of parameters for this mitigation action. The parameters vary, depending
 54080  	// on the kind of action you apply.
 54081  	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
 54082  
 54083  	// A unique identifier for the mitigation action.
 54084  	Id *string `locationName:"id" type:"string"`
 54085  
 54086  	// A user-friendly name for the mitigation action.
 54087  	Name *string `locationName:"name" type:"string"`
 54088  
 54089  	// The IAM role ARN used to apply this mitigation action.
 54090  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 54091  }
 54092  
 54093  // String returns the string representation.
 54094  //
 54095  // API parameter values that are decorated as "sensitive" in the API will not
 54096  // be included in the string output. The member name will be present, but the
 54097  // value will be replaced with "sensitive".
 54098  func (s MitigationAction) String() string {
 54099  	return awsutil.Prettify(s)
 54100  }
 54101  
 54102  // GoString returns the string representation.
 54103  //
 54104  // API parameter values that are decorated as "sensitive" in the API will not
 54105  // be included in the string output. The member name will be present, but the
 54106  // value will be replaced with "sensitive".
 54107  func (s MitigationAction) GoString() string {
 54108  	return s.String()
 54109  }
 54110  
 54111  // SetActionParams sets the ActionParams field's value.
 54112  func (s *MitigationAction) SetActionParams(v *MitigationActionParams) *MitigationAction {
 54113  	s.ActionParams = v
 54114  	return s
 54115  }
 54116  
 54117  // SetId sets the Id field's value.
 54118  func (s *MitigationAction) SetId(v string) *MitigationAction {
 54119  	s.Id = &v
 54120  	return s
 54121  }
 54122  
 54123  // SetName sets the Name field's value.
 54124  func (s *MitigationAction) SetName(v string) *MitigationAction {
 54125  	s.Name = &v
 54126  	return s
 54127  }
 54128  
 54129  // SetRoleArn sets the RoleArn field's value.
 54130  func (s *MitigationAction) SetRoleArn(v string) *MitigationAction {
 54131  	s.RoleArn = &v
 54132  	return s
 54133  }
 54134  
 54135  // Information that identifies a mitigation action. This information is returned
 54136  // by ListMitigationActions.
 54137  type MitigationActionIdentifier struct {
 54138  	_ struct{} `type:"structure"`
 54139  
 54140  	// The IAM role ARN used to apply this mitigation action.
 54141  	ActionArn *string `locationName:"actionArn" type:"string"`
 54142  
 54143  	// The friendly name of the mitigation action.
 54144  	ActionName *string `locationName:"actionName" type:"string"`
 54145  
 54146  	// The date when this mitigation action was created.
 54147  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 54148  }
 54149  
 54150  // String returns the string representation.
 54151  //
 54152  // API parameter values that are decorated as "sensitive" in the API will not
 54153  // be included in the string output. The member name will be present, but the
 54154  // value will be replaced with "sensitive".
 54155  func (s MitigationActionIdentifier) String() string {
 54156  	return awsutil.Prettify(s)
 54157  }
 54158  
 54159  // GoString returns the string representation.
 54160  //
 54161  // API parameter values that are decorated as "sensitive" in the API will not
 54162  // be included in the string output. The member name will be present, but the
 54163  // value will be replaced with "sensitive".
 54164  func (s MitigationActionIdentifier) GoString() string {
 54165  	return s.String()
 54166  }
 54167  
 54168  // SetActionArn sets the ActionArn field's value.
 54169  func (s *MitigationActionIdentifier) SetActionArn(v string) *MitigationActionIdentifier {
 54170  	s.ActionArn = &v
 54171  	return s
 54172  }
 54173  
 54174  // SetActionName sets the ActionName field's value.
 54175  func (s *MitigationActionIdentifier) SetActionName(v string) *MitigationActionIdentifier {
 54176  	s.ActionName = &v
 54177  	return s
 54178  }
 54179  
 54180  // SetCreationDate sets the CreationDate field's value.
 54181  func (s *MitigationActionIdentifier) SetCreationDate(v time.Time) *MitigationActionIdentifier {
 54182  	s.CreationDate = &v
 54183  	return s
 54184  }
 54185  
 54186  // The set of parameters for this mitigation action. You can specify only one
 54187  // type of parameter (in other words, you can apply only one action for each
 54188  // defined mitigation action).
 54189  type MitigationActionParams struct {
 54190  	_ struct{} `type:"structure"`
 54191  
 54192  	// Parameters to define a mitigation action that moves devices associated with
 54193  	// a certificate to one or more specified thing groups, typically for quarantine.
 54194  	AddThingsToThingGroupParams *AddThingsToThingGroupParams `locationName:"addThingsToThingGroupParams" type:"structure"`
 54195  
 54196  	// Parameters to define a mitigation action that enables Amazon Web Services
 54197  	// IoT Core logging at a specified level of detail.
 54198  	EnableIoTLoggingParams *EnableIoTLoggingParams `locationName:"enableIoTLoggingParams" type:"structure"`
 54199  
 54200  	// Parameters to define a mitigation action that publishes findings to Amazon
 54201  	// Simple Notification Service (Amazon SNS. You can implement your own custom
 54202  	// actions in response to the Amazon SNS messages.
 54203  	PublishFindingToSnsParams *PublishFindingToSnsParams `locationName:"publishFindingToSnsParams" type:"structure"`
 54204  
 54205  	// Parameters to define a mitigation action that adds a blank policy to restrict
 54206  	// permissions.
 54207  	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams `locationName:"replaceDefaultPolicyVersionParams" type:"structure"`
 54208  
 54209  	// Parameters to define a mitigation action that changes the state of the CA
 54210  	// certificate to inactive.
 54211  	UpdateCACertificateParams *UpdateCACertificateParams `locationName:"updateCACertificateParams" type:"structure"`
 54212  
 54213  	// Parameters to define a mitigation action that changes the state of the device
 54214  	// certificate to inactive.
 54215  	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams `locationName:"updateDeviceCertificateParams" type:"structure"`
 54216  }
 54217  
 54218  // String returns the string representation.
 54219  //
 54220  // API parameter values that are decorated as "sensitive" in the API will not
 54221  // be included in the string output. The member name will be present, but the
 54222  // value will be replaced with "sensitive".
 54223  func (s MitigationActionParams) String() string {
 54224  	return awsutil.Prettify(s)
 54225  }
 54226  
 54227  // GoString returns the string representation.
 54228  //
 54229  // API parameter values that are decorated as "sensitive" in the API will not
 54230  // be included in the string output. The member name will be present, but the
 54231  // value will be replaced with "sensitive".
 54232  func (s MitigationActionParams) GoString() string {
 54233  	return s.String()
 54234  }
 54235  
 54236  // Validate inspects the fields of the type to determine if they are valid.
 54237  func (s *MitigationActionParams) Validate() error {
 54238  	invalidParams := request.ErrInvalidParams{Context: "MitigationActionParams"}
 54239  	if s.AddThingsToThingGroupParams != nil {
 54240  		if err := s.AddThingsToThingGroupParams.Validate(); err != nil {
 54241  			invalidParams.AddNested("AddThingsToThingGroupParams", err.(request.ErrInvalidParams))
 54242  		}
 54243  	}
 54244  	if s.EnableIoTLoggingParams != nil {
 54245  		if err := s.EnableIoTLoggingParams.Validate(); err != nil {
 54246  			invalidParams.AddNested("EnableIoTLoggingParams", err.(request.ErrInvalidParams))
 54247  		}
 54248  	}
 54249  	if s.PublishFindingToSnsParams != nil {
 54250  		if err := s.PublishFindingToSnsParams.Validate(); err != nil {
 54251  			invalidParams.AddNested("PublishFindingToSnsParams", err.(request.ErrInvalidParams))
 54252  		}
 54253  	}
 54254  	if s.ReplaceDefaultPolicyVersionParams != nil {
 54255  		if err := s.ReplaceDefaultPolicyVersionParams.Validate(); err != nil {
 54256  			invalidParams.AddNested("ReplaceDefaultPolicyVersionParams", err.(request.ErrInvalidParams))
 54257  		}
 54258  	}
 54259  	if s.UpdateCACertificateParams != nil {
 54260  		if err := s.UpdateCACertificateParams.Validate(); err != nil {
 54261  			invalidParams.AddNested("UpdateCACertificateParams", err.(request.ErrInvalidParams))
 54262  		}
 54263  	}
 54264  	if s.UpdateDeviceCertificateParams != nil {
 54265  		if err := s.UpdateDeviceCertificateParams.Validate(); err != nil {
 54266  			invalidParams.AddNested("UpdateDeviceCertificateParams", err.(request.ErrInvalidParams))
 54267  		}
 54268  	}
 54269  
 54270  	if invalidParams.Len() > 0 {
 54271  		return invalidParams
 54272  	}
 54273  	return nil
 54274  }
 54275  
 54276  // SetAddThingsToThingGroupParams sets the AddThingsToThingGroupParams field's value.
 54277  func (s *MitigationActionParams) SetAddThingsToThingGroupParams(v *AddThingsToThingGroupParams) *MitigationActionParams {
 54278  	s.AddThingsToThingGroupParams = v
 54279  	return s
 54280  }
 54281  
 54282  // SetEnableIoTLoggingParams sets the EnableIoTLoggingParams field's value.
 54283  func (s *MitigationActionParams) SetEnableIoTLoggingParams(v *EnableIoTLoggingParams) *MitigationActionParams {
 54284  	s.EnableIoTLoggingParams = v
 54285  	return s
 54286  }
 54287  
 54288  // SetPublishFindingToSnsParams sets the PublishFindingToSnsParams field's value.
 54289  func (s *MitigationActionParams) SetPublishFindingToSnsParams(v *PublishFindingToSnsParams) *MitigationActionParams {
 54290  	s.PublishFindingToSnsParams = v
 54291  	return s
 54292  }
 54293  
 54294  // SetReplaceDefaultPolicyVersionParams sets the ReplaceDefaultPolicyVersionParams field's value.
 54295  func (s *MitigationActionParams) SetReplaceDefaultPolicyVersionParams(v *ReplaceDefaultPolicyVersionParams) *MitigationActionParams {
 54296  	s.ReplaceDefaultPolicyVersionParams = v
 54297  	return s
 54298  }
 54299  
 54300  // SetUpdateCACertificateParams sets the UpdateCACertificateParams field's value.
 54301  func (s *MitigationActionParams) SetUpdateCACertificateParams(v *UpdateCACertificateParams) *MitigationActionParams {
 54302  	s.UpdateCACertificateParams = v
 54303  	return s
 54304  }
 54305  
 54306  // SetUpdateDeviceCertificateParams sets the UpdateDeviceCertificateParams field's value.
 54307  func (s *MitigationActionParams) SetUpdateDeviceCertificateParams(v *UpdateDeviceCertificateParams) *MitigationActionParams {
 54308  	s.UpdateDeviceCertificateParams = v
 54309  	return s
 54310  }
 54311  
 54312  // Specifies the MQTT context to use for the test authorizer request
 54313  type MqttContext struct {
 54314  	_ struct{} `type:"structure"`
 54315  
 54316  	// The value of the clientId key in an MQTT authorization request.
 54317  	ClientId *string `locationName:"clientId" min:"1" type:"string"`
 54318  
 54319  	// The value of the password key in an MQTT authorization request.
 54320  	// Password is automatically base64 encoded/decoded by the SDK.
 54321  	Password []byte `locationName:"password" min:"1" type:"blob"`
 54322  
 54323  	// The value of the username key in an MQTT authorization request.
 54324  	Username *string `locationName:"username" min:"1" type:"string"`
 54325  }
 54326  
 54327  // String returns the string representation.
 54328  //
 54329  // API parameter values that are decorated as "sensitive" in the API will not
 54330  // be included in the string output. The member name will be present, but the
 54331  // value will be replaced with "sensitive".
 54332  func (s MqttContext) String() string {
 54333  	return awsutil.Prettify(s)
 54334  }
 54335  
 54336  // GoString returns the string representation.
 54337  //
 54338  // API parameter values that are decorated as "sensitive" in the API will not
 54339  // be included in the string output. The member name will be present, but the
 54340  // value will be replaced with "sensitive".
 54341  func (s MqttContext) GoString() string {
 54342  	return s.String()
 54343  }
 54344  
 54345  // Validate inspects the fields of the type to determine if they are valid.
 54346  func (s *MqttContext) Validate() error {
 54347  	invalidParams := request.ErrInvalidParams{Context: "MqttContext"}
 54348  	if s.ClientId != nil && len(*s.ClientId) < 1 {
 54349  		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
 54350  	}
 54351  	if s.Password != nil && len(s.Password) < 1 {
 54352  		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
 54353  	}
 54354  	if s.Username != nil && len(*s.Username) < 1 {
 54355  		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
 54356  	}
 54357  
 54358  	if invalidParams.Len() > 0 {
 54359  		return invalidParams
 54360  	}
 54361  	return nil
 54362  }
 54363  
 54364  // SetClientId sets the ClientId field's value.
 54365  func (s *MqttContext) SetClientId(v string) *MqttContext {
 54366  	s.ClientId = &v
 54367  	return s
 54368  }
 54369  
 54370  // SetPassword sets the Password field's value.
 54371  func (s *MqttContext) SetPassword(v []byte) *MqttContext {
 54372  	s.Password = v
 54373  	return s
 54374  }
 54375  
 54376  // SetUsername sets the Username field's value.
 54377  func (s *MqttContext) SetUsername(v string) *MqttContext {
 54378  	s.Username = &v
 54379  	return s
 54380  }
 54381  
 54382  // Information about the resource that was noncompliant with the audit check.
 54383  type NonCompliantResource struct {
 54384  	_ struct{} `type:"structure"`
 54385  
 54386  	// Other information about the noncompliant resource.
 54387  	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
 54388  
 54389  	// Information that identifies the noncompliant resource.
 54390  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
 54391  
 54392  	// The type of the noncompliant resource.
 54393  	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
 54394  }
 54395  
 54396  // String returns the string representation.
 54397  //
 54398  // API parameter values that are decorated as "sensitive" in the API will not
 54399  // be included in the string output. The member name will be present, but the
 54400  // value will be replaced with "sensitive".
 54401  func (s NonCompliantResource) String() string {
 54402  	return awsutil.Prettify(s)
 54403  }
 54404  
 54405  // GoString returns the string representation.
 54406  //
 54407  // API parameter values that are decorated as "sensitive" in the API will not
 54408  // be included in the string output. The member name will be present, but the
 54409  // value will be replaced with "sensitive".
 54410  func (s NonCompliantResource) GoString() string {
 54411  	return s.String()
 54412  }
 54413  
 54414  // SetAdditionalInfo sets the AdditionalInfo field's value.
 54415  func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
 54416  	s.AdditionalInfo = v
 54417  	return s
 54418  }
 54419  
 54420  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 54421  func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
 54422  	s.ResourceIdentifier = v
 54423  	return s
 54424  }
 54425  
 54426  // SetResourceType sets the ResourceType field's value.
 54427  func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
 54428  	s.ResourceType = &v
 54429  	return s
 54430  }
 54431  
 54432  // The resource is not configured.
 54433  type NotConfiguredException struct {
 54434  	_            struct{}                  `type:"structure"`
 54435  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 54436  
 54437  	// The message for the exception.
 54438  	Message_ *string `locationName:"message" type:"string"`
 54439  }
 54440  
 54441  // String returns the string representation.
 54442  //
 54443  // API parameter values that are decorated as "sensitive" in the API will not
 54444  // be included in the string output. The member name will be present, but the
 54445  // value will be replaced with "sensitive".
 54446  func (s NotConfiguredException) String() string {
 54447  	return awsutil.Prettify(s)
 54448  }
 54449  
 54450  // GoString returns the string representation.
 54451  //
 54452  // API parameter values that are decorated as "sensitive" in the API will not
 54453  // be included in the string output. The member name will be present, but the
 54454  // value will be replaced with "sensitive".
 54455  func (s NotConfiguredException) GoString() string {
 54456  	return s.String()
 54457  }
 54458  
 54459  func newErrorNotConfiguredException(v protocol.ResponseMetadata) error {
 54460  	return &NotConfiguredException{
 54461  		RespMetadata: v,
 54462  	}
 54463  }
 54464  
 54465  // Code returns the exception type name.
 54466  func (s *NotConfiguredException) Code() string {
 54467  	return "NotConfiguredException"
 54468  }
 54469  
 54470  // Message returns the exception's message.
 54471  func (s *NotConfiguredException) Message() string {
 54472  	if s.Message_ != nil {
 54473  		return *s.Message_
 54474  	}
 54475  	return ""
 54476  }
 54477  
 54478  // OrigErr always returns nil, satisfies awserr.Error interface.
 54479  func (s *NotConfiguredException) OrigErr() error {
 54480  	return nil
 54481  }
 54482  
 54483  func (s *NotConfiguredException) Error() string {
 54484  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 54485  }
 54486  
 54487  // Status code returns the HTTP status code for the request's response error.
 54488  func (s *NotConfiguredException) StatusCode() int {
 54489  	return s.RespMetadata.StatusCode
 54490  }
 54491  
 54492  // RequestID returns the service's response RequestID for request.
 54493  func (s *NotConfiguredException) RequestID() string {
 54494  	return s.RespMetadata.RequestID
 54495  }
 54496  
 54497  // Describes a file to be associated with an OTA update.
 54498  type OTAUpdateFile struct {
 54499  	_ struct{} `type:"structure"`
 54500  
 54501  	// A list of name/attribute pairs.
 54502  	Attributes map[string]*string `locationName:"attributes" type:"map"`
 54503  
 54504  	// The code signing method of the file.
 54505  	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
 54506  
 54507  	// The location of the updated firmware.
 54508  	FileLocation *FileLocation `locationName:"fileLocation" type:"structure"`
 54509  
 54510  	// The name of the file.
 54511  	FileName *string `locationName:"fileName" type:"string"`
 54512  
 54513  	// An integer value you can include in the job document to allow your devices
 54514  	// to identify the type of file received from the cloud.
 54515  	FileType *int64 `locationName:"fileType" type:"integer"`
 54516  
 54517  	// The file version.
 54518  	FileVersion *string `locationName:"fileVersion" type:"string"`
 54519  }
 54520  
 54521  // String returns the string representation.
 54522  //
 54523  // API parameter values that are decorated as "sensitive" in the API will not
 54524  // be included in the string output. The member name will be present, but the
 54525  // value will be replaced with "sensitive".
 54526  func (s OTAUpdateFile) String() string {
 54527  	return awsutil.Prettify(s)
 54528  }
 54529  
 54530  // GoString returns the string representation.
 54531  //
 54532  // API parameter values that are decorated as "sensitive" in the API will not
 54533  // be included in the string output. The member name will be present, but the
 54534  // value will be replaced with "sensitive".
 54535  func (s OTAUpdateFile) GoString() string {
 54536  	return s.String()
 54537  }
 54538  
 54539  // Validate inspects the fields of the type to determine if they are valid.
 54540  func (s *OTAUpdateFile) Validate() error {
 54541  	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
 54542  	if s.CodeSigning != nil {
 54543  		if err := s.CodeSigning.Validate(); err != nil {
 54544  			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
 54545  		}
 54546  	}
 54547  	if s.FileLocation != nil {
 54548  		if err := s.FileLocation.Validate(); err != nil {
 54549  			invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams))
 54550  		}
 54551  	}
 54552  
 54553  	if invalidParams.Len() > 0 {
 54554  		return invalidParams
 54555  	}
 54556  	return nil
 54557  }
 54558  
 54559  // SetAttributes sets the Attributes field's value.
 54560  func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
 54561  	s.Attributes = v
 54562  	return s
 54563  }
 54564  
 54565  // SetCodeSigning sets the CodeSigning field's value.
 54566  func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
 54567  	s.CodeSigning = v
 54568  	return s
 54569  }
 54570  
 54571  // SetFileLocation sets the FileLocation field's value.
 54572  func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile {
 54573  	s.FileLocation = v
 54574  	return s
 54575  }
 54576  
 54577  // SetFileName sets the FileName field's value.
 54578  func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
 54579  	s.FileName = &v
 54580  	return s
 54581  }
 54582  
 54583  // SetFileType sets the FileType field's value.
 54584  func (s *OTAUpdateFile) SetFileType(v int64) *OTAUpdateFile {
 54585  	s.FileType = &v
 54586  	return s
 54587  }
 54588  
 54589  // SetFileVersion sets the FileVersion field's value.
 54590  func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
 54591  	s.FileVersion = &v
 54592  	return s
 54593  }
 54594  
 54595  // Information about an OTA update.
 54596  type OTAUpdateInfo struct {
 54597  	_ struct{} `type:"structure"`
 54598  
 54599  	// A collection of name/value pairs
 54600  	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
 54601  
 54602  	// The IoT job ARN associated with the OTA update.
 54603  	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
 54604  
 54605  	// The IoT job ID associated with the OTA update.
 54606  	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
 54607  
 54608  	// Configuration for the rollout of OTA updates.
 54609  	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
 54610  
 54611  	// Configuration information for pre-signed URLs. Valid when protocols contains
 54612  	// HTTP.
 54613  	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
 54614  
 54615  	// The date when the OTA update was created.
 54616  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 54617  
 54618  	// A description of the OTA update.
 54619  	Description *string `locationName:"description" type:"string"`
 54620  
 54621  	// Error information associated with the OTA update.
 54622  	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
 54623  
 54624  	// The date when the OTA update was last updated.
 54625  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 54626  
 54627  	// The OTA update ARN.
 54628  	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
 54629  
 54630  	// A list of files associated with the OTA update.
 54631  	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
 54632  
 54633  	// The OTA update ID.
 54634  	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
 54635  
 54636  	// The status of the OTA update.
 54637  	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
 54638  
 54639  	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
 54640  	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
 54641  	// can choose the protocol.
 54642  	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
 54643  
 54644  	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
 54645  	// be complete after all those things specified as targets have completed the
 54646  	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
 54647  	// thing when a change is detected in a target. For example, an OTA update will
 54648  	// run on a thing when the thing is added to a target group, even after the
 54649  	// OTA update was completed by all things originally in the group.
 54650  	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
 54651  
 54652  	// The targets of the OTA update.
 54653  	Targets []*string `locationName:"targets" min:"1" type:"list"`
 54654  }
 54655  
 54656  // String returns the string representation.
 54657  //
 54658  // API parameter values that are decorated as "sensitive" in the API will not
 54659  // be included in the string output. The member name will be present, but the
 54660  // value will be replaced with "sensitive".
 54661  func (s OTAUpdateInfo) String() string {
 54662  	return awsutil.Prettify(s)
 54663  }
 54664  
 54665  // GoString returns the string representation.
 54666  //
 54667  // API parameter values that are decorated as "sensitive" in the API will not
 54668  // be included in the string output. The member name will be present, but the
 54669  // value will be replaced with "sensitive".
 54670  func (s OTAUpdateInfo) GoString() string {
 54671  	return s.String()
 54672  }
 54673  
 54674  // SetAdditionalParameters sets the AdditionalParameters field's value.
 54675  func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
 54676  	s.AdditionalParameters = v
 54677  	return s
 54678  }
 54679  
 54680  // SetAwsIotJobArn sets the AwsIotJobArn field's value.
 54681  func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
 54682  	s.AwsIotJobArn = &v
 54683  	return s
 54684  }
 54685  
 54686  // SetAwsIotJobId sets the AwsIotJobId field's value.
 54687  func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
 54688  	s.AwsIotJobId = &v
 54689  	return s
 54690  }
 54691  
 54692  // SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
 54693  func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo {
 54694  	s.AwsJobExecutionsRolloutConfig = v
 54695  	return s
 54696  }
 54697  
 54698  // SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
 54699  func (s *OTAUpdateInfo) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *OTAUpdateInfo {
 54700  	s.AwsJobPresignedUrlConfig = v
 54701  	return s
 54702  }
 54703  
 54704  // SetCreationDate sets the CreationDate field's value.
 54705  func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
 54706  	s.CreationDate = &v
 54707  	return s
 54708  }
 54709  
 54710  // SetDescription sets the Description field's value.
 54711  func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
 54712  	s.Description = &v
 54713  	return s
 54714  }
 54715  
 54716  // SetErrorInfo sets the ErrorInfo field's value.
 54717  func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
 54718  	s.ErrorInfo = v
 54719  	return s
 54720  }
 54721  
 54722  // SetLastModifiedDate sets the LastModifiedDate field's value.
 54723  func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
 54724  	s.LastModifiedDate = &v
 54725  	return s
 54726  }
 54727  
 54728  // SetOtaUpdateArn sets the OtaUpdateArn field's value.
 54729  func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
 54730  	s.OtaUpdateArn = &v
 54731  	return s
 54732  }
 54733  
 54734  // SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
 54735  func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
 54736  	s.OtaUpdateFiles = v
 54737  	return s
 54738  }
 54739  
 54740  // SetOtaUpdateId sets the OtaUpdateId field's value.
 54741  func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
 54742  	s.OtaUpdateId = &v
 54743  	return s
 54744  }
 54745  
 54746  // SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
 54747  func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
 54748  	s.OtaUpdateStatus = &v
 54749  	return s
 54750  }
 54751  
 54752  // SetProtocols sets the Protocols field's value.
 54753  func (s *OTAUpdateInfo) SetProtocols(v []*string) *OTAUpdateInfo {
 54754  	s.Protocols = v
 54755  	return s
 54756  }
 54757  
 54758  // SetTargetSelection sets the TargetSelection field's value.
 54759  func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
 54760  	s.TargetSelection = &v
 54761  	return s
 54762  }
 54763  
 54764  // SetTargets sets the Targets field's value.
 54765  func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
 54766  	s.Targets = v
 54767  	return s
 54768  }
 54769  
 54770  // An OTA update summary.
 54771  type OTAUpdateSummary struct {
 54772  	_ struct{} `type:"structure"`
 54773  
 54774  	// The date when the OTA update was created.
 54775  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 54776  
 54777  	// The OTA update ARN.
 54778  	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
 54779  
 54780  	// The OTA update ID.
 54781  	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
 54782  }
 54783  
 54784  // String returns the string representation.
 54785  //
 54786  // API parameter values that are decorated as "sensitive" in the API will not
 54787  // be included in the string output. The member name will be present, but the
 54788  // value will be replaced with "sensitive".
 54789  func (s OTAUpdateSummary) String() string {
 54790  	return awsutil.Prettify(s)
 54791  }
 54792  
 54793  // GoString returns the string representation.
 54794  //
 54795  // API parameter values that are decorated as "sensitive" in the API will not
 54796  // be included in the string output. The member name will be present, but the
 54797  // value will be replaced with "sensitive".
 54798  func (s OTAUpdateSummary) GoString() string {
 54799  	return s.String()
 54800  }
 54801  
 54802  // SetCreationDate sets the CreationDate field's value.
 54803  func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
 54804  	s.CreationDate = &v
 54805  	return s
 54806  }
 54807  
 54808  // SetOtaUpdateArn sets the OtaUpdateArn field's value.
 54809  func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
 54810  	s.OtaUpdateArn = &v
 54811  	return s
 54812  }
 54813  
 54814  // SetOtaUpdateId sets the OtaUpdateId field's value.
 54815  func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
 54816  	s.OtaUpdateId = &v
 54817  	return s
 54818  }
 54819  
 54820  // Describes an action that writes data to an Amazon OpenSearch Service domain.
 54821  type OpenSearchAction struct {
 54822  	_ struct{} `type:"structure"`
 54823  
 54824  	// The endpoint of your OpenSearch domain.
 54825  	//
 54826  	// Endpoint is a required field
 54827  	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
 54828  
 54829  	// The unique identifier for the document you are storing.
 54830  	//
 54831  	// Id is a required field
 54832  	Id *string `locationName:"id" type:"string" required:"true"`
 54833  
 54834  	// The OpenSearch index where you want to store your data.
 54835  	//
 54836  	// Index is a required field
 54837  	Index *string `locationName:"index" type:"string" required:"true"`
 54838  
 54839  	// The IAM role ARN that has access to OpenSearch.
 54840  	//
 54841  	// RoleArn is a required field
 54842  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 54843  
 54844  	// The type of document you are storing.
 54845  	//
 54846  	// Type is a required field
 54847  	Type *string `locationName:"type" type:"string" required:"true"`
 54848  }
 54849  
 54850  // String returns the string representation.
 54851  //
 54852  // API parameter values that are decorated as "sensitive" in the API will not
 54853  // be included in the string output. The member name will be present, but the
 54854  // value will be replaced with "sensitive".
 54855  func (s OpenSearchAction) String() string {
 54856  	return awsutil.Prettify(s)
 54857  }
 54858  
 54859  // GoString returns the string representation.
 54860  //
 54861  // API parameter values that are decorated as "sensitive" in the API will not
 54862  // be included in the string output. The member name will be present, but the
 54863  // value will be replaced with "sensitive".
 54864  func (s OpenSearchAction) GoString() string {
 54865  	return s.String()
 54866  }
 54867  
 54868  // Validate inspects the fields of the type to determine if they are valid.
 54869  func (s *OpenSearchAction) Validate() error {
 54870  	invalidParams := request.ErrInvalidParams{Context: "OpenSearchAction"}
 54871  	if s.Endpoint == nil {
 54872  		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
 54873  	}
 54874  	if s.Id == nil {
 54875  		invalidParams.Add(request.NewErrParamRequired("Id"))
 54876  	}
 54877  	if s.Index == nil {
 54878  		invalidParams.Add(request.NewErrParamRequired("Index"))
 54879  	}
 54880  	if s.RoleArn == nil {
 54881  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 54882  	}
 54883  	if s.Type == nil {
 54884  		invalidParams.Add(request.NewErrParamRequired("Type"))
 54885  	}
 54886  
 54887  	if invalidParams.Len() > 0 {
 54888  		return invalidParams
 54889  	}
 54890  	return nil
 54891  }
 54892  
 54893  // SetEndpoint sets the Endpoint field's value.
 54894  func (s *OpenSearchAction) SetEndpoint(v string) *OpenSearchAction {
 54895  	s.Endpoint = &v
 54896  	return s
 54897  }
 54898  
 54899  // SetId sets the Id field's value.
 54900  func (s *OpenSearchAction) SetId(v string) *OpenSearchAction {
 54901  	s.Id = &v
 54902  	return s
 54903  }
 54904  
 54905  // SetIndex sets the Index field's value.
 54906  func (s *OpenSearchAction) SetIndex(v string) *OpenSearchAction {
 54907  	s.Index = &v
 54908  	return s
 54909  }
 54910  
 54911  // SetRoleArn sets the RoleArn field's value.
 54912  func (s *OpenSearchAction) SetRoleArn(v string) *OpenSearchAction {
 54913  	s.RoleArn = &v
 54914  	return s
 54915  }
 54916  
 54917  // SetType sets the Type field's value.
 54918  func (s *OpenSearchAction) SetType(v string) *OpenSearchAction {
 54919  	s.Type = &v
 54920  	return s
 54921  }
 54922  
 54923  // A certificate that has been transferred but not yet accepted.
 54924  type OutgoingCertificate struct {
 54925  	_ struct{} `type:"structure"`
 54926  
 54927  	// The certificate ARN.
 54928  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 54929  
 54930  	// The certificate ID.
 54931  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 54932  
 54933  	// The certificate creation date.
 54934  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 54935  
 54936  	// The date the transfer was initiated.
 54937  	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
 54938  
 54939  	// The transfer message.
 54940  	TransferMessage *string `locationName:"transferMessage" type:"string"`
 54941  
 54942  	// The Amazon Web Services account to which the transfer was made.
 54943  	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
 54944  }
 54945  
 54946  // String returns the string representation.
 54947  //
 54948  // API parameter values that are decorated as "sensitive" in the API will not
 54949  // be included in the string output. The member name will be present, but the
 54950  // value will be replaced with "sensitive".
 54951  func (s OutgoingCertificate) String() string {
 54952  	return awsutil.Prettify(s)
 54953  }
 54954  
 54955  // GoString returns the string representation.
 54956  //
 54957  // API parameter values that are decorated as "sensitive" in the API will not
 54958  // be included in the string output. The member name will be present, but the
 54959  // value will be replaced with "sensitive".
 54960  func (s OutgoingCertificate) GoString() string {
 54961  	return s.String()
 54962  }
 54963  
 54964  // SetCertificateArn sets the CertificateArn field's value.
 54965  func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
 54966  	s.CertificateArn = &v
 54967  	return s
 54968  }
 54969  
 54970  // SetCertificateId sets the CertificateId field's value.
 54971  func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
 54972  	s.CertificateId = &v
 54973  	return s
 54974  }
 54975  
 54976  // SetCreationDate sets the CreationDate field's value.
 54977  func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
 54978  	s.CreationDate = &v
 54979  	return s
 54980  }
 54981  
 54982  // SetTransferDate sets the TransferDate field's value.
 54983  func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
 54984  	s.TransferDate = &v
 54985  	return s
 54986  }
 54987  
 54988  // SetTransferMessage sets the TransferMessage field's value.
 54989  func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
 54990  	s.TransferMessage = &v
 54991  	return s
 54992  }
 54993  
 54994  // SetTransferredTo sets the TransferredTo field's value.
 54995  func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
 54996  	s.TransferredTo = &v
 54997  	return s
 54998  }
 54999  
 55000  // Describes the percentile and percentile value.
 55001  type PercentPair struct {
 55002  	_ struct{} `type:"structure"`
 55003  
 55004  	// The percentile.
 55005  	Percent *float64 `locationName:"percent" type:"double"`
 55006  
 55007  	// The value of the percentile.
 55008  	Value *float64 `locationName:"value" type:"double"`
 55009  }
 55010  
 55011  // String returns the string representation.
 55012  //
 55013  // API parameter values that are decorated as "sensitive" in the API will not
 55014  // be included in the string output. The member name will be present, but the
 55015  // value will be replaced with "sensitive".
 55016  func (s PercentPair) String() string {
 55017  	return awsutil.Prettify(s)
 55018  }
 55019  
 55020  // GoString returns the string representation.
 55021  //
 55022  // API parameter values that are decorated as "sensitive" in the API will not
 55023  // be included in the string output. The member name will be present, but the
 55024  // value will be replaced with "sensitive".
 55025  func (s PercentPair) GoString() string {
 55026  	return s.String()
 55027  }
 55028  
 55029  // SetPercent sets the Percent field's value.
 55030  func (s *PercentPair) SetPercent(v float64) *PercentPair {
 55031  	s.Percent = &v
 55032  	return s
 55033  }
 55034  
 55035  // SetValue sets the Value field's value.
 55036  func (s *PercentPair) SetValue(v float64) *PercentPair {
 55037  	s.Value = &v
 55038  	return s
 55039  }
 55040  
 55041  // Describes an IoT policy.
 55042  type Policy struct {
 55043  	_ struct{} `type:"structure"`
 55044  
 55045  	// The policy ARN.
 55046  	PolicyArn *string `locationName:"policyArn" type:"string"`
 55047  
 55048  	// The policy name.
 55049  	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
 55050  }
 55051  
 55052  // String returns the string representation.
 55053  //
 55054  // API parameter values that are decorated as "sensitive" in the API will not
 55055  // be included in the string output. The member name will be present, but the
 55056  // value will be replaced with "sensitive".
 55057  func (s Policy) String() string {
 55058  	return awsutil.Prettify(s)
 55059  }
 55060  
 55061  // GoString returns the string representation.
 55062  //
 55063  // API parameter values that are decorated as "sensitive" in the API will not
 55064  // be included in the string output. The member name will be present, but the
 55065  // value will be replaced with "sensitive".
 55066  func (s Policy) GoString() string {
 55067  	return s.String()
 55068  }
 55069  
 55070  // SetPolicyArn sets the PolicyArn field's value.
 55071  func (s *Policy) SetPolicyArn(v string) *Policy {
 55072  	s.PolicyArn = &v
 55073  	return s
 55074  }
 55075  
 55076  // SetPolicyName sets the PolicyName field's value.
 55077  func (s *Policy) SetPolicyName(v string) *Policy {
 55078  	s.PolicyName = &v
 55079  	return s
 55080  }
 55081  
 55082  // Describes a policy version.
 55083  type PolicyVersion struct {
 55084  	_ struct{} `type:"structure"`
 55085  
 55086  	// The date and time the policy was created.
 55087  	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
 55088  
 55089  	// Specifies whether the policy version is the default.
 55090  	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
 55091  
 55092  	// The policy version ID.
 55093  	VersionId *string `locationName:"versionId" type:"string"`
 55094  }
 55095  
 55096  // String returns the string representation.
 55097  //
 55098  // API parameter values that are decorated as "sensitive" in the API will not
 55099  // be included in the string output. The member name will be present, but the
 55100  // value will be replaced with "sensitive".
 55101  func (s PolicyVersion) String() string {
 55102  	return awsutil.Prettify(s)
 55103  }
 55104  
 55105  // GoString returns the string representation.
 55106  //
 55107  // API parameter values that are decorated as "sensitive" in the API will not
 55108  // be included in the string output. The member name will be present, but the
 55109  // value will be replaced with "sensitive".
 55110  func (s PolicyVersion) GoString() string {
 55111  	return s.String()
 55112  }
 55113  
 55114  // SetCreateDate sets the CreateDate field's value.
 55115  func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
 55116  	s.CreateDate = &v
 55117  	return s
 55118  }
 55119  
 55120  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 55121  func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
 55122  	s.IsDefaultVersion = &v
 55123  	return s
 55124  }
 55125  
 55126  // SetVersionId sets the VersionId field's value.
 55127  func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
 55128  	s.VersionId = &v
 55129  	return s
 55130  }
 55131  
 55132  // Information about the version of the policy associated with the resource.
 55133  type PolicyVersionIdentifier struct {
 55134  	_ struct{} `type:"structure"`
 55135  
 55136  	// The name of the policy.
 55137  	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
 55138  
 55139  	// The ID of the version of the policy associated with the resource.
 55140  	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
 55141  }
 55142  
 55143  // String returns the string representation.
 55144  //
 55145  // API parameter values that are decorated as "sensitive" in the API will not
 55146  // be included in the string output. The member name will be present, but the
 55147  // value will be replaced with "sensitive".
 55148  func (s PolicyVersionIdentifier) String() string {
 55149  	return awsutil.Prettify(s)
 55150  }
 55151  
 55152  // GoString returns the string representation.
 55153  //
 55154  // API parameter values that are decorated as "sensitive" in the API will not
 55155  // be included in the string output. The member name will be present, but the
 55156  // value will be replaced with "sensitive".
 55157  func (s PolicyVersionIdentifier) GoString() string {
 55158  	return s.String()
 55159  }
 55160  
 55161  // Validate inspects the fields of the type to determine if they are valid.
 55162  func (s *PolicyVersionIdentifier) Validate() error {
 55163  	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
 55164  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 55165  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 55166  	}
 55167  
 55168  	if invalidParams.Len() > 0 {
 55169  		return invalidParams
 55170  	}
 55171  	return nil
 55172  }
 55173  
 55174  // SetPolicyName sets the PolicyName field's value.
 55175  func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
 55176  	s.PolicyName = &v
 55177  	return s
 55178  }
 55179  
 55180  // SetPolicyVersionId sets the PolicyVersionId field's value.
 55181  func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
 55182  	s.PolicyVersionId = &v
 55183  	return s
 55184  }
 55185  
 55186  // Configuration for pre-signed S3 URLs.
 55187  type PresignedUrlConfig struct {
 55188  	_ struct{} `type:"structure"`
 55189  
 55190  	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
 55191  	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
 55192  	// receives an MQTT request for the job document.
 55193  	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
 55194  
 55195  	// The ARN of an IAM role that grants grants permission to download files from
 55196  	// the S3 bucket where the job data/updates are stored. The role must also grant
 55197  	// permission for IoT to download the files.
 55198  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 55199  }
 55200  
 55201  // String returns the string representation.
 55202  //
 55203  // API parameter values that are decorated as "sensitive" in the API will not
 55204  // be included in the string output. The member name will be present, but the
 55205  // value will be replaced with "sensitive".
 55206  func (s PresignedUrlConfig) String() string {
 55207  	return awsutil.Prettify(s)
 55208  }
 55209  
 55210  // GoString returns the string representation.
 55211  //
 55212  // API parameter values that are decorated as "sensitive" in the API will not
 55213  // be included in the string output. The member name will be present, but the
 55214  // value will be replaced with "sensitive".
 55215  func (s PresignedUrlConfig) GoString() string {
 55216  	return s.String()
 55217  }
 55218  
 55219  // Validate inspects the fields of the type to determine if they are valid.
 55220  func (s *PresignedUrlConfig) Validate() error {
 55221  	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
 55222  	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
 55223  		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
 55224  	}
 55225  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 55226  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 55227  	}
 55228  
 55229  	if invalidParams.Len() > 0 {
 55230  		return invalidParams
 55231  	}
 55232  	return nil
 55233  }
 55234  
 55235  // SetExpiresInSec sets the ExpiresInSec field's value.
 55236  func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
 55237  	s.ExpiresInSec = &v
 55238  	return s
 55239  }
 55240  
 55241  // SetRoleArn sets the RoleArn field's value.
 55242  func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
 55243  	s.RoleArn = &v
 55244  	return s
 55245  }
 55246  
 55247  // Structure that contains payloadVersion and targetArn.
 55248  type ProvisioningHook struct {
 55249  	_ struct{} `type:"structure"`
 55250  
 55251  	// The payload that was sent to the target function.
 55252  	//
 55253  	// Note: Only Lambda functions are currently supported.
 55254  	PayloadVersion *string `locationName:"payloadVersion" min:"10" type:"string"`
 55255  
 55256  	// The ARN of the target function.
 55257  	//
 55258  	// Note: Only Lambda functions are currently supported.
 55259  	//
 55260  	// TargetArn is a required field
 55261  	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
 55262  }
 55263  
 55264  // String returns the string representation.
 55265  //
 55266  // API parameter values that are decorated as "sensitive" in the API will not
 55267  // be included in the string output. The member name will be present, but the
 55268  // value will be replaced with "sensitive".
 55269  func (s ProvisioningHook) String() string {
 55270  	return awsutil.Prettify(s)
 55271  }
 55272  
 55273  // GoString returns the string representation.
 55274  //
 55275  // API parameter values that are decorated as "sensitive" in the API will not
 55276  // be included in the string output. The member name will be present, but the
 55277  // value will be replaced with "sensitive".
 55278  func (s ProvisioningHook) GoString() string {
 55279  	return s.String()
 55280  }
 55281  
 55282  // Validate inspects the fields of the type to determine if they are valid.
 55283  func (s *ProvisioningHook) Validate() error {
 55284  	invalidParams := request.ErrInvalidParams{Context: "ProvisioningHook"}
 55285  	if s.PayloadVersion != nil && len(*s.PayloadVersion) < 10 {
 55286  		invalidParams.Add(request.NewErrParamMinLen("PayloadVersion", 10))
 55287  	}
 55288  	if s.TargetArn == nil {
 55289  		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
 55290  	}
 55291  
 55292  	if invalidParams.Len() > 0 {
 55293  		return invalidParams
 55294  	}
 55295  	return nil
 55296  }
 55297  
 55298  // SetPayloadVersion sets the PayloadVersion field's value.
 55299  func (s *ProvisioningHook) SetPayloadVersion(v string) *ProvisioningHook {
 55300  	s.PayloadVersion = &v
 55301  	return s
 55302  }
 55303  
 55304  // SetTargetArn sets the TargetArn field's value.
 55305  func (s *ProvisioningHook) SetTargetArn(v string) *ProvisioningHook {
 55306  	s.TargetArn = &v
 55307  	return s
 55308  }
 55309  
 55310  // A summary of information about a fleet provisioning template.
 55311  type ProvisioningTemplateSummary struct {
 55312  	_ struct{} `type:"structure"`
 55313  
 55314  	// The date when the fleet provisioning template summary was created.
 55315  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 55316  
 55317  	// The description of the fleet provisioning template.
 55318  	Description *string `locationName:"description" type:"string"`
 55319  
 55320  	// True if the fleet provision template is enabled, otherwise false.
 55321  	Enabled *bool `locationName:"enabled" type:"boolean"`
 55322  
 55323  	// The date when the fleet provisioning template summary was last modified.
 55324  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 55325  
 55326  	// The ARN of the fleet provisioning template.
 55327  	TemplateArn *string `locationName:"templateArn" type:"string"`
 55328  
 55329  	// The name of the fleet provisioning template.
 55330  	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
 55331  }
 55332  
 55333  // String returns the string representation.
 55334  //
 55335  // API parameter values that are decorated as "sensitive" in the API will not
 55336  // be included in the string output. The member name will be present, but the
 55337  // value will be replaced with "sensitive".
 55338  func (s ProvisioningTemplateSummary) String() string {
 55339  	return awsutil.Prettify(s)
 55340  }
 55341  
 55342  // GoString returns the string representation.
 55343  //
 55344  // API parameter values that are decorated as "sensitive" in the API will not
 55345  // be included in the string output. The member name will be present, but the
 55346  // value will be replaced with "sensitive".
 55347  func (s ProvisioningTemplateSummary) GoString() string {
 55348  	return s.String()
 55349  }
 55350  
 55351  // SetCreationDate sets the CreationDate field's value.
 55352  func (s *ProvisioningTemplateSummary) SetCreationDate(v time.Time) *ProvisioningTemplateSummary {
 55353  	s.CreationDate = &v
 55354  	return s
 55355  }
 55356  
 55357  // SetDescription sets the Description field's value.
 55358  func (s *ProvisioningTemplateSummary) SetDescription(v string) *ProvisioningTemplateSummary {
 55359  	s.Description = &v
 55360  	return s
 55361  }
 55362  
 55363  // SetEnabled sets the Enabled field's value.
 55364  func (s *ProvisioningTemplateSummary) SetEnabled(v bool) *ProvisioningTemplateSummary {
 55365  	s.Enabled = &v
 55366  	return s
 55367  }
 55368  
 55369  // SetLastModifiedDate sets the LastModifiedDate field's value.
 55370  func (s *ProvisioningTemplateSummary) SetLastModifiedDate(v time.Time) *ProvisioningTemplateSummary {
 55371  	s.LastModifiedDate = &v
 55372  	return s
 55373  }
 55374  
 55375  // SetTemplateArn sets the TemplateArn field's value.
 55376  func (s *ProvisioningTemplateSummary) SetTemplateArn(v string) *ProvisioningTemplateSummary {
 55377  	s.TemplateArn = &v
 55378  	return s
 55379  }
 55380  
 55381  // SetTemplateName sets the TemplateName field's value.
 55382  func (s *ProvisioningTemplateSummary) SetTemplateName(v string) *ProvisioningTemplateSummary {
 55383  	s.TemplateName = &v
 55384  	return s
 55385  }
 55386  
 55387  // A summary of information about a fleet provision template version.
 55388  type ProvisioningTemplateVersionSummary struct {
 55389  	_ struct{} `type:"structure"`
 55390  
 55391  	// The date when the fleet provisioning template version was created
 55392  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 55393  
 55394  	// True if the fleet provisioning template version is the default version, otherwise
 55395  	// false.
 55396  	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
 55397  
 55398  	// The ID of the fleet privisioning template version.
 55399  	VersionId *int64 `locationName:"versionId" type:"integer"`
 55400  }
 55401  
 55402  // String returns the string representation.
 55403  //
 55404  // API parameter values that are decorated as "sensitive" in the API will not
 55405  // be included in the string output. The member name will be present, but the
 55406  // value will be replaced with "sensitive".
 55407  func (s ProvisioningTemplateVersionSummary) String() string {
 55408  	return awsutil.Prettify(s)
 55409  }
 55410  
 55411  // GoString returns the string representation.
 55412  //
 55413  // API parameter values that are decorated as "sensitive" in the API will not
 55414  // be included in the string output. The member name will be present, but the
 55415  // value will be replaced with "sensitive".
 55416  func (s ProvisioningTemplateVersionSummary) GoString() string {
 55417  	return s.String()
 55418  }
 55419  
 55420  // SetCreationDate sets the CreationDate field's value.
 55421  func (s *ProvisioningTemplateVersionSummary) SetCreationDate(v time.Time) *ProvisioningTemplateVersionSummary {
 55422  	s.CreationDate = &v
 55423  	return s
 55424  }
 55425  
 55426  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 55427  func (s *ProvisioningTemplateVersionSummary) SetIsDefaultVersion(v bool) *ProvisioningTemplateVersionSummary {
 55428  	s.IsDefaultVersion = &v
 55429  	return s
 55430  }
 55431  
 55432  // SetVersionId sets the VersionId field's value.
 55433  func (s *ProvisioningTemplateVersionSummary) SetVersionId(v int64) *ProvisioningTemplateVersionSummary {
 55434  	s.VersionId = &v
 55435  	return s
 55436  }
 55437  
 55438  // Parameters to define a mitigation action that publishes findings to Amazon
 55439  // SNS. You can implement your own custom actions in response to the Amazon
 55440  // SNS messages.
 55441  type PublishFindingToSnsParams struct {
 55442  	_ struct{} `type:"structure"`
 55443  
 55444  	// The ARN of the topic to which you want to publish the findings.
 55445  	//
 55446  	// TopicArn is a required field
 55447  	TopicArn *string `locationName:"topicArn" type:"string" required:"true"`
 55448  }
 55449  
 55450  // String returns the string representation.
 55451  //
 55452  // API parameter values that are decorated as "sensitive" in the API will not
 55453  // be included in the string output. The member name will be present, but the
 55454  // value will be replaced with "sensitive".
 55455  func (s PublishFindingToSnsParams) String() string {
 55456  	return awsutil.Prettify(s)
 55457  }
 55458  
 55459  // GoString returns the string representation.
 55460  //
 55461  // API parameter values that are decorated as "sensitive" in the API will not
 55462  // be included in the string output. The member name will be present, but the
 55463  // value will be replaced with "sensitive".
 55464  func (s PublishFindingToSnsParams) GoString() string {
 55465  	return s.String()
 55466  }
 55467  
 55468  // Validate inspects the fields of the type to determine if they are valid.
 55469  func (s *PublishFindingToSnsParams) Validate() error {
 55470  	invalidParams := request.ErrInvalidParams{Context: "PublishFindingToSnsParams"}
 55471  	if s.TopicArn == nil {
 55472  		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
 55473  	}
 55474  
 55475  	if invalidParams.Len() > 0 {
 55476  		return invalidParams
 55477  	}
 55478  	return nil
 55479  }
 55480  
 55481  // SetTopicArn sets the TopicArn field's value.
 55482  func (s *PublishFindingToSnsParams) SetTopicArn(v string) *PublishFindingToSnsParams {
 55483  	s.TopicArn = &v
 55484  	return s
 55485  }
 55486  
 55487  // An asset property value entry containing the following information.
 55488  type PutAssetPropertyValueEntry struct {
 55489  	_ struct{} `type:"structure"`
 55490  
 55491  	// The ID of the IoT SiteWise asset. You must specify either a propertyAlias
 55492  	// or both an aliasId and a propertyId. Accepts substitution templates.
 55493  	AssetId *string `locationName:"assetId" type:"string"`
 55494  
 55495  	// Optional. A unique identifier for this entry that you can define to better
 55496  	// track which message caused an error in case of failure. Accepts substitution
 55497  	// templates. Defaults to a new UUID.
 55498  	EntryId *string `locationName:"entryId" type:"string"`
 55499  
 55500  	// The name of the property alias associated with your asset property. You must
 55501  	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
 55502  	// substitution templates.
 55503  	PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"`
 55504  
 55505  	// The ID of the asset's property. You must specify either a propertyAlias or
 55506  	// both an aliasId and a propertyId. Accepts substitution templates.
 55507  	PropertyId *string `locationName:"propertyId" type:"string"`
 55508  
 55509  	// A list of property values to insert that each contain timestamp, quality,
 55510  	// and value (TQV) information.
 55511  	//
 55512  	// PropertyValues is a required field
 55513  	PropertyValues []*AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"`
 55514  }
 55515  
 55516  // String returns the string representation.
 55517  //
 55518  // API parameter values that are decorated as "sensitive" in the API will not
 55519  // be included in the string output. The member name will be present, but the
 55520  // value will be replaced with "sensitive".
 55521  func (s PutAssetPropertyValueEntry) String() string {
 55522  	return awsutil.Prettify(s)
 55523  }
 55524  
 55525  // GoString returns the string representation.
 55526  //
 55527  // API parameter values that are decorated as "sensitive" in the API will not
 55528  // be included in the string output. The member name will be present, but the
 55529  // value will be replaced with "sensitive".
 55530  func (s PutAssetPropertyValueEntry) GoString() string {
 55531  	return s.String()
 55532  }
 55533  
 55534  // Validate inspects the fields of the type to determine if they are valid.
 55535  func (s *PutAssetPropertyValueEntry) Validate() error {
 55536  	invalidParams := request.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"}
 55537  	if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 {
 55538  		invalidParams.Add(request.NewErrParamMinLen("PropertyAlias", 1))
 55539  	}
 55540  	if s.PropertyValues == nil {
 55541  		invalidParams.Add(request.NewErrParamRequired("PropertyValues"))
 55542  	}
 55543  	if s.PropertyValues != nil && len(s.PropertyValues) < 1 {
 55544  		invalidParams.Add(request.NewErrParamMinLen("PropertyValues", 1))
 55545  	}
 55546  	if s.PropertyValues != nil {
 55547  		for i, v := range s.PropertyValues {
 55548  			if v == nil {
 55549  				continue
 55550  			}
 55551  			if err := v.Validate(); err != nil {
 55552  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(request.ErrInvalidParams))
 55553  			}
 55554  		}
 55555  	}
 55556  
 55557  	if invalidParams.Len() > 0 {
 55558  		return invalidParams
 55559  	}
 55560  	return nil
 55561  }
 55562  
 55563  // SetAssetId sets the AssetId field's value.
 55564  func (s *PutAssetPropertyValueEntry) SetAssetId(v string) *PutAssetPropertyValueEntry {
 55565  	s.AssetId = &v
 55566  	return s
 55567  }
 55568  
 55569  // SetEntryId sets the EntryId field's value.
 55570  func (s *PutAssetPropertyValueEntry) SetEntryId(v string) *PutAssetPropertyValueEntry {
 55571  	s.EntryId = &v
 55572  	return s
 55573  }
 55574  
 55575  // SetPropertyAlias sets the PropertyAlias field's value.
 55576  func (s *PutAssetPropertyValueEntry) SetPropertyAlias(v string) *PutAssetPropertyValueEntry {
 55577  	s.PropertyAlias = &v
 55578  	return s
 55579  }
 55580  
 55581  // SetPropertyId sets the PropertyId field's value.
 55582  func (s *PutAssetPropertyValueEntry) SetPropertyId(v string) *PutAssetPropertyValueEntry {
 55583  	s.PropertyId = &v
 55584  	return s
 55585  }
 55586  
 55587  // SetPropertyValues sets the PropertyValues field's value.
 55588  func (s *PutAssetPropertyValueEntry) SetPropertyValues(v []*AssetPropertyValue) *PutAssetPropertyValueEntry {
 55589  	s.PropertyValues = v
 55590  	return s
 55591  }
 55592  
 55593  // The input for the DynamoActionVS action that specifies the DynamoDB table
 55594  // to which the message data will be written.
 55595  type PutItemInput struct {
 55596  	_ struct{} `type:"structure"`
 55597  
 55598  	// The table where the message data will be written.
 55599  	//
 55600  	// TableName is a required field
 55601  	TableName *string `locationName:"tableName" type:"string" required:"true"`
 55602  }
 55603  
 55604  // String returns the string representation.
 55605  //
 55606  // API parameter values that are decorated as "sensitive" in the API will not
 55607  // be included in the string output. The member name will be present, but the
 55608  // value will be replaced with "sensitive".
 55609  func (s PutItemInput) String() string {
 55610  	return awsutil.Prettify(s)
 55611  }
 55612  
 55613  // GoString returns the string representation.
 55614  //
 55615  // API parameter values that are decorated as "sensitive" in the API will not
 55616  // be included in the string output. The member name will be present, but the
 55617  // value will be replaced with "sensitive".
 55618  func (s PutItemInput) GoString() string {
 55619  	return s.String()
 55620  }
 55621  
 55622  // Validate inspects the fields of the type to determine if they are valid.
 55623  func (s *PutItemInput) Validate() error {
 55624  	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
 55625  	if s.TableName == nil {
 55626  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 55627  	}
 55628  
 55629  	if invalidParams.Len() > 0 {
 55630  		return invalidParams
 55631  	}
 55632  	return nil
 55633  }
 55634  
 55635  // SetTableName sets the TableName field's value.
 55636  func (s *PutItemInput) SetTableName(v string) *PutItemInput {
 55637  	s.TableName = &v
 55638  	return s
 55639  }
 55640  
 55641  type PutVerificationStateOnViolationInput struct {
 55642  	_ struct{} `type:"structure"`
 55643  
 55644  	// The verification state of the violation.
 55645  	//
 55646  	// VerificationState is a required field
 55647  	VerificationState *string `locationName:"verificationState" type:"string" required:"true" enum:"VerificationState"`
 55648  
 55649  	// The description of the verification state of the violation (detect alarm).
 55650  	VerificationStateDescription *string `locationName:"verificationStateDescription" type:"string"`
 55651  
 55652  	// The violation ID.
 55653  	//
 55654  	// ViolationId is a required field
 55655  	ViolationId *string `location:"uri" locationName:"violationId" min:"1" type:"string" required:"true"`
 55656  }
 55657  
 55658  // String returns the string representation.
 55659  //
 55660  // API parameter values that are decorated as "sensitive" in the API will not
 55661  // be included in the string output. The member name will be present, but the
 55662  // value will be replaced with "sensitive".
 55663  func (s PutVerificationStateOnViolationInput) String() string {
 55664  	return awsutil.Prettify(s)
 55665  }
 55666  
 55667  // GoString returns the string representation.
 55668  //
 55669  // API parameter values that are decorated as "sensitive" in the API will not
 55670  // be included in the string output. The member name will be present, but the
 55671  // value will be replaced with "sensitive".
 55672  func (s PutVerificationStateOnViolationInput) GoString() string {
 55673  	return s.String()
 55674  }
 55675  
 55676  // Validate inspects the fields of the type to determine if they are valid.
 55677  func (s *PutVerificationStateOnViolationInput) Validate() error {
 55678  	invalidParams := request.ErrInvalidParams{Context: "PutVerificationStateOnViolationInput"}
 55679  	if s.VerificationState == nil {
 55680  		invalidParams.Add(request.NewErrParamRequired("VerificationState"))
 55681  	}
 55682  	if s.ViolationId == nil {
 55683  		invalidParams.Add(request.NewErrParamRequired("ViolationId"))
 55684  	}
 55685  	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
 55686  		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
 55687  	}
 55688  
 55689  	if invalidParams.Len() > 0 {
 55690  		return invalidParams
 55691  	}
 55692  	return nil
 55693  }
 55694  
 55695  // SetVerificationState sets the VerificationState field's value.
 55696  func (s *PutVerificationStateOnViolationInput) SetVerificationState(v string) *PutVerificationStateOnViolationInput {
 55697  	s.VerificationState = &v
 55698  	return s
 55699  }
 55700  
 55701  // SetVerificationStateDescription sets the VerificationStateDescription field's value.
 55702  func (s *PutVerificationStateOnViolationInput) SetVerificationStateDescription(v string) *PutVerificationStateOnViolationInput {
 55703  	s.VerificationStateDescription = &v
 55704  	return s
 55705  }
 55706  
 55707  // SetViolationId sets the ViolationId field's value.
 55708  func (s *PutVerificationStateOnViolationInput) SetViolationId(v string) *PutVerificationStateOnViolationInput {
 55709  	s.ViolationId = &v
 55710  	return s
 55711  }
 55712  
 55713  type PutVerificationStateOnViolationOutput struct {
 55714  	_ struct{} `type:"structure" nopayload:"true"`
 55715  }
 55716  
 55717  // String returns the string representation.
 55718  //
 55719  // API parameter values that are decorated as "sensitive" in the API will not
 55720  // be included in the string output. The member name will be present, but the
 55721  // value will be replaced with "sensitive".
 55722  func (s PutVerificationStateOnViolationOutput) String() string {
 55723  	return awsutil.Prettify(s)
 55724  }
 55725  
 55726  // GoString returns the string representation.
 55727  //
 55728  // API parameter values that are decorated as "sensitive" in the API will not
 55729  // be included in the string output. The member name will be present, but the
 55730  // value will be replaced with "sensitive".
 55731  func (s PutVerificationStateOnViolationOutput) GoString() string {
 55732  	return s.String()
 55733  }
 55734  
 55735  // Allows you to define a criteria to initiate the increase in rate of rollout
 55736  // for a job.
 55737  type RateIncreaseCriteria struct {
 55738  	_ struct{} `type:"structure"`
 55739  
 55740  	// The threshold for number of notified things that will initiate the increase
 55741  	// in rate of rollout.
 55742  	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
 55743  
 55744  	// The threshold for number of succeeded things that will initiate the increase
 55745  	// in rate of rollout.
 55746  	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
 55747  }
 55748  
 55749  // String returns the string representation.
 55750  //
 55751  // API parameter values that are decorated as "sensitive" in the API will not
 55752  // be included in the string output. The member name will be present, but the
 55753  // value will be replaced with "sensitive".
 55754  func (s RateIncreaseCriteria) String() string {
 55755  	return awsutil.Prettify(s)
 55756  }
 55757  
 55758  // GoString returns the string representation.
 55759  //
 55760  // API parameter values that are decorated as "sensitive" in the API will not
 55761  // be included in the string output. The member name will be present, but the
 55762  // value will be replaced with "sensitive".
 55763  func (s RateIncreaseCriteria) GoString() string {
 55764  	return s.String()
 55765  }
 55766  
 55767  // Validate inspects the fields of the type to determine if they are valid.
 55768  func (s *RateIncreaseCriteria) Validate() error {
 55769  	invalidParams := request.ErrInvalidParams{Context: "RateIncreaseCriteria"}
 55770  	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
 55771  		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
 55772  	}
 55773  	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
 55774  		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
 55775  	}
 55776  
 55777  	if invalidParams.Len() > 0 {
 55778  		return invalidParams
 55779  	}
 55780  	return nil
 55781  }
 55782  
 55783  // SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
 55784  func (s *RateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *RateIncreaseCriteria {
 55785  	s.NumberOfNotifiedThings = &v
 55786  	return s
 55787  }
 55788  
 55789  // SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
 55790  func (s *RateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *RateIncreaseCriteria {
 55791  	s.NumberOfSucceededThings = &v
 55792  	return s
 55793  }
 55794  
 55795  // The input to the RegisterCACertificate operation.
 55796  type RegisterCACertificateInput struct {
 55797  	_ struct{} `type:"structure"`
 55798  
 55799  	// Allows this CA certificate to be used for auto registration of device certificates.
 55800  	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
 55801  
 55802  	// The CA certificate.
 55803  	//
 55804  	// CaCertificate is a required field
 55805  	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
 55806  
 55807  	// Information about the registration configuration.
 55808  	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
 55809  
 55810  	// A boolean value that specifies if the CA certificate is set to active.
 55811  	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
 55812  
 55813  	// Metadata which can be used to manage the CA certificate.
 55814  	//
 55815  	// For URI Request parameters use format: ...key1=value1&key2=value2...
 55816  	//
 55817  	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
 55818  	//
 55819  	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
 55820  	Tags []*Tag `locationName:"tags" type:"list"`
 55821  
 55822  	// The private key verification certificate.
 55823  	//
 55824  	// VerificationCertificate is a required field
 55825  	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
 55826  }
 55827  
 55828  // String returns the string representation.
 55829  //
 55830  // API parameter values that are decorated as "sensitive" in the API will not
 55831  // be included in the string output. The member name will be present, but the
 55832  // value will be replaced with "sensitive".
 55833  func (s RegisterCACertificateInput) String() string {
 55834  	return awsutil.Prettify(s)
 55835  }
 55836  
 55837  // GoString returns the string representation.
 55838  //
 55839  // API parameter values that are decorated as "sensitive" in the API will not
 55840  // be included in the string output. The member name will be present, but the
 55841  // value will be replaced with "sensitive".
 55842  func (s RegisterCACertificateInput) GoString() string {
 55843  	return s.String()
 55844  }
 55845  
 55846  // Validate inspects the fields of the type to determine if they are valid.
 55847  func (s *RegisterCACertificateInput) Validate() error {
 55848  	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
 55849  	if s.CaCertificate == nil {
 55850  		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
 55851  	}
 55852  	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
 55853  		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
 55854  	}
 55855  	if s.VerificationCertificate == nil {
 55856  		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
 55857  	}
 55858  	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
 55859  		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
 55860  	}
 55861  	if s.RegistrationConfig != nil {
 55862  		if err := s.RegistrationConfig.Validate(); err != nil {
 55863  			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
 55864  		}
 55865  	}
 55866  	if s.Tags != nil {
 55867  		for i, v := range s.Tags {
 55868  			if v == nil {
 55869  				continue
 55870  			}
 55871  			if err := v.Validate(); err != nil {
 55872  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 55873  			}
 55874  		}
 55875  	}
 55876  
 55877  	if invalidParams.Len() > 0 {
 55878  		return invalidParams
 55879  	}
 55880  	return nil
 55881  }
 55882  
 55883  // SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
 55884  func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
 55885  	s.AllowAutoRegistration = &v
 55886  	return s
 55887  }
 55888  
 55889  // SetCaCertificate sets the CaCertificate field's value.
 55890  func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
 55891  	s.CaCertificate = &v
 55892  	return s
 55893  }
 55894  
 55895  // SetRegistrationConfig sets the RegistrationConfig field's value.
 55896  func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
 55897  	s.RegistrationConfig = v
 55898  	return s
 55899  }
 55900  
 55901  // SetSetAsActive sets the SetAsActive field's value.
 55902  func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
 55903  	s.SetAsActive = &v
 55904  	return s
 55905  }
 55906  
 55907  // SetTags sets the Tags field's value.
 55908  func (s *RegisterCACertificateInput) SetTags(v []*Tag) *RegisterCACertificateInput {
 55909  	s.Tags = v
 55910  	return s
 55911  }
 55912  
 55913  // SetVerificationCertificate sets the VerificationCertificate field's value.
 55914  func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
 55915  	s.VerificationCertificate = &v
 55916  	return s
 55917  }
 55918  
 55919  // The output from the RegisterCACertificateResponse operation.
 55920  type RegisterCACertificateOutput struct {
 55921  	_ struct{} `type:"structure"`
 55922  
 55923  	// The CA certificate ARN.
 55924  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 55925  
 55926  	// The CA certificate identifier.
 55927  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 55928  }
 55929  
 55930  // String returns the string representation.
 55931  //
 55932  // API parameter values that are decorated as "sensitive" in the API will not
 55933  // be included in the string output. The member name will be present, but the
 55934  // value will be replaced with "sensitive".
 55935  func (s RegisterCACertificateOutput) String() string {
 55936  	return awsutil.Prettify(s)
 55937  }
 55938  
 55939  // GoString returns the string representation.
 55940  //
 55941  // API parameter values that are decorated as "sensitive" in the API will not
 55942  // be included in the string output. The member name will be present, but the
 55943  // value will be replaced with "sensitive".
 55944  func (s RegisterCACertificateOutput) GoString() string {
 55945  	return s.String()
 55946  }
 55947  
 55948  // SetCertificateArn sets the CertificateArn field's value.
 55949  func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
 55950  	s.CertificateArn = &v
 55951  	return s
 55952  }
 55953  
 55954  // SetCertificateId sets the CertificateId field's value.
 55955  func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
 55956  	s.CertificateId = &v
 55957  	return s
 55958  }
 55959  
 55960  // The input to the RegisterCertificate operation.
 55961  type RegisterCertificateInput struct {
 55962  	_ struct{} `type:"structure"`
 55963  
 55964  	// The CA certificate used to sign the device certificate being registered.
 55965  	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
 55966  
 55967  	// The certificate data, in PEM format.
 55968  	//
 55969  	// CertificatePem is a required field
 55970  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
 55971  
 55972  	// A boolean value that specifies if the certificate is set to active.
 55973  	//
 55974  	// Deprecated: SetAsActive has been deprecated
 55975  	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
 55976  
 55977  	// The status of the register certificate request.
 55978  	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
 55979  }
 55980  
 55981  // String returns the string representation.
 55982  //
 55983  // API parameter values that are decorated as "sensitive" in the API will not
 55984  // be included in the string output. The member name will be present, but the
 55985  // value will be replaced with "sensitive".
 55986  func (s RegisterCertificateInput) String() string {
 55987  	return awsutil.Prettify(s)
 55988  }
 55989  
 55990  // GoString returns the string representation.
 55991  //
 55992  // API parameter values that are decorated as "sensitive" in the API will not
 55993  // be included in the string output. The member name will be present, but the
 55994  // value will be replaced with "sensitive".
 55995  func (s RegisterCertificateInput) GoString() string {
 55996  	return s.String()
 55997  }
 55998  
 55999  // Validate inspects the fields of the type to determine if they are valid.
 56000  func (s *RegisterCertificateInput) Validate() error {
 56001  	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
 56002  	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
 56003  		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
 56004  	}
 56005  	if s.CertificatePem == nil {
 56006  		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
 56007  	}
 56008  	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
 56009  		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
 56010  	}
 56011  
 56012  	if invalidParams.Len() > 0 {
 56013  		return invalidParams
 56014  	}
 56015  	return nil
 56016  }
 56017  
 56018  // SetCaCertificatePem sets the CaCertificatePem field's value.
 56019  func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
 56020  	s.CaCertificatePem = &v
 56021  	return s
 56022  }
 56023  
 56024  // SetCertificatePem sets the CertificatePem field's value.
 56025  func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
 56026  	s.CertificatePem = &v
 56027  	return s
 56028  }
 56029  
 56030  // SetSetAsActive sets the SetAsActive field's value.
 56031  func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
 56032  	s.SetAsActive = &v
 56033  	return s
 56034  }
 56035  
 56036  // SetStatus sets the Status field's value.
 56037  func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
 56038  	s.Status = &v
 56039  	return s
 56040  }
 56041  
 56042  // The output from the RegisterCertificate operation.
 56043  type RegisterCertificateOutput struct {
 56044  	_ struct{} `type:"structure"`
 56045  
 56046  	// The certificate ARN.
 56047  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 56048  
 56049  	// The certificate identifier.
 56050  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 56051  }
 56052  
 56053  // String returns the string representation.
 56054  //
 56055  // API parameter values that are decorated as "sensitive" in the API will not
 56056  // be included in the string output. The member name will be present, but the
 56057  // value will be replaced with "sensitive".
 56058  func (s RegisterCertificateOutput) String() string {
 56059  	return awsutil.Prettify(s)
 56060  }
 56061  
 56062  // GoString returns the string representation.
 56063  //
 56064  // API parameter values that are decorated as "sensitive" in the API will not
 56065  // be included in the string output. The member name will be present, but the
 56066  // value will be replaced with "sensitive".
 56067  func (s RegisterCertificateOutput) GoString() string {
 56068  	return s.String()
 56069  }
 56070  
 56071  // SetCertificateArn sets the CertificateArn field's value.
 56072  func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
 56073  	s.CertificateArn = &v
 56074  	return s
 56075  }
 56076  
 56077  // SetCertificateId sets the CertificateId field's value.
 56078  func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
 56079  	s.CertificateId = &v
 56080  	return s
 56081  }
 56082  
 56083  type RegisterCertificateWithoutCAInput struct {
 56084  	_ struct{} `type:"structure"`
 56085  
 56086  	// The certificate data, in PEM format.
 56087  	//
 56088  	// CertificatePem is a required field
 56089  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
 56090  
 56091  	// The status of the register certificate request.
 56092  	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
 56093  }
 56094  
 56095  // String returns the string representation.
 56096  //
 56097  // API parameter values that are decorated as "sensitive" in the API will not
 56098  // be included in the string output. The member name will be present, but the
 56099  // value will be replaced with "sensitive".
 56100  func (s RegisterCertificateWithoutCAInput) String() string {
 56101  	return awsutil.Prettify(s)
 56102  }
 56103  
 56104  // GoString returns the string representation.
 56105  //
 56106  // API parameter values that are decorated as "sensitive" in the API will not
 56107  // be included in the string output. The member name will be present, but the
 56108  // value will be replaced with "sensitive".
 56109  func (s RegisterCertificateWithoutCAInput) GoString() string {
 56110  	return s.String()
 56111  }
 56112  
 56113  // Validate inspects the fields of the type to determine if they are valid.
 56114  func (s *RegisterCertificateWithoutCAInput) Validate() error {
 56115  	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateWithoutCAInput"}
 56116  	if s.CertificatePem == nil {
 56117  		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
 56118  	}
 56119  	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
 56120  		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
 56121  	}
 56122  
 56123  	if invalidParams.Len() > 0 {
 56124  		return invalidParams
 56125  	}
 56126  	return nil
 56127  }
 56128  
 56129  // SetCertificatePem sets the CertificatePem field's value.
 56130  func (s *RegisterCertificateWithoutCAInput) SetCertificatePem(v string) *RegisterCertificateWithoutCAInput {
 56131  	s.CertificatePem = &v
 56132  	return s
 56133  }
 56134  
 56135  // SetStatus sets the Status field's value.
 56136  func (s *RegisterCertificateWithoutCAInput) SetStatus(v string) *RegisterCertificateWithoutCAInput {
 56137  	s.Status = &v
 56138  	return s
 56139  }
 56140  
 56141  type RegisterCertificateWithoutCAOutput struct {
 56142  	_ struct{} `type:"structure"`
 56143  
 56144  	// The Amazon Resource Name (ARN) of the registered certificate.
 56145  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 56146  
 56147  	// The ID of the registered certificate. (The last part of the certificate ARN
 56148  	// contains the certificate ID.
 56149  	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
 56150  }
 56151  
 56152  // String returns the string representation.
 56153  //
 56154  // API parameter values that are decorated as "sensitive" in the API will not
 56155  // be included in the string output. The member name will be present, but the
 56156  // value will be replaced with "sensitive".
 56157  func (s RegisterCertificateWithoutCAOutput) String() string {
 56158  	return awsutil.Prettify(s)
 56159  }
 56160  
 56161  // GoString returns the string representation.
 56162  //
 56163  // API parameter values that are decorated as "sensitive" in the API will not
 56164  // be included in the string output. The member name will be present, but the
 56165  // value will be replaced with "sensitive".
 56166  func (s RegisterCertificateWithoutCAOutput) GoString() string {
 56167  	return s.String()
 56168  }
 56169  
 56170  // SetCertificateArn sets the CertificateArn field's value.
 56171  func (s *RegisterCertificateWithoutCAOutput) SetCertificateArn(v string) *RegisterCertificateWithoutCAOutput {
 56172  	s.CertificateArn = &v
 56173  	return s
 56174  }
 56175  
 56176  // SetCertificateId sets the CertificateId field's value.
 56177  func (s *RegisterCertificateWithoutCAOutput) SetCertificateId(v string) *RegisterCertificateWithoutCAOutput {
 56178  	s.CertificateId = &v
 56179  	return s
 56180  }
 56181  
 56182  type RegisterThingInput struct {
 56183  	_ struct{} `type:"structure"`
 56184  
 56185  	// The parameters for provisioning a thing. See Provisioning Templates (https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html)
 56186  	// for more information.
 56187  	Parameters map[string]*string `locationName:"parameters" type:"map"`
 56188  
 56189  	// The provisioning template. See Provisioning Devices That Have Device Certificates
 56190  	// (https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html)
 56191  	// for more information.
 56192  	//
 56193  	// TemplateBody is a required field
 56194  	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
 56195  }
 56196  
 56197  // String returns the string representation.
 56198  //
 56199  // API parameter values that are decorated as "sensitive" in the API will not
 56200  // be included in the string output. The member name will be present, but the
 56201  // value will be replaced with "sensitive".
 56202  func (s RegisterThingInput) String() string {
 56203  	return awsutil.Prettify(s)
 56204  }
 56205  
 56206  // GoString returns the string representation.
 56207  //
 56208  // API parameter values that are decorated as "sensitive" in the API will not
 56209  // be included in the string output. The member name will be present, but the
 56210  // value will be replaced with "sensitive".
 56211  func (s RegisterThingInput) GoString() string {
 56212  	return s.String()
 56213  }
 56214  
 56215  // Validate inspects the fields of the type to determine if they are valid.
 56216  func (s *RegisterThingInput) Validate() error {
 56217  	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
 56218  	if s.TemplateBody == nil {
 56219  		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
 56220  	}
 56221  
 56222  	if invalidParams.Len() > 0 {
 56223  		return invalidParams
 56224  	}
 56225  	return nil
 56226  }
 56227  
 56228  // SetParameters sets the Parameters field's value.
 56229  func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
 56230  	s.Parameters = v
 56231  	return s
 56232  }
 56233  
 56234  // SetTemplateBody sets the TemplateBody field's value.
 56235  func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
 56236  	s.TemplateBody = &v
 56237  	return s
 56238  }
 56239  
 56240  type RegisterThingOutput struct {
 56241  	_ struct{} `type:"structure"`
 56242  
 56243  	// The certificate data, in PEM format.
 56244  	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
 56245  
 56246  	// ARNs for the generated resources.
 56247  	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
 56248  }
 56249  
 56250  // String returns the string representation.
 56251  //
 56252  // API parameter values that are decorated as "sensitive" in the API will not
 56253  // be included in the string output. The member name will be present, but the
 56254  // value will be replaced with "sensitive".
 56255  func (s RegisterThingOutput) String() string {
 56256  	return awsutil.Prettify(s)
 56257  }
 56258  
 56259  // GoString returns the string representation.
 56260  //
 56261  // API parameter values that are decorated as "sensitive" in the API will not
 56262  // be included in the string output. The member name will be present, but the
 56263  // value will be replaced with "sensitive".
 56264  func (s RegisterThingOutput) GoString() string {
 56265  	return s.String()
 56266  }
 56267  
 56268  // SetCertificatePem sets the CertificatePem field's value.
 56269  func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
 56270  	s.CertificatePem = &v
 56271  	return s
 56272  }
 56273  
 56274  // SetResourceArns sets the ResourceArns field's value.
 56275  func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
 56276  	s.ResourceArns = v
 56277  	return s
 56278  }
 56279  
 56280  // The registration code is invalid.
 56281  type RegistrationCodeValidationException struct {
 56282  	_            struct{}                  `type:"structure"`
 56283  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 56284  
 56285  	// Additional information about the exception.
 56286  	Message_ *string `locationName:"message" type:"string"`
 56287  }
 56288  
 56289  // String returns the string representation.
 56290  //
 56291  // API parameter values that are decorated as "sensitive" in the API will not
 56292  // be included in the string output. The member name will be present, but the
 56293  // value will be replaced with "sensitive".
 56294  func (s RegistrationCodeValidationException) String() string {
 56295  	return awsutil.Prettify(s)
 56296  }
 56297  
 56298  // GoString returns the string representation.
 56299  //
 56300  // API parameter values that are decorated as "sensitive" in the API will not
 56301  // be included in the string output. The member name will be present, but the
 56302  // value will be replaced with "sensitive".
 56303  func (s RegistrationCodeValidationException) GoString() string {
 56304  	return s.String()
 56305  }
 56306  
 56307  func newErrorRegistrationCodeValidationException(v protocol.ResponseMetadata) error {
 56308  	return &RegistrationCodeValidationException{
 56309  		RespMetadata: v,
 56310  	}
 56311  }
 56312  
 56313  // Code returns the exception type name.
 56314  func (s *RegistrationCodeValidationException) Code() string {
 56315  	return "RegistrationCodeValidationException"
 56316  }
 56317  
 56318  // Message returns the exception's message.
 56319  func (s *RegistrationCodeValidationException) Message() string {
 56320  	if s.Message_ != nil {
 56321  		return *s.Message_
 56322  	}
 56323  	return ""
 56324  }
 56325  
 56326  // OrigErr always returns nil, satisfies awserr.Error interface.
 56327  func (s *RegistrationCodeValidationException) OrigErr() error {
 56328  	return nil
 56329  }
 56330  
 56331  func (s *RegistrationCodeValidationException) Error() string {
 56332  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 56333  }
 56334  
 56335  // Status code returns the HTTP status code for the request's response error.
 56336  func (s *RegistrationCodeValidationException) StatusCode() int {
 56337  	return s.RespMetadata.StatusCode
 56338  }
 56339  
 56340  // RequestID returns the service's response RequestID for request.
 56341  func (s *RegistrationCodeValidationException) RequestID() string {
 56342  	return s.RespMetadata.RequestID
 56343  }
 56344  
 56345  // The registration configuration.
 56346  type RegistrationConfig struct {
 56347  	_ struct{} `type:"structure"`
 56348  
 56349  	// The ARN of the role.
 56350  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 56351  
 56352  	// The template body.
 56353  	TemplateBody *string `locationName:"templateBody" type:"string"`
 56354  }
 56355  
 56356  // String returns the string representation.
 56357  //
 56358  // API parameter values that are decorated as "sensitive" in the API will not
 56359  // be included in the string output. The member name will be present, but the
 56360  // value will be replaced with "sensitive".
 56361  func (s RegistrationConfig) String() string {
 56362  	return awsutil.Prettify(s)
 56363  }
 56364  
 56365  // GoString returns the string representation.
 56366  //
 56367  // API parameter values that are decorated as "sensitive" in the API will not
 56368  // be included in the string output. The member name will be present, but the
 56369  // value will be replaced with "sensitive".
 56370  func (s RegistrationConfig) GoString() string {
 56371  	return s.String()
 56372  }
 56373  
 56374  // Validate inspects the fields of the type to determine if they are valid.
 56375  func (s *RegistrationConfig) Validate() error {
 56376  	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
 56377  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 56378  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 56379  	}
 56380  
 56381  	if invalidParams.Len() > 0 {
 56382  		return invalidParams
 56383  	}
 56384  	return nil
 56385  }
 56386  
 56387  // SetRoleArn sets the RoleArn field's value.
 56388  func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
 56389  	s.RoleArn = &v
 56390  	return s
 56391  }
 56392  
 56393  // SetTemplateBody sets the TemplateBody field's value.
 56394  func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
 56395  	s.TemplateBody = &v
 56396  	return s
 56397  }
 56398  
 56399  // The input for the RejectCertificateTransfer operation.
 56400  type RejectCertificateTransferInput struct {
 56401  	_ struct{} `type:"structure"`
 56402  
 56403  	// The ID of the certificate. (The last part of the certificate ARN contains
 56404  	// the certificate ID.)
 56405  	//
 56406  	// CertificateId is a required field
 56407  	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
 56408  
 56409  	// The reason the certificate transfer was rejected.
 56410  	RejectReason *string `locationName:"rejectReason" type:"string"`
 56411  }
 56412  
 56413  // String returns the string representation.
 56414  //
 56415  // API parameter values that are decorated as "sensitive" in the API will not
 56416  // be included in the string output. The member name will be present, but the
 56417  // value will be replaced with "sensitive".
 56418  func (s RejectCertificateTransferInput) String() string {
 56419  	return awsutil.Prettify(s)
 56420  }
 56421  
 56422  // GoString returns the string representation.
 56423  //
 56424  // API parameter values that are decorated as "sensitive" in the API will not
 56425  // be included in the string output. The member name will be present, but the
 56426  // value will be replaced with "sensitive".
 56427  func (s RejectCertificateTransferInput) GoString() string {
 56428  	return s.String()
 56429  }
 56430  
 56431  // Validate inspects the fields of the type to determine if they are valid.
 56432  func (s *RejectCertificateTransferInput) Validate() error {
 56433  	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
 56434  	if s.CertificateId == nil {
 56435  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 56436  	}
 56437  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 56438  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 56439  	}
 56440  
 56441  	if invalidParams.Len() > 0 {
 56442  		return invalidParams
 56443  	}
 56444  	return nil
 56445  }
 56446  
 56447  // SetCertificateId sets the CertificateId field's value.
 56448  func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
 56449  	s.CertificateId = &v
 56450  	return s
 56451  }
 56452  
 56453  // SetRejectReason sets the RejectReason field's value.
 56454  func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
 56455  	s.RejectReason = &v
 56456  	return s
 56457  }
 56458  
 56459  type RejectCertificateTransferOutput struct {
 56460  	_ struct{} `type:"structure" nopayload:"true"`
 56461  }
 56462  
 56463  // String returns the string representation.
 56464  //
 56465  // API parameter values that are decorated as "sensitive" in the API will not
 56466  // be included in the string output. The member name will be present, but the
 56467  // value will be replaced with "sensitive".
 56468  func (s RejectCertificateTransferOutput) String() string {
 56469  	return awsutil.Prettify(s)
 56470  }
 56471  
 56472  // GoString returns the string representation.
 56473  //
 56474  // API parameter values that are decorated as "sensitive" in the API will not
 56475  // be included in the string output. The member name will be present, but the
 56476  // value will be replaced with "sensitive".
 56477  func (s RejectCertificateTransferOutput) GoString() string {
 56478  	return s.String()
 56479  }
 56480  
 56481  // Information about a related resource.
 56482  type RelatedResource struct {
 56483  	_ struct{} `type:"structure"`
 56484  
 56485  	// Other information about the resource.
 56486  	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
 56487  
 56488  	// Information that identifies the resource.
 56489  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
 56490  
 56491  	// The type of resource.
 56492  	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
 56493  }
 56494  
 56495  // String returns the string representation.
 56496  //
 56497  // API parameter values that are decorated as "sensitive" in the API will not
 56498  // be included in the string output. The member name will be present, but the
 56499  // value will be replaced with "sensitive".
 56500  func (s RelatedResource) String() string {
 56501  	return awsutil.Prettify(s)
 56502  }
 56503  
 56504  // GoString returns the string representation.
 56505  //
 56506  // API parameter values that are decorated as "sensitive" in the API will not
 56507  // be included in the string output. The member name will be present, but the
 56508  // value will be replaced with "sensitive".
 56509  func (s RelatedResource) GoString() string {
 56510  	return s.String()
 56511  }
 56512  
 56513  // SetAdditionalInfo sets the AdditionalInfo field's value.
 56514  func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
 56515  	s.AdditionalInfo = v
 56516  	return s
 56517  }
 56518  
 56519  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 56520  func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
 56521  	s.ResourceIdentifier = v
 56522  	return s
 56523  }
 56524  
 56525  // SetResourceType sets the ResourceType field's value.
 56526  func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
 56527  	s.ResourceType = &v
 56528  	return s
 56529  }
 56530  
 56531  type RemoveThingFromBillingGroupInput struct {
 56532  	_ struct{} `type:"structure"`
 56533  
 56534  	// The ARN of the billing group.
 56535  	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
 56536  
 56537  	// The name of the billing group.
 56538  	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
 56539  
 56540  	// The ARN of the thing to be removed from the billing group.
 56541  	ThingArn *string `locationName:"thingArn" type:"string"`
 56542  
 56543  	// The name of the thing to be removed from the billing group.
 56544  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 56545  }
 56546  
 56547  // String returns the string representation.
 56548  //
 56549  // API parameter values that are decorated as "sensitive" in the API will not
 56550  // be included in the string output. The member name will be present, but the
 56551  // value will be replaced with "sensitive".
 56552  func (s RemoveThingFromBillingGroupInput) String() string {
 56553  	return awsutil.Prettify(s)
 56554  }
 56555  
 56556  // GoString returns the string representation.
 56557  //
 56558  // API parameter values that are decorated as "sensitive" in the API will not
 56559  // be included in the string output. The member name will be present, but the
 56560  // value will be replaced with "sensitive".
 56561  func (s RemoveThingFromBillingGroupInput) GoString() string {
 56562  	return s.String()
 56563  }
 56564  
 56565  // Validate inspects the fields of the type to determine if they are valid.
 56566  func (s *RemoveThingFromBillingGroupInput) Validate() error {
 56567  	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromBillingGroupInput"}
 56568  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 56569  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 56570  	}
 56571  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 56572  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 56573  	}
 56574  
 56575  	if invalidParams.Len() > 0 {
 56576  		return invalidParams
 56577  	}
 56578  	return nil
 56579  }
 56580  
 56581  // SetBillingGroupArn sets the BillingGroupArn field's value.
 56582  func (s *RemoveThingFromBillingGroupInput) SetBillingGroupArn(v string) *RemoveThingFromBillingGroupInput {
 56583  	s.BillingGroupArn = &v
 56584  	return s
 56585  }
 56586  
 56587  // SetBillingGroupName sets the BillingGroupName field's value.
 56588  func (s *RemoveThingFromBillingGroupInput) SetBillingGroupName(v string) *RemoveThingFromBillingGroupInput {
 56589  	s.BillingGroupName = &v
 56590  	return s
 56591  }
 56592  
 56593  // SetThingArn sets the ThingArn field's value.
 56594  func (s *RemoveThingFromBillingGroupInput) SetThingArn(v string) *RemoveThingFromBillingGroupInput {
 56595  	s.ThingArn = &v
 56596  	return s
 56597  }
 56598  
 56599  // SetThingName sets the ThingName field's value.
 56600  func (s *RemoveThingFromBillingGroupInput) SetThingName(v string) *RemoveThingFromBillingGroupInput {
 56601  	s.ThingName = &v
 56602  	return s
 56603  }
 56604  
 56605  type RemoveThingFromBillingGroupOutput struct {
 56606  	_ struct{} `type:"structure" nopayload:"true"`
 56607  }
 56608  
 56609  // String returns the string representation.
 56610  //
 56611  // API parameter values that are decorated as "sensitive" in the API will not
 56612  // be included in the string output. The member name will be present, but the
 56613  // value will be replaced with "sensitive".
 56614  func (s RemoveThingFromBillingGroupOutput) String() string {
 56615  	return awsutil.Prettify(s)
 56616  }
 56617  
 56618  // GoString returns the string representation.
 56619  //
 56620  // API parameter values that are decorated as "sensitive" in the API will not
 56621  // be included in the string output. The member name will be present, but the
 56622  // value will be replaced with "sensitive".
 56623  func (s RemoveThingFromBillingGroupOutput) GoString() string {
 56624  	return s.String()
 56625  }
 56626  
 56627  type RemoveThingFromThingGroupInput struct {
 56628  	_ struct{} `type:"structure"`
 56629  
 56630  	// The ARN of the thing to remove from the group.
 56631  	ThingArn *string `locationName:"thingArn" type:"string"`
 56632  
 56633  	// The group ARN.
 56634  	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
 56635  
 56636  	// The group name.
 56637  	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
 56638  
 56639  	// The name of the thing to remove from the group.
 56640  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 56641  }
 56642  
 56643  // String returns the string representation.
 56644  //
 56645  // API parameter values that are decorated as "sensitive" in the API will not
 56646  // be included in the string output. The member name will be present, but the
 56647  // value will be replaced with "sensitive".
 56648  func (s RemoveThingFromThingGroupInput) String() string {
 56649  	return awsutil.Prettify(s)
 56650  }
 56651  
 56652  // GoString returns the string representation.
 56653  //
 56654  // API parameter values that are decorated as "sensitive" in the API will not
 56655  // be included in the string output. The member name will be present, but the
 56656  // value will be replaced with "sensitive".
 56657  func (s RemoveThingFromThingGroupInput) GoString() string {
 56658  	return s.String()
 56659  }
 56660  
 56661  // Validate inspects the fields of the type to determine if they are valid.
 56662  func (s *RemoveThingFromThingGroupInput) Validate() error {
 56663  	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
 56664  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 56665  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 56666  	}
 56667  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 56668  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 56669  	}
 56670  
 56671  	if invalidParams.Len() > 0 {
 56672  		return invalidParams
 56673  	}
 56674  	return nil
 56675  }
 56676  
 56677  // SetThingArn sets the ThingArn field's value.
 56678  func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
 56679  	s.ThingArn = &v
 56680  	return s
 56681  }
 56682  
 56683  // SetThingGroupArn sets the ThingGroupArn field's value.
 56684  func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
 56685  	s.ThingGroupArn = &v
 56686  	return s
 56687  }
 56688  
 56689  // SetThingGroupName sets the ThingGroupName field's value.
 56690  func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
 56691  	s.ThingGroupName = &v
 56692  	return s
 56693  }
 56694  
 56695  // SetThingName sets the ThingName field's value.
 56696  func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
 56697  	s.ThingName = &v
 56698  	return s
 56699  }
 56700  
 56701  type RemoveThingFromThingGroupOutput struct {
 56702  	_ struct{} `type:"structure" nopayload:"true"`
 56703  }
 56704  
 56705  // String returns the string representation.
 56706  //
 56707  // API parameter values that are decorated as "sensitive" in the API will not
 56708  // be included in the string output. The member name will be present, but the
 56709  // value will be replaced with "sensitive".
 56710  func (s RemoveThingFromThingGroupOutput) String() string {
 56711  	return awsutil.Prettify(s)
 56712  }
 56713  
 56714  // GoString returns the string representation.
 56715  //
 56716  // API parameter values that are decorated as "sensitive" in the API will not
 56717  // be included in the string output. The member name will be present, but the
 56718  // value will be replaced with "sensitive".
 56719  func (s RemoveThingFromThingGroupOutput) GoString() string {
 56720  	return s.String()
 56721  }
 56722  
 56723  // Parameters to define a mitigation action that adds a blank policy to restrict
 56724  // permissions.
 56725  type ReplaceDefaultPolicyVersionParams struct {
 56726  	_ struct{} `type:"structure"`
 56727  
 56728  	// The name of the template to be applied. The only supported value is BLANK_POLICY.
 56729  	//
 56730  	// TemplateName is a required field
 56731  	TemplateName *string `locationName:"templateName" type:"string" required:"true" enum:"PolicyTemplateName"`
 56732  }
 56733  
 56734  // String returns the string representation.
 56735  //
 56736  // API parameter values that are decorated as "sensitive" in the API will not
 56737  // be included in the string output. The member name will be present, but the
 56738  // value will be replaced with "sensitive".
 56739  func (s ReplaceDefaultPolicyVersionParams) String() string {
 56740  	return awsutil.Prettify(s)
 56741  }
 56742  
 56743  // GoString returns the string representation.
 56744  //
 56745  // API parameter values that are decorated as "sensitive" in the API will not
 56746  // be included in the string output. The member name will be present, but the
 56747  // value will be replaced with "sensitive".
 56748  func (s ReplaceDefaultPolicyVersionParams) GoString() string {
 56749  	return s.String()
 56750  }
 56751  
 56752  // Validate inspects the fields of the type to determine if they are valid.
 56753  func (s *ReplaceDefaultPolicyVersionParams) Validate() error {
 56754  	invalidParams := request.ErrInvalidParams{Context: "ReplaceDefaultPolicyVersionParams"}
 56755  	if s.TemplateName == nil {
 56756  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 56757  	}
 56758  
 56759  	if invalidParams.Len() > 0 {
 56760  		return invalidParams
 56761  	}
 56762  	return nil
 56763  }
 56764  
 56765  // SetTemplateName sets the TemplateName field's value.
 56766  func (s *ReplaceDefaultPolicyVersionParams) SetTemplateName(v string) *ReplaceDefaultPolicyVersionParams {
 56767  	s.TemplateName = &v
 56768  	return s
 56769  }
 56770  
 56771  // The input for the ReplaceTopicRule operation.
 56772  type ReplaceTopicRuleInput struct {
 56773  	_ struct{} `type:"structure" payload:"TopicRulePayload"`
 56774  
 56775  	// The name of the rule.
 56776  	//
 56777  	// RuleName is a required field
 56778  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
 56779  
 56780  	// The rule payload.
 56781  	//
 56782  	// TopicRulePayload is a required field
 56783  	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
 56784  }
 56785  
 56786  // String returns the string representation.
 56787  //
 56788  // API parameter values that are decorated as "sensitive" in the API will not
 56789  // be included in the string output. The member name will be present, but the
 56790  // value will be replaced with "sensitive".
 56791  func (s ReplaceTopicRuleInput) String() string {
 56792  	return awsutil.Prettify(s)
 56793  }
 56794  
 56795  // GoString returns the string representation.
 56796  //
 56797  // API parameter values that are decorated as "sensitive" in the API will not
 56798  // be included in the string output. The member name will be present, but the
 56799  // value will be replaced with "sensitive".
 56800  func (s ReplaceTopicRuleInput) GoString() string {
 56801  	return s.String()
 56802  }
 56803  
 56804  // Validate inspects the fields of the type to determine if they are valid.
 56805  func (s *ReplaceTopicRuleInput) Validate() error {
 56806  	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
 56807  	if s.RuleName == nil {
 56808  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
 56809  	}
 56810  	if s.RuleName != nil && len(*s.RuleName) < 1 {
 56811  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
 56812  	}
 56813  	if s.TopicRulePayload == nil {
 56814  		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
 56815  	}
 56816  	if s.TopicRulePayload != nil {
 56817  		if err := s.TopicRulePayload.Validate(); err != nil {
 56818  			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
 56819  		}
 56820  	}
 56821  
 56822  	if invalidParams.Len() > 0 {
 56823  		return invalidParams
 56824  	}
 56825  	return nil
 56826  }
 56827  
 56828  // SetRuleName sets the RuleName field's value.
 56829  func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
 56830  	s.RuleName = &v
 56831  	return s
 56832  }
 56833  
 56834  // SetTopicRulePayload sets the TopicRulePayload field's value.
 56835  func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
 56836  	s.TopicRulePayload = v
 56837  	return s
 56838  }
 56839  
 56840  type ReplaceTopicRuleOutput struct {
 56841  	_ struct{} `type:"structure" nopayload:"true"`
 56842  }
 56843  
 56844  // String returns the string representation.
 56845  //
 56846  // API parameter values that are decorated as "sensitive" in the API will not
 56847  // be included in the string output. The member name will be present, but the
 56848  // value will be replaced with "sensitive".
 56849  func (s ReplaceTopicRuleOutput) String() string {
 56850  	return awsutil.Prettify(s)
 56851  }
 56852  
 56853  // GoString returns the string representation.
 56854  //
 56855  // API parameter values that are decorated as "sensitive" in the API will not
 56856  // be included in the string output. The member name will be present, but the
 56857  // value will be replaced with "sensitive".
 56858  func (s ReplaceTopicRuleOutput) GoString() string {
 56859  	return s.String()
 56860  }
 56861  
 56862  // Describes an action to republish to another topic.
 56863  type RepublishAction struct {
 56864  	_ struct{} `type:"structure"`
 56865  
 56866  	// The Quality of Service (QoS) level to use when republishing messages. The
 56867  	// default value is 0.
 56868  	Qos *int64 `locationName:"qos" type:"integer"`
 56869  
 56870  	// The ARN of the IAM role that grants access.
 56871  	//
 56872  	// RoleArn is a required field
 56873  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 56874  
 56875  	// The name of the MQTT topic.
 56876  	//
 56877  	// Topic is a required field
 56878  	Topic *string `locationName:"topic" type:"string" required:"true"`
 56879  }
 56880  
 56881  // String returns the string representation.
 56882  //
 56883  // API parameter values that are decorated as "sensitive" in the API will not
 56884  // be included in the string output. The member name will be present, but the
 56885  // value will be replaced with "sensitive".
 56886  func (s RepublishAction) String() string {
 56887  	return awsutil.Prettify(s)
 56888  }
 56889  
 56890  // GoString returns the string representation.
 56891  //
 56892  // API parameter values that are decorated as "sensitive" in the API will not
 56893  // be included in the string output. The member name will be present, but the
 56894  // value will be replaced with "sensitive".
 56895  func (s RepublishAction) GoString() string {
 56896  	return s.String()
 56897  }
 56898  
 56899  // Validate inspects the fields of the type to determine if they are valid.
 56900  func (s *RepublishAction) Validate() error {
 56901  	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
 56902  	if s.RoleArn == nil {
 56903  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 56904  	}
 56905  	if s.Topic == nil {
 56906  		invalidParams.Add(request.NewErrParamRequired("Topic"))
 56907  	}
 56908  
 56909  	if invalidParams.Len() > 0 {
 56910  		return invalidParams
 56911  	}
 56912  	return nil
 56913  }
 56914  
 56915  // SetQos sets the Qos field's value.
 56916  func (s *RepublishAction) SetQos(v int64) *RepublishAction {
 56917  	s.Qos = &v
 56918  	return s
 56919  }
 56920  
 56921  // SetRoleArn sets the RoleArn field's value.
 56922  func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
 56923  	s.RoleArn = &v
 56924  	return s
 56925  }
 56926  
 56927  // SetTopic sets the Topic field's value.
 56928  func (s *RepublishAction) SetTopic(v string) *RepublishAction {
 56929  	s.Topic = &v
 56930  	return s
 56931  }
 56932  
 56933  // The resource already exists.
 56934  type ResourceAlreadyExistsException struct {
 56935  	_            struct{}                  `type:"structure"`
 56936  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 56937  
 56938  	// The message for the exception.
 56939  	Message_ *string `locationName:"message" type:"string"`
 56940  
 56941  	// The ARN of the resource that caused the exception.
 56942  	ResourceArn *string `locationName:"resourceArn" type:"string"`
 56943  
 56944  	// The ID of the resource that caused the exception.
 56945  	ResourceId *string `locationName:"resourceId" type:"string"`
 56946  }
 56947  
 56948  // String returns the string representation.
 56949  //
 56950  // API parameter values that are decorated as "sensitive" in the API will not
 56951  // be included in the string output. The member name will be present, but the
 56952  // value will be replaced with "sensitive".
 56953  func (s ResourceAlreadyExistsException) String() string {
 56954  	return awsutil.Prettify(s)
 56955  }
 56956  
 56957  // GoString returns the string representation.
 56958  //
 56959  // API parameter values that are decorated as "sensitive" in the API will not
 56960  // be included in the string output. The member name will be present, but the
 56961  // value will be replaced with "sensitive".
 56962  func (s ResourceAlreadyExistsException) GoString() string {
 56963  	return s.String()
 56964  }
 56965  
 56966  func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
 56967  	return &ResourceAlreadyExistsException{
 56968  		RespMetadata: v,
 56969  	}
 56970  }
 56971  
 56972  // Code returns the exception type name.
 56973  func (s *ResourceAlreadyExistsException) Code() string {
 56974  	return "ResourceAlreadyExistsException"
 56975  }
 56976  
 56977  // Message returns the exception's message.
 56978  func (s *ResourceAlreadyExistsException) Message() string {
 56979  	if s.Message_ != nil {
 56980  		return *s.Message_
 56981  	}
 56982  	return ""
 56983  }
 56984  
 56985  // OrigErr always returns nil, satisfies awserr.Error interface.
 56986  func (s *ResourceAlreadyExistsException) OrigErr() error {
 56987  	return nil
 56988  }
 56989  
 56990  func (s *ResourceAlreadyExistsException) Error() string {
 56991  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 56992  }
 56993  
 56994  // Status code returns the HTTP status code for the request's response error.
 56995  func (s *ResourceAlreadyExistsException) StatusCode() int {
 56996  	return s.RespMetadata.StatusCode
 56997  }
 56998  
 56999  // RequestID returns the service's response RequestID for request.
 57000  func (s *ResourceAlreadyExistsException) RequestID() string {
 57001  	return s.RespMetadata.RequestID
 57002  }
 57003  
 57004  // Information that identifies the noncompliant resource.
 57005  type ResourceIdentifier struct {
 57006  	_ struct{} `type:"structure"`
 57007  
 57008  	// The account with which the resource is associated.
 57009  	Account *string `locationName:"account" min:"12" type:"string"`
 57010  
 57011  	// The ID of the CA certificate used to authorize the certificate.
 57012  	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
 57013  
 57014  	// The client ID.
 57015  	ClientId *string `locationName:"clientId" type:"string"`
 57016  
 57017  	// The ID of the Amazon Cognito identity pool.
 57018  	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
 57019  
 57020  	// The ID of the certificate attached to the resource.
 57021  	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
 57022  
 57023  	// The ARN of the IAM role that has overly permissive actions.
 57024  	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
 57025  
 57026  	// The version of the policy associated with the resource.
 57027  	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
 57028  
 57029  	// The ARN of the role alias that has overly permissive actions.
 57030  	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
 57031  }
 57032  
 57033  // String returns the string representation.
 57034  //
 57035  // API parameter values that are decorated as "sensitive" in the API will not
 57036  // be included in the string output. The member name will be present, but the
 57037  // value will be replaced with "sensitive".
 57038  func (s ResourceIdentifier) String() string {
 57039  	return awsutil.Prettify(s)
 57040  }
 57041  
 57042  // GoString returns the string representation.
 57043  //
 57044  // API parameter values that are decorated as "sensitive" in the API will not
 57045  // be included in the string output. The member name will be present, but the
 57046  // value will be replaced with "sensitive".
 57047  func (s ResourceIdentifier) GoString() string {
 57048  	return s.String()
 57049  }
 57050  
 57051  // Validate inspects the fields of the type to determine if they are valid.
 57052  func (s *ResourceIdentifier) Validate() error {
 57053  	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
 57054  	if s.Account != nil && len(*s.Account) < 12 {
 57055  		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
 57056  	}
 57057  	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
 57058  		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
 57059  	}
 57060  	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
 57061  		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
 57062  	}
 57063  	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
 57064  		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
 57065  	}
 57066  	if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 {
 57067  		invalidParams.Add(request.NewErrParamMinLen("RoleAliasArn", 1))
 57068  	}
 57069  	if s.PolicyVersionIdentifier != nil {
 57070  		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
 57071  			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
 57072  		}
 57073  	}
 57074  
 57075  	if invalidParams.Len() > 0 {
 57076  		return invalidParams
 57077  	}
 57078  	return nil
 57079  }
 57080  
 57081  // SetAccount sets the Account field's value.
 57082  func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
 57083  	s.Account = &v
 57084  	return s
 57085  }
 57086  
 57087  // SetCaCertificateId sets the CaCertificateId field's value.
 57088  func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
 57089  	s.CaCertificateId = &v
 57090  	return s
 57091  }
 57092  
 57093  // SetClientId sets the ClientId field's value.
 57094  func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
 57095  	s.ClientId = &v
 57096  	return s
 57097  }
 57098  
 57099  // SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
 57100  func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
 57101  	s.CognitoIdentityPoolId = &v
 57102  	return s
 57103  }
 57104  
 57105  // SetDeviceCertificateId sets the DeviceCertificateId field's value.
 57106  func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
 57107  	s.DeviceCertificateId = &v
 57108  	return s
 57109  }
 57110  
 57111  // SetIamRoleArn sets the IamRoleArn field's value.
 57112  func (s *ResourceIdentifier) SetIamRoleArn(v string) *ResourceIdentifier {
 57113  	s.IamRoleArn = &v
 57114  	return s
 57115  }
 57116  
 57117  // SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
 57118  func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
 57119  	s.PolicyVersionIdentifier = v
 57120  	return s
 57121  }
 57122  
 57123  // SetRoleAliasArn sets the RoleAliasArn field's value.
 57124  func (s *ResourceIdentifier) SetRoleAliasArn(v string) *ResourceIdentifier {
 57125  	s.RoleAliasArn = &v
 57126  	return s
 57127  }
 57128  
 57129  // The specified resource does not exist.
 57130  type ResourceNotFoundException struct {
 57131  	_            struct{}                  `type:"structure"`
 57132  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 57133  
 57134  	// The message for the exception.
 57135  	Message_ *string `locationName:"message" type:"string"`
 57136  }
 57137  
 57138  // String returns the string representation.
 57139  //
 57140  // API parameter values that are decorated as "sensitive" in the API will not
 57141  // be included in the string output. The member name will be present, but the
 57142  // value will be replaced with "sensitive".
 57143  func (s ResourceNotFoundException) String() string {
 57144  	return awsutil.Prettify(s)
 57145  }
 57146  
 57147  // GoString returns the string representation.
 57148  //
 57149  // API parameter values that are decorated as "sensitive" in the API will not
 57150  // be included in the string output. The member name will be present, but the
 57151  // value will be replaced with "sensitive".
 57152  func (s ResourceNotFoundException) GoString() string {
 57153  	return s.String()
 57154  }
 57155  
 57156  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 57157  	return &ResourceNotFoundException{
 57158  		RespMetadata: v,
 57159  	}
 57160  }
 57161  
 57162  // Code returns the exception type name.
 57163  func (s *ResourceNotFoundException) Code() string {
 57164  	return "ResourceNotFoundException"
 57165  }
 57166  
 57167  // Message returns the exception's message.
 57168  func (s *ResourceNotFoundException) Message() string {
 57169  	if s.Message_ != nil {
 57170  		return *s.Message_
 57171  	}
 57172  	return ""
 57173  }
 57174  
 57175  // OrigErr always returns nil, satisfies awserr.Error interface.
 57176  func (s *ResourceNotFoundException) OrigErr() error {
 57177  	return nil
 57178  }
 57179  
 57180  func (s *ResourceNotFoundException) Error() string {
 57181  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 57182  }
 57183  
 57184  // Status code returns the HTTP status code for the request's response error.
 57185  func (s *ResourceNotFoundException) StatusCode() int {
 57186  	return s.RespMetadata.StatusCode
 57187  }
 57188  
 57189  // RequestID returns the service's response RequestID for request.
 57190  func (s *ResourceNotFoundException) RequestID() string {
 57191  	return s.RespMetadata.RequestID
 57192  }
 57193  
 57194  // The resource registration failed.
 57195  type ResourceRegistrationFailureException struct {
 57196  	_            struct{}                  `type:"structure"`
 57197  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 57198  
 57199  	// The message for the exception.
 57200  	Message_ *string `locationName:"message" type:"string"`
 57201  }
 57202  
 57203  // String returns the string representation.
 57204  //
 57205  // API parameter values that are decorated as "sensitive" in the API will not
 57206  // be included in the string output. The member name will be present, but the
 57207  // value will be replaced with "sensitive".
 57208  func (s ResourceRegistrationFailureException) String() string {
 57209  	return awsutil.Prettify(s)
 57210  }
 57211  
 57212  // GoString returns the string representation.
 57213  //
 57214  // API parameter values that are decorated as "sensitive" in the API will not
 57215  // be included in the string output. The member name will be present, but the
 57216  // value will be replaced with "sensitive".
 57217  func (s ResourceRegistrationFailureException) GoString() string {
 57218  	return s.String()
 57219  }
 57220  
 57221  func newErrorResourceRegistrationFailureException(v protocol.ResponseMetadata) error {
 57222  	return &ResourceRegistrationFailureException{
 57223  		RespMetadata: v,
 57224  	}
 57225  }
 57226  
 57227  // Code returns the exception type name.
 57228  func (s *ResourceRegistrationFailureException) Code() string {
 57229  	return "ResourceRegistrationFailureException"
 57230  }
 57231  
 57232  // Message returns the exception's message.
 57233  func (s *ResourceRegistrationFailureException) Message() string {
 57234  	if s.Message_ != nil {
 57235  		return *s.Message_
 57236  	}
 57237  	return ""
 57238  }
 57239  
 57240  // OrigErr always returns nil, satisfies awserr.Error interface.
 57241  func (s *ResourceRegistrationFailureException) OrigErr() error {
 57242  	return nil
 57243  }
 57244  
 57245  func (s *ResourceRegistrationFailureException) Error() string {
 57246  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 57247  }
 57248  
 57249  // Status code returns the HTTP status code for the request's response error.
 57250  func (s *ResourceRegistrationFailureException) StatusCode() int {
 57251  	return s.RespMetadata.StatusCode
 57252  }
 57253  
 57254  // RequestID returns the service's response RequestID for request.
 57255  func (s *ResourceRegistrationFailureException) RequestID() string {
 57256  	return s.RespMetadata.RequestID
 57257  }
 57258  
 57259  // Role alias description.
 57260  type RoleAliasDescription struct {
 57261  	_ struct{} `type:"structure"`
 57262  
 57263  	// The UNIX timestamp of when the role alias was created.
 57264  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 57265  
 57266  	// The number of seconds for which the credential is valid.
 57267  	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
 57268  
 57269  	// The UNIX timestamp of when the role alias was last modified.
 57270  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 57271  
 57272  	// The role alias owner.
 57273  	Owner *string `locationName:"owner" min:"12" type:"string"`
 57274  
 57275  	// The role alias.
 57276  	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
 57277  
 57278  	// The ARN of the role alias.
 57279  	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
 57280  
 57281  	// The role ARN.
 57282  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 57283  }
 57284  
 57285  // String returns the string representation.
 57286  //
 57287  // API parameter values that are decorated as "sensitive" in the API will not
 57288  // be included in the string output. The member name will be present, but the
 57289  // value will be replaced with "sensitive".
 57290  func (s RoleAliasDescription) String() string {
 57291  	return awsutil.Prettify(s)
 57292  }
 57293  
 57294  // GoString returns the string representation.
 57295  //
 57296  // API parameter values that are decorated as "sensitive" in the API will not
 57297  // be included in the string output. The member name will be present, but the
 57298  // value will be replaced with "sensitive".
 57299  func (s RoleAliasDescription) GoString() string {
 57300  	return s.String()
 57301  }
 57302  
 57303  // SetCreationDate sets the CreationDate field's value.
 57304  func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
 57305  	s.CreationDate = &v
 57306  	return s
 57307  }
 57308  
 57309  // SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
 57310  func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
 57311  	s.CredentialDurationSeconds = &v
 57312  	return s
 57313  }
 57314  
 57315  // SetLastModifiedDate sets the LastModifiedDate field's value.
 57316  func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
 57317  	s.LastModifiedDate = &v
 57318  	return s
 57319  }
 57320  
 57321  // SetOwner sets the Owner field's value.
 57322  func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
 57323  	s.Owner = &v
 57324  	return s
 57325  }
 57326  
 57327  // SetRoleAlias sets the RoleAlias field's value.
 57328  func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
 57329  	s.RoleAlias = &v
 57330  	return s
 57331  }
 57332  
 57333  // SetRoleAliasArn sets the RoleAliasArn field's value.
 57334  func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
 57335  	s.RoleAliasArn = &v
 57336  	return s
 57337  }
 57338  
 57339  // SetRoleArn sets the RoleArn field's value.
 57340  func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
 57341  	s.RoleArn = &v
 57342  	return s
 57343  }
 57344  
 57345  // Describes an action to write data to an Amazon S3 bucket.
 57346  type S3Action struct {
 57347  	_ struct{} `type:"structure"`
 57348  
 57349  	// The Amazon S3 bucket.
 57350  	//
 57351  	// BucketName is a required field
 57352  	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
 57353  
 57354  	// The Amazon S3 canned ACL that controls access to the object identified by
 57355  	// the object key. For more information, see S3 canned ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
 57356  	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
 57357  
 57358  	// The object key. For more information, see Actions, resources, and condition
 57359  	// keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
 57360  	//
 57361  	// Key is a required field
 57362  	Key *string `locationName:"key" type:"string" required:"true"`
 57363  
 57364  	// The ARN of the IAM role that grants access.
 57365  	//
 57366  	// RoleArn is a required field
 57367  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 57368  }
 57369  
 57370  // String returns the string representation.
 57371  //
 57372  // API parameter values that are decorated as "sensitive" in the API will not
 57373  // be included in the string output. The member name will be present, but the
 57374  // value will be replaced with "sensitive".
 57375  func (s S3Action) String() string {
 57376  	return awsutil.Prettify(s)
 57377  }
 57378  
 57379  // GoString returns the string representation.
 57380  //
 57381  // API parameter values that are decorated as "sensitive" in the API will not
 57382  // be included in the string output. The member name will be present, but the
 57383  // value will be replaced with "sensitive".
 57384  func (s S3Action) GoString() string {
 57385  	return s.String()
 57386  }
 57387  
 57388  // Validate inspects the fields of the type to determine if they are valid.
 57389  func (s *S3Action) Validate() error {
 57390  	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
 57391  	if s.BucketName == nil {
 57392  		invalidParams.Add(request.NewErrParamRequired("BucketName"))
 57393  	}
 57394  	if s.Key == nil {
 57395  		invalidParams.Add(request.NewErrParamRequired("Key"))
 57396  	}
 57397  	if s.RoleArn == nil {
 57398  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 57399  	}
 57400  
 57401  	if invalidParams.Len() > 0 {
 57402  		return invalidParams
 57403  	}
 57404  	return nil
 57405  }
 57406  
 57407  // SetBucketName sets the BucketName field's value.
 57408  func (s *S3Action) SetBucketName(v string) *S3Action {
 57409  	s.BucketName = &v
 57410  	return s
 57411  }
 57412  
 57413  // SetCannedAcl sets the CannedAcl field's value.
 57414  func (s *S3Action) SetCannedAcl(v string) *S3Action {
 57415  	s.CannedAcl = &v
 57416  	return s
 57417  }
 57418  
 57419  // SetKey sets the Key field's value.
 57420  func (s *S3Action) SetKey(v string) *S3Action {
 57421  	s.Key = &v
 57422  	return s
 57423  }
 57424  
 57425  // SetRoleArn sets the RoleArn field's value.
 57426  func (s *S3Action) SetRoleArn(v string) *S3Action {
 57427  	s.RoleArn = &v
 57428  	return s
 57429  }
 57430  
 57431  // Describes the location of updated firmware in S3.
 57432  type S3Destination struct {
 57433  	_ struct{} `type:"structure"`
 57434  
 57435  	// The S3 bucket that contains the updated firmware.
 57436  	Bucket *string `locationName:"bucket" min:"1" type:"string"`
 57437  
 57438  	// The S3 prefix.
 57439  	Prefix *string `locationName:"prefix" type:"string"`
 57440  }
 57441  
 57442  // String returns the string representation.
 57443  //
 57444  // API parameter values that are decorated as "sensitive" in the API will not
 57445  // be included in the string output. The member name will be present, but the
 57446  // value will be replaced with "sensitive".
 57447  func (s S3Destination) String() string {
 57448  	return awsutil.Prettify(s)
 57449  }
 57450  
 57451  // GoString returns the string representation.
 57452  //
 57453  // API parameter values that are decorated as "sensitive" in the API will not
 57454  // be included in the string output. The member name will be present, but the
 57455  // value will be replaced with "sensitive".
 57456  func (s S3Destination) GoString() string {
 57457  	return s.String()
 57458  }
 57459  
 57460  // Validate inspects the fields of the type to determine if they are valid.
 57461  func (s *S3Destination) Validate() error {
 57462  	invalidParams := request.ErrInvalidParams{Context: "S3Destination"}
 57463  	if s.Bucket != nil && len(*s.Bucket) < 1 {
 57464  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
 57465  	}
 57466  
 57467  	if invalidParams.Len() > 0 {
 57468  		return invalidParams
 57469  	}
 57470  	return nil
 57471  }
 57472  
 57473  // SetBucket sets the Bucket field's value.
 57474  func (s *S3Destination) SetBucket(v string) *S3Destination {
 57475  	s.Bucket = &v
 57476  	return s
 57477  }
 57478  
 57479  // SetPrefix sets the Prefix field's value.
 57480  func (s *S3Destination) SetPrefix(v string) *S3Destination {
 57481  	s.Prefix = &v
 57482  	return s
 57483  }
 57484  
 57485  // The S3 location.
 57486  type S3Location struct {
 57487  	_ struct{} `type:"structure"`
 57488  
 57489  	// The S3 bucket.
 57490  	Bucket *string `locationName:"bucket" min:"1" type:"string"`
 57491  
 57492  	// The S3 key.
 57493  	Key *string `locationName:"key" min:"1" type:"string"`
 57494  
 57495  	// The S3 bucket version.
 57496  	Version *string `locationName:"version" type:"string"`
 57497  }
 57498  
 57499  // String returns the string representation.
 57500  //
 57501  // API parameter values that are decorated as "sensitive" in the API will not
 57502  // be included in the string output. The member name will be present, but the
 57503  // value will be replaced with "sensitive".
 57504  func (s S3Location) String() string {
 57505  	return awsutil.Prettify(s)
 57506  }
 57507  
 57508  // GoString returns the string representation.
 57509  //
 57510  // API parameter values that are decorated as "sensitive" in the API will not
 57511  // be included in the string output. The member name will be present, but the
 57512  // value will be replaced with "sensitive".
 57513  func (s S3Location) GoString() string {
 57514  	return s.String()
 57515  }
 57516  
 57517  // Validate inspects the fields of the type to determine if they are valid.
 57518  func (s *S3Location) Validate() error {
 57519  	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
 57520  	if s.Bucket != nil && len(*s.Bucket) < 1 {
 57521  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
 57522  	}
 57523  	if s.Key != nil && len(*s.Key) < 1 {
 57524  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 57525  	}
 57526  
 57527  	if invalidParams.Len() > 0 {
 57528  		return invalidParams
 57529  	}
 57530  	return nil
 57531  }
 57532  
 57533  // SetBucket sets the Bucket field's value.
 57534  func (s *S3Location) SetBucket(v string) *S3Location {
 57535  	s.Bucket = &v
 57536  	return s
 57537  }
 57538  
 57539  // SetKey sets the Key field's value.
 57540  func (s *S3Location) SetKey(v string) *S3Location {
 57541  	s.Key = &v
 57542  	return s
 57543  }
 57544  
 57545  // SetVersion sets the Version field's value.
 57546  func (s *S3Location) SetVersion(v string) *S3Location {
 57547  	s.Version = &v
 57548  	return s
 57549  }
 57550  
 57551  // Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
 57552  type SalesforceAction struct {
 57553  	_ struct{} `type:"structure"`
 57554  
 57555  	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
 57556  	// The token is available from the Salesforce IoT Cloud platform after creation
 57557  	// of the Input Stream.
 57558  	//
 57559  	// Token is a required field
 57560  	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
 57561  
 57562  	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
 57563  	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
 57564  	//
 57565  	// Url is a required field
 57566  	Url *string `locationName:"url" type:"string" required:"true"`
 57567  }
 57568  
 57569  // String returns the string representation.
 57570  //
 57571  // API parameter values that are decorated as "sensitive" in the API will not
 57572  // be included in the string output. The member name will be present, but the
 57573  // value will be replaced with "sensitive".
 57574  func (s SalesforceAction) String() string {
 57575  	return awsutil.Prettify(s)
 57576  }
 57577  
 57578  // GoString returns the string representation.
 57579  //
 57580  // API parameter values that are decorated as "sensitive" in the API will not
 57581  // be included in the string output. The member name will be present, but the
 57582  // value will be replaced with "sensitive".
 57583  func (s SalesforceAction) GoString() string {
 57584  	return s.String()
 57585  }
 57586  
 57587  // Validate inspects the fields of the type to determine if they are valid.
 57588  func (s *SalesforceAction) Validate() error {
 57589  	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
 57590  	if s.Token == nil {
 57591  		invalidParams.Add(request.NewErrParamRequired("Token"))
 57592  	}
 57593  	if s.Token != nil && len(*s.Token) < 40 {
 57594  		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
 57595  	}
 57596  	if s.Url == nil {
 57597  		invalidParams.Add(request.NewErrParamRequired("Url"))
 57598  	}
 57599  
 57600  	if invalidParams.Len() > 0 {
 57601  		return invalidParams
 57602  	}
 57603  	return nil
 57604  }
 57605  
 57606  // SetToken sets the Token field's value.
 57607  func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
 57608  	s.Token = &v
 57609  	return s
 57610  }
 57611  
 57612  // SetUrl sets the Url field's value.
 57613  func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
 57614  	s.Url = &v
 57615  	return s
 57616  }
 57617  
 57618  // Information about the scheduled audit.
 57619  type ScheduledAuditMetadata struct {
 57620  	_ struct{} `type:"structure"`
 57621  
 57622  	// The day of the month on which the scheduled audit is run (if the frequency
 57623  	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
 57624  	// many days, the audit takes place on the "LAST" day of the month.
 57625  	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
 57626  
 57627  	// The day of the week on which the scheduled audit is run (if the frequency
 57628  	// is "WEEKLY" or "BIWEEKLY").
 57629  	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
 57630  
 57631  	// How often the scheduled audit occurs.
 57632  	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
 57633  
 57634  	// The ARN of the scheduled audit.
 57635  	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
 57636  
 57637  	// The name of the scheduled audit.
 57638  	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
 57639  }
 57640  
 57641  // String returns the string representation.
 57642  //
 57643  // API parameter values that are decorated as "sensitive" in the API will not
 57644  // be included in the string output. The member name will be present, but the
 57645  // value will be replaced with "sensitive".
 57646  func (s ScheduledAuditMetadata) String() string {
 57647  	return awsutil.Prettify(s)
 57648  }
 57649  
 57650  // GoString returns the string representation.
 57651  //
 57652  // API parameter values that are decorated as "sensitive" in the API will not
 57653  // be included in the string output. The member name will be present, but the
 57654  // value will be replaced with "sensitive".
 57655  func (s ScheduledAuditMetadata) GoString() string {
 57656  	return s.String()
 57657  }
 57658  
 57659  // SetDayOfMonth sets the DayOfMonth field's value.
 57660  func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
 57661  	s.DayOfMonth = &v
 57662  	return s
 57663  }
 57664  
 57665  // SetDayOfWeek sets the DayOfWeek field's value.
 57666  func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
 57667  	s.DayOfWeek = &v
 57668  	return s
 57669  }
 57670  
 57671  // SetFrequency sets the Frequency field's value.
 57672  func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
 57673  	s.Frequency = &v
 57674  	return s
 57675  }
 57676  
 57677  // SetScheduledAuditArn sets the ScheduledAuditArn field's value.
 57678  func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
 57679  	s.ScheduledAuditArn = &v
 57680  	return s
 57681  }
 57682  
 57683  // SetScheduledAuditName sets the ScheduledAuditName field's value.
 57684  func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
 57685  	s.ScheduledAuditName = &v
 57686  	return s
 57687  }
 57688  
 57689  type SearchIndexInput struct {
 57690  	_ struct{} `type:"structure"`
 57691  
 57692  	// The search index name.
 57693  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 57694  
 57695  	// The maximum number of results to return at one time.
 57696  	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
 57697  
 57698  	// The token used to get the next set of results, or null if there are no additional
 57699  	// results.
 57700  	NextToken *string `locationName:"nextToken" type:"string"`
 57701  
 57702  	// The search query string.
 57703  	//
 57704  	// QueryString is a required field
 57705  	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
 57706  
 57707  	// The query version.
 57708  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 57709  }
 57710  
 57711  // String returns the string representation.
 57712  //
 57713  // API parameter values that are decorated as "sensitive" in the API will not
 57714  // be included in the string output. The member name will be present, but the
 57715  // value will be replaced with "sensitive".
 57716  func (s SearchIndexInput) String() string {
 57717  	return awsutil.Prettify(s)
 57718  }
 57719  
 57720  // GoString returns the string representation.
 57721  //
 57722  // API parameter values that are decorated as "sensitive" in the API will not
 57723  // be included in the string output. The member name will be present, but the
 57724  // value will be replaced with "sensitive".
 57725  func (s SearchIndexInput) GoString() string {
 57726  	return s.String()
 57727  }
 57728  
 57729  // Validate inspects the fields of the type to determine if they are valid.
 57730  func (s *SearchIndexInput) Validate() error {
 57731  	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
 57732  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 57733  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 57734  	}
 57735  	if s.MaxResults != nil && *s.MaxResults < 1 {
 57736  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 57737  	}
 57738  	if s.QueryString == nil {
 57739  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
 57740  	}
 57741  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 57742  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 57743  	}
 57744  
 57745  	if invalidParams.Len() > 0 {
 57746  		return invalidParams
 57747  	}
 57748  	return nil
 57749  }
 57750  
 57751  // SetIndexName sets the IndexName field's value.
 57752  func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
 57753  	s.IndexName = &v
 57754  	return s
 57755  }
 57756  
 57757  // SetMaxResults sets the MaxResults field's value.
 57758  func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
 57759  	s.MaxResults = &v
 57760  	return s
 57761  }
 57762  
 57763  // SetNextToken sets the NextToken field's value.
 57764  func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
 57765  	s.NextToken = &v
 57766  	return s
 57767  }
 57768  
 57769  // SetQueryString sets the QueryString field's value.
 57770  func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
 57771  	s.QueryString = &v
 57772  	return s
 57773  }
 57774  
 57775  // SetQueryVersion sets the QueryVersion field's value.
 57776  func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
 57777  	s.QueryVersion = &v
 57778  	return s
 57779  }
 57780  
 57781  type SearchIndexOutput struct {
 57782  	_ struct{} `type:"structure"`
 57783  
 57784  	// The token used to get the next set of results, or null if there are no additional
 57785  	// results.
 57786  	NextToken *string `locationName:"nextToken" type:"string"`
 57787  
 57788  	// The thing groups that match the search query.
 57789  	ThingGroups []*ThingGroupDocument `locationName:"thingGroups" type:"list"`
 57790  
 57791  	// The things that match the search query.
 57792  	Things []*ThingDocument `locationName:"things" type:"list"`
 57793  }
 57794  
 57795  // String returns the string representation.
 57796  //
 57797  // API parameter values that are decorated as "sensitive" in the API will not
 57798  // be included in the string output. The member name will be present, but the
 57799  // value will be replaced with "sensitive".
 57800  func (s SearchIndexOutput) String() string {
 57801  	return awsutil.Prettify(s)
 57802  }
 57803  
 57804  // GoString returns the string representation.
 57805  //
 57806  // API parameter values that are decorated as "sensitive" in the API will not
 57807  // be included in the string output. The member name will be present, but the
 57808  // value will be replaced with "sensitive".
 57809  func (s SearchIndexOutput) GoString() string {
 57810  	return s.String()
 57811  }
 57812  
 57813  // SetNextToken sets the NextToken field's value.
 57814  func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
 57815  	s.NextToken = &v
 57816  	return s
 57817  }
 57818  
 57819  // SetThingGroups sets the ThingGroups field's value.
 57820  func (s *SearchIndexOutput) SetThingGroups(v []*ThingGroupDocument) *SearchIndexOutput {
 57821  	s.ThingGroups = v
 57822  	return s
 57823  }
 57824  
 57825  // SetThings sets the Things field's value.
 57826  func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
 57827  	s.Things = v
 57828  	return s
 57829  }
 57830  
 57831  // Identifying information for a Device Defender security profile.
 57832  type SecurityProfileIdentifier struct {
 57833  	_ struct{} `type:"structure"`
 57834  
 57835  	// The ARN of the security profile.
 57836  	//
 57837  	// Arn is a required field
 57838  	Arn *string `locationName:"arn" type:"string" required:"true"`
 57839  
 57840  	// The name you've given to the security profile.
 57841  	//
 57842  	// Name is a required field
 57843  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
 57844  }
 57845  
 57846  // String returns the string representation.
 57847  //
 57848  // API parameter values that are decorated as "sensitive" in the API will not
 57849  // be included in the string output. The member name will be present, but the
 57850  // value will be replaced with "sensitive".
 57851  func (s SecurityProfileIdentifier) String() string {
 57852  	return awsutil.Prettify(s)
 57853  }
 57854  
 57855  // GoString returns the string representation.
 57856  //
 57857  // API parameter values that are decorated as "sensitive" in the API will not
 57858  // be included in the string output. The member name will be present, but the
 57859  // value will be replaced with "sensitive".
 57860  func (s SecurityProfileIdentifier) GoString() string {
 57861  	return s.String()
 57862  }
 57863  
 57864  // SetArn sets the Arn field's value.
 57865  func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
 57866  	s.Arn = &v
 57867  	return s
 57868  }
 57869  
 57870  // SetName sets the Name field's value.
 57871  func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
 57872  	s.Name = &v
 57873  	return s
 57874  }
 57875  
 57876  // A target to which an alert is sent when a security profile behavior is violated.
 57877  type SecurityProfileTarget struct {
 57878  	_ struct{} `type:"structure"`
 57879  
 57880  	// The ARN of the security profile.
 57881  	//
 57882  	// Arn is a required field
 57883  	Arn *string `locationName:"arn" type:"string" required:"true"`
 57884  }
 57885  
 57886  // String returns the string representation.
 57887  //
 57888  // API parameter values that are decorated as "sensitive" in the API will not
 57889  // be included in the string output. The member name will be present, but the
 57890  // value will be replaced with "sensitive".
 57891  func (s SecurityProfileTarget) String() string {
 57892  	return awsutil.Prettify(s)
 57893  }
 57894  
 57895  // GoString returns the string representation.
 57896  //
 57897  // API parameter values that are decorated as "sensitive" in the API will not
 57898  // be included in the string output. The member name will be present, but the
 57899  // value will be replaced with "sensitive".
 57900  func (s SecurityProfileTarget) GoString() string {
 57901  	return s.String()
 57902  }
 57903  
 57904  // SetArn sets the Arn field's value.
 57905  func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
 57906  	s.Arn = &v
 57907  	return s
 57908  }
 57909  
 57910  // Information about a security profile and the target associated with it.
 57911  type SecurityProfileTargetMapping struct {
 57912  	_ struct{} `type:"structure"`
 57913  
 57914  	// Information that identifies the security profile.
 57915  	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
 57916  
 57917  	// Information about the target (thing group) associated with the security profile.
 57918  	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
 57919  }
 57920  
 57921  // String returns the string representation.
 57922  //
 57923  // API parameter values that are decorated as "sensitive" in the API will not
 57924  // be included in the string output. The member name will be present, but the
 57925  // value will be replaced with "sensitive".
 57926  func (s SecurityProfileTargetMapping) String() string {
 57927  	return awsutil.Prettify(s)
 57928  }
 57929  
 57930  // GoString returns the string representation.
 57931  //
 57932  // API parameter values that are decorated as "sensitive" in the API will not
 57933  // be included in the string output. The member name will be present, but the
 57934  // value will be replaced with "sensitive".
 57935  func (s SecurityProfileTargetMapping) GoString() string {
 57936  	return s.String()
 57937  }
 57938  
 57939  // SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
 57940  func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
 57941  	s.SecurityProfileIdentifier = v
 57942  	return s
 57943  }
 57944  
 57945  // SetTarget sets the Target field's value.
 57946  func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
 57947  	s.Target = v
 57948  	return s
 57949  }
 57950  
 57951  // An object that contains information about a server certificate.
 57952  type ServerCertificateSummary struct {
 57953  	_ struct{} `type:"structure"`
 57954  
 57955  	// The ARN of the server certificate.
 57956  	ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"`
 57957  
 57958  	// The status of the server certificate.
 57959  	ServerCertificateStatus *string `locationName:"serverCertificateStatus" type:"string" enum:"ServerCertificateStatus"`
 57960  
 57961  	// Details that explain the status of the server certificate.
 57962  	ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"`
 57963  }
 57964  
 57965  // String returns the string representation.
 57966  //
 57967  // API parameter values that are decorated as "sensitive" in the API will not
 57968  // be included in the string output. The member name will be present, but the
 57969  // value will be replaced with "sensitive".
 57970  func (s ServerCertificateSummary) String() string {
 57971  	return awsutil.Prettify(s)
 57972  }
 57973  
 57974  // GoString returns the string representation.
 57975  //
 57976  // API parameter values that are decorated as "sensitive" in the API will not
 57977  // be included in the string output. The member name will be present, but the
 57978  // value will be replaced with "sensitive".
 57979  func (s ServerCertificateSummary) GoString() string {
 57980  	return s.String()
 57981  }
 57982  
 57983  // SetServerCertificateArn sets the ServerCertificateArn field's value.
 57984  func (s *ServerCertificateSummary) SetServerCertificateArn(v string) *ServerCertificateSummary {
 57985  	s.ServerCertificateArn = &v
 57986  	return s
 57987  }
 57988  
 57989  // SetServerCertificateStatus sets the ServerCertificateStatus field's value.
 57990  func (s *ServerCertificateSummary) SetServerCertificateStatus(v string) *ServerCertificateSummary {
 57991  	s.ServerCertificateStatus = &v
 57992  	return s
 57993  }
 57994  
 57995  // SetServerCertificateStatusDetail sets the ServerCertificateStatusDetail field's value.
 57996  func (s *ServerCertificateSummary) SetServerCertificateStatusDetail(v string) *ServerCertificateSummary {
 57997  	s.ServerCertificateStatusDetail = &v
 57998  	return s
 57999  }
 58000  
 58001  // The service is temporarily unavailable.
 58002  type ServiceUnavailableException struct {
 58003  	_            struct{}                  `type:"structure"`
 58004  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 58005  
 58006  	// The message for the exception.
 58007  	Message_ *string `locationName:"message" type:"string"`
 58008  }
 58009  
 58010  // String returns the string representation.
 58011  //
 58012  // API parameter values that are decorated as "sensitive" in the API will not
 58013  // be included in the string output. The member name will be present, but the
 58014  // value will be replaced with "sensitive".
 58015  func (s ServiceUnavailableException) String() string {
 58016  	return awsutil.Prettify(s)
 58017  }
 58018  
 58019  // GoString returns the string representation.
 58020  //
 58021  // API parameter values that are decorated as "sensitive" in the API will not
 58022  // be included in the string output. The member name will be present, but the
 58023  // value will be replaced with "sensitive".
 58024  func (s ServiceUnavailableException) GoString() string {
 58025  	return s.String()
 58026  }
 58027  
 58028  func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
 58029  	return &ServiceUnavailableException{
 58030  		RespMetadata: v,
 58031  	}
 58032  }
 58033  
 58034  // Code returns the exception type name.
 58035  func (s *ServiceUnavailableException) Code() string {
 58036  	return "ServiceUnavailableException"
 58037  }
 58038  
 58039  // Message returns the exception's message.
 58040  func (s *ServiceUnavailableException) Message() string {
 58041  	if s.Message_ != nil {
 58042  		return *s.Message_
 58043  	}
 58044  	return ""
 58045  }
 58046  
 58047  // OrigErr always returns nil, satisfies awserr.Error interface.
 58048  func (s *ServiceUnavailableException) OrigErr() error {
 58049  	return nil
 58050  }
 58051  
 58052  func (s *ServiceUnavailableException) Error() string {
 58053  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 58054  }
 58055  
 58056  // Status code returns the HTTP status code for the request's response error.
 58057  func (s *ServiceUnavailableException) StatusCode() int {
 58058  	return s.RespMetadata.StatusCode
 58059  }
 58060  
 58061  // RequestID returns the service's response RequestID for request.
 58062  func (s *ServiceUnavailableException) RequestID() string {
 58063  	return s.RespMetadata.RequestID
 58064  }
 58065  
 58066  type SetDefaultAuthorizerInput struct {
 58067  	_ struct{} `type:"structure"`
 58068  
 58069  	// The authorizer name.
 58070  	//
 58071  	// AuthorizerName is a required field
 58072  	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
 58073  }
 58074  
 58075  // String returns the string representation.
 58076  //
 58077  // API parameter values that are decorated as "sensitive" in the API will not
 58078  // be included in the string output. The member name will be present, but the
 58079  // value will be replaced with "sensitive".
 58080  func (s SetDefaultAuthorizerInput) String() string {
 58081  	return awsutil.Prettify(s)
 58082  }
 58083  
 58084  // GoString returns the string representation.
 58085  //
 58086  // API parameter values that are decorated as "sensitive" in the API will not
 58087  // be included in the string output. The member name will be present, but the
 58088  // value will be replaced with "sensitive".
 58089  func (s SetDefaultAuthorizerInput) GoString() string {
 58090  	return s.String()
 58091  }
 58092  
 58093  // Validate inspects the fields of the type to determine if they are valid.
 58094  func (s *SetDefaultAuthorizerInput) Validate() error {
 58095  	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
 58096  	if s.AuthorizerName == nil {
 58097  		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
 58098  	}
 58099  	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
 58100  		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
 58101  	}
 58102  
 58103  	if invalidParams.Len() > 0 {
 58104  		return invalidParams
 58105  	}
 58106  	return nil
 58107  }
 58108  
 58109  // SetAuthorizerName sets the AuthorizerName field's value.
 58110  func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
 58111  	s.AuthorizerName = &v
 58112  	return s
 58113  }
 58114  
 58115  type SetDefaultAuthorizerOutput struct {
 58116  	_ struct{} `type:"structure"`
 58117  
 58118  	// The authorizer ARN.
 58119  	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
 58120  
 58121  	// The authorizer name.
 58122  	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
 58123  }
 58124  
 58125  // String returns the string representation.
 58126  //
 58127  // API parameter values that are decorated as "sensitive" in the API will not
 58128  // be included in the string output. The member name will be present, but the
 58129  // value will be replaced with "sensitive".
 58130  func (s SetDefaultAuthorizerOutput) String() string {
 58131  	return awsutil.Prettify(s)
 58132  }
 58133  
 58134  // GoString returns the string representation.
 58135  //
 58136  // API parameter values that are decorated as "sensitive" in the API will not
 58137  // be included in the string output. The member name will be present, but the
 58138  // value will be replaced with "sensitive".
 58139  func (s SetDefaultAuthorizerOutput) GoString() string {
 58140  	return s.String()
 58141  }
 58142  
 58143  // SetAuthorizerArn sets the AuthorizerArn field's value.
 58144  func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
 58145  	s.AuthorizerArn = &v
 58146  	return s
 58147  }
 58148  
 58149  // SetAuthorizerName sets the AuthorizerName field's value.
 58150  func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
 58151  	s.AuthorizerName = &v
 58152  	return s
 58153  }
 58154  
 58155  // The input for the SetDefaultPolicyVersion operation.
 58156  type SetDefaultPolicyVersionInput struct {
 58157  	_ struct{} `type:"structure" nopayload:"true"`
 58158  
 58159  	// The policy name.
 58160  	//
 58161  	// PolicyName is a required field
 58162  	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
 58163  
 58164  	// The policy version ID.
 58165  	//
 58166  	// PolicyVersionId is a required field
 58167  	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
 58168  }
 58169  
 58170  // String returns the string representation.
 58171  //
 58172  // API parameter values that are decorated as "sensitive" in the API will not
 58173  // be included in the string output. The member name will be present, but the
 58174  // value will be replaced with "sensitive".
 58175  func (s SetDefaultPolicyVersionInput) String() string {
 58176  	return awsutil.Prettify(s)
 58177  }
 58178  
 58179  // GoString returns the string representation.
 58180  //
 58181  // API parameter values that are decorated as "sensitive" in the API will not
 58182  // be included in the string output. The member name will be present, but the
 58183  // value will be replaced with "sensitive".
 58184  func (s SetDefaultPolicyVersionInput) GoString() string {
 58185  	return s.String()
 58186  }
 58187  
 58188  // Validate inspects the fields of the type to determine if they are valid.
 58189  func (s *SetDefaultPolicyVersionInput) Validate() error {
 58190  	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
 58191  	if s.PolicyName == nil {
 58192  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 58193  	}
 58194  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 58195  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 58196  	}
 58197  	if s.PolicyVersionId == nil {
 58198  		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
 58199  	}
 58200  	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
 58201  		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
 58202  	}
 58203  
 58204  	if invalidParams.Len() > 0 {
 58205  		return invalidParams
 58206  	}
 58207  	return nil
 58208  }
 58209  
 58210  // SetPolicyName sets the PolicyName field's value.
 58211  func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
 58212  	s.PolicyName = &v
 58213  	return s
 58214  }
 58215  
 58216  // SetPolicyVersionId sets the PolicyVersionId field's value.
 58217  func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
 58218  	s.PolicyVersionId = &v
 58219  	return s
 58220  }
 58221  
 58222  type SetDefaultPolicyVersionOutput struct {
 58223  	_ struct{} `type:"structure" nopayload:"true"`
 58224  }
 58225  
 58226  // String returns the string representation.
 58227  //
 58228  // API parameter values that are decorated as "sensitive" in the API will not
 58229  // be included in the string output. The member name will be present, but the
 58230  // value will be replaced with "sensitive".
 58231  func (s SetDefaultPolicyVersionOutput) String() string {
 58232  	return awsutil.Prettify(s)
 58233  }
 58234  
 58235  // GoString returns the string representation.
 58236  //
 58237  // API parameter values that are decorated as "sensitive" in the API will not
 58238  // be included in the string output. The member name will be present, but the
 58239  // value will be replaced with "sensitive".
 58240  func (s SetDefaultPolicyVersionOutput) GoString() string {
 58241  	return s.String()
 58242  }
 58243  
 58244  // The input for the SetLoggingOptions operation.
 58245  type SetLoggingOptionsInput struct {
 58246  	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
 58247  
 58248  	// The logging options payload.
 58249  	//
 58250  	// LoggingOptionsPayload is a required field
 58251  	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
 58252  }
 58253  
 58254  // String returns the string representation.
 58255  //
 58256  // API parameter values that are decorated as "sensitive" in the API will not
 58257  // be included in the string output. The member name will be present, but the
 58258  // value will be replaced with "sensitive".
 58259  func (s SetLoggingOptionsInput) String() string {
 58260  	return awsutil.Prettify(s)
 58261  }
 58262  
 58263  // GoString returns the string representation.
 58264  //
 58265  // API parameter values that are decorated as "sensitive" in the API will not
 58266  // be included in the string output. The member name will be present, but the
 58267  // value will be replaced with "sensitive".
 58268  func (s SetLoggingOptionsInput) GoString() string {
 58269  	return s.String()
 58270  }
 58271  
 58272  // Validate inspects the fields of the type to determine if they are valid.
 58273  func (s *SetLoggingOptionsInput) Validate() error {
 58274  	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
 58275  	if s.LoggingOptionsPayload == nil {
 58276  		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
 58277  	}
 58278  	if s.LoggingOptionsPayload != nil {
 58279  		if err := s.LoggingOptionsPayload.Validate(); err != nil {
 58280  			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
 58281  		}
 58282  	}
 58283  
 58284  	if invalidParams.Len() > 0 {
 58285  		return invalidParams
 58286  	}
 58287  	return nil
 58288  }
 58289  
 58290  // SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
 58291  func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
 58292  	s.LoggingOptionsPayload = v
 58293  	return s
 58294  }
 58295  
 58296  type SetLoggingOptionsOutput struct {
 58297  	_ struct{} `type:"structure" nopayload:"true"`
 58298  }
 58299  
 58300  // String returns the string representation.
 58301  //
 58302  // API parameter values that are decorated as "sensitive" in the API will not
 58303  // be included in the string output. The member name will be present, but the
 58304  // value will be replaced with "sensitive".
 58305  func (s SetLoggingOptionsOutput) String() string {
 58306  	return awsutil.Prettify(s)
 58307  }
 58308  
 58309  // GoString returns the string representation.
 58310  //
 58311  // API parameter values that are decorated as "sensitive" in the API will not
 58312  // be included in the string output. The member name will be present, but the
 58313  // value will be replaced with "sensitive".
 58314  func (s SetLoggingOptionsOutput) GoString() string {
 58315  	return s.String()
 58316  }
 58317  
 58318  type SetV2LoggingLevelInput struct {
 58319  	_ struct{} `type:"structure"`
 58320  
 58321  	// The log level.
 58322  	//
 58323  	// LogLevel is a required field
 58324  	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
 58325  
 58326  	// The log target.
 58327  	//
 58328  	// LogTarget is a required field
 58329  	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
 58330  }
 58331  
 58332  // String returns the string representation.
 58333  //
 58334  // API parameter values that are decorated as "sensitive" in the API will not
 58335  // be included in the string output. The member name will be present, but the
 58336  // value will be replaced with "sensitive".
 58337  func (s SetV2LoggingLevelInput) String() string {
 58338  	return awsutil.Prettify(s)
 58339  }
 58340  
 58341  // GoString returns the string representation.
 58342  //
 58343  // API parameter values that are decorated as "sensitive" in the API will not
 58344  // be included in the string output. The member name will be present, but the
 58345  // value will be replaced with "sensitive".
 58346  func (s SetV2LoggingLevelInput) GoString() string {
 58347  	return s.String()
 58348  }
 58349  
 58350  // Validate inspects the fields of the type to determine if they are valid.
 58351  func (s *SetV2LoggingLevelInput) Validate() error {
 58352  	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
 58353  	if s.LogLevel == nil {
 58354  		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
 58355  	}
 58356  	if s.LogTarget == nil {
 58357  		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
 58358  	}
 58359  	if s.LogTarget != nil {
 58360  		if err := s.LogTarget.Validate(); err != nil {
 58361  			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
 58362  		}
 58363  	}
 58364  
 58365  	if invalidParams.Len() > 0 {
 58366  		return invalidParams
 58367  	}
 58368  	return nil
 58369  }
 58370  
 58371  // SetLogLevel sets the LogLevel field's value.
 58372  func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
 58373  	s.LogLevel = &v
 58374  	return s
 58375  }
 58376  
 58377  // SetLogTarget sets the LogTarget field's value.
 58378  func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
 58379  	s.LogTarget = v
 58380  	return s
 58381  }
 58382  
 58383  type SetV2LoggingLevelOutput struct {
 58384  	_ struct{} `type:"structure" nopayload:"true"`
 58385  }
 58386  
 58387  // String returns the string representation.
 58388  //
 58389  // API parameter values that are decorated as "sensitive" in the API will not
 58390  // be included in the string output. The member name will be present, but the
 58391  // value will be replaced with "sensitive".
 58392  func (s SetV2LoggingLevelOutput) String() string {
 58393  	return awsutil.Prettify(s)
 58394  }
 58395  
 58396  // GoString returns the string representation.
 58397  //
 58398  // API parameter values that are decorated as "sensitive" in the API will not
 58399  // be included in the string output. The member name will be present, but the
 58400  // value will be replaced with "sensitive".
 58401  func (s SetV2LoggingLevelOutput) GoString() string {
 58402  	return s.String()
 58403  }
 58404  
 58405  type SetV2LoggingOptionsInput struct {
 58406  	_ struct{} `type:"structure"`
 58407  
 58408  	// The default logging level.
 58409  	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
 58410  
 58411  	// If true all logs are disabled. The default is false.
 58412  	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
 58413  
 58414  	// The ARN of the role that allows IoT to write to Cloudwatch logs.
 58415  	RoleArn *string `locationName:"roleArn" type:"string"`
 58416  }
 58417  
 58418  // String returns the string representation.
 58419  //
 58420  // API parameter values that are decorated as "sensitive" in the API will not
 58421  // be included in the string output. The member name will be present, but the
 58422  // value will be replaced with "sensitive".
 58423  func (s SetV2LoggingOptionsInput) String() string {
 58424  	return awsutil.Prettify(s)
 58425  }
 58426  
 58427  // GoString returns the string representation.
 58428  //
 58429  // API parameter values that are decorated as "sensitive" in the API will not
 58430  // be included in the string output. The member name will be present, but the
 58431  // value will be replaced with "sensitive".
 58432  func (s SetV2LoggingOptionsInput) GoString() string {
 58433  	return s.String()
 58434  }
 58435  
 58436  // SetDefaultLogLevel sets the DefaultLogLevel field's value.
 58437  func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
 58438  	s.DefaultLogLevel = &v
 58439  	return s
 58440  }
 58441  
 58442  // SetDisableAllLogs sets the DisableAllLogs field's value.
 58443  func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
 58444  	s.DisableAllLogs = &v
 58445  	return s
 58446  }
 58447  
 58448  // SetRoleArn sets the RoleArn field's value.
 58449  func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
 58450  	s.RoleArn = &v
 58451  	return s
 58452  }
 58453  
 58454  type SetV2LoggingOptionsOutput struct {
 58455  	_ struct{} `type:"structure" nopayload:"true"`
 58456  }
 58457  
 58458  // String returns the string representation.
 58459  //
 58460  // API parameter values that are decorated as "sensitive" in the API will not
 58461  // be included in the string output. The member name will be present, but the
 58462  // value will be replaced with "sensitive".
 58463  func (s SetV2LoggingOptionsOutput) String() string {
 58464  	return awsutil.Prettify(s)
 58465  }
 58466  
 58467  // GoString returns the string representation.
 58468  //
 58469  // API parameter values that are decorated as "sensitive" in the API will not
 58470  // be included in the string output. The member name will be present, but the
 58471  // value will be replaced with "sensitive".
 58472  func (s SetV2LoggingOptionsOutput) GoString() string {
 58473  	return s.String()
 58474  }
 58475  
 58476  // For more information, see Signature Version 4 signing process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
 58477  type SigV4Authorization struct {
 58478  	_ struct{} `type:"structure"`
 58479  
 58480  	// The ARN of the signing role.
 58481  	//
 58482  	// RoleArn is a required field
 58483  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 58484  
 58485  	// The service name to use while signing with Sig V4.
 58486  	//
 58487  	// ServiceName is a required field
 58488  	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
 58489  
 58490  	// The signing region.
 58491  	//
 58492  	// SigningRegion is a required field
 58493  	SigningRegion *string `locationName:"signingRegion" type:"string" required:"true"`
 58494  }
 58495  
 58496  // String returns the string representation.
 58497  //
 58498  // API parameter values that are decorated as "sensitive" in the API will not
 58499  // be included in the string output. The member name will be present, but the
 58500  // value will be replaced with "sensitive".
 58501  func (s SigV4Authorization) String() string {
 58502  	return awsutil.Prettify(s)
 58503  }
 58504  
 58505  // GoString returns the string representation.
 58506  //
 58507  // API parameter values that are decorated as "sensitive" in the API will not
 58508  // be included in the string output. The member name will be present, but the
 58509  // value will be replaced with "sensitive".
 58510  func (s SigV4Authorization) GoString() string {
 58511  	return s.String()
 58512  }
 58513  
 58514  // Validate inspects the fields of the type to determine if they are valid.
 58515  func (s *SigV4Authorization) Validate() error {
 58516  	invalidParams := request.ErrInvalidParams{Context: "SigV4Authorization"}
 58517  	if s.RoleArn == nil {
 58518  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 58519  	}
 58520  	if s.ServiceName == nil {
 58521  		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
 58522  	}
 58523  	if s.SigningRegion == nil {
 58524  		invalidParams.Add(request.NewErrParamRequired("SigningRegion"))
 58525  	}
 58526  
 58527  	if invalidParams.Len() > 0 {
 58528  		return invalidParams
 58529  	}
 58530  	return nil
 58531  }
 58532  
 58533  // SetRoleArn sets the RoleArn field's value.
 58534  func (s *SigV4Authorization) SetRoleArn(v string) *SigV4Authorization {
 58535  	s.RoleArn = &v
 58536  	return s
 58537  }
 58538  
 58539  // SetServiceName sets the ServiceName field's value.
 58540  func (s *SigV4Authorization) SetServiceName(v string) *SigV4Authorization {
 58541  	s.ServiceName = &v
 58542  	return s
 58543  }
 58544  
 58545  // SetSigningRegion sets the SigningRegion field's value.
 58546  func (s *SigV4Authorization) SetSigningRegion(v string) *SigV4Authorization {
 58547  	s.SigningRegion = &v
 58548  	return s
 58549  }
 58550  
 58551  // Describes the code-signing profile.
 58552  type SigningProfileParameter struct {
 58553  	_ struct{} `type:"structure"`
 58554  
 58555  	// Certificate ARN.
 58556  	CertificateArn *string `locationName:"certificateArn" type:"string"`
 58557  
 58558  	// The location of the code-signing certificate on your device.
 58559  	CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"`
 58560  
 58561  	// The hardware platform of your device.
 58562  	Platform *string `locationName:"platform" type:"string"`
 58563  }
 58564  
 58565  // String returns the string representation.
 58566  //
 58567  // API parameter values that are decorated as "sensitive" in the API will not
 58568  // be included in the string output. The member name will be present, but the
 58569  // value will be replaced with "sensitive".
 58570  func (s SigningProfileParameter) String() string {
 58571  	return awsutil.Prettify(s)
 58572  }
 58573  
 58574  // GoString returns the string representation.
 58575  //
 58576  // API parameter values that are decorated as "sensitive" in the API will not
 58577  // be included in the string output. The member name will be present, but the
 58578  // value will be replaced with "sensitive".
 58579  func (s SigningProfileParameter) GoString() string {
 58580  	return s.String()
 58581  }
 58582  
 58583  // SetCertificateArn sets the CertificateArn field's value.
 58584  func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter {
 58585  	s.CertificateArn = &v
 58586  	return s
 58587  }
 58588  
 58589  // SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value.
 58590  func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter {
 58591  	s.CertificatePathOnDevice = &v
 58592  	return s
 58593  }
 58594  
 58595  // SetPlatform sets the Platform field's value.
 58596  func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter {
 58597  	s.Platform = &v
 58598  	return s
 58599  }
 58600  
 58601  // Describes an action to publish to an Amazon SNS topic.
 58602  type SnsAction struct {
 58603  	_ struct{} `type:"structure"`
 58604  
 58605  	// (Optional) The message format of the message to publish. Accepted values
 58606  	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
 58607  	// this setting to determine if the payload should be parsed and relevant platform-specific
 58608  	// bits of the payload should be extracted. To read more about SNS message formats,
 58609  	// see https://docs.aws.amazon.com/sns/latest/dg/json-formats.html (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
 58610  	// refer to their official documentation.
 58611  	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
 58612  
 58613  	// The ARN of the IAM role that grants access.
 58614  	//
 58615  	// RoleArn is a required field
 58616  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 58617  
 58618  	// The ARN of the SNS topic.
 58619  	//
 58620  	// TargetArn is a required field
 58621  	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
 58622  }
 58623  
 58624  // String returns the string representation.
 58625  //
 58626  // API parameter values that are decorated as "sensitive" in the API will not
 58627  // be included in the string output. The member name will be present, but the
 58628  // value will be replaced with "sensitive".
 58629  func (s SnsAction) String() string {
 58630  	return awsutil.Prettify(s)
 58631  }
 58632  
 58633  // GoString returns the string representation.
 58634  //
 58635  // API parameter values that are decorated as "sensitive" in the API will not
 58636  // be included in the string output. The member name will be present, but the
 58637  // value will be replaced with "sensitive".
 58638  func (s SnsAction) GoString() string {
 58639  	return s.String()
 58640  }
 58641  
 58642  // Validate inspects the fields of the type to determine if they are valid.
 58643  func (s *SnsAction) Validate() error {
 58644  	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
 58645  	if s.RoleArn == nil {
 58646  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 58647  	}
 58648  	if s.TargetArn == nil {
 58649  		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
 58650  	}
 58651  
 58652  	if invalidParams.Len() > 0 {
 58653  		return invalidParams
 58654  	}
 58655  	return nil
 58656  }
 58657  
 58658  // SetMessageFormat sets the MessageFormat field's value.
 58659  func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
 58660  	s.MessageFormat = &v
 58661  	return s
 58662  }
 58663  
 58664  // SetRoleArn sets the RoleArn field's value.
 58665  func (s *SnsAction) SetRoleArn(v string) *SnsAction {
 58666  	s.RoleArn = &v
 58667  	return s
 58668  }
 58669  
 58670  // SetTargetArn sets the TargetArn field's value.
 58671  func (s *SnsAction) SetTargetArn(v string) *SnsAction {
 58672  	s.TargetArn = &v
 58673  	return s
 58674  }
 58675  
 58676  // The Rule-SQL expression can't be parsed correctly.
 58677  type SqlParseException struct {
 58678  	_            struct{}                  `type:"structure"`
 58679  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 58680  
 58681  	// The message for the exception.
 58682  	Message_ *string `locationName:"message" type:"string"`
 58683  }
 58684  
 58685  // String returns the string representation.
 58686  //
 58687  // API parameter values that are decorated as "sensitive" in the API will not
 58688  // be included in the string output. The member name will be present, but the
 58689  // value will be replaced with "sensitive".
 58690  func (s SqlParseException) String() string {
 58691  	return awsutil.Prettify(s)
 58692  }
 58693  
 58694  // GoString returns the string representation.
 58695  //
 58696  // API parameter values that are decorated as "sensitive" in the API will not
 58697  // be included in the string output. The member name will be present, but the
 58698  // value will be replaced with "sensitive".
 58699  func (s SqlParseException) GoString() string {
 58700  	return s.String()
 58701  }
 58702  
 58703  func newErrorSqlParseException(v protocol.ResponseMetadata) error {
 58704  	return &SqlParseException{
 58705  		RespMetadata: v,
 58706  	}
 58707  }
 58708  
 58709  // Code returns the exception type name.
 58710  func (s *SqlParseException) Code() string {
 58711  	return "SqlParseException"
 58712  }
 58713  
 58714  // Message returns the exception's message.
 58715  func (s *SqlParseException) Message() string {
 58716  	if s.Message_ != nil {
 58717  		return *s.Message_
 58718  	}
 58719  	return ""
 58720  }
 58721  
 58722  // OrigErr always returns nil, satisfies awserr.Error interface.
 58723  func (s *SqlParseException) OrigErr() error {
 58724  	return nil
 58725  }
 58726  
 58727  func (s *SqlParseException) Error() string {
 58728  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 58729  }
 58730  
 58731  // Status code returns the HTTP status code for the request's response error.
 58732  func (s *SqlParseException) StatusCode() int {
 58733  	return s.RespMetadata.StatusCode
 58734  }
 58735  
 58736  // RequestID returns the service's response RequestID for request.
 58737  func (s *SqlParseException) RequestID() string {
 58738  	return s.RespMetadata.RequestID
 58739  }
 58740  
 58741  // Describes an action to publish data to an Amazon SQS queue.
 58742  type SqsAction struct {
 58743  	_ struct{} `type:"structure"`
 58744  
 58745  	// The URL of the Amazon SQS queue.
 58746  	//
 58747  	// QueueUrl is a required field
 58748  	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
 58749  
 58750  	// The ARN of the IAM role that grants access.
 58751  	//
 58752  	// RoleArn is a required field
 58753  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 58754  
 58755  	// Specifies whether to use Base64 encoding.
 58756  	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
 58757  }
 58758  
 58759  // String returns the string representation.
 58760  //
 58761  // API parameter values that are decorated as "sensitive" in the API will not
 58762  // be included in the string output. The member name will be present, but the
 58763  // value will be replaced with "sensitive".
 58764  func (s SqsAction) String() string {
 58765  	return awsutil.Prettify(s)
 58766  }
 58767  
 58768  // GoString returns the string representation.
 58769  //
 58770  // API parameter values that are decorated as "sensitive" in the API will not
 58771  // be included in the string output. The member name will be present, but the
 58772  // value will be replaced with "sensitive".
 58773  func (s SqsAction) GoString() string {
 58774  	return s.String()
 58775  }
 58776  
 58777  // Validate inspects the fields of the type to determine if they are valid.
 58778  func (s *SqsAction) Validate() error {
 58779  	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
 58780  	if s.QueueUrl == nil {
 58781  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
 58782  	}
 58783  	if s.RoleArn == nil {
 58784  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 58785  	}
 58786  
 58787  	if invalidParams.Len() > 0 {
 58788  		return invalidParams
 58789  	}
 58790  	return nil
 58791  }
 58792  
 58793  // SetQueueUrl sets the QueueUrl field's value.
 58794  func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
 58795  	s.QueueUrl = &v
 58796  	return s
 58797  }
 58798  
 58799  // SetRoleArn sets the RoleArn field's value.
 58800  func (s *SqsAction) SetRoleArn(v string) *SqsAction {
 58801  	s.RoleArn = &v
 58802  	return s
 58803  }
 58804  
 58805  // SetUseBase64 sets the UseBase64 field's value.
 58806  func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
 58807  	s.UseBase64 = &v
 58808  	return s
 58809  }
 58810  
 58811  type StartAuditMitigationActionsTaskInput struct {
 58812  	_ struct{} `type:"structure"`
 58813  
 58814  	// For an audit check, specifies which mitigation actions to apply. Those actions
 58815  	// must be defined in your Amazon Web Services accounts.
 58816  	//
 58817  	// AuditCheckToActionsMapping is a required field
 58818  	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map" required:"true"`
 58819  
 58820  	// Each audit mitigation task must have a unique client request token. If you
 58821  	// try to start a new task with the same token as a task that already exists,
 58822  	// an exception occurs. If you omit this value, a unique client request token
 58823  	// is generated automatically.
 58824  	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
 58825  
 58826  	// Specifies the audit findings to which the mitigation actions are applied.
 58827  	// You can apply them to a type of audit check, to all findings from an audit,
 58828  	// or to a specific set of findings.
 58829  	//
 58830  	// Target is a required field
 58831  	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
 58832  
 58833  	// A unique identifier for the task. You can use this identifier to check the
 58834  	// status of the task or to cancel it.
 58835  	//
 58836  	// TaskId is a required field
 58837  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 58838  }
 58839  
 58840  // String returns the string representation.
 58841  //
 58842  // API parameter values that are decorated as "sensitive" in the API will not
 58843  // be included in the string output. The member name will be present, but the
 58844  // value will be replaced with "sensitive".
 58845  func (s StartAuditMitigationActionsTaskInput) String() string {
 58846  	return awsutil.Prettify(s)
 58847  }
 58848  
 58849  // GoString returns the string representation.
 58850  //
 58851  // API parameter values that are decorated as "sensitive" in the API will not
 58852  // be included in the string output. The member name will be present, but the
 58853  // value will be replaced with "sensitive".
 58854  func (s StartAuditMitigationActionsTaskInput) GoString() string {
 58855  	return s.String()
 58856  }
 58857  
 58858  // Validate inspects the fields of the type to determine if they are valid.
 58859  func (s *StartAuditMitigationActionsTaskInput) Validate() error {
 58860  	invalidParams := request.ErrInvalidParams{Context: "StartAuditMitigationActionsTaskInput"}
 58861  	if s.AuditCheckToActionsMapping == nil {
 58862  		invalidParams.Add(request.NewErrParamRequired("AuditCheckToActionsMapping"))
 58863  	}
 58864  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 58865  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 58866  	}
 58867  	if s.Target == nil {
 58868  		invalidParams.Add(request.NewErrParamRequired("Target"))
 58869  	}
 58870  	if s.TaskId == nil {
 58871  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 58872  	}
 58873  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 58874  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 58875  	}
 58876  	if s.Target != nil {
 58877  		if err := s.Target.Validate(); err != nil {
 58878  			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
 58879  		}
 58880  	}
 58881  
 58882  	if invalidParams.Len() > 0 {
 58883  		return invalidParams
 58884  	}
 58885  	return nil
 58886  }
 58887  
 58888  // SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
 58889  func (s *StartAuditMitigationActionsTaskInput) SetAuditCheckToActionsMapping(v map[string][]*string) *StartAuditMitigationActionsTaskInput {
 58890  	s.AuditCheckToActionsMapping = v
 58891  	return s
 58892  }
 58893  
 58894  // SetClientRequestToken sets the ClientRequestToken field's value.
 58895  func (s *StartAuditMitigationActionsTaskInput) SetClientRequestToken(v string) *StartAuditMitigationActionsTaskInput {
 58896  	s.ClientRequestToken = &v
 58897  	return s
 58898  }
 58899  
 58900  // SetTarget sets the Target field's value.
 58901  func (s *StartAuditMitigationActionsTaskInput) SetTarget(v *AuditMitigationActionsTaskTarget) *StartAuditMitigationActionsTaskInput {
 58902  	s.Target = v
 58903  	return s
 58904  }
 58905  
 58906  // SetTaskId sets the TaskId field's value.
 58907  func (s *StartAuditMitigationActionsTaskInput) SetTaskId(v string) *StartAuditMitigationActionsTaskInput {
 58908  	s.TaskId = &v
 58909  	return s
 58910  }
 58911  
 58912  type StartAuditMitigationActionsTaskOutput struct {
 58913  	_ struct{} `type:"structure"`
 58914  
 58915  	// The unique identifier for the audit mitigation task. This matches the taskId
 58916  	// that you specified in the request.
 58917  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 58918  }
 58919  
 58920  // String returns the string representation.
 58921  //
 58922  // API parameter values that are decorated as "sensitive" in the API will not
 58923  // be included in the string output. The member name will be present, but the
 58924  // value will be replaced with "sensitive".
 58925  func (s StartAuditMitigationActionsTaskOutput) String() string {
 58926  	return awsutil.Prettify(s)
 58927  }
 58928  
 58929  // GoString returns the string representation.
 58930  //
 58931  // API parameter values that are decorated as "sensitive" in the API will not
 58932  // be included in the string output. The member name will be present, but the
 58933  // value will be replaced with "sensitive".
 58934  func (s StartAuditMitigationActionsTaskOutput) GoString() string {
 58935  	return s.String()
 58936  }
 58937  
 58938  // SetTaskId sets the TaskId field's value.
 58939  func (s *StartAuditMitigationActionsTaskOutput) SetTaskId(v string) *StartAuditMitigationActionsTaskOutput {
 58940  	s.TaskId = &v
 58941  	return s
 58942  }
 58943  
 58944  type StartDetectMitigationActionsTaskInput struct {
 58945  	_ struct{} `type:"structure"`
 58946  
 58947  	// The actions to be performed when a device has unexpected behavior.
 58948  	//
 58949  	// Actions is a required field
 58950  	Actions []*string `locationName:"actions" min:"1" type:"list" required:"true"`
 58951  
 58952  	// Each mitigation action task must have a unique client request token. If you
 58953  	// try to create a new task with the same token as a task that already exists,
 58954  	// an exception occurs. If you omit this value, Amazon Web Services SDKs will
 58955  	// automatically generate a unique client request.
 58956  	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
 58957  
 58958  	// Specifies to list only active violations.
 58959  	IncludeOnlyActiveViolations *bool `locationName:"includeOnlyActiveViolations" type:"boolean"`
 58960  
 58961  	// Specifies to include suppressed alerts.
 58962  	IncludeSuppressedAlerts *bool `locationName:"includeSuppressedAlerts" type:"boolean"`
 58963  
 58964  	// Specifies the ML Detect findings to which the mitigation actions are applied.
 58965  	//
 58966  	// Target is a required field
 58967  	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
 58968  
 58969  	// The unique identifier of the task.
 58970  	//
 58971  	// TaskId is a required field
 58972  	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
 58973  
 58974  	// Specifies the time period of which violation events occurred between.
 58975  	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
 58976  }
 58977  
 58978  // String returns the string representation.
 58979  //
 58980  // API parameter values that are decorated as "sensitive" in the API will not
 58981  // be included in the string output. The member name will be present, but the
 58982  // value will be replaced with "sensitive".
 58983  func (s StartDetectMitigationActionsTaskInput) String() string {
 58984  	return awsutil.Prettify(s)
 58985  }
 58986  
 58987  // GoString returns the string representation.
 58988  //
 58989  // API parameter values that are decorated as "sensitive" in the API will not
 58990  // be included in the string output. The member name will be present, but the
 58991  // value will be replaced with "sensitive".
 58992  func (s StartDetectMitigationActionsTaskInput) GoString() string {
 58993  	return s.String()
 58994  }
 58995  
 58996  // Validate inspects the fields of the type to determine if they are valid.
 58997  func (s *StartDetectMitigationActionsTaskInput) Validate() error {
 58998  	invalidParams := request.ErrInvalidParams{Context: "StartDetectMitigationActionsTaskInput"}
 58999  	if s.Actions == nil {
 59000  		invalidParams.Add(request.NewErrParamRequired("Actions"))
 59001  	}
 59002  	if s.Actions != nil && len(s.Actions) < 1 {
 59003  		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
 59004  	}
 59005  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 59006  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 59007  	}
 59008  	if s.Target == nil {
 59009  		invalidParams.Add(request.NewErrParamRequired("Target"))
 59010  	}
 59011  	if s.TaskId == nil {
 59012  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 59013  	}
 59014  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 59015  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 59016  	}
 59017  	if s.Target != nil {
 59018  		if err := s.Target.Validate(); err != nil {
 59019  			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
 59020  		}
 59021  	}
 59022  	if s.ViolationEventOccurrenceRange != nil {
 59023  		if err := s.ViolationEventOccurrenceRange.Validate(); err != nil {
 59024  			invalidParams.AddNested("ViolationEventOccurrenceRange", err.(request.ErrInvalidParams))
 59025  		}
 59026  	}
 59027  
 59028  	if invalidParams.Len() > 0 {
 59029  		return invalidParams
 59030  	}
 59031  	return nil
 59032  }
 59033  
 59034  // SetActions sets the Actions field's value.
 59035  func (s *StartDetectMitigationActionsTaskInput) SetActions(v []*string) *StartDetectMitigationActionsTaskInput {
 59036  	s.Actions = v
 59037  	return s
 59038  }
 59039  
 59040  // SetClientRequestToken sets the ClientRequestToken field's value.
 59041  func (s *StartDetectMitigationActionsTaskInput) SetClientRequestToken(v string) *StartDetectMitigationActionsTaskInput {
 59042  	s.ClientRequestToken = &v
 59043  	return s
 59044  }
 59045  
 59046  // SetIncludeOnlyActiveViolations sets the IncludeOnlyActiveViolations field's value.
 59047  func (s *StartDetectMitigationActionsTaskInput) SetIncludeOnlyActiveViolations(v bool) *StartDetectMitigationActionsTaskInput {
 59048  	s.IncludeOnlyActiveViolations = &v
 59049  	return s
 59050  }
 59051  
 59052  // SetIncludeSuppressedAlerts sets the IncludeSuppressedAlerts field's value.
 59053  func (s *StartDetectMitigationActionsTaskInput) SetIncludeSuppressedAlerts(v bool) *StartDetectMitigationActionsTaskInput {
 59054  	s.IncludeSuppressedAlerts = &v
 59055  	return s
 59056  }
 59057  
 59058  // SetTarget sets the Target field's value.
 59059  func (s *StartDetectMitigationActionsTaskInput) SetTarget(v *DetectMitigationActionsTaskTarget) *StartDetectMitigationActionsTaskInput {
 59060  	s.Target = v
 59061  	return s
 59062  }
 59063  
 59064  // SetTaskId sets the TaskId field's value.
 59065  func (s *StartDetectMitigationActionsTaskInput) SetTaskId(v string) *StartDetectMitigationActionsTaskInput {
 59066  	s.TaskId = &v
 59067  	return s
 59068  }
 59069  
 59070  // SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
 59071  func (s *StartDetectMitigationActionsTaskInput) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *StartDetectMitigationActionsTaskInput {
 59072  	s.ViolationEventOccurrenceRange = v
 59073  	return s
 59074  }
 59075  
 59076  type StartDetectMitigationActionsTaskOutput struct {
 59077  	_ struct{} `type:"structure"`
 59078  
 59079  	// The unique identifier of the task.
 59080  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 59081  }
 59082  
 59083  // String returns the string representation.
 59084  //
 59085  // API parameter values that are decorated as "sensitive" in the API will not
 59086  // be included in the string output. The member name will be present, but the
 59087  // value will be replaced with "sensitive".
 59088  func (s StartDetectMitigationActionsTaskOutput) String() string {
 59089  	return awsutil.Prettify(s)
 59090  }
 59091  
 59092  // GoString returns the string representation.
 59093  //
 59094  // API parameter values that are decorated as "sensitive" in the API will not
 59095  // be included in the string output. The member name will be present, but the
 59096  // value will be replaced with "sensitive".
 59097  func (s StartDetectMitigationActionsTaskOutput) GoString() string {
 59098  	return s.String()
 59099  }
 59100  
 59101  // SetTaskId sets the TaskId field's value.
 59102  func (s *StartDetectMitigationActionsTaskOutput) SetTaskId(v string) *StartDetectMitigationActionsTaskOutput {
 59103  	s.TaskId = &v
 59104  	return s
 59105  }
 59106  
 59107  type StartOnDemandAuditTaskInput struct {
 59108  	_ struct{} `type:"structure"`
 59109  
 59110  	// Which checks are performed during the audit. The checks you specify must
 59111  	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
 59112  	// to see the list of all checks, including those that are enabled or UpdateAccountAuditConfiguration
 59113  	// to select which checks are enabled.
 59114  	//
 59115  	// TargetCheckNames is a required field
 59116  	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
 59117  }
 59118  
 59119  // String returns the string representation.
 59120  //
 59121  // API parameter values that are decorated as "sensitive" in the API will not
 59122  // be included in the string output. The member name will be present, but the
 59123  // value will be replaced with "sensitive".
 59124  func (s StartOnDemandAuditTaskInput) String() string {
 59125  	return awsutil.Prettify(s)
 59126  }
 59127  
 59128  // GoString returns the string representation.
 59129  //
 59130  // API parameter values that are decorated as "sensitive" in the API will not
 59131  // be included in the string output. The member name will be present, but the
 59132  // value will be replaced with "sensitive".
 59133  func (s StartOnDemandAuditTaskInput) GoString() string {
 59134  	return s.String()
 59135  }
 59136  
 59137  // Validate inspects the fields of the type to determine if they are valid.
 59138  func (s *StartOnDemandAuditTaskInput) Validate() error {
 59139  	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
 59140  	if s.TargetCheckNames == nil {
 59141  		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
 59142  	}
 59143  
 59144  	if invalidParams.Len() > 0 {
 59145  		return invalidParams
 59146  	}
 59147  	return nil
 59148  }
 59149  
 59150  // SetTargetCheckNames sets the TargetCheckNames field's value.
 59151  func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
 59152  	s.TargetCheckNames = v
 59153  	return s
 59154  }
 59155  
 59156  type StartOnDemandAuditTaskOutput struct {
 59157  	_ struct{} `type:"structure"`
 59158  
 59159  	// The ID of the on-demand audit you started.
 59160  	TaskId *string `locationName:"taskId" min:"1" type:"string"`
 59161  }
 59162  
 59163  // String returns the string representation.
 59164  //
 59165  // API parameter values that are decorated as "sensitive" in the API will not
 59166  // be included in the string output. The member name will be present, but the
 59167  // value will be replaced with "sensitive".
 59168  func (s StartOnDemandAuditTaskOutput) String() string {
 59169  	return awsutil.Prettify(s)
 59170  }
 59171  
 59172  // GoString returns the string representation.
 59173  //
 59174  // API parameter values that are decorated as "sensitive" in the API will not
 59175  // be included in the string output. The member name will be present, but the
 59176  // value will be replaced with "sensitive".
 59177  func (s StartOnDemandAuditTaskOutput) GoString() string {
 59178  	return s.String()
 59179  }
 59180  
 59181  // SetTaskId sets the TaskId field's value.
 59182  func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
 59183  	s.TaskId = &v
 59184  	return s
 59185  }
 59186  
 59187  // Information required to start a signing job.
 59188  type StartSigningJobParameter struct {
 59189  	_ struct{} `type:"structure"`
 59190  
 59191  	// The location to write the code-signed file.
 59192  	Destination *Destination `locationName:"destination" type:"structure"`
 59193  
 59194  	// The code-signing profile name.
 59195  	SigningProfileName *string `locationName:"signingProfileName" type:"string"`
 59196  
 59197  	// Describes the code-signing profile.
 59198  	SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"`
 59199  }
 59200  
 59201  // String returns the string representation.
 59202  //
 59203  // API parameter values that are decorated as "sensitive" in the API will not
 59204  // be included in the string output. The member name will be present, but the
 59205  // value will be replaced with "sensitive".
 59206  func (s StartSigningJobParameter) String() string {
 59207  	return awsutil.Prettify(s)
 59208  }
 59209  
 59210  // GoString returns the string representation.
 59211  //
 59212  // API parameter values that are decorated as "sensitive" in the API will not
 59213  // be included in the string output. The member name will be present, but the
 59214  // value will be replaced with "sensitive".
 59215  func (s StartSigningJobParameter) GoString() string {
 59216  	return s.String()
 59217  }
 59218  
 59219  // Validate inspects the fields of the type to determine if they are valid.
 59220  func (s *StartSigningJobParameter) Validate() error {
 59221  	invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"}
 59222  	if s.Destination != nil {
 59223  		if err := s.Destination.Validate(); err != nil {
 59224  			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
 59225  		}
 59226  	}
 59227  
 59228  	if invalidParams.Len() > 0 {
 59229  		return invalidParams
 59230  	}
 59231  	return nil
 59232  }
 59233  
 59234  // SetDestination sets the Destination field's value.
 59235  func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter {
 59236  	s.Destination = v
 59237  	return s
 59238  }
 59239  
 59240  // SetSigningProfileName sets the SigningProfileName field's value.
 59241  func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter {
 59242  	s.SigningProfileName = &v
 59243  	return s
 59244  }
 59245  
 59246  // SetSigningProfileParameter sets the SigningProfileParameter field's value.
 59247  func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter {
 59248  	s.SigningProfileParameter = v
 59249  	return s
 59250  }
 59251  
 59252  type StartThingRegistrationTaskInput struct {
 59253  	_ struct{} `type:"structure"`
 59254  
 59255  	// The S3 bucket that contains the input file.
 59256  	//
 59257  	// InputFileBucket is a required field
 59258  	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
 59259  
 59260  	// The name of input file within the S3 bucket. This file contains a newline
 59261  	// delimited JSON file. Each line contains the parameter values to provision
 59262  	// one device (thing).
 59263  	//
 59264  	// InputFileKey is a required field
 59265  	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
 59266  
 59267  	// The IAM role ARN that grants permission the input file.
 59268  	//
 59269  	// RoleArn is a required field
 59270  	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
 59271  
 59272  	// The provisioning template.
 59273  	//
 59274  	// TemplateBody is a required field
 59275  	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
 59276  }
 59277  
 59278  // String returns the string representation.
 59279  //
 59280  // API parameter values that are decorated as "sensitive" in the API will not
 59281  // be included in the string output. The member name will be present, but the
 59282  // value will be replaced with "sensitive".
 59283  func (s StartThingRegistrationTaskInput) String() string {
 59284  	return awsutil.Prettify(s)
 59285  }
 59286  
 59287  // GoString returns the string representation.
 59288  //
 59289  // API parameter values that are decorated as "sensitive" in the API will not
 59290  // be included in the string output. The member name will be present, but the
 59291  // value will be replaced with "sensitive".
 59292  func (s StartThingRegistrationTaskInput) GoString() string {
 59293  	return s.String()
 59294  }
 59295  
 59296  // Validate inspects the fields of the type to determine if they are valid.
 59297  func (s *StartThingRegistrationTaskInput) Validate() error {
 59298  	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
 59299  	if s.InputFileBucket == nil {
 59300  		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
 59301  	}
 59302  	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
 59303  		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
 59304  	}
 59305  	if s.InputFileKey == nil {
 59306  		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
 59307  	}
 59308  	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
 59309  		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
 59310  	}
 59311  	if s.RoleArn == nil {
 59312  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 59313  	}
 59314  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 59315  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 59316  	}
 59317  	if s.TemplateBody == nil {
 59318  		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
 59319  	}
 59320  
 59321  	if invalidParams.Len() > 0 {
 59322  		return invalidParams
 59323  	}
 59324  	return nil
 59325  }
 59326  
 59327  // SetInputFileBucket sets the InputFileBucket field's value.
 59328  func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
 59329  	s.InputFileBucket = &v
 59330  	return s
 59331  }
 59332  
 59333  // SetInputFileKey sets the InputFileKey field's value.
 59334  func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
 59335  	s.InputFileKey = &v
 59336  	return s
 59337  }
 59338  
 59339  // SetRoleArn sets the RoleArn field's value.
 59340  func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
 59341  	s.RoleArn = &v
 59342  	return s
 59343  }
 59344  
 59345  // SetTemplateBody sets the TemplateBody field's value.
 59346  func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
 59347  	s.TemplateBody = &v
 59348  	return s
 59349  }
 59350  
 59351  type StartThingRegistrationTaskOutput struct {
 59352  	_ struct{} `type:"structure"`
 59353  
 59354  	// The bulk thing provisioning task ID.
 59355  	TaskId *string `locationName:"taskId" type:"string"`
 59356  }
 59357  
 59358  // String returns the string representation.
 59359  //
 59360  // API parameter values that are decorated as "sensitive" in the API will not
 59361  // be included in the string output. The member name will be present, but the
 59362  // value will be replaced with "sensitive".
 59363  func (s StartThingRegistrationTaskOutput) String() string {
 59364  	return awsutil.Prettify(s)
 59365  }
 59366  
 59367  // GoString returns the string representation.
 59368  //
 59369  // API parameter values that are decorated as "sensitive" in the API will not
 59370  // be included in the string output. The member name will be present, but the
 59371  // value will be replaced with "sensitive".
 59372  func (s StartThingRegistrationTaskOutput) GoString() string {
 59373  	return s.String()
 59374  }
 59375  
 59376  // SetTaskId sets the TaskId field's value.
 59377  func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
 59378  	s.TaskId = &v
 59379  	return s
 59380  }
 59381  
 59382  // A statistical ranking (percentile) that indicates a threshold value by which
 59383  // a behavior is determined to be in compliance or in violation of the behavior.
 59384  type StatisticalThreshold struct {
 59385  	_ struct{} `type:"structure"`
 59386  
 59387  	// The percentile that resolves to a threshold value by which compliance with
 59388  	// a behavior is determined. Metrics are collected over the specified period
 59389  	// (durationSeconds) from all reporting devices in your account and statistical
 59390  	// ranks are calculated. Then, the measurements from a device are collected
 59391  	// over the same period. If the accumulated measurements from the device fall
 59392  	// above or below (comparisonOperator) the value associated with the percentile
 59393  	// specified, then the device is considered to be in compliance with the behavior,
 59394  	// otherwise a violation occurs.
 59395  	Statistic *string `locationName:"statistic" type:"string"`
 59396  }
 59397  
 59398  // String returns the string representation.
 59399  //
 59400  // API parameter values that are decorated as "sensitive" in the API will not
 59401  // be included in the string output. The member name will be present, but the
 59402  // value will be replaced with "sensitive".
 59403  func (s StatisticalThreshold) String() string {
 59404  	return awsutil.Prettify(s)
 59405  }
 59406  
 59407  // GoString returns the string representation.
 59408  //
 59409  // API parameter values that are decorated as "sensitive" in the API will not
 59410  // be included in the string output. The member name will be present, but the
 59411  // value will be replaced with "sensitive".
 59412  func (s StatisticalThreshold) GoString() string {
 59413  	return s.String()
 59414  }
 59415  
 59416  // SetStatistic sets the Statistic field's value.
 59417  func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
 59418  	s.Statistic = &v
 59419  	return s
 59420  }
 59421  
 59422  // A map of key-value pairs for all supported statistics. Currently, only count
 59423  // is supported.
 59424  type Statistics struct {
 59425  	_ struct{} `type:"structure"`
 59426  
 59427  	// The average of the aggregated field values.
 59428  	Average *float64 `locationName:"average" type:"double"`
 59429  
 59430  	// The count of things that match the query.
 59431  	Count *int64 `locationName:"count" type:"integer"`
 59432  
 59433  	// The maximum aggregated field value.
 59434  	Maximum *float64 `locationName:"maximum" type:"double"`
 59435  
 59436  	// The minimum aggregated field value.
 59437  	Minimum *float64 `locationName:"minimum" type:"double"`
 59438  
 59439  	// The standard deviation of the aggregated field values.
 59440  	StdDeviation *float64 `locationName:"stdDeviation" type:"double"`
 59441  
 59442  	// The sum of the aggregated field values.
 59443  	Sum *float64 `locationName:"sum" type:"double"`
 59444  
 59445  	// The sum of the squares of the aggregated field values.
 59446  	SumOfSquares *float64 `locationName:"sumOfSquares" type:"double"`
 59447  
 59448  	// The variance of the aggregated field values.
 59449  	Variance *float64 `locationName:"variance" type:"double"`
 59450  }
 59451  
 59452  // String returns the string representation.
 59453  //
 59454  // API parameter values that are decorated as "sensitive" in the API will not
 59455  // be included in the string output. The member name will be present, but the
 59456  // value will be replaced with "sensitive".
 59457  func (s Statistics) String() string {
 59458  	return awsutil.Prettify(s)
 59459  }
 59460  
 59461  // GoString returns the string representation.
 59462  //
 59463  // API parameter values that are decorated as "sensitive" in the API will not
 59464  // be included in the string output. The member name will be present, but the
 59465  // value will be replaced with "sensitive".
 59466  func (s Statistics) GoString() string {
 59467  	return s.String()
 59468  }
 59469  
 59470  // SetAverage sets the Average field's value.
 59471  func (s *Statistics) SetAverage(v float64) *Statistics {
 59472  	s.Average = &v
 59473  	return s
 59474  }
 59475  
 59476  // SetCount sets the Count field's value.
 59477  func (s *Statistics) SetCount(v int64) *Statistics {
 59478  	s.Count = &v
 59479  	return s
 59480  }
 59481  
 59482  // SetMaximum sets the Maximum field's value.
 59483  func (s *Statistics) SetMaximum(v float64) *Statistics {
 59484  	s.Maximum = &v
 59485  	return s
 59486  }
 59487  
 59488  // SetMinimum sets the Minimum field's value.
 59489  func (s *Statistics) SetMinimum(v float64) *Statistics {
 59490  	s.Minimum = &v
 59491  	return s
 59492  }
 59493  
 59494  // SetStdDeviation sets the StdDeviation field's value.
 59495  func (s *Statistics) SetStdDeviation(v float64) *Statistics {
 59496  	s.StdDeviation = &v
 59497  	return s
 59498  }
 59499  
 59500  // SetSum sets the Sum field's value.
 59501  func (s *Statistics) SetSum(v float64) *Statistics {
 59502  	s.Sum = &v
 59503  	return s
 59504  }
 59505  
 59506  // SetSumOfSquares sets the SumOfSquares field's value.
 59507  func (s *Statistics) SetSumOfSquares(v float64) *Statistics {
 59508  	s.SumOfSquares = &v
 59509  	return s
 59510  }
 59511  
 59512  // SetVariance sets the Variance field's value.
 59513  func (s *Statistics) SetVariance(v float64) *Statistics {
 59514  	s.Variance = &v
 59515  	return s
 59516  }
 59517  
 59518  // Starts execution of a Step Functions state machine.
 59519  type StepFunctionsAction struct {
 59520  	_ struct{} `type:"structure"`
 59521  
 59522  	// (Optional) A name will be given to the state machine execution consisting
 59523  	// of this prefix followed by a UUID. Step Functions automatically creates a
 59524  	// unique name for each state machine execution if one is not provided.
 59525  	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
 59526  
 59527  	// The ARN of the role that grants IoT permission to start execution of a state
 59528  	// machine ("Action":"states:StartExecution").
 59529  	//
 59530  	// RoleArn is a required field
 59531  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 59532  
 59533  	// The name of the Step Functions state machine whose execution will be started.
 59534  	//
 59535  	// StateMachineName is a required field
 59536  	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
 59537  }
 59538  
 59539  // String returns the string representation.
 59540  //
 59541  // API parameter values that are decorated as "sensitive" in the API will not
 59542  // be included in the string output. The member name will be present, but the
 59543  // value will be replaced with "sensitive".
 59544  func (s StepFunctionsAction) String() string {
 59545  	return awsutil.Prettify(s)
 59546  }
 59547  
 59548  // GoString returns the string representation.
 59549  //
 59550  // API parameter values that are decorated as "sensitive" in the API will not
 59551  // be included in the string output. The member name will be present, but the
 59552  // value will be replaced with "sensitive".
 59553  func (s StepFunctionsAction) GoString() string {
 59554  	return s.String()
 59555  }
 59556  
 59557  // Validate inspects the fields of the type to determine if they are valid.
 59558  func (s *StepFunctionsAction) Validate() error {
 59559  	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
 59560  	if s.RoleArn == nil {
 59561  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 59562  	}
 59563  	if s.StateMachineName == nil {
 59564  		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
 59565  	}
 59566  
 59567  	if invalidParams.Len() > 0 {
 59568  		return invalidParams
 59569  	}
 59570  	return nil
 59571  }
 59572  
 59573  // SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
 59574  func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
 59575  	s.ExecutionNamePrefix = &v
 59576  	return s
 59577  }
 59578  
 59579  // SetRoleArn sets the RoleArn field's value.
 59580  func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
 59581  	s.RoleArn = &v
 59582  	return s
 59583  }
 59584  
 59585  // SetStateMachineName sets the StateMachineName field's value.
 59586  func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
 59587  	s.StateMachineName = &v
 59588  	return s
 59589  }
 59590  
 59591  type StopThingRegistrationTaskInput struct {
 59592  	_ struct{} `type:"structure" nopayload:"true"`
 59593  
 59594  	// The bulk thing provisioning task ID.
 59595  	//
 59596  	// TaskId is a required field
 59597  	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
 59598  }
 59599  
 59600  // String returns the string representation.
 59601  //
 59602  // API parameter values that are decorated as "sensitive" in the API will not
 59603  // be included in the string output. The member name will be present, but the
 59604  // value will be replaced with "sensitive".
 59605  func (s StopThingRegistrationTaskInput) String() string {
 59606  	return awsutil.Prettify(s)
 59607  }
 59608  
 59609  // GoString returns the string representation.
 59610  //
 59611  // API parameter values that are decorated as "sensitive" in the API will not
 59612  // be included in the string output. The member name will be present, but the
 59613  // value will be replaced with "sensitive".
 59614  func (s StopThingRegistrationTaskInput) GoString() string {
 59615  	return s.String()
 59616  }
 59617  
 59618  // Validate inspects the fields of the type to determine if they are valid.
 59619  func (s *StopThingRegistrationTaskInput) Validate() error {
 59620  	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
 59621  	if s.TaskId == nil {
 59622  		invalidParams.Add(request.NewErrParamRequired("TaskId"))
 59623  	}
 59624  	if s.TaskId != nil && len(*s.TaskId) < 1 {
 59625  		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
 59626  	}
 59627  
 59628  	if invalidParams.Len() > 0 {
 59629  		return invalidParams
 59630  	}
 59631  	return nil
 59632  }
 59633  
 59634  // SetTaskId sets the TaskId field's value.
 59635  func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
 59636  	s.TaskId = &v
 59637  	return s
 59638  }
 59639  
 59640  type StopThingRegistrationTaskOutput struct {
 59641  	_ struct{} `type:"structure" nopayload:"true"`
 59642  }
 59643  
 59644  // String returns the string representation.
 59645  //
 59646  // API parameter values that are decorated as "sensitive" in the API will not
 59647  // be included in the string output. The member name will be present, but the
 59648  // value will be replaced with "sensitive".
 59649  func (s StopThingRegistrationTaskOutput) String() string {
 59650  	return awsutil.Prettify(s)
 59651  }
 59652  
 59653  // GoString returns the string representation.
 59654  //
 59655  // API parameter values that are decorated as "sensitive" in the API will not
 59656  // be included in the string output. The member name will be present, but the
 59657  // value will be replaced with "sensitive".
 59658  func (s StopThingRegistrationTaskOutput) GoString() string {
 59659  	return s.String()
 59660  }
 59661  
 59662  // Describes a group of files that can be streamed.
 59663  type Stream struct {
 59664  	_ struct{} `type:"structure"`
 59665  
 59666  	// The ID of a file associated with a stream.
 59667  	FileId *int64 `locationName:"fileId" type:"integer"`
 59668  
 59669  	// The stream ID.
 59670  	StreamId *string `locationName:"streamId" min:"1" type:"string"`
 59671  }
 59672  
 59673  // String returns the string representation.
 59674  //
 59675  // API parameter values that are decorated as "sensitive" in the API will not
 59676  // be included in the string output. The member name will be present, but the
 59677  // value will be replaced with "sensitive".
 59678  func (s Stream) String() string {
 59679  	return awsutil.Prettify(s)
 59680  }
 59681  
 59682  // GoString returns the string representation.
 59683  //
 59684  // API parameter values that are decorated as "sensitive" in the API will not
 59685  // be included in the string output. The member name will be present, but the
 59686  // value will be replaced with "sensitive".
 59687  func (s Stream) GoString() string {
 59688  	return s.String()
 59689  }
 59690  
 59691  // Validate inspects the fields of the type to determine if they are valid.
 59692  func (s *Stream) Validate() error {
 59693  	invalidParams := request.ErrInvalidParams{Context: "Stream"}
 59694  	if s.StreamId != nil && len(*s.StreamId) < 1 {
 59695  		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
 59696  	}
 59697  
 59698  	if invalidParams.Len() > 0 {
 59699  		return invalidParams
 59700  	}
 59701  	return nil
 59702  }
 59703  
 59704  // SetFileId sets the FileId field's value.
 59705  func (s *Stream) SetFileId(v int64) *Stream {
 59706  	s.FileId = &v
 59707  	return s
 59708  }
 59709  
 59710  // SetStreamId sets the StreamId field's value.
 59711  func (s *Stream) SetStreamId(v string) *Stream {
 59712  	s.StreamId = &v
 59713  	return s
 59714  }
 59715  
 59716  // Represents a file to stream.
 59717  type StreamFile struct {
 59718  	_ struct{} `type:"structure"`
 59719  
 59720  	// The file ID.
 59721  	FileId *int64 `locationName:"fileId" type:"integer"`
 59722  
 59723  	// The location of the file in S3.
 59724  	S3Location *S3Location `locationName:"s3Location" type:"structure"`
 59725  }
 59726  
 59727  // String returns the string representation.
 59728  //
 59729  // API parameter values that are decorated as "sensitive" in the API will not
 59730  // be included in the string output. The member name will be present, but the
 59731  // value will be replaced with "sensitive".
 59732  func (s StreamFile) String() string {
 59733  	return awsutil.Prettify(s)
 59734  }
 59735  
 59736  // GoString returns the string representation.
 59737  //
 59738  // API parameter values that are decorated as "sensitive" in the API will not
 59739  // be included in the string output. The member name will be present, but the
 59740  // value will be replaced with "sensitive".
 59741  func (s StreamFile) GoString() string {
 59742  	return s.String()
 59743  }
 59744  
 59745  // Validate inspects the fields of the type to determine if they are valid.
 59746  func (s *StreamFile) Validate() error {
 59747  	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
 59748  	if s.S3Location != nil {
 59749  		if err := s.S3Location.Validate(); err != nil {
 59750  			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
 59751  		}
 59752  	}
 59753  
 59754  	if invalidParams.Len() > 0 {
 59755  		return invalidParams
 59756  	}
 59757  	return nil
 59758  }
 59759  
 59760  // SetFileId sets the FileId field's value.
 59761  func (s *StreamFile) SetFileId(v int64) *StreamFile {
 59762  	s.FileId = &v
 59763  	return s
 59764  }
 59765  
 59766  // SetS3Location sets the S3Location field's value.
 59767  func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
 59768  	s.S3Location = v
 59769  	return s
 59770  }
 59771  
 59772  // Information about a stream.
 59773  type StreamInfo struct {
 59774  	_ struct{} `type:"structure"`
 59775  
 59776  	// The date when the stream was created.
 59777  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 59778  
 59779  	// The description of the stream.
 59780  	Description *string `locationName:"description" type:"string"`
 59781  
 59782  	// The files to stream.
 59783  	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
 59784  
 59785  	// The date when the stream was last updated.
 59786  	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
 59787  
 59788  	// An IAM role IoT assumes to access your S3 files.
 59789  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 59790  
 59791  	// The stream ARN.
 59792  	StreamArn *string `locationName:"streamArn" type:"string"`
 59793  
 59794  	// The stream ID.
 59795  	StreamId *string `locationName:"streamId" min:"1" type:"string"`
 59796  
 59797  	// The stream version.
 59798  	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
 59799  }
 59800  
 59801  // String returns the string representation.
 59802  //
 59803  // API parameter values that are decorated as "sensitive" in the API will not
 59804  // be included in the string output. The member name will be present, but the
 59805  // value will be replaced with "sensitive".
 59806  func (s StreamInfo) String() string {
 59807  	return awsutil.Prettify(s)
 59808  }
 59809  
 59810  // GoString returns the string representation.
 59811  //
 59812  // API parameter values that are decorated as "sensitive" in the API will not
 59813  // be included in the string output. The member name will be present, but the
 59814  // value will be replaced with "sensitive".
 59815  func (s StreamInfo) GoString() string {
 59816  	return s.String()
 59817  }
 59818  
 59819  // SetCreatedAt sets the CreatedAt field's value.
 59820  func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
 59821  	s.CreatedAt = &v
 59822  	return s
 59823  }
 59824  
 59825  // SetDescription sets the Description field's value.
 59826  func (s *StreamInfo) SetDescription(v string) *StreamInfo {
 59827  	s.Description = &v
 59828  	return s
 59829  }
 59830  
 59831  // SetFiles sets the Files field's value.
 59832  func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
 59833  	s.Files = v
 59834  	return s
 59835  }
 59836  
 59837  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 59838  func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
 59839  	s.LastUpdatedAt = &v
 59840  	return s
 59841  }
 59842  
 59843  // SetRoleArn sets the RoleArn field's value.
 59844  func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
 59845  	s.RoleArn = &v
 59846  	return s
 59847  }
 59848  
 59849  // SetStreamArn sets the StreamArn field's value.
 59850  func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
 59851  	s.StreamArn = &v
 59852  	return s
 59853  }
 59854  
 59855  // SetStreamId sets the StreamId field's value.
 59856  func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
 59857  	s.StreamId = &v
 59858  	return s
 59859  }
 59860  
 59861  // SetStreamVersion sets the StreamVersion field's value.
 59862  func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
 59863  	s.StreamVersion = &v
 59864  	return s
 59865  }
 59866  
 59867  // A summary of a stream.
 59868  type StreamSummary struct {
 59869  	_ struct{} `type:"structure"`
 59870  
 59871  	// A description of the stream.
 59872  	Description *string `locationName:"description" type:"string"`
 59873  
 59874  	// The stream ARN.
 59875  	StreamArn *string `locationName:"streamArn" type:"string"`
 59876  
 59877  	// The stream ID.
 59878  	StreamId *string `locationName:"streamId" min:"1" type:"string"`
 59879  
 59880  	// The stream version.
 59881  	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
 59882  }
 59883  
 59884  // String returns the string representation.
 59885  //
 59886  // API parameter values that are decorated as "sensitive" in the API will not
 59887  // be included in the string output. The member name will be present, but the
 59888  // value will be replaced with "sensitive".
 59889  func (s StreamSummary) String() string {
 59890  	return awsutil.Prettify(s)
 59891  }
 59892  
 59893  // GoString returns the string representation.
 59894  //
 59895  // API parameter values that are decorated as "sensitive" in the API will not
 59896  // be included in the string output. The member name will be present, but the
 59897  // value will be replaced with "sensitive".
 59898  func (s StreamSummary) GoString() string {
 59899  	return s.String()
 59900  }
 59901  
 59902  // SetDescription sets the Description field's value.
 59903  func (s *StreamSummary) SetDescription(v string) *StreamSummary {
 59904  	s.Description = &v
 59905  	return s
 59906  }
 59907  
 59908  // SetStreamArn sets the StreamArn field's value.
 59909  func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
 59910  	s.StreamArn = &v
 59911  	return s
 59912  }
 59913  
 59914  // SetStreamId sets the StreamId field's value.
 59915  func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
 59916  	s.StreamId = &v
 59917  	return s
 59918  }
 59919  
 59920  // SetStreamVersion sets the StreamVersion field's value.
 59921  func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
 59922  	s.StreamVersion = &v
 59923  	return s
 59924  }
 59925  
 59926  // A set of key/value pairs that are used to manage the resource.
 59927  type Tag struct {
 59928  	_ struct{} `type:"structure"`
 59929  
 59930  	// The tag's key.
 59931  	//
 59932  	// Key is a required field
 59933  	Key *string `min:"1" type:"string" required:"true"`
 59934  
 59935  	// The tag's value.
 59936  	Value *string `min:"1" type:"string"`
 59937  }
 59938  
 59939  // String returns the string representation.
 59940  //
 59941  // API parameter values that are decorated as "sensitive" in the API will not
 59942  // be included in the string output. The member name will be present, but the
 59943  // value will be replaced with "sensitive".
 59944  func (s Tag) String() string {
 59945  	return awsutil.Prettify(s)
 59946  }
 59947  
 59948  // GoString returns the string representation.
 59949  //
 59950  // API parameter values that are decorated as "sensitive" in the API will not
 59951  // be included in the string output. The member name will be present, but the
 59952  // value will be replaced with "sensitive".
 59953  func (s Tag) GoString() string {
 59954  	return s.String()
 59955  }
 59956  
 59957  // Validate inspects the fields of the type to determine if they are valid.
 59958  func (s *Tag) Validate() error {
 59959  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 59960  	if s.Key == nil {
 59961  		invalidParams.Add(request.NewErrParamRequired("Key"))
 59962  	}
 59963  	if s.Key != nil && len(*s.Key) < 1 {
 59964  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 59965  	}
 59966  	if s.Value != nil && len(*s.Value) < 1 {
 59967  		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
 59968  	}
 59969  
 59970  	if invalidParams.Len() > 0 {
 59971  		return invalidParams
 59972  	}
 59973  	return nil
 59974  }
 59975  
 59976  // SetKey sets the Key field's value.
 59977  func (s *Tag) SetKey(v string) *Tag {
 59978  	s.Key = &v
 59979  	return s
 59980  }
 59981  
 59982  // SetValue sets the Value field's value.
 59983  func (s *Tag) SetValue(v string) *Tag {
 59984  	s.Value = &v
 59985  	return s
 59986  }
 59987  
 59988  type TagResourceInput struct {
 59989  	_ struct{} `type:"structure"`
 59990  
 59991  	// The ARN of the resource.
 59992  	//
 59993  	// ResourceArn is a required field
 59994  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
 59995  
 59996  	// The new or modified tags for the resource.
 59997  	//
 59998  	// Tags is a required field
 59999  	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
 60000  }
 60001  
 60002  // String returns the string representation.
 60003  //
 60004  // API parameter values that are decorated as "sensitive" in the API will not
 60005  // be included in the string output. The member name will be present, but the
 60006  // value will be replaced with "sensitive".
 60007  func (s TagResourceInput) String() string {
 60008  	return awsutil.Prettify(s)
 60009  }
 60010  
 60011  // GoString returns the string representation.
 60012  //
 60013  // API parameter values that are decorated as "sensitive" in the API will not
 60014  // be included in the string output. The member name will be present, but the
 60015  // value will be replaced with "sensitive".
 60016  func (s TagResourceInput) GoString() string {
 60017  	return s.String()
 60018  }
 60019  
 60020  // Validate inspects the fields of the type to determine if they are valid.
 60021  func (s *TagResourceInput) Validate() error {
 60022  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 60023  	if s.ResourceArn == nil {
 60024  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 60025  	}
 60026  	if s.Tags == nil {
 60027  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 60028  	}
 60029  	if s.Tags != nil {
 60030  		for i, v := range s.Tags {
 60031  			if v == nil {
 60032  				continue
 60033  			}
 60034  			if err := v.Validate(); err != nil {
 60035  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 60036  			}
 60037  		}
 60038  	}
 60039  
 60040  	if invalidParams.Len() > 0 {
 60041  		return invalidParams
 60042  	}
 60043  	return nil
 60044  }
 60045  
 60046  // SetResourceArn sets the ResourceArn field's value.
 60047  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 60048  	s.ResourceArn = &v
 60049  	return s
 60050  }
 60051  
 60052  // SetTags sets the Tags field's value.
 60053  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 60054  	s.Tags = v
 60055  	return s
 60056  }
 60057  
 60058  type TagResourceOutput struct {
 60059  	_ struct{} `type:"structure" nopayload:"true"`
 60060  }
 60061  
 60062  // String returns the string representation.
 60063  //
 60064  // API parameter values that are decorated as "sensitive" in the API will not
 60065  // be included in the string output. The member name will be present, but the
 60066  // value will be replaced with "sensitive".
 60067  func (s TagResourceOutput) String() string {
 60068  	return awsutil.Prettify(s)
 60069  }
 60070  
 60071  // GoString returns the string representation.
 60072  //
 60073  // API parameter values that are decorated as "sensitive" in the API will not
 60074  // be included in the string output. The member name will be present, but the
 60075  // value will be replaced with "sensitive".
 60076  func (s TagResourceOutput) GoString() string {
 60077  	return s.String()
 60078  }
 60079  
 60080  // This exception occurs if you attempt to start a task with the same task-id
 60081  // as an existing task but with a different clientRequestToken.
 60082  type TaskAlreadyExistsException struct {
 60083  	_            struct{}                  `type:"structure"`
 60084  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 60085  
 60086  	Message_ *string `locationName:"message" type:"string"`
 60087  }
 60088  
 60089  // String returns the string representation.
 60090  //
 60091  // API parameter values that are decorated as "sensitive" in the API will not
 60092  // be included in the string output. The member name will be present, but the
 60093  // value will be replaced with "sensitive".
 60094  func (s TaskAlreadyExistsException) String() string {
 60095  	return awsutil.Prettify(s)
 60096  }
 60097  
 60098  // GoString returns the string representation.
 60099  //
 60100  // API parameter values that are decorated as "sensitive" in the API will not
 60101  // be included in the string output. The member name will be present, but the
 60102  // value will be replaced with "sensitive".
 60103  func (s TaskAlreadyExistsException) GoString() string {
 60104  	return s.String()
 60105  }
 60106  
 60107  func newErrorTaskAlreadyExistsException(v protocol.ResponseMetadata) error {
 60108  	return &TaskAlreadyExistsException{
 60109  		RespMetadata: v,
 60110  	}
 60111  }
 60112  
 60113  // Code returns the exception type name.
 60114  func (s *TaskAlreadyExistsException) Code() string {
 60115  	return "TaskAlreadyExistsException"
 60116  }
 60117  
 60118  // Message returns the exception's message.
 60119  func (s *TaskAlreadyExistsException) Message() string {
 60120  	if s.Message_ != nil {
 60121  		return *s.Message_
 60122  	}
 60123  	return ""
 60124  }
 60125  
 60126  // OrigErr always returns nil, satisfies awserr.Error interface.
 60127  func (s *TaskAlreadyExistsException) OrigErr() error {
 60128  	return nil
 60129  }
 60130  
 60131  func (s *TaskAlreadyExistsException) Error() string {
 60132  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 60133  }
 60134  
 60135  // Status code returns the HTTP status code for the request's response error.
 60136  func (s *TaskAlreadyExistsException) StatusCode() int {
 60137  	return s.RespMetadata.StatusCode
 60138  }
 60139  
 60140  // RequestID returns the service's response RequestID for request.
 60141  func (s *TaskAlreadyExistsException) RequestID() string {
 60142  	return s.RespMetadata.RequestID
 60143  }
 60144  
 60145  // Statistics for the checks performed during the audit.
 60146  type TaskStatistics struct {
 60147  	_ struct{} `type:"structure"`
 60148  
 60149  	// The number of checks that did not run because the audit was canceled.
 60150  	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
 60151  
 60152  	// The number of checks that found compliant resources.
 60153  	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
 60154  
 60155  	// The number of checks.
 60156  	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
 60157  
 60158  	// The number of checks in progress.
 60159  	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
 60160  
 60161  	// The number of checks that found noncompliant resources.
 60162  	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
 60163  
 60164  	// The number of checks in this audit.
 60165  	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
 60166  
 60167  	// The number of checks waiting for data collection.
 60168  	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
 60169  }
 60170  
 60171  // String returns the string representation.
 60172  //
 60173  // API parameter values that are decorated as "sensitive" in the API will not
 60174  // be included in the string output. The member name will be present, but the
 60175  // value will be replaced with "sensitive".
 60176  func (s TaskStatistics) String() string {
 60177  	return awsutil.Prettify(s)
 60178  }
 60179  
 60180  // GoString returns the string representation.
 60181  //
 60182  // API parameter values that are decorated as "sensitive" in the API will not
 60183  // be included in the string output. The member name will be present, but the
 60184  // value will be replaced with "sensitive".
 60185  func (s TaskStatistics) GoString() string {
 60186  	return s.String()
 60187  }
 60188  
 60189  // SetCanceledChecks sets the CanceledChecks field's value.
 60190  func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
 60191  	s.CanceledChecks = &v
 60192  	return s
 60193  }
 60194  
 60195  // SetCompliantChecks sets the CompliantChecks field's value.
 60196  func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
 60197  	s.CompliantChecks = &v
 60198  	return s
 60199  }
 60200  
 60201  // SetFailedChecks sets the FailedChecks field's value.
 60202  func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
 60203  	s.FailedChecks = &v
 60204  	return s
 60205  }
 60206  
 60207  // SetInProgressChecks sets the InProgressChecks field's value.
 60208  func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
 60209  	s.InProgressChecks = &v
 60210  	return s
 60211  }
 60212  
 60213  // SetNonCompliantChecks sets the NonCompliantChecks field's value.
 60214  func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
 60215  	s.NonCompliantChecks = &v
 60216  	return s
 60217  }
 60218  
 60219  // SetTotalChecks sets the TotalChecks field's value.
 60220  func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
 60221  	s.TotalChecks = &v
 60222  	return s
 60223  }
 60224  
 60225  // SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
 60226  func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
 60227  	s.WaitingForDataCollectionChecks = &v
 60228  	return s
 60229  }
 60230  
 60231  // Provides summary counts of how many tasks for findings are in a particular
 60232  // state. This information is included in the response from DescribeAuditMitigationActionsTask.
 60233  type TaskStatisticsForAuditCheck struct {
 60234  	_ struct{} `type:"structure"`
 60235  
 60236  	// The number of findings to which the mitigation action task was canceled when
 60237  	// applied.
 60238  	CanceledFindingsCount *int64 `locationName:"canceledFindingsCount" type:"long"`
 60239  
 60240  	// The number of findings for which at least one of the actions failed when
 60241  	// applied.
 60242  	FailedFindingsCount *int64 `locationName:"failedFindingsCount" type:"long"`
 60243  
 60244  	// The number of findings skipped because of filter conditions provided in the
 60245  	// parameters to the command.
 60246  	SkippedFindingsCount *int64 `locationName:"skippedFindingsCount" type:"long"`
 60247  
 60248  	// The number of findings for which all mitigation actions succeeded when applied.
 60249  	SucceededFindingsCount *int64 `locationName:"succeededFindingsCount" type:"long"`
 60250  
 60251  	// The total number of findings to which a task is being applied.
 60252  	TotalFindingsCount *int64 `locationName:"totalFindingsCount" type:"long"`
 60253  }
 60254  
 60255  // String returns the string representation.
 60256  //
 60257  // API parameter values that are decorated as "sensitive" in the API will not
 60258  // be included in the string output. The member name will be present, but the
 60259  // value will be replaced with "sensitive".
 60260  func (s TaskStatisticsForAuditCheck) String() string {
 60261  	return awsutil.Prettify(s)
 60262  }
 60263  
 60264  // GoString returns the string representation.
 60265  //
 60266  // API parameter values that are decorated as "sensitive" in the API will not
 60267  // be included in the string output. The member name will be present, but the
 60268  // value will be replaced with "sensitive".
 60269  func (s TaskStatisticsForAuditCheck) GoString() string {
 60270  	return s.String()
 60271  }
 60272  
 60273  // SetCanceledFindingsCount sets the CanceledFindingsCount field's value.
 60274  func (s *TaskStatisticsForAuditCheck) SetCanceledFindingsCount(v int64) *TaskStatisticsForAuditCheck {
 60275  	s.CanceledFindingsCount = &v
 60276  	return s
 60277  }
 60278  
 60279  // SetFailedFindingsCount sets the FailedFindingsCount field's value.
 60280  func (s *TaskStatisticsForAuditCheck) SetFailedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
 60281  	s.FailedFindingsCount = &v
 60282  	return s
 60283  }
 60284  
 60285  // SetSkippedFindingsCount sets the SkippedFindingsCount field's value.
 60286  func (s *TaskStatisticsForAuditCheck) SetSkippedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
 60287  	s.SkippedFindingsCount = &v
 60288  	return s
 60289  }
 60290  
 60291  // SetSucceededFindingsCount sets the SucceededFindingsCount field's value.
 60292  func (s *TaskStatisticsForAuditCheck) SetSucceededFindingsCount(v int64) *TaskStatisticsForAuditCheck {
 60293  	s.SucceededFindingsCount = &v
 60294  	return s
 60295  }
 60296  
 60297  // SetTotalFindingsCount sets the TotalFindingsCount field's value.
 60298  func (s *TaskStatisticsForAuditCheck) SetTotalFindingsCount(v int64) *TaskStatisticsForAuditCheck {
 60299  	s.TotalFindingsCount = &v
 60300  	return s
 60301  }
 60302  
 60303  // Performs an aggregation that will return a list of buckets. The list of buckets
 60304  // is a ranked list of the number of occurrences of an aggregation field value.
 60305  type TermsAggregation struct {
 60306  	_ struct{} `type:"structure"`
 60307  
 60308  	// The number of buckets to return in the response. Default to 10.
 60309  	MaxBuckets *int64 `locationName:"maxBuckets" min:"1" type:"integer"`
 60310  }
 60311  
 60312  // String returns the string representation.
 60313  //
 60314  // API parameter values that are decorated as "sensitive" in the API will not
 60315  // be included in the string output. The member name will be present, but the
 60316  // value will be replaced with "sensitive".
 60317  func (s TermsAggregation) String() string {
 60318  	return awsutil.Prettify(s)
 60319  }
 60320  
 60321  // GoString returns the string representation.
 60322  //
 60323  // API parameter values that are decorated as "sensitive" in the API will not
 60324  // be included in the string output. The member name will be present, but the
 60325  // value will be replaced with "sensitive".
 60326  func (s TermsAggregation) GoString() string {
 60327  	return s.String()
 60328  }
 60329  
 60330  // Validate inspects the fields of the type to determine if they are valid.
 60331  func (s *TermsAggregation) Validate() error {
 60332  	invalidParams := request.ErrInvalidParams{Context: "TermsAggregation"}
 60333  	if s.MaxBuckets != nil && *s.MaxBuckets < 1 {
 60334  		invalidParams.Add(request.NewErrParamMinValue("MaxBuckets", 1))
 60335  	}
 60336  
 60337  	if invalidParams.Len() > 0 {
 60338  		return invalidParams
 60339  	}
 60340  	return nil
 60341  }
 60342  
 60343  // SetMaxBuckets sets the MaxBuckets field's value.
 60344  func (s *TermsAggregation) SetMaxBuckets(v int64) *TermsAggregation {
 60345  	s.MaxBuckets = &v
 60346  	return s
 60347  }
 60348  
 60349  type TestAuthorizationInput struct {
 60350  	_ struct{} `type:"structure"`
 60351  
 60352  	// A list of authorization info objects. Simulating authorization will create
 60353  	// a response for each authInfo object in the list.
 60354  	//
 60355  	// AuthInfos is a required field
 60356  	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
 60357  
 60358  	// The MQTT client ID.
 60359  	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
 60360  
 60361  	// The Cognito identity pool ID.
 60362  	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
 60363  
 60364  	// When testing custom authorization, the policies specified here are treated
 60365  	// as if they are attached to the principal being authorized.
 60366  	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
 60367  
 60368  	// When testing custom authorization, the policies specified here are treated
 60369  	// as if they are not attached to the principal being authorized.
 60370  	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
 60371  
 60372  	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
 60373  	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
 60374  	// (region:id).
 60375  	Principal *string `locationName:"principal" type:"string"`
 60376  }
 60377  
 60378  // String returns the string representation.
 60379  //
 60380  // API parameter values that are decorated as "sensitive" in the API will not
 60381  // be included in the string output. The member name will be present, but the
 60382  // value will be replaced with "sensitive".
 60383  func (s TestAuthorizationInput) String() string {
 60384  	return awsutil.Prettify(s)
 60385  }
 60386  
 60387  // GoString returns the string representation.
 60388  //
 60389  // API parameter values that are decorated as "sensitive" in the API will not
 60390  // be included in the string output. The member name will be present, but the
 60391  // value will be replaced with "sensitive".
 60392  func (s TestAuthorizationInput) GoString() string {
 60393  	return s.String()
 60394  }
 60395  
 60396  // Validate inspects the fields of the type to determine if they are valid.
 60397  func (s *TestAuthorizationInput) Validate() error {
 60398  	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
 60399  	if s.AuthInfos == nil {
 60400  		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
 60401  	}
 60402  	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
 60403  		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
 60404  	}
 60405  	if s.AuthInfos != nil {
 60406  		for i, v := range s.AuthInfos {
 60407  			if v == nil {
 60408  				continue
 60409  			}
 60410  			if err := v.Validate(); err != nil {
 60411  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuthInfos", i), err.(request.ErrInvalidParams))
 60412  			}
 60413  		}
 60414  	}
 60415  
 60416  	if invalidParams.Len() > 0 {
 60417  		return invalidParams
 60418  	}
 60419  	return nil
 60420  }
 60421  
 60422  // SetAuthInfos sets the AuthInfos field's value.
 60423  func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
 60424  	s.AuthInfos = v
 60425  	return s
 60426  }
 60427  
 60428  // SetClientId sets the ClientId field's value.
 60429  func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
 60430  	s.ClientId = &v
 60431  	return s
 60432  }
 60433  
 60434  // SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
 60435  func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
 60436  	s.CognitoIdentityPoolId = &v
 60437  	return s
 60438  }
 60439  
 60440  // SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
 60441  func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
 60442  	s.PolicyNamesToAdd = v
 60443  	return s
 60444  }
 60445  
 60446  // SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
 60447  func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
 60448  	s.PolicyNamesToSkip = v
 60449  	return s
 60450  }
 60451  
 60452  // SetPrincipal sets the Principal field's value.
 60453  func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
 60454  	s.Principal = &v
 60455  	return s
 60456  }
 60457  
 60458  type TestAuthorizationOutput struct {
 60459  	_ struct{} `type:"structure"`
 60460  
 60461  	// The authentication results.
 60462  	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
 60463  }
 60464  
 60465  // String returns the string representation.
 60466  //
 60467  // API parameter values that are decorated as "sensitive" in the API will not
 60468  // be included in the string output. The member name will be present, but the
 60469  // value will be replaced with "sensitive".
 60470  func (s TestAuthorizationOutput) String() string {
 60471  	return awsutil.Prettify(s)
 60472  }
 60473  
 60474  // GoString returns the string representation.
 60475  //
 60476  // API parameter values that are decorated as "sensitive" in the API will not
 60477  // be included in the string output. The member name will be present, but the
 60478  // value will be replaced with "sensitive".
 60479  func (s TestAuthorizationOutput) GoString() string {
 60480  	return s.String()
 60481  }
 60482  
 60483  // SetAuthResults sets the AuthResults field's value.
 60484  func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
 60485  	s.AuthResults = v
 60486  	return s
 60487  }
 60488  
 60489  type TestInvokeAuthorizerInput struct {
 60490  	_ struct{} `type:"structure"`
 60491  
 60492  	// The custom authorizer name.
 60493  	//
 60494  	// AuthorizerName is a required field
 60495  	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
 60496  
 60497  	// Specifies a test HTTP authorization request.
 60498  	HttpContext *HttpContext `locationName:"httpContext" type:"structure"`
 60499  
 60500  	// Specifies a test MQTT authorization request.
 60501  	MqttContext *MqttContext `locationName:"mqttContext" type:"structure"`
 60502  
 60503  	// Specifies a test TLS authorization request.
 60504  	TlsContext *TlsContext `locationName:"tlsContext" type:"structure"`
 60505  
 60506  	// The token returned by your custom authentication service.
 60507  	Token *string `locationName:"token" min:"1" type:"string"`
 60508  
 60509  	// The signature made with the token and your custom authentication service's
 60510  	// private key. This value must be Base-64-encoded.
 60511  	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"`
 60512  }
 60513  
 60514  // String returns the string representation.
 60515  //
 60516  // API parameter values that are decorated as "sensitive" in the API will not
 60517  // be included in the string output. The member name will be present, but the
 60518  // value will be replaced with "sensitive".
 60519  func (s TestInvokeAuthorizerInput) String() string {
 60520  	return awsutil.Prettify(s)
 60521  }
 60522  
 60523  // GoString returns the string representation.
 60524  //
 60525  // API parameter values that are decorated as "sensitive" in the API will not
 60526  // be included in the string output. The member name will be present, but the
 60527  // value will be replaced with "sensitive".
 60528  func (s TestInvokeAuthorizerInput) GoString() string {
 60529  	return s.String()
 60530  }
 60531  
 60532  // Validate inspects the fields of the type to determine if they are valid.
 60533  func (s *TestInvokeAuthorizerInput) Validate() error {
 60534  	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
 60535  	if s.AuthorizerName == nil {
 60536  		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
 60537  	}
 60538  	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
 60539  		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
 60540  	}
 60541  	if s.Token != nil && len(*s.Token) < 1 {
 60542  		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
 60543  	}
 60544  	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
 60545  		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
 60546  	}
 60547  	if s.HttpContext != nil {
 60548  		if err := s.HttpContext.Validate(); err != nil {
 60549  			invalidParams.AddNested("HttpContext", err.(request.ErrInvalidParams))
 60550  		}
 60551  	}
 60552  	if s.MqttContext != nil {
 60553  		if err := s.MqttContext.Validate(); err != nil {
 60554  			invalidParams.AddNested("MqttContext", err.(request.ErrInvalidParams))
 60555  		}
 60556  	}
 60557  	if s.TlsContext != nil {
 60558  		if err := s.TlsContext.Validate(); err != nil {
 60559  			invalidParams.AddNested("TlsContext", err.(request.ErrInvalidParams))
 60560  		}
 60561  	}
 60562  
 60563  	if invalidParams.Len() > 0 {
 60564  		return invalidParams
 60565  	}
 60566  	return nil
 60567  }
 60568  
 60569  // SetAuthorizerName sets the AuthorizerName field's value.
 60570  func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
 60571  	s.AuthorizerName = &v
 60572  	return s
 60573  }
 60574  
 60575  // SetHttpContext sets the HttpContext field's value.
 60576  func (s *TestInvokeAuthorizerInput) SetHttpContext(v *HttpContext) *TestInvokeAuthorizerInput {
 60577  	s.HttpContext = v
 60578  	return s
 60579  }
 60580  
 60581  // SetMqttContext sets the MqttContext field's value.
 60582  func (s *TestInvokeAuthorizerInput) SetMqttContext(v *MqttContext) *TestInvokeAuthorizerInput {
 60583  	s.MqttContext = v
 60584  	return s
 60585  }
 60586  
 60587  // SetTlsContext sets the TlsContext field's value.
 60588  func (s *TestInvokeAuthorizerInput) SetTlsContext(v *TlsContext) *TestInvokeAuthorizerInput {
 60589  	s.TlsContext = v
 60590  	return s
 60591  }
 60592  
 60593  // SetToken sets the Token field's value.
 60594  func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
 60595  	s.Token = &v
 60596  	return s
 60597  }
 60598  
 60599  // SetTokenSignature sets the TokenSignature field's value.
 60600  func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
 60601  	s.TokenSignature = &v
 60602  	return s
 60603  }
 60604  
 60605  type TestInvokeAuthorizerOutput struct {
 60606  	_ struct{} `type:"structure"`
 60607  
 60608  	// The number of seconds after which the connection is terminated.
 60609  	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
 60610  
 60611  	// True if the token is authenticated, otherwise false.
 60612  	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
 60613  
 60614  	// IAM policy documents.
 60615  	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
 60616  
 60617  	// The principal ID.
 60618  	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
 60619  
 60620  	// The number of seconds after which the temporary credentials are refreshed.
 60621  	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
 60622  }
 60623  
 60624  // String returns the string representation.
 60625  //
 60626  // API parameter values that are decorated as "sensitive" in the API will not
 60627  // be included in the string output. The member name will be present, but the
 60628  // value will be replaced with "sensitive".
 60629  func (s TestInvokeAuthorizerOutput) String() string {
 60630  	return awsutil.Prettify(s)
 60631  }
 60632  
 60633  // GoString returns the string representation.
 60634  //
 60635  // API parameter values that are decorated as "sensitive" in the API will not
 60636  // be included in the string output. The member name will be present, but the
 60637  // value will be replaced with "sensitive".
 60638  func (s TestInvokeAuthorizerOutput) GoString() string {
 60639  	return s.String()
 60640  }
 60641  
 60642  // SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
 60643  func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
 60644  	s.DisconnectAfterInSeconds = &v
 60645  	return s
 60646  }
 60647  
 60648  // SetIsAuthenticated sets the IsAuthenticated field's value.
 60649  func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
 60650  	s.IsAuthenticated = &v
 60651  	return s
 60652  }
 60653  
 60654  // SetPolicyDocuments sets the PolicyDocuments field's value.
 60655  func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
 60656  	s.PolicyDocuments = v
 60657  	return s
 60658  }
 60659  
 60660  // SetPrincipalId sets the PrincipalId field's value.
 60661  func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
 60662  	s.PrincipalId = &v
 60663  	return s
 60664  }
 60665  
 60666  // SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
 60667  func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
 60668  	s.RefreshAfterInSeconds = &v
 60669  	return s
 60670  }
 60671  
 60672  // The properties of the thing, including thing name, thing type name, and a
 60673  // list of thing attributes.
 60674  type ThingAttribute struct {
 60675  	_ struct{} `type:"structure"`
 60676  
 60677  	// A list of thing attributes which are name-value pairs.
 60678  	Attributes map[string]*string `locationName:"attributes" type:"map"`
 60679  
 60680  	// The thing ARN.
 60681  	ThingArn *string `locationName:"thingArn" type:"string"`
 60682  
 60683  	// The name of the thing.
 60684  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 60685  
 60686  	// The name of the thing type, if the thing has been associated with a type.
 60687  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 60688  
 60689  	// The version of the thing record in the registry.
 60690  	Version *int64 `locationName:"version" type:"long"`
 60691  }
 60692  
 60693  // String returns the string representation.
 60694  //
 60695  // API parameter values that are decorated as "sensitive" in the API will not
 60696  // be included in the string output. The member name will be present, but the
 60697  // value will be replaced with "sensitive".
 60698  func (s ThingAttribute) String() string {
 60699  	return awsutil.Prettify(s)
 60700  }
 60701  
 60702  // GoString returns the string representation.
 60703  //
 60704  // API parameter values that are decorated as "sensitive" in the API will not
 60705  // be included in the string output. The member name will be present, but the
 60706  // value will be replaced with "sensitive".
 60707  func (s ThingAttribute) GoString() string {
 60708  	return s.String()
 60709  }
 60710  
 60711  // SetAttributes sets the Attributes field's value.
 60712  func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
 60713  	s.Attributes = v
 60714  	return s
 60715  }
 60716  
 60717  // SetThingArn sets the ThingArn field's value.
 60718  func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
 60719  	s.ThingArn = &v
 60720  	return s
 60721  }
 60722  
 60723  // SetThingName sets the ThingName field's value.
 60724  func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
 60725  	s.ThingName = &v
 60726  	return s
 60727  }
 60728  
 60729  // SetThingTypeName sets the ThingTypeName field's value.
 60730  func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
 60731  	s.ThingTypeName = &v
 60732  	return s
 60733  }
 60734  
 60735  // SetVersion sets the Version field's value.
 60736  func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
 60737  	s.Version = &v
 60738  	return s
 60739  }
 60740  
 60741  // The connectivity status of the thing.
 60742  type ThingConnectivity struct {
 60743  	_ struct{} `type:"structure"`
 60744  
 60745  	// True if the thing is connected to the Amazon Web Services IoT Core service;
 60746  	// false if it is not connected.
 60747  	Connected *bool `locationName:"connected" type:"boolean"`
 60748  
 60749  	// The reason why the client is disconnected. If the thing has been disconnected
 60750  	// for approximately an hour, the disconnectReason value might be missing.
 60751  	DisconnectReason *string `locationName:"disconnectReason" type:"string"`
 60752  
 60753  	// The epoch time (in milliseconds) when the thing last connected or disconnected.
 60754  	// If the thing has been disconnected for approximately an hour, the time value
 60755  	// might be missing.
 60756  	Timestamp *int64 `locationName:"timestamp" type:"long"`
 60757  }
 60758  
 60759  // String returns the string representation.
 60760  //
 60761  // API parameter values that are decorated as "sensitive" in the API will not
 60762  // be included in the string output. The member name will be present, but the
 60763  // value will be replaced with "sensitive".
 60764  func (s ThingConnectivity) String() string {
 60765  	return awsutil.Prettify(s)
 60766  }
 60767  
 60768  // GoString returns the string representation.
 60769  //
 60770  // API parameter values that are decorated as "sensitive" in the API will not
 60771  // be included in the string output. The member name will be present, but the
 60772  // value will be replaced with "sensitive".
 60773  func (s ThingConnectivity) GoString() string {
 60774  	return s.String()
 60775  }
 60776  
 60777  // SetConnected sets the Connected field's value.
 60778  func (s *ThingConnectivity) SetConnected(v bool) *ThingConnectivity {
 60779  	s.Connected = &v
 60780  	return s
 60781  }
 60782  
 60783  // SetDisconnectReason sets the DisconnectReason field's value.
 60784  func (s *ThingConnectivity) SetDisconnectReason(v string) *ThingConnectivity {
 60785  	s.DisconnectReason = &v
 60786  	return s
 60787  }
 60788  
 60789  // SetTimestamp sets the Timestamp field's value.
 60790  func (s *ThingConnectivity) SetTimestamp(v int64) *ThingConnectivity {
 60791  	s.Timestamp = &v
 60792  	return s
 60793  }
 60794  
 60795  // The thing search index document.
 60796  type ThingDocument struct {
 60797  	_ struct{} `type:"structure"`
 60798  
 60799  	// The attributes.
 60800  	Attributes map[string]*string `locationName:"attributes" type:"map"`
 60801  
 60802  	// Indicates whether the thing is connected to the Amazon Web Services IoT Core
 60803  	// service.
 60804  	Connectivity *ThingConnectivity `locationName:"connectivity" type:"structure"`
 60805  
 60806  	// The shadow.
 60807  	Shadow *string `locationName:"shadow" type:"string"`
 60808  
 60809  	// Thing group names.
 60810  	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
 60811  
 60812  	// The thing ID.
 60813  	ThingId *string `locationName:"thingId" type:"string"`
 60814  
 60815  	// The thing name.
 60816  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 60817  
 60818  	// The thing type name.
 60819  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 60820  }
 60821  
 60822  // String returns the string representation.
 60823  //
 60824  // API parameter values that are decorated as "sensitive" in the API will not
 60825  // be included in the string output. The member name will be present, but the
 60826  // value will be replaced with "sensitive".
 60827  func (s ThingDocument) String() string {
 60828  	return awsutil.Prettify(s)
 60829  }
 60830  
 60831  // GoString returns the string representation.
 60832  //
 60833  // API parameter values that are decorated as "sensitive" in the API will not
 60834  // be included in the string output. The member name will be present, but the
 60835  // value will be replaced with "sensitive".
 60836  func (s ThingDocument) GoString() string {
 60837  	return s.String()
 60838  }
 60839  
 60840  // SetAttributes sets the Attributes field's value.
 60841  func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
 60842  	s.Attributes = v
 60843  	return s
 60844  }
 60845  
 60846  // SetConnectivity sets the Connectivity field's value.
 60847  func (s *ThingDocument) SetConnectivity(v *ThingConnectivity) *ThingDocument {
 60848  	s.Connectivity = v
 60849  	return s
 60850  }
 60851  
 60852  // SetShadow sets the Shadow field's value.
 60853  func (s *ThingDocument) SetShadow(v string) *ThingDocument {
 60854  	s.Shadow = &v
 60855  	return s
 60856  }
 60857  
 60858  // SetThingGroupNames sets the ThingGroupNames field's value.
 60859  func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
 60860  	s.ThingGroupNames = v
 60861  	return s
 60862  }
 60863  
 60864  // SetThingId sets the ThingId field's value.
 60865  func (s *ThingDocument) SetThingId(v string) *ThingDocument {
 60866  	s.ThingId = &v
 60867  	return s
 60868  }
 60869  
 60870  // SetThingName sets the ThingName field's value.
 60871  func (s *ThingDocument) SetThingName(v string) *ThingDocument {
 60872  	s.ThingName = &v
 60873  	return s
 60874  }
 60875  
 60876  // SetThingTypeName sets the ThingTypeName field's value.
 60877  func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
 60878  	s.ThingTypeName = &v
 60879  	return s
 60880  }
 60881  
 60882  // The thing group search index document.
 60883  type ThingGroupDocument struct {
 60884  	_ struct{} `type:"structure"`
 60885  
 60886  	// The thing group attributes.
 60887  	Attributes map[string]*string `locationName:"attributes" type:"map"`
 60888  
 60889  	// Parent group names.
 60890  	ParentGroupNames []*string `locationName:"parentGroupNames" type:"list"`
 60891  
 60892  	// The thing group description.
 60893  	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
 60894  
 60895  	// The thing group ID.
 60896  	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
 60897  
 60898  	// The thing group name.
 60899  	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
 60900  }
 60901  
 60902  // String returns the string representation.
 60903  //
 60904  // API parameter values that are decorated as "sensitive" in the API will not
 60905  // be included in the string output. The member name will be present, but the
 60906  // value will be replaced with "sensitive".
 60907  func (s ThingGroupDocument) String() string {
 60908  	return awsutil.Prettify(s)
 60909  }
 60910  
 60911  // GoString returns the string representation.
 60912  //
 60913  // API parameter values that are decorated as "sensitive" in the API will not
 60914  // be included in the string output. The member name will be present, but the
 60915  // value will be replaced with "sensitive".
 60916  func (s ThingGroupDocument) GoString() string {
 60917  	return s.String()
 60918  }
 60919  
 60920  // SetAttributes sets the Attributes field's value.
 60921  func (s *ThingGroupDocument) SetAttributes(v map[string]*string) *ThingGroupDocument {
 60922  	s.Attributes = v
 60923  	return s
 60924  }
 60925  
 60926  // SetParentGroupNames sets the ParentGroupNames field's value.
 60927  func (s *ThingGroupDocument) SetParentGroupNames(v []*string) *ThingGroupDocument {
 60928  	s.ParentGroupNames = v
 60929  	return s
 60930  }
 60931  
 60932  // SetThingGroupDescription sets the ThingGroupDescription field's value.
 60933  func (s *ThingGroupDocument) SetThingGroupDescription(v string) *ThingGroupDocument {
 60934  	s.ThingGroupDescription = &v
 60935  	return s
 60936  }
 60937  
 60938  // SetThingGroupId sets the ThingGroupId field's value.
 60939  func (s *ThingGroupDocument) SetThingGroupId(v string) *ThingGroupDocument {
 60940  	s.ThingGroupId = &v
 60941  	return s
 60942  }
 60943  
 60944  // SetThingGroupName sets the ThingGroupName field's value.
 60945  func (s *ThingGroupDocument) SetThingGroupName(v string) *ThingGroupDocument {
 60946  	s.ThingGroupName = &v
 60947  	return s
 60948  }
 60949  
 60950  // Thing group indexing configuration.
 60951  type ThingGroupIndexingConfiguration struct {
 60952  	_ struct{} `type:"structure"`
 60953  
 60954  	// A list of thing group fields to index. This list cannot contain any managed
 60955  	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
 60956  	//
 60957  	// Contains custom field names and their data type.
 60958  	CustomFields []*Field `locationName:"customFields" type:"list"`
 60959  
 60960  	// Contains fields that are indexed and whose types are already known by the
 60961  	// Fleet Indexing service.
 60962  	ManagedFields []*Field `locationName:"managedFields" type:"list"`
 60963  
 60964  	// Thing group indexing mode.
 60965  	//
 60966  	// ThingGroupIndexingMode is a required field
 60967  	ThingGroupIndexingMode *string `locationName:"thingGroupIndexingMode" type:"string" required:"true" enum:"ThingGroupIndexingMode"`
 60968  }
 60969  
 60970  // String returns the string representation.
 60971  //
 60972  // API parameter values that are decorated as "sensitive" in the API will not
 60973  // be included in the string output. The member name will be present, but the
 60974  // value will be replaced with "sensitive".
 60975  func (s ThingGroupIndexingConfiguration) String() string {
 60976  	return awsutil.Prettify(s)
 60977  }
 60978  
 60979  // GoString returns the string representation.
 60980  //
 60981  // API parameter values that are decorated as "sensitive" in the API will not
 60982  // be included in the string output. The member name will be present, but the
 60983  // value will be replaced with "sensitive".
 60984  func (s ThingGroupIndexingConfiguration) GoString() string {
 60985  	return s.String()
 60986  }
 60987  
 60988  // Validate inspects the fields of the type to determine if they are valid.
 60989  func (s *ThingGroupIndexingConfiguration) Validate() error {
 60990  	invalidParams := request.ErrInvalidParams{Context: "ThingGroupIndexingConfiguration"}
 60991  	if s.ThingGroupIndexingMode == nil {
 60992  		invalidParams.Add(request.NewErrParamRequired("ThingGroupIndexingMode"))
 60993  	}
 60994  
 60995  	if invalidParams.Len() > 0 {
 60996  		return invalidParams
 60997  	}
 60998  	return nil
 60999  }
 61000  
 61001  // SetCustomFields sets the CustomFields field's value.
 61002  func (s *ThingGroupIndexingConfiguration) SetCustomFields(v []*Field) *ThingGroupIndexingConfiguration {
 61003  	s.CustomFields = v
 61004  	return s
 61005  }
 61006  
 61007  // SetManagedFields sets the ManagedFields field's value.
 61008  func (s *ThingGroupIndexingConfiguration) SetManagedFields(v []*Field) *ThingGroupIndexingConfiguration {
 61009  	s.ManagedFields = v
 61010  	return s
 61011  }
 61012  
 61013  // SetThingGroupIndexingMode sets the ThingGroupIndexingMode field's value.
 61014  func (s *ThingGroupIndexingConfiguration) SetThingGroupIndexingMode(v string) *ThingGroupIndexingConfiguration {
 61015  	s.ThingGroupIndexingMode = &v
 61016  	return s
 61017  }
 61018  
 61019  // Thing group metadata.
 61020  type ThingGroupMetadata struct {
 61021  	_ struct{} `type:"structure"`
 61022  
 61023  	// The UNIX timestamp of when the thing group was created.
 61024  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 61025  
 61026  	// The parent thing group name.
 61027  	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
 61028  
 61029  	// The root parent thing group.
 61030  	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
 61031  }
 61032  
 61033  // String returns the string representation.
 61034  //
 61035  // API parameter values that are decorated as "sensitive" in the API will not
 61036  // be included in the string output. The member name will be present, but the
 61037  // value will be replaced with "sensitive".
 61038  func (s ThingGroupMetadata) String() string {
 61039  	return awsutil.Prettify(s)
 61040  }
 61041  
 61042  // GoString returns the string representation.
 61043  //
 61044  // API parameter values that are decorated as "sensitive" in the API will not
 61045  // be included in the string output. The member name will be present, but the
 61046  // value will be replaced with "sensitive".
 61047  func (s ThingGroupMetadata) GoString() string {
 61048  	return s.String()
 61049  }
 61050  
 61051  // SetCreationDate sets the CreationDate field's value.
 61052  func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
 61053  	s.CreationDate = &v
 61054  	return s
 61055  }
 61056  
 61057  // SetParentGroupName sets the ParentGroupName field's value.
 61058  func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
 61059  	s.ParentGroupName = &v
 61060  	return s
 61061  }
 61062  
 61063  // SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
 61064  func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
 61065  	s.RootToParentThingGroups = v
 61066  	return s
 61067  }
 61068  
 61069  // Thing group properties.
 61070  type ThingGroupProperties struct {
 61071  	_ struct{} `type:"structure"`
 61072  
 61073  	// The thing group attributes in JSON format.
 61074  	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
 61075  
 61076  	// The thing group description.
 61077  	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
 61078  }
 61079  
 61080  // String returns the string representation.
 61081  //
 61082  // API parameter values that are decorated as "sensitive" in the API will not
 61083  // be included in the string output. The member name will be present, but the
 61084  // value will be replaced with "sensitive".
 61085  func (s ThingGroupProperties) String() string {
 61086  	return awsutil.Prettify(s)
 61087  }
 61088  
 61089  // GoString returns the string representation.
 61090  //
 61091  // API parameter values that are decorated as "sensitive" in the API will not
 61092  // be included in the string output. The member name will be present, but the
 61093  // value will be replaced with "sensitive".
 61094  func (s ThingGroupProperties) GoString() string {
 61095  	return s.String()
 61096  }
 61097  
 61098  // SetAttributePayload sets the AttributePayload field's value.
 61099  func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
 61100  	s.AttributePayload = v
 61101  	return s
 61102  }
 61103  
 61104  // SetThingGroupDescription sets the ThingGroupDescription field's value.
 61105  func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
 61106  	s.ThingGroupDescription = &v
 61107  	return s
 61108  }
 61109  
 61110  // The thing indexing configuration. For more information, see Managing Thing
 61111  // Indexing (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
 61112  type ThingIndexingConfiguration struct {
 61113  	_ struct{} `type:"structure"`
 61114  
 61115  	// Contains custom field names and their data type.
 61116  	CustomFields []*Field `locationName:"customFields" type:"list"`
 61117  
 61118  	// Contains fields that are indexed and whose types are already known by the
 61119  	// Fleet Indexing service.
 61120  	ManagedFields []*Field `locationName:"managedFields" type:"list"`
 61121  
 61122  	// Thing connectivity indexing mode. Valid values are:
 61123  	//
 61124  	//    * STATUS – Your thing index contains connectivity status. To enable
 61125  	//    thing connectivity indexing, thingIndexMode must not be set to OFF.
 61126  	//
 61127  	//    * OFF - Thing connectivity status indexing is disabled.
 61128  	ThingConnectivityIndexingMode *string `locationName:"thingConnectivityIndexingMode" type:"string" enum:"ThingConnectivityIndexingMode"`
 61129  
 61130  	// Thing indexing mode. Valid values are:
 61131  	//
 61132  	//    * REGISTRY – Your thing index contains registry data only.
 61133  	//
 61134  	//    * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow
 61135  	//    data.
 61136  	//
 61137  	//    * OFF - Thing indexing is disabled.
 61138  	//
 61139  	// ThingIndexingMode is a required field
 61140  	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" required:"true" enum:"ThingIndexingMode"`
 61141  }
 61142  
 61143  // String returns the string representation.
 61144  //
 61145  // API parameter values that are decorated as "sensitive" in the API will not
 61146  // be included in the string output. The member name will be present, but the
 61147  // value will be replaced with "sensitive".
 61148  func (s ThingIndexingConfiguration) String() string {
 61149  	return awsutil.Prettify(s)
 61150  }
 61151  
 61152  // GoString returns the string representation.
 61153  //
 61154  // API parameter values that are decorated as "sensitive" in the API will not
 61155  // be included in the string output. The member name will be present, but the
 61156  // value will be replaced with "sensitive".
 61157  func (s ThingIndexingConfiguration) GoString() string {
 61158  	return s.String()
 61159  }
 61160  
 61161  // Validate inspects the fields of the type to determine if they are valid.
 61162  func (s *ThingIndexingConfiguration) Validate() error {
 61163  	invalidParams := request.ErrInvalidParams{Context: "ThingIndexingConfiguration"}
 61164  	if s.ThingIndexingMode == nil {
 61165  		invalidParams.Add(request.NewErrParamRequired("ThingIndexingMode"))
 61166  	}
 61167  
 61168  	if invalidParams.Len() > 0 {
 61169  		return invalidParams
 61170  	}
 61171  	return nil
 61172  }
 61173  
 61174  // SetCustomFields sets the CustomFields field's value.
 61175  func (s *ThingIndexingConfiguration) SetCustomFields(v []*Field) *ThingIndexingConfiguration {
 61176  	s.CustomFields = v
 61177  	return s
 61178  }
 61179  
 61180  // SetManagedFields sets the ManagedFields field's value.
 61181  func (s *ThingIndexingConfiguration) SetManagedFields(v []*Field) *ThingIndexingConfiguration {
 61182  	s.ManagedFields = v
 61183  	return s
 61184  }
 61185  
 61186  // SetThingConnectivityIndexingMode sets the ThingConnectivityIndexingMode field's value.
 61187  func (s *ThingIndexingConfiguration) SetThingConnectivityIndexingMode(v string) *ThingIndexingConfiguration {
 61188  	s.ThingConnectivityIndexingMode = &v
 61189  	return s
 61190  }
 61191  
 61192  // SetThingIndexingMode sets the ThingIndexingMode field's value.
 61193  func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
 61194  	s.ThingIndexingMode = &v
 61195  	return s
 61196  }
 61197  
 61198  // The definition of the thing type, including thing type name and description.
 61199  type ThingTypeDefinition struct {
 61200  	_ struct{} `type:"structure"`
 61201  
 61202  	// The thing type ARN.
 61203  	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
 61204  
 61205  	// The ThingTypeMetadata contains additional information about the thing type
 61206  	// including: creation date and time, a value indicating whether the thing type
 61207  	// is deprecated, and a date and time when it was deprecated.
 61208  	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
 61209  
 61210  	// The name of the thing type.
 61211  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 61212  
 61213  	// The ThingTypeProperties for the thing type.
 61214  	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
 61215  }
 61216  
 61217  // String returns the string representation.
 61218  //
 61219  // API parameter values that are decorated as "sensitive" in the API will not
 61220  // be included in the string output. The member name will be present, but the
 61221  // value will be replaced with "sensitive".
 61222  func (s ThingTypeDefinition) String() string {
 61223  	return awsutil.Prettify(s)
 61224  }
 61225  
 61226  // GoString returns the string representation.
 61227  //
 61228  // API parameter values that are decorated as "sensitive" in the API will not
 61229  // be included in the string output. The member name will be present, but the
 61230  // value will be replaced with "sensitive".
 61231  func (s ThingTypeDefinition) GoString() string {
 61232  	return s.String()
 61233  }
 61234  
 61235  // SetThingTypeArn sets the ThingTypeArn field's value.
 61236  func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
 61237  	s.ThingTypeArn = &v
 61238  	return s
 61239  }
 61240  
 61241  // SetThingTypeMetadata sets the ThingTypeMetadata field's value.
 61242  func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
 61243  	s.ThingTypeMetadata = v
 61244  	return s
 61245  }
 61246  
 61247  // SetThingTypeName sets the ThingTypeName field's value.
 61248  func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
 61249  	s.ThingTypeName = &v
 61250  	return s
 61251  }
 61252  
 61253  // SetThingTypeProperties sets the ThingTypeProperties field's value.
 61254  func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
 61255  	s.ThingTypeProperties = v
 61256  	return s
 61257  }
 61258  
 61259  // The ThingTypeMetadata contains additional information about the thing type
 61260  // including: creation date and time, a value indicating whether the thing type
 61261  // is deprecated, and a date and time when time was deprecated.
 61262  type ThingTypeMetadata struct {
 61263  	_ struct{} `type:"structure"`
 61264  
 61265  	// The date and time when the thing type was created.
 61266  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 61267  
 61268  	// Whether the thing type is deprecated. If true, no new things could be associated
 61269  	// with this type.
 61270  	Deprecated *bool `locationName:"deprecated" type:"boolean"`
 61271  
 61272  	// The date and time when the thing type was deprecated.
 61273  	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
 61274  }
 61275  
 61276  // String returns the string representation.
 61277  //
 61278  // API parameter values that are decorated as "sensitive" in the API will not
 61279  // be included in the string output. The member name will be present, but the
 61280  // value will be replaced with "sensitive".
 61281  func (s ThingTypeMetadata) String() string {
 61282  	return awsutil.Prettify(s)
 61283  }
 61284  
 61285  // GoString returns the string representation.
 61286  //
 61287  // API parameter values that are decorated as "sensitive" in the API will not
 61288  // be included in the string output. The member name will be present, but the
 61289  // value will be replaced with "sensitive".
 61290  func (s ThingTypeMetadata) GoString() string {
 61291  	return s.String()
 61292  }
 61293  
 61294  // SetCreationDate sets the CreationDate field's value.
 61295  func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
 61296  	s.CreationDate = &v
 61297  	return s
 61298  }
 61299  
 61300  // SetDeprecated sets the Deprecated field's value.
 61301  func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
 61302  	s.Deprecated = &v
 61303  	return s
 61304  }
 61305  
 61306  // SetDeprecationDate sets the DeprecationDate field's value.
 61307  func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
 61308  	s.DeprecationDate = &v
 61309  	return s
 61310  }
 61311  
 61312  // The ThingTypeProperties contains information about the thing type including:
 61313  // a thing type description, and a list of searchable thing attribute names.
 61314  type ThingTypeProperties struct {
 61315  	_ struct{} `type:"structure"`
 61316  
 61317  	// A list of searchable thing attribute names.
 61318  	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
 61319  
 61320  	// The description of the thing type.
 61321  	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
 61322  }
 61323  
 61324  // String returns the string representation.
 61325  //
 61326  // API parameter values that are decorated as "sensitive" in the API will not
 61327  // be included in the string output. The member name will be present, but the
 61328  // value will be replaced with "sensitive".
 61329  func (s ThingTypeProperties) String() string {
 61330  	return awsutil.Prettify(s)
 61331  }
 61332  
 61333  // GoString returns the string representation.
 61334  //
 61335  // API parameter values that are decorated as "sensitive" in the API will not
 61336  // be included in the string output. The member name will be present, but the
 61337  // value will be replaced with "sensitive".
 61338  func (s ThingTypeProperties) GoString() string {
 61339  	return s.String()
 61340  }
 61341  
 61342  // SetSearchableAttributes sets the SearchableAttributes field's value.
 61343  func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
 61344  	s.SearchableAttributes = v
 61345  	return s
 61346  }
 61347  
 61348  // SetThingTypeDescription sets the ThingTypeDescription field's value.
 61349  func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
 61350  	s.ThingTypeDescription = &v
 61351  	return s
 61352  }
 61353  
 61354  // The rate exceeds the limit.
 61355  type ThrottlingException struct {
 61356  	_            struct{}                  `type:"structure"`
 61357  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 61358  
 61359  	// The message for the exception.
 61360  	Message_ *string `locationName:"message" type:"string"`
 61361  }
 61362  
 61363  // String returns the string representation.
 61364  //
 61365  // API parameter values that are decorated as "sensitive" in the API will not
 61366  // be included in the string output. The member name will be present, but the
 61367  // value will be replaced with "sensitive".
 61368  func (s ThrottlingException) String() string {
 61369  	return awsutil.Prettify(s)
 61370  }
 61371  
 61372  // GoString returns the string representation.
 61373  //
 61374  // API parameter values that are decorated as "sensitive" in the API will not
 61375  // be included in the string output. The member name will be present, but the
 61376  // value will be replaced with "sensitive".
 61377  func (s ThrottlingException) GoString() string {
 61378  	return s.String()
 61379  }
 61380  
 61381  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
 61382  	return &ThrottlingException{
 61383  		RespMetadata: v,
 61384  	}
 61385  }
 61386  
 61387  // Code returns the exception type name.
 61388  func (s *ThrottlingException) Code() string {
 61389  	return "ThrottlingException"
 61390  }
 61391  
 61392  // Message returns the exception's message.
 61393  func (s *ThrottlingException) Message() string {
 61394  	if s.Message_ != nil {
 61395  		return *s.Message_
 61396  	}
 61397  	return ""
 61398  }
 61399  
 61400  // OrigErr always returns nil, satisfies awserr.Error interface.
 61401  func (s *ThrottlingException) OrigErr() error {
 61402  	return nil
 61403  }
 61404  
 61405  func (s *ThrottlingException) Error() string {
 61406  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 61407  }
 61408  
 61409  // Status code returns the HTTP status code for the request's response error.
 61410  func (s *ThrottlingException) StatusCode() int {
 61411  	return s.RespMetadata.StatusCode
 61412  }
 61413  
 61414  // RequestID returns the service's response RequestID for request.
 61415  func (s *ThrottlingException) RequestID() string {
 61416  	return s.RespMetadata.RequestID
 61417  }
 61418  
 61419  // Specifies the amount of time each device has to finish its execution of the
 61420  // job. A timer is started when the job execution status is set to IN_PROGRESS.
 61421  // If the job execution status is not set to another terminal state before the
 61422  // timer expires, it will be automatically set to TIMED_OUT.
 61423  type TimeoutConfig struct {
 61424  	_ struct{} `type:"structure"`
 61425  
 61426  	// Specifies the amount of time, in minutes, this device has to finish execution
 61427  	// of this job. The timeout interval can be anywhere between 1 minute and 7
 61428  	// days (1 to 10080 minutes). The in progress timer can't be updated and will
 61429  	// apply to all job executions for the job. Whenever a job execution remains
 61430  	// in the IN_PROGRESS status for longer than this interval, the job execution
 61431  	// will fail and switch to the terminal TIMED_OUT status.
 61432  	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
 61433  }
 61434  
 61435  // String returns the string representation.
 61436  //
 61437  // API parameter values that are decorated as "sensitive" in the API will not
 61438  // be included in the string output. The member name will be present, but the
 61439  // value will be replaced with "sensitive".
 61440  func (s TimeoutConfig) String() string {
 61441  	return awsutil.Prettify(s)
 61442  }
 61443  
 61444  // GoString returns the string representation.
 61445  //
 61446  // API parameter values that are decorated as "sensitive" in the API will not
 61447  // be included in the string output. The member name will be present, but the
 61448  // value will be replaced with "sensitive".
 61449  func (s TimeoutConfig) GoString() string {
 61450  	return s.String()
 61451  }
 61452  
 61453  // SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
 61454  func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig {
 61455  	s.InProgressTimeoutInMinutes = &v
 61456  	return s
 61457  }
 61458  
 61459  // The Timestream rule action writes attributes (measures) from an MQTT message
 61460  // into an Amazon Timestream table. For more information, see the Timestream
 61461  // (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
 61462  // topic rule action documentation.
 61463  type TimestreamAction struct {
 61464  	_ struct{} `type:"structure"`
 61465  
 61466  	// The name of an Amazon Timestream database.
 61467  	//
 61468  	// DatabaseName is a required field
 61469  	DatabaseName *string `locationName:"databaseName" type:"string" required:"true"`
 61470  
 61471  	// Metadata attributes of the time series that are written in each measure record.
 61472  	//
 61473  	// Dimensions is a required field
 61474  	Dimensions []*TimestreamDimension `locationName:"dimensions" min:"1" type:"list" required:"true"`
 61475  
 61476  	// The ARN of the role that grants permission to write to the Amazon Timestream
 61477  	// database table.
 61478  	//
 61479  	// RoleArn is a required field
 61480  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 61481  
 61482  	// The name of the database table into which to write the measure records.
 61483  	//
 61484  	// TableName is a required field
 61485  	TableName *string `locationName:"tableName" type:"string" required:"true"`
 61486  
 61487  	// Specifies an application-defined value to replace the default value assigned
 61488  	// to the Timestream record's timestamp in the time column.
 61489  	//
 61490  	// You can use this property to specify the value and the precision of the Timestream
 61491  	// record's timestamp. You can specify a value from the message payload or a
 61492  	// value computed by a substitution template.
 61493  	//
 61494  	// If omitted, the topic rule action assigns the timestamp, in milliseconds,
 61495  	// at the time it processed the rule.
 61496  	Timestamp *TimestreamTimestamp `locationName:"timestamp" type:"structure"`
 61497  }
 61498  
 61499  // String returns the string representation.
 61500  //
 61501  // API parameter values that are decorated as "sensitive" in the API will not
 61502  // be included in the string output. The member name will be present, but the
 61503  // value will be replaced with "sensitive".
 61504  func (s TimestreamAction) String() string {
 61505  	return awsutil.Prettify(s)
 61506  }
 61507  
 61508  // GoString returns the string representation.
 61509  //
 61510  // API parameter values that are decorated as "sensitive" in the API will not
 61511  // be included in the string output. The member name will be present, but the
 61512  // value will be replaced with "sensitive".
 61513  func (s TimestreamAction) GoString() string {
 61514  	return s.String()
 61515  }
 61516  
 61517  // Validate inspects the fields of the type to determine if they are valid.
 61518  func (s *TimestreamAction) Validate() error {
 61519  	invalidParams := request.ErrInvalidParams{Context: "TimestreamAction"}
 61520  	if s.DatabaseName == nil {
 61521  		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
 61522  	}
 61523  	if s.Dimensions == nil {
 61524  		invalidParams.Add(request.NewErrParamRequired("Dimensions"))
 61525  	}
 61526  	if s.Dimensions != nil && len(s.Dimensions) < 1 {
 61527  		invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1))
 61528  	}
 61529  	if s.RoleArn == nil {
 61530  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 61531  	}
 61532  	if s.TableName == nil {
 61533  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 61534  	}
 61535  	if s.Dimensions != nil {
 61536  		for i, v := range s.Dimensions {
 61537  			if v == nil {
 61538  				continue
 61539  			}
 61540  			if err := v.Validate(); err != nil {
 61541  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
 61542  			}
 61543  		}
 61544  	}
 61545  	if s.Timestamp != nil {
 61546  		if err := s.Timestamp.Validate(); err != nil {
 61547  			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
 61548  		}
 61549  	}
 61550  
 61551  	if invalidParams.Len() > 0 {
 61552  		return invalidParams
 61553  	}
 61554  	return nil
 61555  }
 61556  
 61557  // SetDatabaseName sets the DatabaseName field's value.
 61558  func (s *TimestreamAction) SetDatabaseName(v string) *TimestreamAction {
 61559  	s.DatabaseName = &v
 61560  	return s
 61561  }
 61562  
 61563  // SetDimensions sets the Dimensions field's value.
 61564  func (s *TimestreamAction) SetDimensions(v []*TimestreamDimension) *TimestreamAction {
 61565  	s.Dimensions = v
 61566  	return s
 61567  }
 61568  
 61569  // SetRoleArn sets the RoleArn field's value.
 61570  func (s *TimestreamAction) SetRoleArn(v string) *TimestreamAction {
 61571  	s.RoleArn = &v
 61572  	return s
 61573  }
 61574  
 61575  // SetTableName sets the TableName field's value.
 61576  func (s *TimestreamAction) SetTableName(v string) *TimestreamAction {
 61577  	s.TableName = &v
 61578  	return s
 61579  }
 61580  
 61581  // SetTimestamp sets the Timestamp field's value.
 61582  func (s *TimestreamAction) SetTimestamp(v *TimestreamTimestamp) *TimestreamAction {
 61583  	s.Timestamp = v
 61584  	return s
 61585  }
 61586  
 61587  // Metadata attributes of the time series that are written in each measure record.
 61588  type TimestreamDimension struct {
 61589  	_ struct{} `type:"structure"`
 61590  
 61591  	// The metadata dimension name. This is the name of the column in the Amazon
 61592  	// Timestream database table record.
 61593  	//
 61594  	// Dimensions cannot be named: measure_name, measure_value, or time. These names
 61595  	// are reserved. Dimension names cannot start with ts_ or measure_value and
 61596  	// they cannot contain the colon (:) character.
 61597  	//
 61598  	// Name is a required field
 61599  	Name *string `locationName:"name" type:"string" required:"true"`
 61600  
 61601  	// The value to write in this column of the database record.
 61602  	//
 61603  	// Value is a required field
 61604  	Value *string `locationName:"value" type:"string" required:"true"`
 61605  }
 61606  
 61607  // String returns the string representation.
 61608  //
 61609  // API parameter values that are decorated as "sensitive" in the API will not
 61610  // be included in the string output. The member name will be present, but the
 61611  // value will be replaced with "sensitive".
 61612  func (s TimestreamDimension) String() string {
 61613  	return awsutil.Prettify(s)
 61614  }
 61615  
 61616  // GoString returns the string representation.
 61617  //
 61618  // API parameter values that are decorated as "sensitive" in the API will not
 61619  // be included in the string output. The member name will be present, but the
 61620  // value will be replaced with "sensitive".
 61621  func (s TimestreamDimension) GoString() string {
 61622  	return s.String()
 61623  }
 61624  
 61625  // Validate inspects the fields of the type to determine if they are valid.
 61626  func (s *TimestreamDimension) Validate() error {
 61627  	invalidParams := request.ErrInvalidParams{Context: "TimestreamDimension"}
 61628  	if s.Name == nil {
 61629  		invalidParams.Add(request.NewErrParamRequired("Name"))
 61630  	}
 61631  	if s.Value == nil {
 61632  		invalidParams.Add(request.NewErrParamRequired("Value"))
 61633  	}
 61634  
 61635  	if invalidParams.Len() > 0 {
 61636  		return invalidParams
 61637  	}
 61638  	return nil
 61639  }
 61640  
 61641  // SetName sets the Name field's value.
 61642  func (s *TimestreamDimension) SetName(v string) *TimestreamDimension {
 61643  	s.Name = &v
 61644  	return s
 61645  }
 61646  
 61647  // SetValue sets the Value field's value.
 61648  func (s *TimestreamDimension) SetValue(v string) *TimestreamDimension {
 61649  	s.Value = &v
 61650  	return s
 61651  }
 61652  
 61653  // Describes how to interpret an application-defined timestamp value from an
 61654  // MQTT message payload and the precision of that value.
 61655  type TimestreamTimestamp struct {
 61656  	_ struct{} `type:"structure"`
 61657  
 61658  	// The precision of the timestamp value that results from the expression described
 61659  	// in value.
 61660  	//
 61661  	// Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default
 61662  	// is MILLISECONDS.
 61663  	//
 61664  	// Unit is a required field
 61665  	Unit *string `locationName:"unit" type:"string" required:"true"`
 61666  
 61667  	// An expression that returns a long epoch time value.
 61668  	//
 61669  	// Value is a required field
 61670  	Value *string `locationName:"value" type:"string" required:"true"`
 61671  }
 61672  
 61673  // String returns the string representation.
 61674  //
 61675  // API parameter values that are decorated as "sensitive" in the API will not
 61676  // be included in the string output. The member name will be present, but the
 61677  // value will be replaced with "sensitive".
 61678  func (s TimestreamTimestamp) String() string {
 61679  	return awsutil.Prettify(s)
 61680  }
 61681  
 61682  // GoString returns the string representation.
 61683  //
 61684  // API parameter values that are decorated as "sensitive" in the API will not
 61685  // be included in the string output. The member name will be present, but the
 61686  // value will be replaced with "sensitive".
 61687  func (s TimestreamTimestamp) GoString() string {
 61688  	return s.String()
 61689  }
 61690  
 61691  // Validate inspects the fields of the type to determine if they are valid.
 61692  func (s *TimestreamTimestamp) Validate() error {
 61693  	invalidParams := request.ErrInvalidParams{Context: "TimestreamTimestamp"}
 61694  	if s.Unit == nil {
 61695  		invalidParams.Add(request.NewErrParamRequired("Unit"))
 61696  	}
 61697  	if s.Value == nil {
 61698  		invalidParams.Add(request.NewErrParamRequired("Value"))
 61699  	}
 61700  
 61701  	if invalidParams.Len() > 0 {
 61702  		return invalidParams
 61703  	}
 61704  	return nil
 61705  }
 61706  
 61707  // SetUnit sets the Unit field's value.
 61708  func (s *TimestreamTimestamp) SetUnit(v string) *TimestreamTimestamp {
 61709  	s.Unit = &v
 61710  	return s
 61711  }
 61712  
 61713  // SetValue sets the Value field's value.
 61714  func (s *TimestreamTimestamp) SetValue(v string) *TimestreamTimestamp {
 61715  	s.Value = &v
 61716  	return s
 61717  }
 61718  
 61719  // Specifies the TLS context to use for the test authorizer request.
 61720  type TlsContext struct {
 61721  	_ struct{} `type:"structure"`
 61722  
 61723  	// The value of the serverName key in a TLS authorization request.
 61724  	ServerName *string `locationName:"serverName" min:"1" type:"string"`
 61725  }
 61726  
 61727  // String returns the string representation.
 61728  //
 61729  // API parameter values that are decorated as "sensitive" in the API will not
 61730  // be included in the string output. The member name will be present, but the
 61731  // value will be replaced with "sensitive".
 61732  func (s TlsContext) String() string {
 61733  	return awsutil.Prettify(s)
 61734  }
 61735  
 61736  // GoString returns the string representation.
 61737  //
 61738  // API parameter values that are decorated as "sensitive" in the API will not
 61739  // be included in the string output. The member name will be present, but the
 61740  // value will be replaced with "sensitive".
 61741  func (s TlsContext) GoString() string {
 61742  	return s.String()
 61743  }
 61744  
 61745  // Validate inspects the fields of the type to determine if they are valid.
 61746  func (s *TlsContext) Validate() error {
 61747  	invalidParams := request.ErrInvalidParams{Context: "TlsContext"}
 61748  	if s.ServerName != nil && len(*s.ServerName) < 1 {
 61749  		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
 61750  	}
 61751  
 61752  	if invalidParams.Len() > 0 {
 61753  		return invalidParams
 61754  	}
 61755  	return nil
 61756  }
 61757  
 61758  // SetServerName sets the ServerName field's value.
 61759  func (s *TlsContext) SetServerName(v string) *TlsContext {
 61760  	s.ServerName = &v
 61761  	return s
 61762  }
 61763  
 61764  // Describes a rule.
 61765  type TopicRule struct {
 61766  	_ struct{} `type:"structure"`
 61767  
 61768  	// The actions associated with the rule.
 61769  	Actions []*Action `locationName:"actions" type:"list"`
 61770  
 61771  	// The version of the SQL rules engine to use when evaluating the rule.
 61772  	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
 61773  
 61774  	// The date and time the rule was created.
 61775  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 61776  
 61777  	// The description of the rule.
 61778  	Description *string `locationName:"description" type:"string"`
 61779  
 61780  	// The action to perform when an error occurs.
 61781  	ErrorAction *Action `locationName:"errorAction" type:"structure"`
 61782  
 61783  	// Specifies whether the rule is disabled.
 61784  	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
 61785  
 61786  	// The name of the rule.
 61787  	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
 61788  
 61789  	// The SQL statement used to query the topic. When using a SQL query with multiple
 61790  	// lines, be sure to escape the newline characters.
 61791  	Sql *string `locationName:"sql" type:"string"`
 61792  }
 61793  
 61794  // String returns the string representation.
 61795  //
 61796  // API parameter values that are decorated as "sensitive" in the API will not
 61797  // be included in the string output. The member name will be present, but the
 61798  // value will be replaced with "sensitive".
 61799  func (s TopicRule) String() string {
 61800  	return awsutil.Prettify(s)
 61801  }
 61802  
 61803  // GoString returns the string representation.
 61804  //
 61805  // API parameter values that are decorated as "sensitive" in the API will not
 61806  // be included in the string output. The member name will be present, but the
 61807  // value will be replaced with "sensitive".
 61808  func (s TopicRule) GoString() string {
 61809  	return s.String()
 61810  }
 61811  
 61812  // SetActions sets the Actions field's value.
 61813  func (s *TopicRule) SetActions(v []*Action) *TopicRule {
 61814  	s.Actions = v
 61815  	return s
 61816  }
 61817  
 61818  // SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
 61819  func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
 61820  	s.AwsIotSqlVersion = &v
 61821  	return s
 61822  }
 61823  
 61824  // SetCreatedAt sets the CreatedAt field's value.
 61825  func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
 61826  	s.CreatedAt = &v
 61827  	return s
 61828  }
 61829  
 61830  // SetDescription sets the Description field's value.
 61831  func (s *TopicRule) SetDescription(v string) *TopicRule {
 61832  	s.Description = &v
 61833  	return s
 61834  }
 61835  
 61836  // SetErrorAction sets the ErrorAction field's value.
 61837  func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
 61838  	s.ErrorAction = v
 61839  	return s
 61840  }
 61841  
 61842  // SetRuleDisabled sets the RuleDisabled field's value.
 61843  func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
 61844  	s.RuleDisabled = &v
 61845  	return s
 61846  }
 61847  
 61848  // SetRuleName sets the RuleName field's value.
 61849  func (s *TopicRule) SetRuleName(v string) *TopicRule {
 61850  	s.RuleName = &v
 61851  	return s
 61852  }
 61853  
 61854  // SetSql sets the Sql field's value.
 61855  func (s *TopicRule) SetSql(v string) *TopicRule {
 61856  	s.Sql = &v
 61857  	return s
 61858  }
 61859  
 61860  // A topic rule destination.
 61861  type TopicRuleDestination struct {
 61862  	_ struct{} `type:"structure"`
 61863  
 61864  	// The topic rule destination URL.
 61865  	Arn *string `locationName:"arn" type:"string"`
 61866  
 61867  	// The date and time when the topic rule destination was created.
 61868  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 61869  
 61870  	// Properties of the HTTP URL.
 61871  	HttpUrlProperties *HttpUrlDestinationProperties `locationName:"httpUrlProperties" type:"structure"`
 61872  
 61873  	// The date and time when the topic rule destination was last updated.
 61874  	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
 61875  
 61876  	// The status of the topic rule destination. Valid values are:
 61877  	//
 61878  	// IN_PROGRESS
 61879  	//
 61880  	// A topic rule destination was created but has not been confirmed. You can
 61881  	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
 61882  	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
 61883  	// to your confirmation endpoint.
 61884  	//
 61885  	// ENABLED
 61886  	//
 61887  	// Confirmation was completed, and traffic to this destination is allowed. You
 61888  	// can set status to DISABLED by calling UpdateTopicRuleDestination.
 61889  	//
 61890  	// DISABLED
 61891  	//
 61892  	// Confirmation was completed, and traffic to this destination is not allowed.
 61893  	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
 61894  	//
 61895  	// ERROR
 61896  	//
 61897  	// Confirmation could not be completed, for example if the confirmation timed
 61898  	// out. You can call GetTopicRuleDestination for details about the error. You
 61899  	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
 61900  	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
 61901  	// to your confirmation endpoint.
 61902  	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
 61903  
 61904  	// Additional details or reason why the topic rule destination is in the current
 61905  	// status.
 61906  	StatusReason *string `locationName:"statusReason" type:"string"`
 61907  
 61908  	// Properties of the virtual private cloud (VPC) connection.
 61909  	VpcProperties *VpcDestinationProperties `locationName:"vpcProperties" type:"structure"`
 61910  }
 61911  
 61912  // String returns the string representation.
 61913  //
 61914  // API parameter values that are decorated as "sensitive" in the API will not
 61915  // be included in the string output. The member name will be present, but the
 61916  // value will be replaced with "sensitive".
 61917  func (s TopicRuleDestination) String() string {
 61918  	return awsutil.Prettify(s)
 61919  }
 61920  
 61921  // GoString returns the string representation.
 61922  //
 61923  // API parameter values that are decorated as "sensitive" in the API will not
 61924  // be included in the string output. The member name will be present, but the
 61925  // value will be replaced with "sensitive".
 61926  func (s TopicRuleDestination) GoString() string {
 61927  	return s.String()
 61928  }
 61929  
 61930  // SetArn sets the Arn field's value.
 61931  func (s *TopicRuleDestination) SetArn(v string) *TopicRuleDestination {
 61932  	s.Arn = &v
 61933  	return s
 61934  }
 61935  
 61936  // SetCreatedAt sets the CreatedAt field's value.
 61937  func (s *TopicRuleDestination) SetCreatedAt(v time.Time) *TopicRuleDestination {
 61938  	s.CreatedAt = &v
 61939  	return s
 61940  }
 61941  
 61942  // SetHttpUrlProperties sets the HttpUrlProperties field's value.
 61943  func (s *TopicRuleDestination) SetHttpUrlProperties(v *HttpUrlDestinationProperties) *TopicRuleDestination {
 61944  	s.HttpUrlProperties = v
 61945  	return s
 61946  }
 61947  
 61948  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 61949  func (s *TopicRuleDestination) SetLastUpdatedAt(v time.Time) *TopicRuleDestination {
 61950  	s.LastUpdatedAt = &v
 61951  	return s
 61952  }
 61953  
 61954  // SetStatus sets the Status field's value.
 61955  func (s *TopicRuleDestination) SetStatus(v string) *TopicRuleDestination {
 61956  	s.Status = &v
 61957  	return s
 61958  }
 61959  
 61960  // SetStatusReason sets the StatusReason field's value.
 61961  func (s *TopicRuleDestination) SetStatusReason(v string) *TopicRuleDestination {
 61962  	s.StatusReason = &v
 61963  	return s
 61964  }
 61965  
 61966  // SetVpcProperties sets the VpcProperties field's value.
 61967  func (s *TopicRuleDestination) SetVpcProperties(v *VpcDestinationProperties) *TopicRuleDestination {
 61968  	s.VpcProperties = v
 61969  	return s
 61970  }
 61971  
 61972  // Configuration of the topic rule destination.
 61973  type TopicRuleDestinationConfiguration struct {
 61974  	_ struct{} `type:"structure"`
 61975  
 61976  	// Configuration of the HTTP URL.
 61977  	HttpUrlConfiguration *HttpUrlDestinationConfiguration `locationName:"httpUrlConfiguration" type:"structure"`
 61978  
 61979  	// Configuration of the virtual private cloud (VPC) connection.
 61980  	VpcConfiguration *VpcDestinationConfiguration `locationName:"vpcConfiguration" type:"structure"`
 61981  }
 61982  
 61983  // String returns the string representation.
 61984  //
 61985  // API parameter values that are decorated as "sensitive" in the API will not
 61986  // be included in the string output. The member name will be present, but the
 61987  // value will be replaced with "sensitive".
 61988  func (s TopicRuleDestinationConfiguration) String() string {
 61989  	return awsutil.Prettify(s)
 61990  }
 61991  
 61992  // GoString returns the string representation.
 61993  //
 61994  // API parameter values that are decorated as "sensitive" in the API will not
 61995  // be included in the string output. The member name will be present, but the
 61996  // value will be replaced with "sensitive".
 61997  func (s TopicRuleDestinationConfiguration) GoString() string {
 61998  	return s.String()
 61999  }
 62000  
 62001  // Validate inspects the fields of the type to determine if they are valid.
 62002  func (s *TopicRuleDestinationConfiguration) Validate() error {
 62003  	invalidParams := request.ErrInvalidParams{Context: "TopicRuleDestinationConfiguration"}
 62004  	if s.HttpUrlConfiguration != nil {
 62005  		if err := s.HttpUrlConfiguration.Validate(); err != nil {
 62006  			invalidParams.AddNested("HttpUrlConfiguration", err.(request.ErrInvalidParams))
 62007  		}
 62008  	}
 62009  	if s.VpcConfiguration != nil {
 62010  		if err := s.VpcConfiguration.Validate(); err != nil {
 62011  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
 62012  		}
 62013  	}
 62014  
 62015  	if invalidParams.Len() > 0 {
 62016  		return invalidParams
 62017  	}
 62018  	return nil
 62019  }
 62020  
 62021  // SetHttpUrlConfiguration sets the HttpUrlConfiguration field's value.
 62022  func (s *TopicRuleDestinationConfiguration) SetHttpUrlConfiguration(v *HttpUrlDestinationConfiguration) *TopicRuleDestinationConfiguration {
 62023  	s.HttpUrlConfiguration = v
 62024  	return s
 62025  }
 62026  
 62027  // SetVpcConfiguration sets the VpcConfiguration field's value.
 62028  func (s *TopicRuleDestinationConfiguration) SetVpcConfiguration(v *VpcDestinationConfiguration) *TopicRuleDestinationConfiguration {
 62029  	s.VpcConfiguration = v
 62030  	return s
 62031  }
 62032  
 62033  // Information about the topic rule destination.
 62034  type TopicRuleDestinationSummary struct {
 62035  	_ struct{} `type:"structure"`
 62036  
 62037  	// The topic rule destination ARN.
 62038  	Arn *string `locationName:"arn" type:"string"`
 62039  
 62040  	// The date and time when the topic rule destination was created.
 62041  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 62042  
 62043  	// Information about the HTTP URL.
 62044  	HttpUrlSummary *HttpUrlDestinationSummary `locationName:"httpUrlSummary" type:"structure"`
 62045  
 62046  	// The date and time when the topic rule destination was last updated.
 62047  	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
 62048  
 62049  	// The status of the topic rule destination. Valid values are:
 62050  	//
 62051  	// IN_PROGRESS
 62052  	//
 62053  	// A topic rule destination was created but has not been confirmed. You can
 62054  	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
 62055  	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
 62056  	// to your confirmation endpoint.
 62057  	//
 62058  	// ENABLED
 62059  	//
 62060  	// Confirmation was completed, and traffic to this destination is allowed. You
 62061  	// can set status to DISABLED by calling UpdateTopicRuleDestination.
 62062  	//
 62063  	// DISABLED
 62064  	//
 62065  	// Confirmation was completed, and traffic to this destination is not allowed.
 62066  	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
 62067  	//
 62068  	// ERROR
 62069  	//
 62070  	// Confirmation could not be completed, for example if the confirmation timed
 62071  	// out. You can call GetTopicRuleDestination for details about the error. You
 62072  	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
 62073  	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
 62074  	// to your confirmation endpoint.
 62075  	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
 62076  
 62077  	// The reason the topic rule destination is in the current status.
 62078  	StatusReason *string `locationName:"statusReason" type:"string"`
 62079  
 62080  	// Information about the virtual private cloud (VPC) connection.
 62081  	VpcDestinationSummary *VpcDestinationSummary `locationName:"vpcDestinationSummary" type:"structure"`
 62082  }
 62083  
 62084  // String returns the string representation.
 62085  //
 62086  // API parameter values that are decorated as "sensitive" in the API will not
 62087  // be included in the string output. The member name will be present, but the
 62088  // value will be replaced with "sensitive".
 62089  func (s TopicRuleDestinationSummary) String() string {
 62090  	return awsutil.Prettify(s)
 62091  }
 62092  
 62093  // GoString returns the string representation.
 62094  //
 62095  // API parameter values that are decorated as "sensitive" in the API will not
 62096  // be included in the string output. The member name will be present, but the
 62097  // value will be replaced with "sensitive".
 62098  func (s TopicRuleDestinationSummary) GoString() string {
 62099  	return s.String()
 62100  }
 62101  
 62102  // SetArn sets the Arn field's value.
 62103  func (s *TopicRuleDestinationSummary) SetArn(v string) *TopicRuleDestinationSummary {
 62104  	s.Arn = &v
 62105  	return s
 62106  }
 62107  
 62108  // SetCreatedAt sets the CreatedAt field's value.
 62109  func (s *TopicRuleDestinationSummary) SetCreatedAt(v time.Time) *TopicRuleDestinationSummary {
 62110  	s.CreatedAt = &v
 62111  	return s
 62112  }
 62113  
 62114  // SetHttpUrlSummary sets the HttpUrlSummary field's value.
 62115  func (s *TopicRuleDestinationSummary) SetHttpUrlSummary(v *HttpUrlDestinationSummary) *TopicRuleDestinationSummary {
 62116  	s.HttpUrlSummary = v
 62117  	return s
 62118  }
 62119  
 62120  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 62121  func (s *TopicRuleDestinationSummary) SetLastUpdatedAt(v time.Time) *TopicRuleDestinationSummary {
 62122  	s.LastUpdatedAt = &v
 62123  	return s
 62124  }
 62125  
 62126  // SetStatus sets the Status field's value.
 62127  func (s *TopicRuleDestinationSummary) SetStatus(v string) *TopicRuleDestinationSummary {
 62128  	s.Status = &v
 62129  	return s
 62130  }
 62131  
 62132  // SetStatusReason sets the StatusReason field's value.
 62133  func (s *TopicRuleDestinationSummary) SetStatusReason(v string) *TopicRuleDestinationSummary {
 62134  	s.StatusReason = &v
 62135  	return s
 62136  }
 62137  
 62138  // SetVpcDestinationSummary sets the VpcDestinationSummary field's value.
 62139  func (s *TopicRuleDestinationSummary) SetVpcDestinationSummary(v *VpcDestinationSummary) *TopicRuleDestinationSummary {
 62140  	s.VpcDestinationSummary = v
 62141  	return s
 62142  }
 62143  
 62144  // Describes a rule.
 62145  type TopicRuleListItem struct {
 62146  	_ struct{} `type:"structure"`
 62147  
 62148  	// The date and time the rule was created.
 62149  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 62150  
 62151  	// The rule ARN.
 62152  	RuleArn *string `locationName:"ruleArn" type:"string"`
 62153  
 62154  	// Specifies whether the rule is disabled.
 62155  	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
 62156  
 62157  	// The name of the rule.
 62158  	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
 62159  
 62160  	// The pattern for the topic names that apply.
 62161  	TopicPattern *string `locationName:"topicPattern" type:"string"`
 62162  }
 62163  
 62164  // String returns the string representation.
 62165  //
 62166  // API parameter values that are decorated as "sensitive" in the API will not
 62167  // be included in the string output. The member name will be present, but the
 62168  // value will be replaced with "sensitive".
 62169  func (s TopicRuleListItem) String() string {
 62170  	return awsutil.Prettify(s)
 62171  }
 62172  
 62173  // GoString returns the string representation.
 62174  //
 62175  // API parameter values that are decorated as "sensitive" in the API will not
 62176  // be included in the string output. The member name will be present, but the
 62177  // value will be replaced with "sensitive".
 62178  func (s TopicRuleListItem) GoString() string {
 62179  	return s.String()
 62180  }
 62181  
 62182  // SetCreatedAt sets the CreatedAt field's value.
 62183  func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
 62184  	s.CreatedAt = &v
 62185  	return s
 62186  }
 62187  
 62188  // SetRuleArn sets the RuleArn field's value.
 62189  func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
 62190  	s.RuleArn = &v
 62191  	return s
 62192  }
 62193  
 62194  // SetRuleDisabled sets the RuleDisabled field's value.
 62195  func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
 62196  	s.RuleDisabled = &v
 62197  	return s
 62198  }
 62199  
 62200  // SetRuleName sets the RuleName field's value.
 62201  func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
 62202  	s.RuleName = &v
 62203  	return s
 62204  }
 62205  
 62206  // SetTopicPattern sets the TopicPattern field's value.
 62207  func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
 62208  	s.TopicPattern = &v
 62209  	return s
 62210  }
 62211  
 62212  // Describes a rule.
 62213  type TopicRulePayload struct {
 62214  	_ struct{} `type:"structure"`
 62215  
 62216  	// The actions associated with the rule.
 62217  	//
 62218  	// Actions is a required field
 62219  	Actions []*Action `locationName:"actions" type:"list" required:"true"`
 62220  
 62221  	// The version of the SQL rules engine to use when evaluating the rule.
 62222  	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
 62223  
 62224  	// The description of the rule.
 62225  	Description *string `locationName:"description" type:"string"`
 62226  
 62227  	// The action to take when an error occurs.
 62228  	ErrorAction *Action `locationName:"errorAction" type:"structure"`
 62229  
 62230  	// Specifies whether the rule is disabled.
 62231  	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
 62232  
 62233  	// The SQL statement used to query the topic. For more information, see IoT
 62234  	// SQL Reference (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)
 62235  	// in the IoT Developer Guide.
 62236  	//
 62237  	// Sql is a required field
 62238  	Sql *string `locationName:"sql" type:"string" required:"true"`
 62239  }
 62240  
 62241  // String returns the string representation.
 62242  //
 62243  // API parameter values that are decorated as "sensitive" in the API will not
 62244  // be included in the string output. The member name will be present, but the
 62245  // value will be replaced with "sensitive".
 62246  func (s TopicRulePayload) String() string {
 62247  	return awsutil.Prettify(s)
 62248  }
 62249  
 62250  // GoString returns the string representation.
 62251  //
 62252  // API parameter values that are decorated as "sensitive" in the API will not
 62253  // be included in the string output. The member name will be present, but the
 62254  // value will be replaced with "sensitive".
 62255  func (s TopicRulePayload) GoString() string {
 62256  	return s.String()
 62257  }
 62258  
 62259  // Validate inspects the fields of the type to determine if they are valid.
 62260  func (s *TopicRulePayload) Validate() error {
 62261  	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
 62262  	if s.Actions == nil {
 62263  		invalidParams.Add(request.NewErrParamRequired("Actions"))
 62264  	}
 62265  	if s.Sql == nil {
 62266  		invalidParams.Add(request.NewErrParamRequired("Sql"))
 62267  	}
 62268  	if s.Actions != nil {
 62269  		for i, v := range s.Actions {
 62270  			if v == nil {
 62271  				continue
 62272  			}
 62273  			if err := v.Validate(); err != nil {
 62274  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
 62275  			}
 62276  		}
 62277  	}
 62278  	if s.ErrorAction != nil {
 62279  		if err := s.ErrorAction.Validate(); err != nil {
 62280  			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
 62281  		}
 62282  	}
 62283  
 62284  	if invalidParams.Len() > 0 {
 62285  		return invalidParams
 62286  	}
 62287  	return nil
 62288  }
 62289  
 62290  // SetActions sets the Actions field's value.
 62291  func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
 62292  	s.Actions = v
 62293  	return s
 62294  }
 62295  
 62296  // SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
 62297  func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
 62298  	s.AwsIotSqlVersion = &v
 62299  	return s
 62300  }
 62301  
 62302  // SetDescription sets the Description field's value.
 62303  func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
 62304  	s.Description = &v
 62305  	return s
 62306  }
 62307  
 62308  // SetErrorAction sets the ErrorAction field's value.
 62309  func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
 62310  	s.ErrorAction = v
 62311  	return s
 62312  }
 62313  
 62314  // SetRuleDisabled sets the RuleDisabled field's value.
 62315  func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
 62316  	s.RuleDisabled = &v
 62317  	return s
 62318  }
 62319  
 62320  // SetSql sets the Sql field's value.
 62321  func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
 62322  	s.Sql = &v
 62323  	return s
 62324  }
 62325  
 62326  // You can't revert the certificate transfer because the transfer is already
 62327  // complete.
 62328  type TransferAlreadyCompletedException struct {
 62329  	_            struct{}                  `type:"structure"`
 62330  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 62331  
 62332  	// The message for the exception.
 62333  	Message_ *string `locationName:"message" type:"string"`
 62334  }
 62335  
 62336  // String returns the string representation.
 62337  //
 62338  // API parameter values that are decorated as "sensitive" in the API will not
 62339  // be included in the string output. The member name will be present, but the
 62340  // value will be replaced with "sensitive".
 62341  func (s TransferAlreadyCompletedException) String() string {
 62342  	return awsutil.Prettify(s)
 62343  }
 62344  
 62345  // GoString returns the string representation.
 62346  //
 62347  // API parameter values that are decorated as "sensitive" in the API will not
 62348  // be included in the string output. The member name will be present, but the
 62349  // value will be replaced with "sensitive".
 62350  func (s TransferAlreadyCompletedException) GoString() string {
 62351  	return s.String()
 62352  }
 62353  
 62354  func newErrorTransferAlreadyCompletedException(v protocol.ResponseMetadata) error {
 62355  	return &TransferAlreadyCompletedException{
 62356  		RespMetadata: v,
 62357  	}
 62358  }
 62359  
 62360  // Code returns the exception type name.
 62361  func (s *TransferAlreadyCompletedException) Code() string {
 62362  	return "TransferAlreadyCompletedException"
 62363  }
 62364  
 62365  // Message returns the exception's message.
 62366  func (s *TransferAlreadyCompletedException) Message() string {
 62367  	if s.Message_ != nil {
 62368  		return *s.Message_
 62369  	}
 62370  	return ""
 62371  }
 62372  
 62373  // OrigErr always returns nil, satisfies awserr.Error interface.
 62374  func (s *TransferAlreadyCompletedException) OrigErr() error {
 62375  	return nil
 62376  }
 62377  
 62378  func (s *TransferAlreadyCompletedException) Error() string {
 62379  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 62380  }
 62381  
 62382  // Status code returns the HTTP status code for the request's response error.
 62383  func (s *TransferAlreadyCompletedException) StatusCode() int {
 62384  	return s.RespMetadata.StatusCode
 62385  }
 62386  
 62387  // RequestID returns the service's response RequestID for request.
 62388  func (s *TransferAlreadyCompletedException) RequestID() string {
 62389  	return s.RespMetadata.RequestID
 62390  }
 62391  
 62392  // The input for the TransferCertificate operation.
 62393  type TransferCertificateInput struct {
 62394  	_ struct{} `type:"structure"`
 62395  
 62396  	// The ID of the certificate. (The last part of the certificate ARN contains
 62397  	// the certificate ID.)
 62398  	//
 62399  	// CertificateId is a required field
 62400  	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
 62401  
 62402  	// The Amazon Web Services account.
 62403  	//
 62404  	// TargetAwsAccount is a required field
 62405  	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
 62406  
 62407  	// The transfer message.
 62408  	TransferMessage *string `locationName:"transferMessage" type:"string"`
 62409  }
 62410  
 62411  // String returns the string representation.
 62412  //
 62413  // API parameter values that are decorated as "sensitive" in the API will not
 62414  // be included in the string output. The member name will be present, but the
 62415  // value will be replaced with "sensitive".
 62416  func (s TransferCertificateInput) String() string {
 62417  	return awsutil.Prettify(s)
 62418  }
 62419  
 62420  // GoString returns the string representation.
 62421  //
 62422  // API parameter values that are decorated as "sensitive" in the API will not
 62423  // be included in the string output. The member name will be present, but the
 62424  // value will be replaced with "sensitive".
 62425  func (s TransferCertificateInput) GoString() string {
 62426  	return s.String()
 62427  }
 62428  
 62429  // Validate inspects the fields of the type to determine if they are valid.
 62430  func (s *TransferCertificateInput) Validate() error {
 62431  	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
 62432  	if s.CertificateId == nil {
 62433  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 62434  	}
 62435  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 62436  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 62437  	}
 62438  	if s.TargetAwsAccount == nil {
 62439  		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
 62440  	}
 62441  	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
 62442  		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
 62443  	}
 62444  
 62445  	if invalidParams.Len() > 0 {
 62446  		return invalidParams
 62447  	}
 62448  	return nil
 62449  }
 62450  
 62451  // SetCertificateId sets the CertificateId field's value.
 62452  func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
 62453  	s.CertificateId = &v
 62454  	return s
 62455  }
 62456  
 62457  // SetTargetAwsAccount sets the TargetAwsAccount field's value.
 62458  func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
 62459  	s.TargetAwsAccount = &v
 62460  	return s
 62461  }
 62462  
 62463  // SetTransferMessage sets the TransferMessage field's value.
 62464  func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
 62465  	s.TransferMessage = &v
 62466  	return s
 62467  }
 62468  
 62469  // The output from the TransferCertificate operation.
 62470  type TransferCertificateOutput struct {
 62471  	_ struct{} `type:"structure"`
 62472  
 62473  	// The ARN of the certificate.
 62474  	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
 62475  }
 62476  
 62477  // String returns the string representation.
 62478  //
 62479  // API parameter values that are decorated as "sensitive" in the API will not
 62480  // be included in the string output. The member name will be present, but the
 62481  // value will be replaced with "sensitive".
 62482  func (s TransferCertificateOutput) String() string {
 62483  	return awsutil.Prettify(s)
 62484  }
 62485  
 62486  // GoString returns the string representation.
 62487  //
 62488  // API parameter values that are decorated as "sensitive" in the API will not
 62489  // be included in the string output. The member name will be present, but the
 62490  // value will be replaced with "sensitive".
 62491  func (s TransferCertificateOutput) GoString() string {
 62492  	return s.String()
 62493  }
 62494  
 62495  // SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
 62496  func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
 62497  	s.TransferredCertificateArn = &v
 62498  	return s
 62499  }
 62500  
 62501  // You can't transfer the certificate because authorization policies are still
 62502  // attached.
 62503  type TransferConflictException struct {
 62504  	_            struct{}                  `type:"structure"`
 62505  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 62506  
 62507  	// The message for the exception.
 62508  	Message_ *string `locationName:"message" type:"string"`
 62509  }
 62510  
 62511  // String returns the string representation.
 62512  //
 62513  // API parameter values that are decorated as "sensitive" in the API will not
 62514  // be included in the string output. The member name will be present, but the
 62515  // value will be replaced with "sensitive".
 62516  func (s TransferConflictException) String() string {
 62517  	return awsutil.Prettify(s)
 62518  }
 62519  
 62520  // GoString returns the string representation.
 62521  //
 62522  // API parameter values that are decorated as "sensitive" in the API will not
 62523  // be included in the string output. The member name will be present, but the
 62524  // value will be replaced with "sensitive".
 62525  func (s TransferConflictException) GoString() string {
 62526  	return s.String()
 62527  }
 62528  
 62529  func newErrorTransferConflictException(v protocol.ResponseMetadata) error {
 62530  	return &TransferConflictException{
 62531  		RespMetadata: v,
 62532  	}
 62533  }
 62534  
 62535  // Code returns the exception type name.
 62536  func (s *TransferConflictException) Code() string {
 62537  	return "TransferConflictException"
 62538  }
 62539  
 62540  // Message returns the exception's message.
 62541  func (s *TransferConflictException) Message() string {
 62542  	if s.Message_ != nil {
 62543  		return *s.Message_
 62544  	}
 62545  	return ""
 62546  }
 62547  
 62548  // OrigErr always returns nil, satisfies awserr.Error interface.
 62549  func (s *TransferConflictException) OrigErr() error {
 62550  	return nil
 62551  }
 62552  
 62553  func (s *TransferConflictException) Error() string {
 62554  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 62555  }
 62556  
 62557  // Status code returns the HTTP status code for the request's response error.
 62558  func (s *TransferConflictException) StatusCode() int {
 62559  	return s.RespMetadata.StatusCode
 62560  }
 62561  
 62562  // RequestID returns the service's response RequestID for request.
 62563  func (s *TransferConflictException) RequestID() string {
 62564  	return s.RespMetadata.RequestID
 62565  }
 62566  
 62567  // Data used to transfer a certificate to an Amazon Web Services account.
 62568  type TransferData struct {
 62569  	_ struct{} `type:"structure"`
 62570  
 62571  	// The date the transfer was accepted.
 62572  	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
 62573  
 62574  	// The date the transfer was rejected.
 62575  	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
 62576  
 62577  	// The reason why the transfer was rejected.
 62578  	RejectReason *string `locationName:"rejectReason" type:"string"`
 62579  
 62580  	// The date the transfer took place.
 62581  	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
 62582  
 62583  	// The transfer message.
 62584  	TransferMessage *string `locationName:"transferMessage" type:"string"`
 62585  }
 62586  
 62587  // String returns the string representation.
 62588  //
 62589  // API parameter values that are decorated as "sensitive" in the API will not
 62590  // be included in the string output. The member name will be present, but the
 62591  // value will be replaced with "sensitive".
 62592  func (s TransferData) String() string {
 62593  	return awsutil.Prettify(s)
 62594  }
 62595  
 62596  // GoString returns the string representation.
 62597  //
 62598  // API parameter values that are decorated as "sensitive" in the API will not
 62599  // be included in the string output. The member name will be present, but the
 62600  // value will be replaced with "sensitive".
 62601  func (s TransferData) GoString() string {
 62602  	return s.String()
 62603  }
 62604  
 62605  // SetAcceptDate sets the AcceptDate field's value.
 62606  func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
 62607  	s.AcceptDate = &v
 62608  	return s
 62609  }
 62610  
 62611  // SetRejectDate sets the RejectDate field's value.
 62612  func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
 62613  	s.RejectDate = &v
 62614  	return s
 62615  }
 62616  
 62617  // SetRejectReason sets the RejectReason field's value.
 62618  func (s *TransferData) SetRejectReason(v string) *TransferData {
 62619  	s.RejectReason = &v
 62620  	return s
 62621  }
 62622  
 62623  // SetTransferDate sets the TransferDate field's value.
 62624  func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
 62625  	s.TransferDate = &v
 62626  	return s
 62627  }
 62628  
 62629  // SetTransferMessage sets the TransferMessage field's value.
 62630  func (s *TransferData) SetTransferMessage(v string) *TransferData {
 62631  	s.TransferMessage = &v
 62632  	return s
 62633  }
 62634  
 62635  // You are not authorized to perform this operation.
 62636  type UnauthorizedException struct {
 62637  	_            struct{}                  `type:"structure"`
 62638  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 62639  
 62640  	// The message for the exception.
 62641  	Message_ *string `locationName:"message" type:"string"`
 62642  }
 62643  
 62644  // String returns the string representation.
 62645  //
 62646  // API parameter values that are decorated as "sensitive" in the API will not
 62647  // be included in the string output. The member name will be present, but the
 62648  // value will be replaced with "sensitive".
 62649  func (s UnauthorizedException) String() string {
 62650  	return awsutil.Prettify(s)
 62651  }
 62652  
 62653  // GoString returns the string representation.
 62654  //
 62655  // API parameter values that are decorated as "sensitive" in the API will not
 62656  // be included in the string output. The member name will be present, but the
 62657  // value will be replaced with "sensitive".
 62658  func (s UnauthorizedException) GoString() string {
 62659  	return s.String()
 62660  }
 62661  
 62662  func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
 62663  	return &UnauthorizedException{
 62664  		RespMetadata: v,
 62665  	}
 62666  }
 62667  
 62668  // Code returns the exception type name.
 62669  func (s *UnauthorizedException) Code() string {
 62670  	return "UnauthorizedException"
 62671  }
 62672  
 62673  // Message returns the exception's message.
 62674  func (s *UnauthorizedException) Message() string {
 62675  	if s.Message_ != nil {
 62676  		return *s.Message_
 62677  	}
 62678  	return ""
 62679  }
 62680  
 62681  // OrigErr always returns nil, satisfies awserr.Error interface.
 62682  func (s *UnauthorizedException) OrigErr() error {
 62683  	return nil
 62684  }
 62685  
 62686  func (s *UnauthorizedException) Error() string {
 62687  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 62688  }
 62689  
 62690  // Status code returns the HTTP status code for the request's response error.
 62691  func (s *UnauthorizedException) StatusCode() int {
 62692  	return s.RespMetadata.StatusCode
 62693  }
 62694  
 62695  // RequestID returns the service's response RequestID for request.
 62696  func (s *UnauthorizedException) RequestID() string {
 62697  	return s.RespMetadata.RequestID
 62698  }
 62699  
 62700  type UntagResourceInput struct {
 62701  	_ struct{} `type:"structure"`
 62702  
 62703  	// The ARN of the resource.
 62704  	//
 62705  	// ResourceArn is a required field
 62706  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
 62707  
 62708  	// A list of the keys of the tags to be removed from the resource.
 62709  	//
 62710  	// TagKeys is a required field
 62711  	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
 62712  }
 62713  
 62714  // String returns the string representation.
 62715  //
 62716  // API parameter values that are decorated as "sensitive" in the API will not
 62717  // be included in the string output. The member name will be present, but the
 62718  // value will be replaced with "sensitive".
 62719  func (s UntagResourceInput) String() string {
 62720  	return awsutil.Prettify(s)
 62721  }
 62722  
 62723  // GoString returns the string representation.
 62724  //
 62725  // API parameter values that are decorated as "sensitive" in the API will not
 62726  // be included in the string output. The member name will be present, but the
 62727  // value will be replaced with "sensitive".
 62728  func (s UntagResourceInput) GoString() string {
 62729  	return s.String()
 62730  }
 62731  
 62732  // Validate inspects the fields of the type to determine if they are valid.
 62733  func (s *UntagResourceInput) Validate() error {
 62734  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 62735  	if s.ResourceArn == nil {
 62736  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 62737  	}
 62738  	if s.TagKeys == nil {
 62739  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 62740  	}
 62741  
 62742  	if invalidParams.Len() > 0 {
 62743  		return invalidParams
 62744  	}
 62745  	return nil
 62746  }
 62747  
 62748  // SetResourceArn sets the ResourceArn field's value.
 62749  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 62750  	s.ResourceArn = &v
 62751  	return s
 62752  }
 62753  
 62754  // SetTagKeys sets the TagKeys field's value.
 62755  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 62756  	s.TagKeys = v
 62757  	return s
 62758  }
 62759  
 62760  type UntagResourceOutput struct {
 62761  	_ struct{} `type:"structure" nopayload:"true"`
 62762  }
 62763  
 62764  // String returns the string representation.
 62765  //
 62766  // API parameter values that are decorated as "sensitive" in the API will not
 62767  // be included in the string output. The member name will be present, but the
 62768  // value will be replaced with "sensitive".
 62769  func (s UntagResourceOutput) String() string {
 62770  	return awsutil.Prettify(s)
 62771  }
 62772  
 62773  // GoString returns the string representation.
 62774  //
 62775  // API parameter values that are decorated as "sensitive" in the API will not
 62776  // be included in the string output. The member name will be present, but the
 62777  // value will be replaced with "sensitive".
 62778  func (s UntagResourceOutput) GoString() string {
 62779  	return s.String()
 62780  }
 62781  
 62782  type UpdateAccountAuditConfigurationInput struct {
 62783  	_ struct{} `type:"structure"`
 62784  
 62785  	// Specifies which audit checks are enabled and disabled for this account. Use
 62786  	// DescribeAccountAuditConfiguration to see the list of all checks, including
 62787  	// those that are currently enabled.
 62788  	//
 62789  	// Some data collection might start immediately when certain checks are enabled.
 62790  	// When a check is disabled, any data collected so far in relation to the check
 62791  	// is deleted.
 62792  	//
 62793  	// You cannot disable a check if it's used by any scheduled audit. You must
 62794  	// first delete the check from the scheduled audit or delete the scheduled audit
 62795  	// itself.
 62796  	//
 62797  	// On the first call to UpdateAccountAuditConfiguration, this parameter is required
 62798  	// and must specify at least one enabled check.
 62799  	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
 62800  
 62801  	// Information about the targets to which audit notifications are sent.
 62802  	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
 62803  
 62804  	// The Amazon Resource Name (ARN) of the role that grants permission to IoT
 62805  	// to access information about your devices, policies, certificates, and other
 62806  	// items as required when performing an audit.
 62807  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 62808  }
 62809  
 62810  // String returns the string representation.
 62811  //
 62812  // API parameter values that are decorated as "sensitive" in the API will not
 62813  // be included in the string output. The member name will be present, but the
 62814  // value will be replaced with "sensitive".
 62815  func (s UpdateAccountAuditConfigurationInput) String() string {
 62816  	return awsutil.Prettify(s)
 62817  }
 62818  
 62819  // GoString returns the string representation.
 62820  //
 62821  // API parameter values that are decorated as "sensitive" in the API will not
 62822  // be included in the string output. The member name will be present, but the
 62823  // value will be replaced with "sensitive".
 62824  func (s UpdateAccountAuditConfigurationInput) GoString() string {
 62825  	return s.String()
 62826  }
 62827  
 62828  // Validate inspects the fields of the type to determine if they are valid.
 62829  func (s *UpdateAccountAuditConfigurationInput) Validate() error {
 62830  	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
 62831  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 62832  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 62833  	}
 62834  	if s.AuditNotificationTargetConfigurations != nil {
 62835  		for i, v := range s.AuditNotificationTargetConfigurations {
 62836  			if v == nil {
 62837  				continue
 62838  			}
 62839  			if err := v.Validate(); err != nil {
 62840  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
 62841  			}
 62842  		}
 62843  	}
 62844  
 62845  	if invalidParams.Len() > 0 {
 62846  		return invalidParams
 62847  	}
 62848  	return nil
 62849  }
 62850  
 62851  // SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
 62852  func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
 62853  	s.AuditCheckConfigurations = v
 62854  	return s
 62855  }
 62856  
 62857  // SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
 62858  func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
 62859  	s.AuditNotificationTargetConfigurations = v
 62860  	return s
 62861  }
 62862  
 62863  // SetRoleArn sets the RoleArn field's value.
 62864  func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
 62865  	s.RoleArn = &v
 62866  	return s
 62867  }
 62868  
 62869  type UpdateAccountAuditConfigurationOutput struct {
 62870  	_ struct{} `type:"structure" nopayload:"true"`
 62871  }
 62872  
 62873  // String returns the string representation.
 62874  //
 62875  // API parameter values that are decorated as "sensitive" in the API will not
 62876  // be included in the string output. The member name will be present, but the
 62877  // value will be replaced with "sensitive".
 62878  func (s UpdateAccountAuditConfigurationOutput) String() string {
 62879  	return awsutil.Prettify(s)
 62880  }
 62881  
 62882  // GoString returns the string representation.
 62883  //
 62884  // API parameter values that are decorated as "sensitive" in the API will not
 62885  // be included in the string output. The member name will be present, but the
 62886  // value will be replaced with "sensitive".
 62887  func (s UpdateAccountAuditConfigurationOutput) GoString() string {
 62888  	return s.String()
 62889  }
 62890  
 62891  type UpdateAuditSuppressionInput struct {
 62892  	_ struct{} `type:"structure"`
 62893  
 62894  	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
 62895  	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 62896  	// to select which checks are enabled.)
 62897  	//
 62898  	// CheckName is a required field
 62899  	CheckName *string `locationName:"checkName" type:"string" required:"true"`
 62900  
 62901  	// The description of the audit suppression.
 62902  	Description *string `locationName:"description" type:"string"`
 62903  
 62904  	// The expiration date (epoch timestamp in seconds) that you want the suppression
 62905  	// to adhere to.
 62906  	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
 62907  
 62908  	// Information that identifies the noncompliant resource.
 62909  	//
 62910  	// ResourceIdentifier is a required field
 62911  	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
 62912  
 62913  	// Indicates whether a suppression should exist indefinitely or not.
 62914  	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
 62915  }
 62916  
 62917  // String returns the string representation.
 62918  //
 62919  // API parameter values that are decorated as "sensitive" in the API will not
 62920  // be included in the string output. The member name will be present, but the
 62921  // value will be replaced with "sensitive".
 62922  func (s UpdateAuditSuppressionInput) String() string {
 62923  	return awsutil.Prettify(s)
 62924  }
 62925  
 62926  // GoString returns the string representation.
 62927  //
 62928  // API parameter values that are decorated as "sensitive" in the API will not
 62929  // be included in the string output. The member name will be present, but the
 62930  // value will be replaced with "sensitive".
 62931  func (s UpdateAuditSuppressionInput) GoString() string {
 62932  	return s.String()
 62933  }
 62934  
 62935  // Validate inspects the fields of the type to determine if they are valid.
 62936  func (s *UpdateAuditSuppressionInput) Validate() error {
 62937  	invalidParams := request.ErrInvalidParams{Context: "UpdateAuditSuppressionInput"}
 62938  	if s.CheckName == nil {
 62939  		invalidParams.Add(request.NewErrParamRequired("CheckName"))
 62940  	}
 62941  	if s.ResourceIdentifier == nil {
 62942  		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
 62943  	}
 62944  	if s.ResourceIdentifier != nil {
 62945  		if err := s.ResourceIdentifier.Validate(); err != nil {
 62946  			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
 62947  		}
 62948  	}
 62949  
 62950  	if invalidParams.Len() > 0 {
 62951  		return invalidParams
 62952  	}
 62953  	return nil
 62954  }
 62955  
 62956  // SetCheckName sets the CheckName field's value.
 62957  func (s *UpdateAuditSuppressionInput) SetCheckName(v string) *UpdateAuditSuppressionInput {
 62958  	s.CheckName = &v
 62959  	return s
 62960  }
 62961  
 62962  // SetDescription sets the Description field's value.
 62963  func (s *UpdateAuditSuppressionInput) SetDescription(v string) *UpdateAuditSuppressionInput {
 62964  	s.Description = &v
 62965  	return s
 62966  }
 62967  
 62968  // SetExpirationDate sets the ExpirationDate field's value.
 62969  func (s *UpdateAuditSuppressionInput) SetExpirationDate(v time.Time) *UpdateAuditSuppressionInput {
 62970  	s.ExpirationDate = &v
 62971  	return s
 62972  }
 62973  
 62974  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 62975  func (s *UpdateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *UpdateAuditSuppressionInput {
 62976  	s.ResourceIdentifier = v
 62977  	return s
 62978  }
 62979  
 62980  // SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
 62981  func (s *UpdateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *UpdateAuditSuppressionInput {
 62982  	s.SuppressIndefinitely = &v
 62983  	return s
 62984  }
 62985  
 62986  type UpdateAuditSuppressionOutput struct {
 62987  	_ struct{} `type:"structure" nopayload:"true"`
 62988  }
 62989  
 62990  // String returns the string representation.
 62991  //
 62992  // API parameter values that are decorated as "sensitive" in the API will not
 62993  // be included in the string output. The member name will be present, but the
 62994  // value will be replaced with "sensitive".
 62995  func (s UpdateAuditSuppressionOutput) String() string {
 62996  	return awsutil.Prettify(s)
 62997  }
 62998  
 62999  // GoString returns the string representation.
 63000  //
 63001  // API parameter values that are decorated as "sensitive" in the API will not
 63002  // be included in the string output. The member name will be present, but the
 63003  // value will be replaced with "sensitive".
 63004  func (s UpdateAuditSuppressionOutput) GoString() string {
 63005  	return s.String()
 63006  }
 63007  
 63008  type UpdateAuthorizerInput struct {
 63009  	_ struct{} `type:"structure"`
 63010  
 63011  	// The ARN of the authorizer's Lambda function.
 63012  	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
 63013  
 63014  	// The authorizer name.
 63015  	//
 63016  	// AuthorizerName is a required field
 63017  	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
 63018  
 63019  	// The status of the update authorizer request.
 63020  	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
 63021  
 63022  	// The key used to extract the token from the HTTP headers.
 63023  	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
 63024  
 63025  	// The public keys used to verify the token signature.
 63026  	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
 63027  }
 63028  
 63029  // String returns the string representation.
 63030  //
 63031  // API parameter values that are decorated as "sensitive" in the API will not
 63032  // be included in the string output. The member name will be present, but the
 63033  // value will be replaced with "sensitive".
 63034  func (s UpdateAuthorizerInput) String() string {
 63035  	return awsutil.Prettify(s)
 63036  }
 63037  
 63038  // GoString returns the string representation.
 63039  //
 63040  // API parameter values that are decorated as "sensitive" in the API will not
 63041  // be included in the string output. The member name will be present, but the
 63042  // value will be replaced with "sensitive".
 63043  func (s UpdateAuthorizerInput) GoString() string {
 63044  	return s.String()
 63045  }
 63046  
 63047  // Validate inspects the fields of the type to determine if they are valid.
 63048  func (s *UpdateAuthorizerInput) Validate() error {
 63049  	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
 63050  	if s.AuthorizerName == nil {
 63051  		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
 63052  	}
 63053  	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
 63054  		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
 63055  	}
 63056  	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
 63057  		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
 63058  	}
 63059  
 63060  	if invalidParams.Len() > 0 {
 63061  		return invalidParams
 63062  	}
 63063  	return nil
 63064  }
 63065  
 63066  // SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
 63067  func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
 63068  	s.AuthorizerFunctionArn = &v
 63069  	return s
 63070  }
 63071  
 63072  // SetAuthorizerName sets the AuthorizerName field's value.
 63073  func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
 63074  	s.AuthorizerName = &v
 63075  	return s
 63076  }
 63077  
 63078  // SetStatus sets the Status field's value.
 63079  func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
 63080  	s.Status = &v
 63081  	return s
 63082  }
 63083  
 63084  // SetTokenKeyName sets the TokenKeyName field's value.
 63085  func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
 63086  	s.TokenKeyName = &v
 63087  	return s
 63088  }
 63089  
 63090  // SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
 63091  func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
 63092  	s.TokenSigningPublicKeys = v
 63093  	return s
 63094  }
 63095  
 63096  type UpdateAuthorizerOutput struct {
 63097  	_ struct{} `type:"structure"`
 63098  
 63099  	// The authorizer ARN.
 63100  	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
 63101  
 63102  	// The authorizer name.
 63103  	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
 63104  }
 63105  
 63106  // String returns the string representation.
 63107  //
 63108  // API parameter values that are decorated as "sensitive" in the API will not
 63109  // be included in the string output. The member name will be present, but the
 63110  // value will be replaced with "sensitive".
 63111  func (s UpdateAuthorizerOutput) String() string {
 63112  	return awsutil.Prettify(s)
 63113  }
 63114  
 63115  // GoString returns the string representation.
 63116  //
 63117  // API parameter values that are decorated as "sensitive" in the API will not
 63118  // be included in the string output. The member name will be present, but the
 63119  // value will be replaced with "sensitive".
 63120  func (s UpdateAuthorizerOutput) GoString() string {
 63121  	return s.String()
 63122  }
 63123  
 63124  // SetAuthorizerArn sets the AuthorizerArn field's value.
 63125  func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
 63126  	s.AuthorizerArn = &v
 63127  	return s
 63128  }
 63129  
 63130  // SetAuthorizerName sets the AuthorizerName field's value.
 63131  func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
 63132  	s.AuthorizerName = &v
 63133  	return s
 63134  }
 63135  
 63136  type UpdateBillingGroupInput struct {
 63137  	_ struct{} `type:"structure"`
 63138  
 63139  	// The name of the billing group.
 63140  	//
 63141  	// BillingGroupName is a required field
 63142  	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
 63143  
 63144  	// The properties of the billing group.
 63145  	//
 63146  	// BillingGroupProperties is a required field
 63147  	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure" required:"true"`
 63148  
 63149  	// The expected version of the billing group. If the version of the billing
 63150  	// group does not match the expected version specified in the request, the UpdateBillingGroup
 63151  	// request is rejected with a VersionConflictException.
 63152  	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
 63153  }
 63154  
 63155  // String returns the string representation.
 63156  //
 63157  // API parameter values that are decorated as "sensitive" in the API will not
 63158  // be included in the string output. The member name will be present, but the
 63159  // value will be replaced with "sensitive".
 63160  func (s UpdateBillingGroupInput) String() string {
 63161  	return awsutil.Prettify(s)
 63162  }
 63163  
 63164  // GoString returns the string representation.
 63165  //
 63166  // API parameter values that are decorated as "sensitive" in the API will not
 63167  // be included in the string output. The member name will be present, but the
 63168  // value will be replaced with "sensitive".
 63169  func (s UpdateBillingGroupInput) GoString() string {
 63170  	return s.String()
 63171  }
 63172  
 63173  // Validate inspects the fields of the type to determine if they are valid.
 63174  func (s *UpdateBillingGroupInput) Validate() error {
 63175  	invalidParams := request.ErrInvalidParams{Context: "UpdateBillingGroupInput"}
 63176  	if s.BillingGroupName == nil {
 63177  		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
 63178  	}
 63179  	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
 63180  		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
 63181  	}
 63182  	if s.BillingGroupProperties == nil {
 63183  		invalidParams.Add(request.NewErrParamRequired("BillingGroupProperties"))
 63184  	}
 63185  
 63186  	if invalidParams.Len() > 0 {
 63187  		return invalidParams
 63188  	}
 63189  	return nil
 63190  }
 63191  
 63192  // SetBillingGroupName sets the BillingGroupName field's value.
 63193  func (s *UpdateBillingGroupInput) SetBillingGroupName(v string) *UpdateBillingGroupInput {
 63194  	s.BillingGroupName = &v
 63195  	return s
 63196  }
 63197  
 63198  // SetBillingGroupProperties sets the BillingGroupProperties field's value.
 63199  func (s *UpdateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *UpdateBillingGroupInput {
 63200  	s.BillingGroupProperties = v
 63201  	return s
 63202  }
 63203  
 63204  // SetExpectedVersion sets the ExpectedVersion field's value.
 63205  func (s *UpdateBillingGroupInput) SetExpectedVersion(v int64) *UpdateBillingGroupInput {
 63206  	s.ExpectedVersion = &v
 63207  	return s
 63208  }
 63209  
 63210  type UpdateBillingGroupOutput struct {
 63211  	_ struct{} `type:"structure"`
 63212  
 63213  	// The latest version of the billing group.
 63214  	Version *int64 `locationName:"version" type:"long"`
 63215  }
 63216  
 63217  // String returns the string representation.
 63218  //
 63219  // API parameter values that are decorated as "sensitive" in the API will not
 63220  // be included in the string output. The member name will be present, but the
 63221  // value will be replaced with "sensitive".
 63222  func (s UpdateBillingGroupOutput) String() string {
 63223  	return awsutil.Prettify(s)
 63224  }
 63225  
 63226  // GoString returns the string representation.
 63227  //
 63228  // API parameter values that are decorated as "sensitive" in the API will not
 63229  // be included in the string output. The member name will be present, but the
 63230  // value will be replaced with "sensitive".
 63231  func (s UpdateBillingGroupOutput) GoString() string {
 63232  	return s.String()
 63233  }
 63234  
 63235  // SetVersion sets the Version field's value.
 63236  func (s *UpdateBillingGroupOutput) SetVersion(v int64) *UpdateBillingGroupOutput {
 63237  	s.Version = &v
 63238  	return s
 63239  }
 63240  
 63241  // The input to the UpdateCACertificate operation.
 63242  type UpdateCACertificateInput struct {
 63243  	_ struct{} `type:"structure"`
 63244  
 63245  	// The CA certificate identifier.
 63246  	//
 63247  	// CertificateId is a required field
 63248  	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
 63249  
 63250  	// The new value for the auto registration status. Valid values are: "ENABLE"
 63251  	// or "DISABLE".
 63252  	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
 63253  
 63254  	// The updated status of the CA certificate.
 63255  	//
 63256  	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
 63257  	// used.
 63258  	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
 63259  
 63260  	// Information about the registration configuration.
 63261  	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
 63262  
 63263  	// If true, removes auto registration.
 63264  	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
 63265  }
 63266  
 63267  // String returns the string representation.
 63268  //
 63269  // API parameter values that are decorated as "sensitive" in the API will not
 63270  // be included in the string output. The member name will be present, but the
 63271  // value will be replaced with "sensitive".
 63272  func (s UpdateCACertificateInput) String() string {
 63273  	return awsutil.Prettify(s)
 63274  }
 63275  
 63276  // GoString returns the string representation.
 63277  //
 63278  // API parameter values that are decorated as "sensitive" in the API will not
 63279  // be included in the string output. The member name will be present, but the
 63280  // value will be replaced with "sensitive".
 63281  func (s UpdateCACertificateInput) GoString() string {
 63282  	return s.String()
 63283  }
 63284  
 63285  // Validate inspects the fields of the type to determine if they are valid.
 63286  func (s *UpdateCACertificateInput) Validate() error {
 63287  	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
 63288  	if s.CertificateId == nil {
 63289  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 63290  	}
 63291  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 63292  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 63293  	}
 63294  	if s.RegistrationConfig != nil {
 63295  		if err := s.RegistrationConfig.Validate(); err != nil {
 63296  			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
 63297  		}
 63298  	}
 63299  
 63300  	if invalidParams.Len() > 0 {
 63301  		return invalidParams
 63302  	}
 63303  	return nil
 63304  }
 63305  
 63306  // SetCertificateId sets the CertificateId field's value.
 63307  func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
 63308  	s.CertificateId = &v
 63309  	return s
 63310  }
 63311  
 63312  // SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
 63313  func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
 63314  	s.NewAutoRegistrationStatus = &v
 63315  	return s
 63316  }
 63317  
 63318  // SetNewStatus sets the NewStatus field's value.
 63319  func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
 63320  	s.NewStatus = &v
 63321  	return s
 63322  }
 63323  
 63324  // SetRegistrationConfig sets the RegistrationConfig field's value.
 63325  func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
 63326  	s.RegistrationConfig = v
 63327  	return s
 63328  }
 63329  
 63330  // SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
 63331  func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
 63332  	s.RemoveAutoRegistration = &v
 63333  	return s
 63334  }
 63335  
 63336  type UpdateCACertificateOutput struct {
 63337  	_ struct{} `type:"structure" nopayload:"true"`
 63338  }
 63339  
 63340  // String returns the string representation.
 63341  //
 63342  // API parameter values that are decorated as "sensitive" in the API will not
 63343  // be included in the string output. The member name will be present, but the
 63344  // value will be replaced with "sensitive".
 63345  func (s UpdateCACertificateOutput) String() string {
 63346  	return awsutil.Prettify(s)
 63347  }
 63348  
 63349  // GoString returns the string representation.
 63350  //
 63351  // API parameter values that are decorated as "sensitive" in the API will not
 63352  // be included in the string output. The member name will be present, but the
 63353  // value will be replaced with "sensitive".
 63354  func (s UpdateCACertificateOutput) GoString() string {
 63355  	return s.String()
 63356  }
 63357  
 63358  // Parameters to define a mitigation action that changes the state of the CA
 63359  // certificate to inactive.
 63360  type UpdateCACertificateParams struct {
 63361  	_ struct{} `type:"structure"`
 63362  
 63363  	// The action that you want to apply to the CA certificate. The only supported
 63364  	// value is DEACTIVATE.
 63365  	//
 63366  	// Action is a required field
 63367  	Action *string `locationName:"action" type:"string" required:"true" enum:"CACertificateUpdateAction"`
 63368  }
 63369  
 63370  // String returns the string representation.
 63371  //
 63372  // API parameter values that are decorated as "sensitive" in the API will not
 63373  // be included in the string output. The member name will be present, but the
 63374  // value will be replaced with "sensitive".
 63375  func (s UpdateCACertificateParams) String() string {
 63376  	return awsutil.Prettify(s)
 63377  }
 63378  
 63379  // GoString returns the string representation.
 63380  //
 63381  // API parameter values that are decorated as "sensitive" in the API will not
 63382  // be included in the string output. The member name will be present, but the
 63383  // value will be replaced with "sensitive".
 63384  func (s UpdateCACertificateParams) GoString() string {
 63385  	return s.String()
 63386  }
 63387  
 63388  // Validate inspects the fields of the type to determine if they are valid.
 63389  func (s *UpdateCACertificateParams) Validate() error {
 63390  	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateParams"}
 63391  	if s.Action == nil {
 63392  		invalidParams.Add(request.NewErrParamRequired("Action"))
 63393  	}
 63394  
 63395  	if invalidParams.Len() > 0 {
 63396  		return invalidParams
 63397  	}
 63398  	return nil
 63399  }
 63400  
 63401  // SetAction sets the Action field's value.
 63402  func (s *UpdateCACertificateParams) SetAction(v string) *UpdateCACertificateParams {
 63403  	s.Action = &v
 63404  	return s
 63405  }
 63406  
 63407  // The input for the UpdateCertificate operation.
 63408  type UpdateCertificateInput struct {
 63409  	_ struct{} `type:"structure" nopayload:"true"`
 63410  
 63411  	// The ID of the certificate. (The last part of the certificate ARN contains
 63412  	// the certificate ID.)
 63413  	//
 63414  	// CertificateId is a required field
 63415  	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
 63416  
 63417  	// The new status.
 63418  	//
 63419  	// Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result
 63420  	// in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are
 63421  	// statuses used internally by IoT. They are not intended for developer use.
 63422  	//
 63423  	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
 63424  	// used.
 63425  	//
 63426  	// NewStatus is a required field
 63427  	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
 63428  }
 63429  
 63430  // String returns the string representation.
 63431  //
 63432  // API parameter values that are decorated as "sensitive" in the API will not
 63433  // be included in the string output. The member name will be present, but the
 63434  // value will be replaced with "sensitive".
 63435  func (s UpdateCertificateInput) String() string {
 63436  	return awsutil.Prettify(s)
 63437  }
 63438  
 63439  // GoString returns the string representation.
 63440  //
 63441  // API parameter values that are decorated as "sensitive" in the API will not
 63442  // be included in the string output. The member name will be present, but the
 63443  // value will be replaced with "sensitive".
 63444  func (s UpdateCertificateInput) GoString() string {
 63445  	return s.String()
 63446  }
 63447  
 63448  // Validate inspects the fields of the type to determine if they are valid.
 63449  func (s *UpdateCertificateInput) Validate() error {
 63450  	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
 63451  	if s.CertificateId == nil {
 63452  		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
 63453  	}
 63454  	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
 63455  		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
 63456  	}
 63457  	if s.NewStatus == nil {
 63458  		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
 63459  	}
 63460  
 63461  	if invalidParams.Len() > 0 {
 63462  		return invalidParams
 63463  	}
 63464  	return nil
 63465  }
 63466  
 63467  // SetCertificateId sets the CertificateId field's value.
 63468  func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
 63469  	s.CertificateId = &v
 63470  	return s
 63471  }
 63472  
 63473  // SetNewStatus sets the NewStatus field's value.
 63474  func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
 63475  	s.NewStatus = &v
 63476  	return s
 63477  }
 63478  
 63479  type UpdateCertificateOutput struct {
 63480  	_ struct{} `type:"structure" nopayload:"true"`
 63481  }
 63482  
 63483  // String returns the string representation.
 63484  //
 63485  // API parameter values that are decorated as "sensitive" in the API will not
 63486  // be included in the string output. The member name will be present, but the
 63487  // value will be replaced with "sensitive".
 63488  func (s UpdateCertificateOutput) String() string {
 63489  	return awsutil.Prettify(s)
 63490  }
 63491  
 63492  // GoString returns the string representation.
 63493  //
 63494  // API parameter values that are decorated as "sensitive" in the API will not
 63495  // be included in the string output. The member name will be present, but the
 63496  // value will be replaced with "sensitive".
 63497  func (s UpdateCertificateOutput) GoString() string {
 63498  	return s.String()
 63499  }
 63500  
 63501  type UpdateCustomMetricInput struct {
 63502  	_ struct{} `type:"structure"`
 63503  
 63504  	// Field represents a friendly name in the console for the custom metric, it
 63505  	// doesn't have to be unique. Don't use this name as the metric identifier in
 63506  	// the device metric report. Can be updated.
 63507  	//
 63508  	// DisplayName is a required field
 63509  	DisplayName *string `locationName:"displayName" type:"string" required:"true"`
 63510  
 63511  	// The name of the custom metric. Cannot be updated.
 63512  	//
 63513  	// MetricName is a required field
 63514  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 63515  }
 63516  
 63517  // String returns the string representation.
 63518  //
 63519  // API parameter values that are decorated as "sensitive" in the API will not
 63520  // be included in the string output. The member name will be present, but the
 63521  // value will be replaced with "sensitive".
 63522  func (s UpdateCustomMetricInput) String() string {
 63523  	return awsutil.Prettify(s)
 63524  }
 63525  
 63526  // GoString returns the string representation.
 63527  //
 63528  // API parameter values that are decorated as "sensitive" in the API will not
 63529  // be included in the string output. The member name will be present, but the
 63530  // value will be replaced with "sensitive".
 63531  func (s UpdateCustomMetricInput) GoString() string {
 63532  	return s.String()
 63533  }
 63534  
 63535  // Validate inspects the fields of the type to determine if they are valid.
 63536  func (s *UpdateCustomMetricInput) Validate() error {
 63537  	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomMetricInput"}
 63538  	if s.DisplayName == nil {
 63539  		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
 63540  	}
 63541  	if s.MetricName == nil {
 63542  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 63543  	}
 63544  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 63545  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 63546  	}
 63547  
 63548  	if invalidParams.Len() > 0 {
 63549  		return invalidParams
 63550  	}
 63551  	return nil
 63552  }
 63553  
 63554  // SetDisplayName sets the DisplayName field's value.
 63555  func (s *UpdateCustomMetricInput) SetDisplayName(v string) *UpdateCustomMetricInput {
 63556  	s.DisplayName = &v
 63557  	return s
 63558  }
 63559  
 63560  // SetMetricName sets the MetricName field's value.
 63561  func (s *UpdateCustomMetricInput) SetMetricName(v string) *UpdateCustomMetricInput {
 63562  	s.MetricName = &v
 63563  	return s
 63564  }
 63565  
 63566  type UpdateCustomMetricOutput struct {
 63567  	_ struct{} `type:"structure"`
 63568  
 63569  	// The creation date of the custom metric in milliseconds since epoch.
 63570  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 63571  
 63572  	// A friendly name in the console for the custom metric
 63573  	DisplayName *string `locationName:"displayName" type:"string"`
 63574  
 63575  	// The time the custom metric was last modified in milliseconds since epoch.
 63576  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 63577  
 63578  	// The Amazon Resource Number (ARN) of the custom metric.
 63579  	MetricArn *string `locationName:"metricArn" type:"string"`
 63580  
 63581  	// The name of the custom metric.
 63582  	MetricName *string `locationName:"metricName" min:"1" type:"string"`
 63583  
 63584  	// The type of the custom metric. Types include string-list, ip-address-list,
 63585  	// number-list, and number.
 63586  	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
 63587  }
 63588  
 63589  // String returns the string representation.
 63590  //
 63591  // API parameter values that are decorated as "sensitive" in the API will not
 63592  // be included in the string output. The member name will be present, but the
 63593  // value will be replaced with "sensitive".
 63594  func (s UpdateCustomMetricOutput) String() string {
 63595  	return awsutil.Prettify(s)
 63596  }
 63597  
 63598  // GoString returns the string representation.
 63599  //
 63600  // API parameter values that are decorated as "sensitive" in the API will not
 63601  // be included in the string output. The member name will be present, but the
 63602  // value will be replaced with "sensitive".
 63603  func (s UpdateCustomMetricOutput) GoString() string {
 63604  	return s.String()
 63605  }
 63606  
 63607  // SetCreationDate sets the CreationDate field's value.
 63608  func (s *UpdateCustomMetricOutput) SetCreationDate(v time.Time) *UpdateCustomMetricOutput {
 63609  	s.CreationDate = &v
 63610  	return s
 63611  }
 63612  
 63613  // SetDisplayName sets the DisplayName field's value.
 63614  func (s *UpdateCustomMetricOutput) SetDisplayName(v string) *UpdateCustomMetricOutput {
 63615  	s.DisplayName = &v
 63616  	return s
 63617  }
 63618  
 63619  // SetLastModifiedDate sets the LastModifiedDate field's value.
 63620  func (s *UpdateCustomMetricOutput) SetLastModifiedDate(v time.Time) *UpdateCustomMetricOutput {
 63621  	s.LastModifiedDate = &v
 63622  	return s
 63623  }
 63624  
 63625  // SetMetricArn sets the MetricArn field's value.
 63626  func (s *UpdateCustomMetricOutput) SetMetricArn(v string) *UpdateCustomMetricOutput {
 63627  	s.MetricArn = &v
 63628  	return s
 63629  }
 63630  
 63631  // SetMetricName sets the MetricName field's value.
 63632  func (s *UpdateCustomMetricOutput) SetMetricName(v string) *UpdateCustomMetricOutput {
 63633  	s.MetricName = &v
 63634  	return s
 63635  }
 63636  
 63637  // SetMetricType sets the MetricType field's value.
 63638  func (s *UpdateCustomMetricOutput) SetMetricType(v string) *UpdateCustomMetricOutput {
 63639  	s.MetricType = &v
 63640  	return s
 63641  }
 63642  
 63643  // Parameters to define a mitigation action that changes the state of the device
 63644  // certificate to inactive.
 63645  type UpdateDeviceCertificateParams struct {
 63646  	_ struct{} `type:"structure"`
 63647  
 63648  	// The action that you want to apply to the device certificate. The only supported
 63649  	// value is DEACTIVATE.
 63650  	//
 63651  	// Action is a required field
 63652  	Action *string `locationName:"action" type:"string" required:"true" enum:"DeviceCertificateUpdateAction"`
 63653  }
 63654  
 63655  // String returns the string representation.
 63656  //
 63657  // API parameter values that are decorated as "sensitive" in the API will not
 63658  // be included in the string output. The member name will be present, but the
 63659  // value will be replaced with "sensitive".
 63660  func (s UpdateDeviceCertificateParams) String() string {
 63661  	return awsutil.Prettify(s)
 63662  }
 63663  
 63664  // GoString returns the string representation.
 63665  //
 63666  // API parameter values that are decorated as "sensitive" in the API will not
 63667  // be included in the string output. The member name will be present, but the
 63668  // value will be replaced with "sensitive".
 63669  func (s UpdateDeviceCertificateParams) GoString() string {
 63670  	return s.String()
 63671  }
 63672  
 63673  // Validate inspects the fields of the type to determine if they are valid.
 63674  func (s *UpdateDeviceCertificateParams) Validate() error {
 63675  	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceCertificateParams"}
 63676  	if s.Action == nil {
 63677  		invalidParams.Add(request.NewErrParamRequired("Action"))
 63678  	}
 63679  
 63680  	if invalidParams.Len() > 0 {
 63681  		return invalidParams
 63682  	}
 63683  	return nil
 63684  }
 63685  
 63686  // SetAction sets the Action field's value.
 63687  func (s *UpdateDeviceCertificateParams) SetAction(v string) *UpdateDeviceCertificateParams {
 63688  	s.Action = &v
 63689  	return s
 63690  }
 63691  
 63692  type UpdateDimensionInput struct {
 63693  	_ struct{} `type:"structure"`
 63694  
 63695  	// A unique identifier for the dimension. Choose something that describes the
 63696  	// type and value to make it easy to remember what it does.
 63697  	//
 63698  	// Name is a required field
 63699  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 63700  
 63701  	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
 63702  	// dimensions, this is a pattern used to match the MQTT topic (for example,
 63703  	// "admin/#").
 63704  	//
 63705  	// StringValues is a required field
 63706  	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
 63707  }
 63708  
 63709  // String returns the string representation.
 63710  //
 63711  // API parameter values that are decorated as "sensitive" in the API will not
 63712  // be included in the string output. The member name will be present, but the
 63713  // value will be replaced with "sensitive".
 63714  func (s UpdateDimensionInput) String() string {
 63715  	return awsutil.Prettify(s)
 63716  }
 63717  
 63718  // GoString returns the string representation.
 63719  //
 63720  // API parameter values that are decorated as "sensitive" in the API will not
 63721  // be included in the string output. The member name will be present, but the
 63722  // value will be replaced with "sensitive".
 63723  func (s UpdateDimensionInput) GoString() string {
 63724  	return s.String()
 63725  }
 63726  
 63727  // Validate inspects the fields of the type to determine if they are valid.
 63728  func (s *UpdateDimensionInput) Validate() error {
 63729  	invalidParams := request.ErrInvalidParams{Context: "UpdateDimensionInput"}
 63730  	if s.Name == nil {
 63731  		invalidParams.Add(request.NewErrParamRequired("Name"))
 63732  	}
 63733  	if s.Name != nil && len(*s.Name) < 1 {
 63734  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 63735  	}
 63736  	if s.StringValues == nil {
 63737  		invalidParams.Add(request.NewErrParamRequired("StringValues"))
 63738  	}
 63739  	if s.StringValues != nil && len(s.StringValues) < 1 {
 63740  		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
 63741  	}
 63742  
 63743  	if invalidParams.Len() > 0 {
 63744  		return invalidParams
 63745  	}
 63746  	return nil
 63747  }
 63748  
 63749  // SetName sets the Name field's value.
 63750  func (s *UpdateDimensionInput) SetName(v string) *UpdateDimensionInput {
 63751  	s.Name = &v
 63752  	return s
 63753  }
 63754  
 63755  // SetStringValues sets the StringValues field's value.
 63756  func (s *UpdateDimensionInput) SetStringValues(v []*string) *UpdateDimensionInput {
 63757  	s.StringValues = v
 63758  	return s
 63759  }
 63760  
 63761  type UpdateDimensionOutput struct {
 63762  	_ struct{} `type:"structure"`
 63763  
 63764  	// The Amazon Resource Name (ARN)of the created dimension.
 63765  	Arn *string `locationName:"arn" type:"string"`
 63766  
 63767  	// The date and time, in milliseconds since epoch, when the dimension was initially
 63768  	// created.
 63769  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 63770  
 63771  	// The date and time, in milliseconds since epoch, when the dimension was most
 63772  	// recently updated.
 63773  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 63774  
 63775  	// A unique identifier for the dimension.
 63776  	Name *string `locationName:"name" min:"1" type:"string"`
 63777  
 63778  	// The value or list of values used to scope the dimension. For example, for
 63779  	// topic filters, this is the pattern used to match the MQTT topic name.
 63780  	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
 63781  
 63782  	// The type of the dimension.
 63783  	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
 63784  }
 63785  
 63786  // String returns the string representation.
 63787  //
 63788  // API parameter values that are decorated as "sensitive" in the API will not
 63789  // be included in the string output. The member name will be present, but the
 63790  // value will be replaced with "sensitive".
 63791  func (s UpdateDimensionOutput) String() string {
 63792  	return awsutil.Prettify(s)
 63793  }
 63794  
 63795  // GoString returns the string representation.
 63796  //
 63797  // API parameter values that are decorated as "sensitive" in the API will not
 63798  // be included in the string output. The member name will be present, but the
 63799  // value will be replaced with "sensitive".
 63800  func (s UpdateDimensionOutput) GoString() string {
 63801  	return s.String()
 63802  }
 63803  
 63804  // SetArn sets the Arn field's value.
 63805  func (s *UpdateDimensionOutput) SetArn(v string) *UpdateDimensionOutput {
 63806  	s.Arn = &v
 63807  	return s
 63808  }
 63809  
 63810  // SetCreationDate sets the CreationDate field's value.
 63811  func (s *UpdateDimensionOutput) SetCreationDate(v time.Time) *UpdateDimensionOutput {
 63812  	s.CreationDate = &v
 63813  	return s
 63814  }
 63815  
 63816  // SetLastModifiedDate sets the LastModifiedDate field's value.
 63817  func (s *UpdateDimensionOutput) SetLastModifiedDate(v time.Time) *UpdateDimensionOutput {
 63818  	s.LastModifiedDate = &v
 63819  	return s
 63820  }
 63821  
 63822  // SetName sets the Name field's value.
 63823  func (s *UpdateDimensionOutput) SetName(v string) *UpdateDimensionOutput {
 63824  	s.Name = &v
 63825  	return s
 63826  }
 63827  
 63828  // SetStringValues sets the StringValues field's value.
 63829  func (s *UpdateDimensionOutput) SetStringValues(v []*string) *UpdateDimensionOutput {
 63830  	s.StringValues = v
 63831  	return s
 63832  }
 63833  
 63834  // SetType sets the Type field's value.
 63835  func (s *UpdateDimensionOutput) SetType(v string) *UpdateDimensionOutput {
 63836  	s.Type = &v
 63837  	return s
 63838  }
 63839  
 63840  type UpdateDomainConfigurationInput struct {
 63841  	_ struct{} `type:"structure"`
 63842  
 63843  	// An object that specifies the authorization service for a domain.
 63844  	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
 63845  
 63846  	// The name of the domain configuration to be updated.
 63847  	//
 63848  	// DomainConfigurationName is a required field
 63849  	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
 63850  
 63851  	// The status to which the domain configuration should be updated.
 63852  	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
 63853  
 63854  	// Removes the authorization configuration from a domain.
 63855  	RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"`
 63856  }
 63857  
 63858  // String returns the string representation.
 63859  //
 63860  // API parameter values that are decorated as "sensitive" in the API will not
 63861  // be included in the string output. The member name will be present, but the
 63862  // value will be replaced with "sensitive".
 63863  func (s UpdateDomainConfigurationInput) String() string {
 63864  	return awsutil.Prettify(s)
 63865  }
 63866  
 63867  // GoString returns the string representation.
 63868  //
 63869  // API parameter values that are decorated as "sensitive" in the API will not
 63870  // be included in the string output. The member name will be present, but the
 63871  // value will be replaced with "sensitive".
 63872  func (s UpdateDomainConfigurationInput) GoString() string {
 63873  	return s.String()
 63874  }
 63875  
 63876  // Validate inspects the fields of the type to determine if they are valid.
 63877  func (s *UpdateDomainConfigurationInput) Validate() error {
 63878  	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"}
 63879  	if s.DomainConfigurationName == nil {
 63880  		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
 63881  	}
 63882  	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
 63883  		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
 63884  	}
 63885  	if s.AuthorizerConfig != nil {
 63886  		if err := s.AuthorizerConfig.Validate(); err != nil {
 63887  			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
 63888  		}
 63889  	}
 63890  
 63891  	if invalidParams.Len() > 0 {
 63892  		return invalidParams
 63893  	}
 63894  	return nil
 63895  }
 63896  
 63897  // SetAuthorizerConfig sets the AuthorizerConfig field's value.
 63898  func (s *UpdateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *UpdateDomainConfigurationInput {
 63899  	s.AuthorizerConfig = v
 63900  	return s
 63901  }
 63902  
 63903  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 63904  func (s *UpdateDomainConfigurationInput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationInput {
 63905  	s.DomainConfigurationName = &v
 63906  	return s
 63907  }
 63908  
 63909  // SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
 63910  func (s *UpdateDomainConfigurationInput) SetDomainConfigurationStatus(v string) *UpdateDomainConfigurationInput {
 63911  	s.DomainConfigurationStatus = &v
 63912  	return s
 63913  }
 63914  
 63915  // SetRemoveAuthorizerConfig sets the RemoveAuthorizerConfig field's value.
 63916  func (s *UpdateDomainConfigurationInput) SetRemoveAuthorizerConfig(v bool) *UpdateDomainConfigurationInput {
 63917  	s.RemoveAuthorizerConfig = &v
 63918  	return s
 63919  }
 63920  
 63921  type UpdateDomainConfigurationOutput struct {
 63922  	_ struct{} `type:"structure"`
 63923  
 63924  	// The ARN of the domain configuration that was updated.
 63925  	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
 63926  
 63927  	// The name of the domain configuration that was updated.
 63928  	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
 63929  }
 63930  
 63931  // String returns the string representation.
 63932  //
 63933  // API parameter values that are decorated as "sensitive" in the API will not
 63934  // be included in the string output. The member name will be present, but the
 63935  // value will be replaced with "sensitive".
 63936  func (s UpdateDomainConfigurationOutput) String() string {
 63937  	return awsutil.Prettify(s)
 63938  }
 63939  
 63940  // GoString returns the string representation.
 63941  //
 63942  // API parameter values that are decorated as "sensitive" in the API will not
 63943  // be included in the string output. The member name will be present, but the
 63944  // value will be replaced with "sensitive".
 63945  func (s UpdateDomainConfigurationOutput) GoString() string {
 63946  	return s.String()
 63947  }
 63948  
 63949  // SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
 63950  func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *UpdateDomainConfigurationOutput {
 63951  	s.DomainConfigurationArn = &v
 63952  	return s
 63953  }
 63954  
 63955  // SetDomainConfigurationName sets the DomainConfigurationName field's value.
 63956  func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationOutput {
 63957  	s.DomainConfigurationName = &v
 63958  	return s
 63959  }
 63960  
 63961  type UpdateDynamicThingGroupInput struct {
 63962  	_ struct{} `type:"structure"`
 63963  
 63964  	// The expected version of the dynamic thing group to update.
 63965  	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
 63966  
 63967  	// The dynamic thing group index to update.
 63968  	//
 63969  	// Currently one index is supported: AWS_Things.
 63970  	IndexName *string `locationName:"indexName" min:"1" type:"string"`
 63971  
 63972  	// The dynamic thing group search query string to update.
 63973  	QueryString *string `locationName:"queryString" min:"1" type:"string"`
 63974  
 63975  	// The dynamic thing group query version to update.
 63976  	//
 63977  	// Currently one query version is supported: "2017-09-30". If not specified,
 63978  	// the query version defaults to this value.
 63979  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 63980  
 63981  	// The name of the dynamic thing group to update.
 63982  	//
 63983  	// ThingGroupName is a required field
 63984  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 63985  
 63986  	// The dynamic thing group properties to update.
 63987  	//
 63988  	// ThingGroupProperties is a required field
 63989  	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
 63990  }
 63991  
 63992  // String returns the string representation.
 63993  //
 63994  // API parameter values that are decorated as "sensitive" in the API will not
 63995  // be included in the string output. The member name will be present, but the
 63996  // value will be replaced with "sensitive".
 63997  func (s UpdateDynamicThingGroupInput) String() string {
 63998  	return awsutil.Prettify(s)
 63999  }
 64000  
 64001  // GoString returns the string representation.
 64002  //
 64003  // API parameter values that are decorated as "sensitive" in the API will not
 64004  // be included in the string output. The member name will be present, but the
 64005  // value will be replaced with "sensitive".
 64006  func (s UpdateDynamicThingGroupInput) GoString() string {
 64007  	return s.String()
 64008  }
 64009  
 64010  // Validate inspects the fields of the type to determine if they are valid.
 64011  func (s *UpdateDynamicThingGroupInput) Validate() error {
 64012  	invalidParams := request.ErrInvalidParams{Context: "UpdateDynamicThingGroupInput"}
 64013  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 64014  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 64015  	}
 64016  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 64017  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 64018  	}
 64019  	if s.ThingGroupName == nil {
 64020  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 64021  	}
 64022  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 64023  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 64024  	}
 64025  	if s.ThingGroupProperties == nil {
 64026  		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
 64027  	}
 64028  
 64029  	if invalidParams.Len() > 0 {
 64030  		return invalidParams
 64031  	}
 64032  	return nil
 64033  }
 64034  
 64035  // SetExpectedVersion sets the ExpectedVersion field's value.
 64036  func (s *UpdateDynamicThingGroupInput) SetExpectedVersion(v int64) *UpdateDynamicThingGroupInput {
 64037  	s.ExpectedVersion = &v
 64038  	return s
 64039  }
 64040  
 64041  // SetIndexName sets the IndexName field's value.
 64042  func (s *UpdateDynamicThingGroupInput) SetIndexName(v string) *UpdateDynamicThingGroupInput {
 64043  	s.IndexName = &v
 64044  	return s
 64045  }
 64046  
 64047  // SetQueryString sets the QueryString field's value.
 64048  func (s *UpdateDynamicThingGroupInput) SetQueryString(v string) *UpdateDynamicThingGroupInput {
 64049  	s.QueryString = &v
 64050  	return s
 64051  }
 64052  
 64053  // SetQueryVersion sets the QueryVersion field's value.
 64054  func (s *UpdateDynamicThingGroupInput) SetQueryVersion(v string) *UpdateDynamicThingGroupInput {
 64055  	s.QueryVersion = &v
 64056  	return s
 64057  }
 64058  
 64059  // SetThingGroupName sets the ThingGroupName field's value.
 64060  func (s *UpdateDynamicThingGroupInput) SetThingGroupName(v string) *UpdateDynamicThingGroupInput {
 64061  	s.ThingGroupName = &v
 64062  	return s
 64063  }
 64064  
 64065  // SetThingGroupProperties sets the ThingGroupProperties field's value.
 64066  func (s *UpdateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateDynamicThingGroupInput {
 64067  	s.ThingGroupProperties = v
 64068  	return s
 64069  }
 64070  
 64071  type UpdateDynamicThingGroupOutput struct {
 64072  	_ struct{} `type:"structure"`
 64073  
 64074  	// The dynamic thing group version.
 64075  	Version *int64 `locationName:"version" type:"long"`
 64076  }
 64077  
 64078  // String returns the string representation.
 64079  //
 64080  // API parameter values that are decorated as "sensitive" in the API will not
 64081  // be included in the string output. The member name will be present, but the
 64082  // value will be replaced with "sensitive".
 64083  func (s UpdateDynamicThingGroupOutput) String() string {
 64084  	return awsutil.Prettify(s)
 64085  }
 64086  
 64087  // GoString returns the string representation.
 64088  //
 64089  // API parameter values that are decorated as "sensitive" in the API will not
 64090  // be included in the string output. The member name will be present, but the
 64091  // value will be replaced with "sensitive".
 64092  func (s UpdateDynamicThingGroupOutput) GoString() string {
 64093  	return s.String()
 64094  }
 64095  
 64096  // SetVersion sets the Version field's value.
 64097  func (s *UpdateDynamicThingGroupOutput) SetVersion(v int64) *UpdateDynamicThingGroupOutput {
 64098  	s.Version = &v
 64099  	return s
 64100  }
 64101  
 64102  type UpdateEventConfigurationsInput struct {
 64103  	_ struct{} `type:"structure"`
 64104  
 64105  	// The new event configuration values.
 64106  	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
 64107  }
 64108  
 64109  // String returns the string representation.
 64110  //
 64111  // API parameter values that are decorated as "sensitive" in the API will not
 64112  // be included in the string output. The member name will be present, but the
 64113  // value will be replaced with "sensitive".
 64114  func (s UpdateEventConfigurationsInput) String() string {
 64115  	return awsutil.Prettify(s)
 64116  }
 64117  
 64118  // GoString returns the string representation.
 64119  //
 64120  // API parameter values that are decorated as "sensitive" in the API will not
 64121  // be included in the string output. The member name will be present, but the
 64122  // value will be replaced with "sensitive".
 64123  func (s UpdateEventConfigurationsInput) GoString() string {
 64124  	return s.String()
 64125  }
 64126  
 64127  // SetEventConfigurations sets the EventConfigurations field's value.
 64128  func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
 64129  	s.EventConfigurations = v
 64130  	return s
 64131  }
 64132  
 64133  type UpdateEventConfigurationsOutput struct {
 64134  	_ struct{} `type:"structure" nopayload:"true"`
 64135  }
 64136  
 64137  // String returns the string representation.
 64138  //
 64139  // API parameter values that are decorated as "sensitive" in the API will not
 64140  // be included in the string output. The member name will be present, but the
 64141  // value will be replaced with "sensitive".
 64142  func (s UpdateEventConfigurationsOutput) String() string {
 64143  	return awsutil.Prettify(s)
 64144  }
 64145  
 64146  // GoString returns the string representation.
 64147  //
 64148  // API parameter values that are decorated as "sensitive" in the API will not
 64149  // be included in the string output. The member name will be present, but the
 64150  // value will be replaced with "sensitive".
 64151  func (s UpdateEventConfigurationsOutput) GoString() string {
 64152  	return s.String()
 64153  }
 64154  
 64155  type UpdateFleetMetricInput struct {
 64156  	_ struct{} `type:"structure"`
 64157  
 64158  	// The field to aggregate.
 64159  	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
 64160  
 64161  	// The type of the aggregation query.
 64162  	AggregationType *AggregationType `locationName:"aggregationType" type:"structure"`
 64163  
 64164  	// The description of the fleet metric.
 64165  	Description *string `locationName:"description" type:"string"`
 64166  
 64167  	// The expected version of the fleet metric record in the registry.
 64168  	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
 64169  
 64170  	// The name of the index to search.
 64171  	//
 64172  	// IndexName is a required field
 64173  	IndexName *string `locationName:"indexName" min:"1" type:"string" required:"true"`
 64174  
 64175  	// The name of the fleet metric to update.
 64176  	//
 64177  	// MetricName is a required field
 64178  	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
 64179  
 64180  	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
 64181  	// day)] and must be multiple of 60.
 64182  	Period *int64 `locationName:"period" min:"60" type:"integer"`
 64183  
 64184  	// The search query string.
 64185  	QueryString *string `locationName:"queryString" min:"1" type:"string"`
 64186  
 64187  	// The version of the query.
 64188  	QueryVersion *string `locationName:"queryVersion" type:"string"`
 64189  
 64190  	// Used to support unit transformation such as milliseconds to seconds. The
 64191  	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
 64192  	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
 64193  }
 64194  
 64195  // String returns the string representation.
 64196  //
 64197  // API parameter values that are decorated as "sensitive" in the API will not
 64198  // be included in the string output. The member name will be present, but the
 64199  // value will be replaced with "sensitive".
 64200  func (s UpdateFleetMetricInput) String() string {
 64201  	return awsutil.Prettify(s)
 64202  }
 64203  
 64204  // GoString returns the string representation.
 64205  //
 64206  // API parameter values that are decorated as "sensitive" in the API will not
 64207  // be included in the string output. The member name will be present, but the
 64208  // value will be replaced with "sensitive".
 64209  func (s UpdateFleetMetricInput) GoString() string {
 64210  	return s.String()
 64211  }
 64212  
 64213  // Validate inspects the fields of the type to determine if they are valid.
 64214  func (s *UpdateFleetMetricInput) Validate() error {
 64215  	invalidParams := request.ErrInvalidParams{Context: "UpdateFleetMetricInput"}
 64216  	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
 64217  		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
 64218  	}
 64219  	if s.IndexName == nil {
 64220  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 64221  	}
 64222  	if s.IndexName != nil && len(*s.IndexName) < 1 {
 64223  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
 64224  	}
 64225  	if s.MetricName == nil {
 64226  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 64227  	}
 64228  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 64229  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 64230  	}
 64231  	if s.Period != nil && *s.Period < 60 {
 64232  		invalidParams.Add(request.NewErrParamMinValue("Period", 60))
 64233  	}
 64234  	if s.QueryString != nil && len(*s.QueryString) < 1 {
 64235  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
 64236  	}
 64237  	if s.AggregationType != nil {
 64238  		if err := s.AggregationType.Validate(); err != nil {
 64239  			invalidParams.AddNested("AggregationType", err.(request.ErrInvalidParams))
 64240  		}
 64241  	}
 64242  
 64243  	if invalidParams.Len() > 0 {
 64244  		return invalidParams
 64245  	}
 64246  	return nil
 64247  }
 64248  
 64249  // SetAggregationField sets the AggregationField field's value.
 64250  func (s *UpdateFleetMetricInput) SetAggregationField(v string) *UpdateFleetMetricInput {
 64251  	s.AggregationField = &v
 64252  	return s
 64253  }
 64254  
 64255  // SetAggregationType sets the AggregationType field's value.
 64256  func (s *UpdateFleetMetricInput) SetAggregationType(v *AggregationType) *UpdateFleetMetricInput {
 64257  	s.AggregationType = v
 64258  	return s
 64259  }
 64260  
 64261  // SetDescription sets the Description field's value.
 64262  func (s *UpdateFleetMetricInput) SetDescription(v string) *UpdateFleetMetricInput {
 64263  	s.Description = &v
 64264  	return s
 64265  }
 64266  
 64267  // SetExpectedVersion sets the ExpectedVersion field's value.
 64268  func (s *UpdateFleetMetricInput) SetExpectedVersion(v int64) *UpdateFleetMetricInput {
 64269  	s.ExpectedVersion = &v
 64270  	return s
 64271  }
 64272  
 64273  // SetIndexName sets the IndexName field's value.
 64274  func (s *UpdateFleetMetricInput) SetIndexName(v string) *UpdateFleetMetricInput {
 64275  	s.IndexName = &v
 64276  	return s
 64277  }
 64278  
 64279  // SetMetricName sets the MetricName field's value.
 64280  func (s *UpdateFleetMetricInput) SetMetricName(v string) *UpdateFleetMetricInput {
 64281  	s.MetricName = &v
 64282  	return s
 64283  }
 64284  
 64285  // SetPeriod sets the Period field's value.
 64286  func (s *UpdateFleetMetricInput) SetPeriod(v int64) *UpdateFleetMetricInput {
 64287  	s.Period = &v
 64288  	return s
 64289  }
 64290  
 64291  // SetQueryString sets the QueryString field's value.
 64292  func (s *UpdateFleetMetricInput) SetQueryString(v string) *UpdateFleetMetricInput {
 64293  	s.QueryString = &v
 64294  	return s
 64295  }
 64296  
 64297  // SetQueryVersion sets the QueryVersion field's value.
 64298  func (s *UpdateFleetMetricInput) SetQueryVersion(v string) *UpdateFleetMetricInput {
 64299  	s.QueryVersion = &v
 64300  	return s
 64301  }
 64302  
 64303  // SetUnit sets the Unit field's value.
 64304  func (s *UpdateFleetMetricInput) SetUnit(v string) *UpdateFleetMetricInput {
 64305  	s.Unit = &v
 64306  	return s
 64307  }
 64308  
 64309  type UpdateFleetMetricOutput struct {
 64310  	_ struct{} `type:"structure" nopayload:"true"`
 64311  }
 64312  
 64313  // String returns the string representation.
 64314  //
 64315  // API parameter values that are decorated as "sensitive" in the API will not
 64316  // be included in the string output. The member name will be present, but the
 64317  // value will be replaced with "sensitive".
 64318  func (s UpdateFleetMetricOutput) String() string {
 64319  	return awsutil.Prettify(s)
 64320  }
 64321  
 64322  // GoString returns the string representation.
 64323  //
 64324  // API parameter values that are decorated as "sensitive" in the API will not
 64325  // be included in the string output. The member name will be present, but the
 64326  // value will be replaced with "sensitive".
 64327  func (s UpdateFleetMetricOutput) GoString() string {
 64328  	return s.String()
 64329  }
 64330  
 64331  type UpdateIndexingConfigurationInput struct {
 64332  	_ struct{} `type:"structure"`
 64333  
 64334  	// Thing group indexing configuration.
 64335  	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
 64336  
 64337  	// Thing indexing configuration.
 64338  	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
 64339  }
 64340  
 64341  // String returns the string representation.
 64342  //
 64343  // API parameter values that are decorated as "sensitive" in the API will not
 64344  // be included in the string output. The member name will be present, but the
 64345  // value will be replaced with "sensitive".
 64346  func (s UpdateIndexingConfigurationInput) String() string {
 64347  	return awsutil.Prettify(s)
 64348  }
 64349  
 64350  // GoString returns the string representation.
 64351  //
 64352  // API parameter values that are decorated as "sensitive" in the API will not
 64353  // be included in the string output. The member name will be present, but the
 64354  // value will be replaced with "sensitive".
 64355  func (s UpdateIndexingConfigurationInput) GoString() string {
 64356  	return s.String()
 64357  }
 64358  
 64359  // Validate inspects the fields of the type to determine if they are valid.
 64360  func (s *UpdateIndexingConfigurationInput) Validate() error {
 64361  	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexingConfigurationInput"}
 64362  	if s.ThingGroupIndexingConfiguration != nil {
 64363  		if err := s.ThingGroupIndexingConfiguration.Validate(); err != nil {
 64364  			invalidParams.AddNested("ThingGroupIndexingConfiguration", err.(request.ErrInvalidParams))
 64365  		}
 64366  	}
 64367  	if s.ThingIndexingConfiguration != nil {
 64368  		if err := s.ThingIndexingConfiguration.Validate(); err != nil {
 64369  			invalidParams.AddNested("ThingIndexingConfiguration", err.(request.ErrInvalidParams))
 64370  		}
 64371  	}
 64372  
 64373  	if invalidParams.Len() > 0 {
 64374  		return invalidParams
 64375  	}
 64376  	return nil
 64377  }
 64378  
 64379  // SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
 64380  func (s *UpdateIndexingConfigurationInput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *UpdateIndexingConfigurationInput {
 64381  	s.ThingGroupIndexingConfiguration = v
 64382  	return s
 64383  }
 64384  
 64385  // SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
 64386  func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
 64387  	s.ThingIndexingConfiguration = v
 64388  	return s
 64389  }
 64390  
 64391  type UpdateIndexingConfigurationOutput struct {
 64392  	_ struct{} `type:"structure" nopayload:"true"`
 64393  }
 64394  
 64395  // String returns the string representation.
 64396  //
 64397  // API parameter values that are decorated as "sensitive" in the API will not
 64398  // be included in the string output. The member name will be present, but the
 64399  // value will be replaced with "sensitive".
 64400  func (s UpdateIndexingConfigurationOutput) String() string {
 64401  	return awsutil.Prettify(s)
 64402  }
 64403  
 64404  // GoString returns the string representation.
 64405  //
 64406  // API parameter values that are decorated as "sensitive" in the API will not
 64407  // be included in the string output. The member name will be present, but the
 64408  // value will be replaced with "sensitive".
 64409  func (s UpdateIndexingConfigurationOutput) GoString() string {
 64410  	return s.String()
 64411  }
 64412  
 64413  type UpdateJobInput struct {
 64414  	_ struct{} `type:"structure"`
 64415  
 64416  	// Allows you to create criteria to abort a job.
 64417  	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
 64418  
 64419  	// A short text description of the job.
 64420  	Description *string `locationName:"description" type:"string"`
 64421  
 64422  	// Allows you to create a staged rollout of the job.
 64423  	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
 64424  
 64425  	// The ID of the job to be updated.
 64426  	//
 64427  	// JobId is a required field
 64428  	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
 64429  
 64430  	// The namespace used to indicate that a job is a customer-managed job.
 64431  	//
 64432  	// When you specify a value for this parameter, Amazon Web Services IoT Core
 64433  	// sends jobs notifications to MQTT topics that contain the value in the following
 64434  	// format.
 64435  	//
 64436  	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
 64437  	//
 64438  	// The namespaceId feature is in public preview.
 64439  	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
 64440  
 64441  	// Configuration information for pre-signed S3 URLs.
 64442  	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
 64443  
 64444  	// Specifies the amount of time each device has to finish its execution of the
 64445  	// job. The timer is started when the job execution status is set to IN_PROGRESS.
 64446  	// If the job execution status is not set to another terminal state before the
 64447  	// time expires, it will be automatically set to TIMED_OUT.
 64448  	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
 64449  }
 64450  
 64451  // String returns the string representation.
 64452  //
 64453  // API parameter values that are decorated as "sensitive" in the API will not
 64454  // be included in the string output. The member name will be present, but the
 64455  // value will be replaced with "sensitive".
 64456  func (s UpdateJobInput) String() string {
 64457  	return awsutil.Prettify(s)
 64458  }
 64459  
 64460  // GoString returns the string representation.
 64461  //
 64462  // API parameter values that are decorated as "sensitive" in the API will not
 64463  // be included in the string output. The member name will be present, but the
 64464  // value will be replaced with "sensitive".
 64465  func (s UpdateJobInput) GoString() string {
 64466  	return s.String()
 64467  }
 64468  
 64469  // Validate inspects the fields of the type to determine if they are valid.
 64470  func (s *UpdateJobInput) Validate() error {
 64471  	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
 64472  	if s.JobId == nil {
 64473  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 64474  	}
 64475  	if s.JobId != nil && len(*s.JobId) < 1 {
 64476  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
 64477  	}
 64478  	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
 64479  		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
 64480  	}
 64481  	if s.AbortConfig != nil {
 64482  		if err := s.AbortConfig.Validate(); err != nil {
 64483  			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
 64484  		}
 64485  	}
 64486  	if s.JobExecutionsRolloutConfig != nil {
 64487  		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
 64488  			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
 64489  		}
 64490  	}
 64491  	if s.PresignedUrlConfig != nil {
 64492  		if err := s.PresignedUrlConfig.Validate(); err != nil {
 64493  			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
 64494  		}
 64495  	}
 64496  
 64497  	if invalidParams.Len() > 0 {
 64498  		return invalidParams
 64499  	}
 64500  	return nil
 64501  }
 64502  
 64503  // SetAbortConfig sets the AbortConfig field's value.
 64504  func (s *UpdateJobInput) SetAbortConfig(v *AbortConfig) *UpdateJobInput {
 64505  	s.AbortConfig = v
 64506  	return s
 64507  }
 64508  
 64509  // SetDescription sets the Description field's value.
 64510  func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
 64511  	s.Description = &v
 64512  	return s
 64513  }
 64514  
 64515  // SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
 64516  func (s *UpdateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *UpdateJobInput {
 64517  	s.JobExecutionsRolloutConfig = v
 64518  	return s
 64519  }
 64520  
 64521  // SetJobId sets the JobId field's value.
 64522  func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
 64523  	s.JobId = &v
 64524  	return s
 64525  }
 64526  
 64527  // SetNamespaceId sets the NamespaceId field's value.
 64528  func (s *UpdateJobInput) SetNamespaceId(v string) *UpdateJobInput {
 64529  	s.NamespaceId = &v
 64530  	return s
 64531  }
 64532  
 64533  // SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
 64534  func (s *UpdateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *UpdateJobInput {
 64535  	s.PresignedUrlConfig = v
 64536  	return s
 64537  }
 64538  
 64539  // SetTimeoutConfig sets the TimeoutConfig field's value.
 64540  func (s *UpdateJobInput) SetTimeoutConfig(v *TimeoutConfig) *UpdateJobInput {
 64541  	s.TimeoutConfig = v
 64542  	return s
 64543  }
 64544  
 64545  type UpdateJobOutput struct {
 64546  	_ struct{} `type:"structure" nopayload:"true"`
 64547  }
 64548  
 64549  // String returns the string representation.
 64550  //
 64551  // API parameter values that are decorated as "sensitive" in the API will not
 64552  // be included in the string output. The member name will be present, but the
 64553  // value will be replaced with "sensitive".
 64554  func (s UpdateJobOutput) String() string {
 64555  	return awsutil.Prettify(s)
 64556  }
 64557  
 64558  // GoString returns the string representation.
 64559  //
 64560  // API parameter values that are decorated as "sensitive" in the API will not
 64561  // be included in the string output. The member name will be present, but the
 64562  // value will be replaced with "sensitive".
 64563  func (s UpdateJobOutput) GoString() string {
 64564  	return s.String()
 64565  }
 64566  
 64567  type UpdateMitigationActionInput struct {
 64568  	_ struct{} `type:"structure"`
 64569  
 64570  	// The friendly name for the mitigation action. You cannot change the name by
 64571  	// using UpdateMitigationAction. Instead, you must delete and recreate the mitigation
 64572  	// action with the new name.
 64573  	//
 64574  	// ActionName is a required field
 64575  	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
 64576  
 64577  	// Defines the type of action and the parameters for that action.
 64578  	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
 64579  
 64580  	// The ARN of the IAM role that is used to apply the mitigation action.
 64581  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 64582  }
 64583  
 64584  // String returns the string representation.
 64585  //
 64586  // API parameter values that are decorated as "sensitive" in the API will not
 64587  // be included in the string output. The member name will be present, but the
 64588  // value will be replaced with "sensitive".
 64589  func (s UpdateMitigationActionInput) String() string {
 64590  	return awsutil.Prettify(s)
 64591  }
 64592  
 64593  // GoString returns the string representation.
 64594  //
 64595  // API parameter values that are decorated as "sensitive" in the API will not
 64596  // be included in the string output. The member name will be present, but the
 64597  // value will be replaced with "sensitive".
 64598  func (s UpdateMitigationActionInput) GoString() string {
 64599  	return s.String()
 64600  }
 64601  
 64602  // Validate inspects the fields of the type to determine if they are valid.
 64603  func (s *UpdateMitigationActionInput) Validate() error {
 64604  	invalidParams := request.ErrInvalidParams{Context: "UpdateMitigationActionInput"}
 64605  	if s.ActionName == nil {
 64606  		invalidParams.Add(request.NewErrParamRequired("ActionName"))
 64607  	}
 64608  	if s.ActionName != nil && len(*s.ActionName) < 1 {
 64609  		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
 64610  	}
 64611  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 64612  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 64613  	}
 64614  	if s.ActionParams != nil {
 64615  		if err := s.ActionParams.Validate(); err != nil {
 64616  			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
 64617  		}
 64618  	}
 64619  
 64620  	if invalidParams.Len() > 0 {
 64621  		return invalidParams
 64622  	}
 64623  	return nil
 64624  }
 64625  
 64626  // SetActionName sets the ActionName field's value.
 64627  func (s *UpdateMitigationActionInput) SetActionName(v string) *UpdateMitigationActionInput {
 64628  	s.ActionName = &v
 64629  	return s
 64630  }
 64631  
 64632  // SetActionParams sets the ActionParams field's value.
 64633  func (s *UpdateMitigationActionInput) SetActionParams(v *MitigationActionParams) *UpdateMitigationActionInput {
 64634  	s.ActionParams = v
 64635  	return s
 64636  }
 64637  
 64638  // SetRoleArn sets the RoleArn field's value.
 64639  func (s *UpdateMitigationActionInput) SetRoleArn(v string) *UpdateMitigationActionInput {
 64640  	s.RoleArn = &v
 64641  	return s
 64642  }
 64643  
 64644  type UpdateMitigationActionOutput struct {
 64645  	_ struct{} `type:"structure"`
 64646  
 64647  	// The ARN for the new mitigation action.
 64648  	ActionArn *string `locationName:"actionArn" type:"string"`
 64649  
 64650  	// A unique identifier for the mitigation action.
 64651  	ActionId *string `locationName:"actionId" type:"string"`
 64652  }
 64653  
 64654  // String returns the string representation.
 64655  //
 64656  // API parameter values that are decorated as "sensitive" in the API will not
 64657  // be included in the string output. The member name will be present, but the
 64658  // value will be replaced with "sensitive".
 64659  func (s UpdateMitigationActionOutput) String() string {
 64660  	return awsutil.Prettify(s)
 64661  }
 64662  
 64663  // GoString returns the string representation.
 64664  //
 64665  // API parameter values that are decorated as "sensitive" in the API will not
 64666  // be included in the string output. The member name will be present, but the
 64667  // value will be replaced with "sensitive".
 64668  func (s UpdateMitigationActionOutput) GoString() string {
 64669  	return s.String()
 64670  }
 64671  
 64672  // SetActionArn sets the ActionArn field's value.
 64673  func (s *UpdateMitigationActionOutput) SetActionArn(v string) *UpdateMitigationActionOutput {
 64674  	s.ActionArn = &v
 64675  	return s
 64676  }
 64677  
 64678  // SetActionId sets the ActionId field's value.
 64679  func (s *UpdateMitigationActionOutput) SetActionId(v string) *UpdateMitigationActionOutput {
 64680  	s.ActionId = &v
 64681  	return s
 64682  }
 64683  
 64684  type UpdateProvisioningTemplateInput struct {
 64685  	_ struct{} `type:"structure"`
 64686  
 64687  	// The ID of the default provisioning template version.
 64688  	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
 64689  
 64690  	// The description of the fleet provisioning template.
 64691  	Description *string `locationName:"description" type:"string"`
 64692  
 64693  	// True to enable the fleet provisioning template, otherwise false.
 64694  	Enabled *bool `locationName:"enabled" type:"boolean"`
 64695  
 64696  	// Updates the pre-provisioning hook template.
 64697  	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
 64698  
 64699  	// The ARN of the role associated with the provisioning template. This IoT role
 64700  	// grants permission to provision a device.
 64701  	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
 64702  
 64703  	// Removes pre-provisioning hook template.
 64704  	RemovePreProvisioningHook *bool `locationName:"removePreProvisioningHook" type:"boolean"`
 64705  
 64706  	// The name of the fleet provisioning template.
 64707  	//
 64708  	// TemplateName is a required field
 64709  	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
 64710  }
 64711  
 64712  // String returns the string representation.
 64713  //
 64714  // API parameter values that are decorated as "sensitive" in the API will not
 64715  // be included in the string output. The member name will be present, but the
 64716  // value will be replaced with "sensitive".
 64717  func (s UpdateProvisioningTemplateInput) String() string {
 64718  	return awsutil.Prettify(s)
 64719  }
 64720  
 64721  // GoString returns the string representation.
 64722  //
 64723  // API parameter values that are decorated as "sensitive" in the API will not
 64724  // be included in the string output. The member name will be present, but the
 64725  // value will be replaced with "sensitive".
 64726  func (s UpdateProvisioningTemplateInput) GoString() string {
 64727  	return s.String()
 64728  }
 64729  
 64730  // Validate inspects the fields of the type to determine if they are valid.
 64731  func (s *UpdateProvisioningTemplateInput) Validate() error {
 64732  	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"}
 64733  	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
 64734  		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
 64735  	}
 64736  	if s.TemplateName == nil {
 64737  		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
 64738  	}
 64739  	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
 64740  		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
 64741  	}
 64742  	if s.PreProvisioningHook != nil {
 64743  		if err := s.PreProvisioningHook.Validate(); err != nil {
 64744  			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
 64745  		}
 64746  	}
 64747  
 64748  	if invalidParams.Len() > 0 {
 64749  		return invalidParams
 64750  	}
 64751  	return nil
 64752  }
 64753  
 64754  // SetDefaultVersionId sets the DefaultVersionId field's value.
 64755  func (s *UpdateProvisioningTemplateInput) SetDefaultVersionId(v int64) *UpdateProvisioningTemplateInput {
 64756  	s.DefaultVersionId = &v
 64757  	return s
 64758  }
 64759  
 64760  // SetDescription sets the Description field's value.
 64761  func (s *UpdateProvisioningTemplateInput) SetDescription(v string) *UpdateProvisioningTemplateInput {
 64762  	s.Description = &v
 64763  	return s
 64764  }
 64765  
 64766  // SetEnabled sets the Enabled field's value.
 64767  func (s *UpdateProvisioningTemplateInput) SetEnabled(v bool) *UpdateProvisioningTemplateInput {
 64768  	s.Enabled = &v
 64769  	return s
 64770  }
 64771  
 64772  // SetPreProvisioningHook sets the PreProvisioningHook field's value.
 64773  func (s *UpdateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *UpdateProvisioningTemplateInput {
 64774  	s.PreProvisioningHook = v
 64775  	return s
 64776  }
 64777  
 64778  // SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
 64779  func (s *UpdateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *UpdateProvisioningTemplateInput {
 64780  	s.ProvisioningRoleArn = &v
 64781  	return s
 64782  }
 64783  
 64784  // SetRemovePreProvisioningHook sets the RemovePreProvisioningHook field's value.
 64785  func (s *UpdateProvisioningTemplateInput) SetRemovePreProvisioningHook(v bool) *UpdateProvisioningTemplateInput {
 64786  	s.RemovePreProvisioningHook = &v
 64787  	return s
 64788  }
 64789  
 64790  // SetTemplateName sets the TemplateName field's value.
 64791  func (s *UpdateProvisioningTemplateInput) SetTemplateName(v string) *UpdateProvisioningTemplateInput {
 64792  	s.TemplateName = &v
 64793  	return s
 64794  }
 64795  
 64796  type UpdateProvisioningTemplateOutput struct {
 64797  	_ struct{} `type:"structure" nopayload:"true"`
 64798  }
 64799  
 64800  // String returns the string representation.
 64801  //
 64802  // API parameter values that are decorated as "sensitive" in the API will not
 64803  // be included in the string output. The member name will be present, but the
 64804  // value will be replaced with "sensitive".
 64805  func (s UpdateProvisioningTemplateOutput) String() string {
 64806  	return awsutil.Prettify(s)
 64807  }
 64808  
 64809  // GoString returns the string representation.
 64810  //
 64811  // API parameter values that are decorated as "sensitive" in the API will not
 64812  // be included in the string output. The member name will be present, but the
 64813  // value will be replaced with "sensitive".
 64814  func (s UpdateProvisioningTemplateOutput) GoString() string {
 64815  	return s.String()
 64816  }
 64817  
 64818  type UpdateRoleAliasInput struct {
 64819  	_ struct{} `type:"structure"`
 64820  
 64821  	// The number of seconds the credential will be valid.
 64822  	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
 64823  
 64824  	// The role alias to update.
 64825  	//
 64826  	// RoleAlias is a required field
 64827  	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
 64828  
 64829  	// The role ARN.
 64830  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 64831  }
 64832  
 64833  // String returns the string representation.
 64834  //
 64835  // API parameter values that are decorated as "sensitive" in the API will not
 64836  // be included in the string output. The member name will be present, but the
 64837  // value will be replaced with "sensitive".
 64838  func (s UpdateRoleAliasInput) String() string {
 64839  	return awsutil.Prettify(s)
 64840  }
 64841  
 64842  // GoString returns the string representation.
 64843  //
 64844  // API parameter values that are decorated as "sensitive" in the API will not
 64845  // be included in the string output. The member name will be present, but the
 64846  // value will be replaced with "sensitive".
 64847  func (s UpdateRoleAliasInput) GoString() string {
 64848  	return s.String()
 64849  }
 64850  
 64851  // Validate inspects the fields of the type to determine if they are valid.
 64852  func (s *UpdateRoleAliasInput) Validate() error {
 64853  	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
 64854  	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
 64855  		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
 64856  	}
 64857  	if s.RoleAlias == nil {
 64858  		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
 64859  	}
 64860  	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
 64861  		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
 64862  	}
 64863  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 64864  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 64865  	}
 64866  
 64867  	if invalidParams.Len() > 0 {
 64868  		return invalidParams
 64869  	}
 64870  	return nil
 64871  }
 64872  
 64873  // SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
 64874  func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
 64875  	s.CredentialDurationSeconds = &v
 64876  	return s
 64877  }
 64878  
 64879  // SetRoleAlias sets the RoleAlias field's value.
 64880  func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
 64881  	s.RoleAlias = &v
 64882  	return s
 64883  }
 64884  
 64885  // SetRoleArn sets the RoleArn field's value.
 64886  func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
 64887  	s.RoleArn = &v
 64888  	return s
 64889  }
 64890  
 64891  type UpdateRoleAliasOutput struct {
 64892  	_ struct{} `type:"structure"`
 64893  
 64894  	// The role alias.
 64895  	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
 64896  
 64897  	// The role alias ARN.
 64898  	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
 64899  }
 64900  
 64901  // String returns the string representation.
 64902  //
 64903  // API parameter values that are decorated as "sensitive" in the API will not
 64904  // be included in the string output. The member name will be present, but the
 64905  // value will be replaced with "sensitive".
 64906  func (s UpdateRoleAliasOutput) String() string {
 64907  	return awsutil.Prettify(s)
 64908  }
 64909  
 64910  // GoString returns the string representation.
 64911  //
 64912  // API parameter values that are decorated as "sensitive" in the API will not
 64913  // be included in the string output. The member name will be present, but the
 64914  // value will be replaced with "sensitive".
 64915  func (s UpdateRoleAliasOutput) GoString() string {
 64916  	return s.String()
 64917  }
 64918  
 64919  // SetRoleAlias sets the RoleAlias field's value.
 64920  func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
 64921  	s.RoleAlias = &v
 64922  	return s
 64923  }
 64924  
 64925  // SetRoleAliasArn sets the RoleAliasArn field's value.
 64926  func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
 64927  	s.RoleAliasArn = &v
 64928  	return s
 64929  }
 64930  
 64931  type UpdateScheduledAuditInput struct {
 64932  	_ struct{} `type:"structure"`
 64933  
 64934  	// The day of the month on which the scheduled audit takes place. This can be
 64935  	// 1 through 31 or LAST. This field is required if the frequency parameter is
 64936  	// set to MONTHLY. If days 29-31 are specified, and the month does not have
 64937  	// that many days, the audit takes place on the "LAST" day of the month.
 64938  	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
 64939  
 64940  	// The day of the week on which the scheduled audit takes place. This can be
 64941  	// one of SUN, MON, TUE, WED, THU, FRI, or SAT. This field is required if the
 64942  	// "frequency" parameter is set to WEEKLY or BIWEEKLY.
 64943  	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
 64944  
 64945  	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY,
 64946  	// or MONTHLY. The start time of each audit is determined by the system.
 64947  	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
 64948  
 64949  	// The name of the scheduled audit. (Max. 128 chars)
 64950  	//
 64951  	// ScheduledAuditName is a required field
 64952  	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
 64953  
 64954  	// Which checks are performed during the scheduled audit. Checks must be enabled
 64955  	// for your account. (Use DescribeAccountAuditConfiguration to see the list
 64956  	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
 64957  	// to select which checks are enabled.)
 64958  	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
 64959  }
 64960  
 64961  // String returns the string representation.
 64962  //
 64963  // API parameter values that are decorated as "sensitive" in the API will not
 64964  // be included in the string output. The member name will be present, but the
 64965  // value will be replaced with "sensitive".
 64966  func (s UpdateScheduledAuditInput) String() string {
 64967  	return awsutil.Prettify(s)
 64968  }
 64969  
 64970  // GoString returns the string representation.
 64971  //
 64972  // API parameter values that are decorated as "sensitive" in the API will not
 64973  // be included in the string output. The member name will be present, but the
 64974  // value will be replaced with "sensitive".
 64975  func (s UpdateScheduledAuditInput) GoString() string {
 64976  	return s.String()
 64977  }
 64978  
 64979  // Validate inspects the fields of the type to determine if they are valid.
 64980  func (s *UpdateScheduledAuditInput) Validate() error {
 64981  	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
 64982  	if s.ScheduledAuditName == nil {
 64983  		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
 64984  	}
 64985  	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
 64986  		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
 64987  	}
 64988  
 64989  	if invalidParams.Len() > 0 {
 64990  		return invalidParams
 64991  	}
 64992  	return nil
 64993  }
 64994  
 64995  // SetDayOfMonth sets the DayOfMonth field's value.
 64996  func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
 64997  	s.DayOfMonth = &v
 64998  	return s
 64999  }
 65000  
 65001  // SetDayOfWeek sets the DayOfWeek field's value.
 65002  func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
 65003  	s.DayOfWeek = &v
 65004  	return s
 65005  }
 65006  
 65007  // SetFrequency sets the Frequency field's value.
 65008  func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
 65009  	s.Frequency = &v
 65010  	return s
 65011  }
 65012  
 65013  // SetScheduledAuditName sets the ScheduledAuditName field's value.
 65014  func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
 65015  	s.ScheduledAuditName = &v
 65016  	return s
 65017  }
 65018  
 65019  // SetTargetCheckNames sets the TargetCheckNames field's value.
 65020  func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
 65021  	s.TargetCheckNames = v
 65022  	return s
 65023  }
 65024  
 65025  type UpdateScheduledAuditOutput struct {
 65026  	_ struct{} `type:"structure"`
 65027  
 65028  	// The ARN of the scheduled audit.
 65029  	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
 65030  }
 65031  
 65032  // String returns the string representation.
 65033  //
 65034  // API parameter values that are decorated as "sensitive" in the API will not
 65035  // be included in the string output. The member name will be present, but the
 65036  // value will be replaced with "sensitive".
 65037  func (s UpdateScheduledAuditOutput) String() string {
 65038  	return awsutil.Prettify(s)
 65039  }
 65040  
 65041  // GoString returns the string representation.
 65042  //
 65043  // API parameter values that are decorated as "sensitive" in the API will not
 65044  // be included in the string output. The member name will be present, but the
 65045  // value will be replaced with "sensitive".
 65046  func (s UpdateScheduledAuditOutput) GoString() string {
 65047  	return s.String()
 65048  }
 65049  
 65050  // SetScheduledAuditArn sets the ScheduledAuditArn field's value.
 65051  func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
 65052  	s.ScheduledAuditArn = &v
 65053  	return s
 65054  }
 65055  
 65056  type UpdateSecurityProfileInput struct {
 65057  	_ struct{} `type:"structure"`
 65058  
 65059  	// Please use UpdateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
 65060  	//
 65061  	// A list of metrics whose data is retained (stored). By default, data is retained
 65062  	// for any metric used in the profile's behaviors, but it is also retained for
 65063  	// any metric specified here. Can be used with custom metrics; cannot be used
 65064  	// with dimensions.
 65065  	//
 65066  	// Deprecated: Use additionalMetricsToRetainV2.
 65067  	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
 65068  
 65069  	// A list of metrics whose data is retained (stored). By default, data is retained
 65070  	// for any metric used in the profile's behaviors, but it is also retained for
 65071  	// any metric specified here. Can be used with custom metrics; cannot be used
 65072  	// with dimensions.
 65073  	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
 65074  
 65075  	// Where the alerts are sent. (Alerts are always sent to the console.)
 65076  	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
 65077  
 65078  	// Specifies the behaviors that, when violated by a device (thing), cause an
 65079  	// alert.
 65080  	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
 65081  
 65082  	// If true, delete all additionalMetricsToRetain defined for this security profile.
 65083  	// If any additionalMetricsToRetain are defined in the current invocation, an
 65084  	// exception occurs.
 65085  	DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
 65086  
 65087  	// If true, delete all alertTargets defined for this security profile. If any
 65088  	// alertTargets are defined in the current invocation, an exception occurs.
 65089  	DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
 65090  
 65091  	// If true, delete all behaviors defined for this security profile. If any behaviors
 65092  	// are defined in the current invocation, an exception occurs.
 65093  	DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
 65094  
 65095  	// The expected version of the security profile. A new version is generated
 65096  	// whenever the security profile is updated. If you specify a value that is
 65097  	// different from the actual version, a VersionConflictException is thrown.
 65098  	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
 65099  
 65100  	// A description of the security profile.
 65101  	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
 65102  
 65103  	// The name of the security profile you want to update.
 65104  	//
 65105  	// SecurityProfileName is a required field
 65106  	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
 65107  }
 65108  
 65109  // String returns the string representation.
 65110  //
 65111  // API parameter values that are decorated as "sensitive" in the API will not
 65112  // be included in the string output. The member name will be present, but the
 65113  // value will be replaced with "sensitive".
 65114  func (s UpdateSecurityProfileInput) String() string {
 65115  	return awsutil.Prettify(s)
 65116  }
 65117  
 65118  // GoString returns the string representation.
 65119  //
 65120  // API parameter values that are decorated as "sensitive" in the API will not
 65121  // be included in the string output. The member name will be present, but the
 65122  // value will be replaced with "sensitive".
 65123  func (s UpdateSecurityProfileInput) GoString() string {
 65124  	return s.String()
 65125  }
 65126  
 65127  // Validate inspects the fields of the type to determine if they are valid.
 65128  func (s *UpdateSecurityProfileInput) Validate() error {
 65129  	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
 65130  	if s.SecurityProfileName == nil {
 65131  		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
 65132  	}
 65133  	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
 65134  		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
 65135  	}
 65136  	if s.AdditionalMetricsToRetainV2 != nil {
 65137  		for i, v := range s.AdditionalMetricsToRetainV2 {
 65138  			if v == nil {
 65139  				continue
 65140  			}
 65141  			if err := v.Validate(); err != nil {
 65142  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
 65143  			}
 65144  		}
 65145  	}
 65146  	if s.AlertTargets != nil {
 65147  		for i, v := range s.AlertTargets {
 65148  			if v == nil {
 65149  				continue
 65150  			}
 65151  			if err := v.Validate(); err != nil {
 65152  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
 65153  			}
 65154  		}
 65155  	}
 65156  	if s.Behaviors != nil {
 65157  		for i, v := range s.Behaviors {
 65158  			if v == nil {
 65159  				continue
 65160  			}
 65161  			if err := v.Validate(); err != nil {
 65162  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
 65163  			}
 65164  		}
 65165  	}
 65166  
 65167  	if invalidParams.Len() > 0 {
 65168  		return invalidParams
 65169  	}
 65170  	return nil
 65171  }
 65172  
 65173  // SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
 65174  func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
 65175  	s.AdditionalMetricsToRetain = v
 65176  	return s
 65177  }
 65178  
 65179  // SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
 65180  func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileInput {
 65181  	s.AdditionalMetricsToRetainV2 = v
 65182  	return s
 65183  }
 65184  
 65185  // SetAlertTargets sets the AlertTargets field's value.
 65186  func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
 65187  	s.AlertTargets = v
 65188  	return s
 65189  }
 65190  
 65191  // SetBehaviors sets the Behaviors field's value.
 65192  func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
 65193  	s.Behaviors = v
 65194  	return s
 65195  }
 65196  
 65197  // SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
 65198  func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
 65199  	s.DeleteAdditionalMetricsToRetain = &v
 65200  	return s
 65201  }
 65202  
 65203  // SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
 65204  func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
 65205  	s.DeleteAlertTargets = &v
 65206  	return s
 65207  }
 65208  
 65209  // SetDeleteBehaviors sets the DeleteBehaviors field's value.
 65210  func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
 65211  	s.DeleteBehaviors = &v
 65212  	return s
 65213  }
 65214  
 65215  // SetExpectedVersion sets the ExpectedVersion field's value.
 65216  func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
 65217  	s.ExpectedVersion = &v
 65218  	return s
 65219  }
 65220  
 65221  // SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
 65222  func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
 65223  	s.SecurityProfileDescription = &v
 65224  	return s
 65225  }
 65226  
 65227  // SetSecurityProfileName sets the SecurityProfileName field's value.
 65228  func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
 65229  	s.SecurityProfileName = &v
 65230  	return s
 65231  }
 65232  
 65233  type UpdateSecurityProfileOutput struct {
 65234  	_ struct{} `type:"structure"`
 65235  
 65236  	// Please use UpdateSecurityProfileResponse$additionalMetricsToRetainV2 instead.
 65237  	//
 65238  	// A list of metrics whose data is retained (stored). By default, data is retained
 65239  	// for any metric used in the security profile's behaviors, but it is also retained
 65240  	// for any metric specified here.
 65241  	//
 65242  	// Deprecated: Use additionalMetricsToRetainV2.
 65243  	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
 65244  
 65245  	// A list of metrics whose data is retained (stored). By default, data is retained
 65246  	// for any metric used in the profile's behaviors, but it is also retained for
 65247  	// any metric specified here. Can be used with custom metrics; cannot be used
 65248  	// with dimensions.
 65249  	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
 65250  
 65251  	// Where the alerts are sent. (Alerts are always sent to the console.)
 65252  	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
 65253  
 65254  	// Specifies the behaviors that, when violated by a device (thing), cause an
 65255  	// alert.
 65256  	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
 65257  
 65258  	// The time the security profile was created.
 65259  	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
 65260  
 65261  	// The time the security profile was last modified.
 65262  	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
 65263  
 65264  	// The ARN of the security profile that was updated.
 65265  	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
 65266  
 65267  	// The description of the security profile.
 65268  	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
 65269  
 65270  	// The name of the security profile that was updated.
 65271  	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
 65272  
 65273  	// The updated version of the security profile.
 65274  	Version *int64 `locationName:"version" type:"long"`
 65275  }
 65276  
 65277  // String returns the string representation.
 65278  //
 65279  // API parameter values that are decorated as "sensitive" in the API will not
 65280  // be included in the string output. The member name will be present, but the
 65281  // value will be replaced with "sensitive".
 65282  func (s UpdateSecurityProfileOutput) String() string {
 65283  	return awsutil.Prettify(s)
 65284  }
 65285  
 65286  // GoString returns the string representation.
 65287  //
 65288  // API parameter values that are decorated as "sensitive" in the API will not
 65289  // be included in the string output. The member name will be present, but the
 65290  // value will be replaced with "sensitive".
 65291  func (s UpdateSecurityProfileOutput) GoString() string {
 65292  	return s.String()
 65293  }
 65294  
 65295  // SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
 65296  func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
 65297  	s.AdditionalMetricsToRetain = v
 65298  	return s
 65299  }
 65300  
 65301  // SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
 65302  func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileOutput {
 65303  	s.AdditionalMetricsToRetainV2 = v
 65304  	return s
 65305  }
 65306  
 65307  // SetAlertTargets sets the AlertTargets field's value.
 65308  func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
 65309  	s.AlertTargets = v
 65310  	return s
 65311  }
 65312  
 65313  // SetBehaviors sets the Behaviors field's value.
 65314  func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
 65315  	s.Behaviors = v
 65316  	return s
 65317  }
 65318  
 65319  // SetCreationDate sets the CreationDate field's value.
 65320  func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
 65321  	s.CreationDate = &v
 65322  	return s
 65323  }
 65324  
 65325  // SetLastModifiedDate sets the LastModifiedDate field's value.
 65326  func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
 65327  	s.LastModifiedDate = &v
 65328  	return s
 65329  }
 65330  
 65331  // SetSecurityProfileArn sets the SecurityProfileArn field's value.
 65332  func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
 65333  	s.SecurityProfileArn = &v
 65334  	return s
 65335  }
 65336  
 65337  // SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
 65338  func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
 65339  	s.SecurityProfileDescription = &v
 65340  	return s
 65341  }
 65342  
 65343  // SetSecurityProfileName sets the SecurityProfileName field's value.
 65344  func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
 65345  	s.SecurityProfileName = &v
 65346  	return s
 65347  }
 65348  
 65349  // SetVersion sets the Version field's value.
 65350  func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
 65351  	s.Version = &v
 65352  	return s
 65353  }
 65354  
 65355  type UpdateStreamInput struct {
 65356  	_ struct{} `type:"structure"`
 65357  
 65358  	// The description of the stream.
 65359  	Description *string `locationName:"description" type:"string"`
 65360  
 65361  	// The files associated with the stream.
 65362  	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
 65363  
 65364  	// An IAM role that allows the IoT service principal assumes to access your
 65365  	// S3 files.
 65366  	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
 65367  
 65368  	// The stream ID.
 65369  	//
 65370  	// StreamId is a required field
 65371  	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
 65372  }
 65373  
 65374  // String returns the string representation.
 65375  //
 65376  // API parameter values that are decorated as "sensitive" in the API will not
 65377  // be included in the string output. The member name will be present, but the
 65378  // value will be replaced with "sensitive".
 65379  func (s UpdateStreamInput) String() string {
 65380  	return awsutil.Prettify(s)
 65381  }
 65382  
 65383  // GoString returns the string representation.
 65384  //
 65385  // API parameter values that are decorated as "sensitive" in the API will not
 65386  // be included in the string output. The member name will be present, but the
 65387  // value will be replaced with "sensitive".
 65388  func (s UpdateStreamInput) GoString() string {
 65389  	return s.String()
 65390  }
 65391  
 65392  // Validate inspects the fields of the type to determine if they are valid.
 65393  func (s *UpdateStreamInput) Validate() error {
 65394  	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
 65395  	if s.Files != nil && len(s.Files) < 1 {
 65396  		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
 65397  	}
 65398  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
 65399  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
 65400  	}
 65401  	if s.StreamId == nil {
 65402  		invalidParams.Add(request.NewErrParamRequired("StreamId"))
 65403  	}
 65404  	if s.StreamId != nil && len(*s.StreamId) < 1 {
 65405  		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
 65406  	}
 65407  	if s.Files != nil {
 65408  		for i, v := range s.Files {
 65409  			if v == nil {
 65410  				continue
 65411  			}
 65412  			if err := v.Validate(); err != nil {
 65413  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
 65414  			}
 65415  		}
 65416  	}
 65417  
 65418  	if invalidParams.Len() > 0 {
 65419  		return invalidParams
 65420  	}
 65421  	return nil
 65422  }
 65423  
 65424  // SetDescription sets the Description field's value.
 65425  func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
 65426  	s.Description = &v
 65427  	return s
 65428  }
 65429  
 65430  // SetFiles sets the Files field's value.
 65431  func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
 65432  	s.Files = v
 65433  	return s
 65434  }
 65435  
 65436  // SetRoleArn sets the RoleArn field's value.
 65437  func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
 65438  	s.RoleArn = &v
 65439  	return s
 65440  }
 65441  
 65442  // SetStreamId sets the StreamId field's value.
 65443  func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
 65444  	s.StreamId = &v
 65445  	return s
 65446  }
 65447  
 65448  type UpdateStreamOutput struct {
 65449  	_ struct{} `type:"structure"`
 65450  
 65451  	// A description of the stream.
 65452  	Description *string `locationName:"description" type:"string"`
 65453  
 65454  	// The stream ARN.
 65455  	StreamArn *string `locationName:"streamArn" type:"string"`
 65456  
 65457  	// The stream ID.
 65458  	StreamId *string `locationName:"streamId" min:"1" type:"string"`
 65459  
 65460  	// The stream version.
 65461  	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
 65462  }
 65463  
 65464  // String returns the string representation.
 65465  //
 65466  // API parameter values that are decorated as "sensitive" in the API will not
 65467  // be included in the string output. The member name will be present, but the
 65468  // value will be replaced with "sensitive".
 65469  func (s UpdateStreamOutput) String() string {
 65470  	return awsutil.Prettify(s)
 65471  }
 65472  
 65473  // GoString returns the string representation.
 65474  //
 65475  // API parameter values that are decorated as "sensitive" in the API will not
 65476  // be included in the string output. The member name will be present, but the
 65477  // value will be replaced with "sensitive".
 65478  func (s UpdateStreamOutput) GoString() string {
 65479  	return s.String()
 65480  }
 65481  
 65482  // SetDescription sets the Description field's value.
 65483  func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
 65484  	s.Description = &v
 65485  	return s
 65486  }
 65487  
 65488  // SetStreamArn sets the StreamArn field's value.
 65489  func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
 65490  	s.StreamArn = &v
 65491  	return s
 65492  }
 65493  
 65494  // SetStreamId sets the StreamId field's value.
 65495  func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
 65496  	s.StreamId = &v
 65497  	return s
 65498  }
 65499  
 65500  // SetStreamVersion sets the StreamVersion field's value.
 65501  func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
 65502  	s.StreamVersion = &v
 65503  	return s
 65504  }
 65505  
 65506  type UpdateThingGroupInput struct {
 65507  	_ struct{} `type:"structure"`
 65508  
 65509  	// The expected version of the thing group. If this does not match the version
 65510  	// of the thing group being updated, the update will fail.
 65511  	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
 65512  
 65513  	// The thing group to update.
 65514  	//
 65515  	// ThingGroupName is a required field
 65516  	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
 65517  
 65518  	// The thing group properties.
 65519  	//
 65520  	// ThingGroupProperties is a required field
 65521  	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
 65522  }
 65523  
 65524  // String returns the string representation.
 65525  //
 65526  // API parameter values that are decorated as "sensitive" in the API will not
 65527  // be included in the string output. The member name will be present, but the
 65528  // value will be replaced with "sensitive".
 65529  func (s UpdateThingGroupInput) String() string {
 65530  	return awsutil.Prettify(s)
 65531  }
 65532  
 65533  // GoString returns the string representation.
 65534  //
 65535  // API parameter values that are decorated as "sensitive" in the API will not
 65536  // be included in the string output. The member name will be present, but the
 65537  // value will be replaced with "sensitive".
 65538  func (s UpdateThingGroupInput) GoString() string {
 65539  	return s.String()
 65540  }
 65541  
 65542  // Validate inspects the fields of the type to determine if they are valid.
 65543  func (s *UpdateThingGroupInput) Validate() error {
 65544  	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
 65545  	if s.ThingGroupName == nil {
 65546  		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
 65547  	}
 65548  	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
 65549  		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
 65550  	}
 65551  	if s.ThingGroupProperties == nil {
 65552  		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
 65553  	}
 65554  
 65555  	if invalidParams.Len() > 0 {
 65556  		return invalidParams
 65557  	}
 65558  	return nil
 65559  }
 65560  
 65561  // SetExpectedVersion sets the ExpectedVersion field's value.
 65562  func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
 65563  	s.ExpectedVersion = &v
 65564  	return s
 65565  }
 65566  
 65567  // SetThingGroupName sets the ThingGroupName field's value.
 65568  func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
 65569  	s.ThingGroupName = &v
 65570  	return s
 65571  }
 65572  
 65573  // SetThingGroupProperties sets the ThingGroupProperties field's value.
 65574  func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
 65575  	s.ThingGroupProperties = v
 65576  	return s
 65577  }
 65578  
 65579  type UpdateThingGroupOutput struct {
 65580  	_ struct{} `type:"structure"`
 65581  
 65582  	// The version of the updated thing group.
 65583  	Version *int64 `locationName:"version" type:"long"`
 65584  }
 65585  
 65586  // String returns the string representation.
 65587  //
 65588  // API parameter values that are decorated as "sensitive" in the API will not
 65589  // be included in the string output. The member name will be present, but the
 65590  // value will be replaced with "sensitive".
 65591  func (s UpdateThingGroupOutput) String() string {
 65592  	return awsutil.Prettify(s)
 65593  }
 65594  
 65595  // GoString returns the string representation.
 65596  //
 65597  // API parameter values that are decorated as "sensitive" in the API will not
 65598  // be included in the string output. The member name will be present, but the
 65599  // value will be replaced with "sensitive".
 65600  func (s UpdateThingGroupOutput) GoString() string {
 65601  	return s.String()
 65602  }
 65603  
 65604  // SetVersion sets the Version field's value.
 65605  func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
 65606  	s.Version = &v
 65607  	return s
 65608  }
 65609  
 65610  type UpdateThingGroupsForThingInput struct {
 65611  	_ struct{} `type:"structure"`
 65612  
 65613  	// Override dynamic thing groups with static thing groups when 10-group limit
 65614  	// is reached. If a thing belongs to 10 thing groups, and one or more of those
 65615  	// groups are dynamic thing groups, adding a thing to a static group removes
 65616  	// the thing from the last dynamic group.
 65617  	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
 65618  
 65619  	// The groups to which the thing will be added.
 65620  	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
 65621  
 65622  	// The groups from which the thing will be removed.
 65623  	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
 65624  
 65625  	// The thing whose group memberships will be updated.
 65626  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 65627  }
 65628  
 65629  // String returns the string representation.
 65630  //
 65631  // API parameter values that are decorated as "sensitive" in the API will not
 65632  // be included in the string output. The member name will be present, but the
 65633  // value will be replaced with "sensitive".
 65634  func (s UpdateThingGroupsForThingInput) String() string {
 65635  	return awsutil.Prettify(s)
 65636  }
 65637  
 65638  // GoString returns the string representation.
 65639  //
 65640  // API parameter values that are decorated as "sensitive" in the API will not
 65641  // be included in the string output. The member name will be present, but the
 65642  // value will be replaced with "sensitive".
 65643  func (s UpdateThingGroupsForThingInput) GoString() string {
 65644  	return s.String()
 65645  }
 65646  
 65647  // Validate inspects the fields of the type to determine if they are valid.
 65648  func (s *UpdateThingGroupsForThingInput) Validate() error {
 65649  	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
 65650  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 65651  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 65652  	}
 65653  
 65654  	if invalidParams.Len() > 0 {
 65655  		return invalidParams
 65656  	}
 65657  	return nil
 65658  }
 65659  
 65660  // SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
 65661  func (s *UpdateThingGroupsForThingInput) SetOverrideDynamicGroups(v bool) *UpdateThingGroupsForThingInput {
 65662  	s.OverrideDynamicGroups = &v
 65663  	return s
 65664  }
 65665  
 65666  // SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
 65667  func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
 65668  	s.ThingGroupsToAdd = v
 65669  	return s
 65670  }
 65671  
 65672  // SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
 65673  func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
 65674  	s.ThingGroupsToRemove = v
 65675  	return s
 65676  }
 65677  
 65678  // SetThingName sets the ThingName field's value.
 65679  func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
 65680  	s.ThingName = &v
 65681  	return s
 65682  }
 65683  
 65684  type UpdateThingGroupsForThingOutput struct {
 65685  	_ struct{} `type:"structure" nopayload:"true"`
 65686  }
 65687  
 65688  // String returns the string representation.
 65689  //
 65690  // API parameter values that are decorated as "sensitive" in the API will not
 65691  // be included in the string output. The member name will be present, but the
 65692  // value will be replaced with "sensitive".
 65693  func (s UpdateThingGroupsForThingOutput) String() string {
 65694  	return awsutil.Prettify(s)
 65695  }
 65696  
 65697  // GoString returns the string representation.
 65698  //
 65699  // API parameter values that are decorated as "sensitive" in the API will not
 65700  // be included in the string output. The member name will be present, but the
 65701  // value will be replaced with "sensitive".
 65702  func (s UpdateThingGroupsForThingOutput) GoString() string {
 65703  	return s.String()
 65704  }
 65705  
 65706  // The input for the UpdateThing operation.
 65707  type UpdateThingInput struct {
 65708  	_ struct{} `type:"structure"`
 65709  
 65710  	// A list of thing attributes, a JSON string containing name-value pairs. For
 65711  	// example:
 65712  	//
 65713  	// {\"attributes\":{\"name1\":\"value2\"}}
 65714  	//
 65715  	// This data is used to add new attributes or update existing attributes.
 65716  	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
 65717  
 65718  	// The expected version of the thing record in the registry. If the version
 65719  	// of the record in the registry does not match the expected version specified
 65720  	// in the request, the UpdateThing request is rejected with a VersionConflictException.
 65721  	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
 65722  
 65723  	// Remove a thing type association. If true, the association is removed.
 65724  	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
 65725  
 65726  	// The name of the thing to update.
 65727  	//
 65728  	// You can't change a thing's name. To change a thing's name, you must create
 65729  	// a new thing, give it the new name, and then delete the old thing.
 65730  	//
 65731  	// ThingName is a required field
 65732  	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
 65733  
 65734  	// The name of the thing type.
 65735  	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
 65736  }
 65737  
 65738  // String returns the string representation.
 65739  //
 65740  // API parameter values that are decorated as "sensitive" in the API will not
 65741  // be included in the string output. The member name will be present, but the
 65742  // value will be replaced with "sensitive".
 65743  func (s UpdateThingInput) String() string {
 65744  	return awsutil.Prettify(s)
 65745  }
 65746  
 65747  // GoString returns the string representation.
 65748  //
 65749  // API parameter values that are decorated as "sensitive" in the API will not
 65750  // be included in the string output. The member name will be present, but the
 65751  // value will be replaced with "sensitive".
 65752  func (s UpdateThingInput) GoString() string {
 65753  	return s.String()
 65754  }
 65755  
 65756  // Validate inspects the fields of the type to determine if they are valid.
 65757  func (s *UpdateThingInput) Validate() error {
 65758  	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
 65759  	if s.ThingName == nil {
 65760  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
 65761  	}
 65762  	if s.ThingName != nil && len(*s.ThingName) < 1 {
 65763  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
 65764  	}
 65765  	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
 65766  		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
 65767  	}
 65768  
 65769  	if invalidParams.Len() > 0 {
 65770  		return invalidParams
 65771  	}
 65772  	return nil
 65773  }
 65774  
 65775  // SetAttributePayload sets the AttributePayload field's value.
 65776  func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
 65777  	s.AttributePayload = v
 65778  	return s
 65779  }
 65780  
 65781  // SetExpectedVersion sets the ExpectedVersion field's value.
 65782  func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
 65783  	s.ExpectedVersion = &v
 65784  	return s
 65785  }
 65786  
 65787  // SetRemoveThingType sets the RemoveThingType field's value.
 65788  func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
 65789  	s.RemoveThingType = &v
 65790  	return s
 65791  }
 65792  
 65793  // SetThingName sets the ThingName field's value.
 65794  func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
 65795  	s.ThingName = &v
 65796  	return s
 65797  }
 65798  
 65799  // SetThingTypeName sets the ThingTypeName field's value.
 65800  func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
 65801  	s.ThingTypeName = &v
 65802  	return s
 65803  }
 65804  
 65805  // The output from the UpdateThing operation.
 65806  type UpdateThingOutput struct {
 65807  	_ struct{} `type:"structure" nopayload:"true"`
 65808  }
 65809  
 65810  // String returns the string representation.
 65811  //
 65812  // API parameter values that are decorated as "sensitive" in the API will not
 65813  // be included in the string output. The member name will be present, but the
 65814  // value will be replaced with "sensitive".
 65815  func (s UpdateThingOutput) String() string {
 65816  	return awsutil.Prettify(s)
 65817  }
 65818  
 65819  // GoString returns the string representation.
 65820  //
 65821  // API parameter values that are decorated as "sensitive" in the API will not
 65822  // be included in the string output. The member name will be present, but the
 65823  // value will be replaced with "sensitive".
 65824  func (s UpdateThingOutput) GoString() string {
 65825  	return s.String()
 65826  }
 65827  
 65828  type UpdateTopicRuleDestinationInput struct {
 65829  	_ struct{} `type:"structure"`
 65830  
 65831  	// The ARN of the topic rule destination.
 65832  	//
 65833  	// Arn is a required field
 65834  	Arn *string `locationName:"arn" type:"string" required:"true"`
 65835  
 65836  	// The status of the topic rule destination. Valid values are:
 65837  	//
 65838  	// IN_PROGRESS
 65839  	//
 65840  	// A topic rule destination was created but has not been confirmed. You can
 65841  	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
 65842  	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
 65843  	// to your confirmation endpoint.
 65844  	//
 65845  	// ENABLED
 65846  	//
 65847  	// Confirmation was completed, and traffic to this destination is allowed. You
 65848  	// can set status to DISABLED by calling UpdateTopicRuleDestination.
 65849  	//
 65850  	// DISABLED
 65851  	//
 65852  	// Confirmation was completed, and traffic to this destination is not allowed.
 65853  	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
 65854  	//
 65855  	// ERROR
 65856  	//
 65857  	// Confirmation could not be completed, for example if the confirmation timed
 65858  	// out. You can call GetTopicRuleDestination for details about the error. You
 65859  	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
 65860  	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
 65861  	// to your confirmation endpoint.
 65862  	//
 65863  	// Status is a required field
 65864  	Status *string `locationName:"status" type:"string" required:"true" enum:"TopicRuleDestinationStatus"`
 65865  }
 65866  
 65867  // String returns the string representation.
 65868  //
 65869  // API parameter values that are decorated as "sensitive" in the API will not
 65870  // be included in the string output. The member name will be present, but the
 65871  // value will be replaced with "sensitive".
 65872  func (s UpdateTopicRuleDestinationInput) String() string {
 65873  	return awsutil.Prettify(s)
 65874  }
 65875  
 65876  // GoString returns the string representation.
 65877  //
 65878  // API parameter values that are decorated as "sensitive" in the API will not
 65879  // be included in the string output. The member name will be present, but the
 65880  // value will be replaced with "sensitive".
 65881  func (s UpdateTopicRuleDestinationInput) GoString() string {
 65882  	return s.String()
 65883  }
 65884  
 65885  // Validate inspects the fields of the type to determine if they are valid.
 65886  func (s *UpdateTopicRuleDestinationInput) Validate() error {
 65887  	invalidParams := request.ErrInvalidParams{Context: "UpdateTopicRuleDestinationInput"}
 65888  	if s.Arn == nil {
 65889  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 65890  	}
 65891  	if s.Status == nil {
 65892  		invalidParams.Add(request.NewErrParamRequired("Status"))
 65893  	}
 65894  
 65895  	if invalidParams.Len() > 0 {
 65896  		return invalidParams
 65897  	}
 65898  	return nil
 65899  }
 65900  
 65901  // SetArn sets the Arn field's value.
 65902  func (s *UpdateTopicRuleDestinationInput) SetArn(v string) *UpdateTopicRuleDestinationInput {
 65903  	s.Arn = &v
 65904  	return s
 65905  }
 65906  
 65907  // SetStatus sets the Status field's value.
 65908  func (s *UpdateTopicRuleDestinationInput) SetStatus(v string) *UpdateTopicRuleDestinationInput {
 65909  	s.Status = &v
 65910  	return s
 65911  }
 65912  
 65913  type UpdateTopicRuleDestinationOutput struct {
 65914  	_ struct{} `type:"structure" nopayload:"true"`
 65915  }
 65916  
 65917  // String returns the string representation.
 65918  //
 65919  // API parameter values that are decorated as "sensitive" in the API will not
 65920  // be included in the string output. The member name will be present, but the
 65921  // value will be replaced with "sensitive".
 65922  func (s UpdateTopicRuleDestinationOutput) String() string {
 65923  	return awsutil.Prettify(s)
 65924  }
 65925  
 65926  // GoString returns the string representation.
 65927  //
 65928  // API parameter values that are decorated as "sensitive" in the API will not
 65929  // be included in the string output. The member name will be present, but the
 65930  // value will be replaced with "sensitive".
 65931  func (s UpdateTopicRuleDestinationOutput) GoString() string {
 65932  	return s.String()
 65933  }
 65934  
 65935  type ValidateSecurityProfileBehaviorsInput struct {
 65936  	_ struct{} `type:"structure"`
 65937  
 65938  	// Specifies the behaviors that, when violated by a device (thing), cause an
 65939  	// alert.
 65940  	//
 65941  	// Behaviors is a required field
 65942  	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
 65943  }
 65944  
 65945  // String returns the string representation.
 65946  //
 65947  // API parameter values that are decorated as "sensitive" in the API will not
 65948  // be included in the string output. The member name will be present, but the
 65949  // value will be replaced with "sensitive".
 65950  func (s ValidateSecurityProfileBehaviorsInput) String() string {
 65951  	return awsutil.Prettify(s)
 65952  }
 65953  
 65954  // GoString returns the string representation.
 65955  //
 65956  // API parameter values that are decorated as "sensitive" in the API will not
 65957  // be included in the string output. The member name will be present, but the
 65958  // value will be replaced with "sensitive".
 65959  func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
 65960  	return s.String()
 65961  }
 65962  
 65963  // Validate inspects the fields of the type to determine if they are valid.
 65964  func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
 65965  	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
 65966  	if s.Behaviors == nil {
 65967  		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
 65968  	}
 65969  	if s.Behaviors != nil {
 65970  		for i, v := range s.Behaviors {
 65971  			if v == nil {
 65972  				continue
 65973  			}
 65974  			if err := v.Validate(); err != nil {
 65975  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
 65976  			}
 65977  		}
 65978  	}
 65979  
 65980  	if invalidParams.Len() > 0 {
 65981  		return invalidParams
 65982  	}
 65983  	return nil
 65984  }
 65985  
 65986  // SetBehaviors sets the Behaviors field's value.
 65987  func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
 65988  	s.Behaviors = v
 65989  	return s
 65990  }
 65991  
 65992  type ValidateSecurityProfileBehaviorsOutput struct {
 65993  	_ struct{} `type:"structure"`
 65994  
 65995  	// True if the behaviors were valid.
 65996  	Valid *bool `locationName:"valid" type:"boolean"`
 65997  
 65998  	// The list of any errors found in the behaviors.
 65999  	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
 66000  }
 66001  
 66002  // String returns the string representation.
 66003  //
 66004  // API parameter values that are decorated as "sensitive" in the API will not
 66005  // be included in the string output. The member name will be present, but the
 66006  // value will be replaced with "sensitive".
 66007  func (s ValidateSecurityProfileBehaviorsOutput) String() string {
 66008  	return awsutil.Prettify(s)
 66009  }
 66010  
 66011  // GoString returns the string representation.
 66012  //
 66013  // API parameter values that are decorated as "sensitive" in the API will not
 66014  // be included in the string output. The member name will be present, but the
 66015  // value will be replaced with "sensitive".
 66016  func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
 66017  	return s.String()
 66018  }
 66019  
 66020  // SetValid sets the Valid field's value.
 66021  func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
 66022  	s.Valid = &v
 66023  	return s
 66024  }
 66025  
 66026  // SetValidationErrors sets the ValidationErrors field's value.
 66027  func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
 66028  	s.ValidationErrors = v
 66029  	return s
 66030  }
 66031  
 66032  // Information about an error found in a behavior specification.
 66033  type ValidationError struct {
 66034  	_ struct{} `type:"structure"`
 66035  
 66036  	// The description of an error found in the behaviors.
 66037  	ErrorMessage *string `locationName:"errorMessage" type:"string"`
 66038  }
 66039  
 66040  // String returns the string representation.
 66041  //
 66042  // API parameter values that are decorated as "sensitive" in the API will not
 66043  // be included in the string output. The member name will be present, but the
 66044  // value will be replaced with "sensitive".
 66045  func (s ValidationError) String() string {
 66046  	return awsutil.Prettify(s)
 66047  }
 66048  
 66049  // GoString returns the string representation.
 66050  //
 66051  // API parameter values that are decorated as "sensitive" in the API will not
 66052  // be included in the string output. The member name will be present, but the
 66053  // value will be replaced with "sensitive".
 66054  func (s ValidationError) GoString() string {
 66055  	return s.String()
 66056  }
 66057  
 66058  // SetErrorMessage sets the ErrorMessage field's value.
 66059  func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
 66060  	s.ErrorMessage = &v
 66061  	return s
 66062  }
 66063  
 66064  // An exception thrown when the version of an entity specified with the expectedVersion
 66065  // parameter does not match the latest version in the system.
 66066  type VersionConflictException struct {
 66067  	_            struct{}                  `type:"structure"`
 66068  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 66069  
 66070  	// The message for the exception.
 66071  	Message_ *string `locationName:"message" type:"string"`
 66072  }
 66073  
 66074  // String returns the string representation.
 66075  //
 66076  // API parameter values that are decorated as "sensitive" in the API will not
 66077  // be included in the string output. The member name will be present, but the
 66078  // value will be replaced with "sensitive".
 66079  func (s VersionConflictException) String() string {
 66080  	return awsutil.Prettify(s)
 66081  }
 66082  
 66083  // GoString returns the string representation.
 66084  //
 66085  // API parameter values that are decorated as "sensitive" in the API will not
 66086  // be included in the string output. The member name will be present, but the
 66087  // value will be replaced with "sensitive".
 66088  func (s VersionConflictException) GoString() string {
 66089  	return s.String()
 66090  }
 66091  
 66092  func newErrorVersionConflictException(v protocol.ResponseMetadata) error {
 66093  	return &VersionConflictException{
 66094  		RespMetadata: v,
 66095  	}
 66096  }
 66097  
 66098  // Code returns the exception type name.
 66099  func (s *VersionConflictException) Code() string {
 66100  	return "VersionConflictException"
 66101  }
 66102  
 66103  // Message returns the exception's message.
 66104  func (s *VersionConflictException) Message() string {
 66105  	if s.Message_ != nil {
 66106  		return *s.Message_
 66107  	}
 66108  	return ""
 66109  }
 66110  
 66111  // OrigErr always returns nil, satisfies awserr.Error interface.
 66112  func (s *VersionConflictException) OrigErr() error {
 66113  	return nil
 66114  }
 66115  
 66116  func (s *VersionConflictException) Error() string {
 66117  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 66118  }
 66119  
 66120  // Status code returns the HTTP status code for the request's response error.
 66121  func (s *VersionConflictException) StatusCode() int {
 66122  	return s.RespMetadata.StatusCode
 66123  }
 66124  
 66125  // RequestID returns the service's response RequestID for request.
 66126  func (s *VersionConflictException) RequestID() string {
 66127  	return s.RespMetadata.RequestID
 66128  }
 66129  
 66130  // The number of policy versions exceeds the limit.
 66131  type VersionsLimitExceededException struct {
 66132  	_            struct{}                  `type:"structure"`
 66133  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 66134  
 66135  	// The message for the exception.
 66136  	Message_ *string `locationName:"message" type:"string"`
 66137  }
 66138  
 66139  // String returns the string representation.
 66140  //
 66141  // API parameter values that are decorated as "sensitive" in the API will not
 66142  // be included in the string output. The member name will be present, but the
 66143  // value will be replaced with "sensitive".
 66144  func (s VersionsLimitExceededException) String() string {
 66145  	return awsutil.Prettify(s)
 66146  }
 66147  
 66148  // GoString returns the string representation.
 66149  //
 66150  // API parameter values that are decorated as "sensitive" in the API will not
 66151  // be included in the string output. The member name will be present, but the
 66152  // value will be replaced with "sensitive".
 66153  func (s VersionsLimitExceededException) GoString() string {
 66154  	return s.String()
 66155  }
 66156  
 66157  func newErrorVersionsLimitExceededException(v protocol.ResponseMetadata) error {
 66158  	return &VersionsLimitExceededException{
 66159  		RespMetadata: v,
 66160  	}
 66161  }
 66162  
 66163  // Code returns the exception type name.
 66164  func (s *VersionsLimitExceededException) Code() string {
 66165  	return "VersionsLimitExceededException"
 66166  }
 66167  
 66168  // Message returns the exception's message.
 66169  func (s *VersionsLimitExceededException) Message() string {
 66170  	if s.Message_ != nil {
 66171  		return *s.Message_
 66172  	}
 66173  	return ""
 66174  }
 66175  
 66176  // OrigErr always returns nil, satisfies awserr.Error interface.
 66177  func (s *VersionsLimitExceededException) OrigErr() error {
 66178  	return nil
 66179  }
 66180  
 66181  func (s *VersionsLimitExceededException) Error() string {
 66182  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 66183  }
 66184  
 66185  // Status code returns the HTTP status code for the request's response error.
 66186  func (s *VersionsLimitExceededException) StatusCode() int {
 66187  	return s.RespMetadata.StatusCode
 66188  }
 66189  
 66190  // RequestID returns the service's response RequestID for request.
 66191  func (s *VersionsLimitExceededException) RequestID() string {
 66192  	return s.RespMetadata.RequestID
 66193  }
 66194  
 66195  // Information about a Device Defender security profile behavior violation.
 66196  type ViolationEvent struct {
 66197  	_ struct{} `type:"structure"`
 66198  
 66199  	// The behavior that was violated.
 66200  	Behavior *Behavior `locationName:"behavior" type:"structure"`
 66201  
 66202  	// The value of the metric (the measurement).
 66203  	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
 66204  
 66205  	// The name of the security profile whose behavior was violated.
 66206  	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
 66207  
 66208  	// The name of the thing responsible for the violation event.
 66209  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
 66210  
 66211  	// The verification state of the violation (detect alarm).
 66212  	VerificationState *string `locationName:"verificationState" type:"string" enum:"VerificationState"`
 66213  
 66214  	// The description of the verification state of the violation.
 66215  	VerificationStateDescription *string `locationName:"verificationStateDescription" type:"string"`
 66216  
 66217  	// The details of a violation event.
 66218  	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
 66219  
 66220  	// The time the violation event occurred.
 66221  	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
 66222  
 66223  	// The type of violation event.
 66224  	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
 66225  
 66226  	// The ID of the violation event.
 66227  	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
 66228  }
 66229  
 66230  // String returns the string representation.
 66231  //
 66232  // API parameter values that are decorated as "sensitive" in the API will not
 66233  // be included in the string output. The member name will be present, but the
 66234  // value will be replaced with "sensitive".
 66235  func (s ViolationEvent) String() string {
 66236  	return awsutil.Prettify(s)
 66237  }
 66238  
 66239  // GoString returns the string representation.
 66240  //
 66241  // API parameter values that are decorated as "sensitive" in the API will not
 66242  // be included in the string output. The member name will be present, but the
 66243  // value will be replaced with "sensitive".
 66244  func (s ViolationEvent) GoString() string {
 66245  	return s.String()
 66246  }
 66247  
 66248  // SetBehavior sets the Behavior field's value.
 66249  func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
 66250  	s.Behavior = v
 66251  	return s
 66252  }
 66253  
 66254  // SetMetricValue sets the MetricValue field's value.
 66255  func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
 66256  	s.MetricValue = v
 66257  	return s
 66258  }
 66259  
 66260  // SetSecurityProfileName sets the SecurityProfileName field's value.
 66261  func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
 66262  	s.SecurityProfileName = &v
 66263  	return s
 66264  }
 66265  
 66266  // SetThingName sets the ThingName field's value.
 66267  func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
 66268  	s.ThingName = &v
 66269  	return s
 66270  }
 66271  
 66272  // SetVerificationState sets the VerificationState field's value.
 66273  func (s *ViolationEvent) SetVerificationState(v string) *ViolationEvent {
 66274  	s.VerificationState = &v
 66275  	return s
 66276  }
 66277  
 66278  // SetVerificationStateDescription sets the VerificationStateDescription field's value.
 66279  func (s *ViolationEvent) SetVerificationStateDescription(v string) *ViolationEvent {
 66280  	s.VerificationStateDescription = &v
 66281  	return s
 66282  }
 66283  
 66284  // SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
 66285  func (s *ViolationEvent) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ViolationEvent {
 66286  	s.ViolationEventAdditionalInfo = v
 66287  	return s
 66288  }
 66289  
 66290  // SetViolationEventTime sets the ViolationEventTime field's value.
 66291  func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
 66292  	s.ViolationEventTime = &v
 66293  	return s
 66294  }
 66295  
 66296  // SetViolationEventType sets the ViolationEventType field's value.
 66297  func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
 66298  	s.ViolationEventType = &v
 66299  	return s
 66300  }
 66301  
 66302  // SetViolationId sets the ViolationId field's value.
 66303  func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
 66304  	s.ViolationId = &v
 66305  	return s
 66306  }
 66307  
 66308  // The details of a violation event.
 66309  type ViolationEventAdditionalInfo struct {
 66310  	_ struct{} `type:"structure"`
 66311  
 66312  	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
 66313  	// High.
 66314  	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" enum:"ConfidenceLevel"`
 66315  }
 66316  
 66317  // String returns the string representation.
 66318  //
 66319  // API parameter values that are decorated as "sensitive" in the API will not
 66320  // be included in the string output. The member name will be present, but the
 66321  // value will be replaced with "sensitive".
 66322  func (s ViolationEventAdditionalInfo) String() string {
 66323  	return awsutil.Prettify(s)
 66324  }
 66325  
 66326  // GoString returns the string representation.
 66327  //
 66328  // API parameter values that are decorated as "sensitive" in the API will not
 66329  // be included in the string output. The member name will be present, but the
 66330  // value will be replaced with "sensitive".
 66331  func (s ViolationEventAdditionalInfo) GoString() string {
 66332  	return s.String()
 66333  }
 66334  
 66335  // SetConfidenceLevel sets the ConfidenceLevel field's value.
 66336  func (s *ViolationEventAdditionalInfo) SetConfidenceLevel(v string) *ViolationEventAdditionalInfo {
 66337  	s.ConfidenceLevel = &v
 66338  	return s
 66339  }
 66340  
 66341  // Specifies the time period of which violation events occurred between.
 66342  type ViolationEventOccurrenceRange struct {
 66343  	_ struct{} `type:"structure"`
 66344  
 66345  	// The end date and time of a time period in which violation events occurred.
 66346  	//
 66347  	// EndTime is a required field
 66348  	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
 66349  
 66350  	// The start date and time of a time period in which violation events occurred.
 66351  	//
 66352  	// StartTime is a required field
 66353  	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
 66354  }
 66355  
 66356  // String returns the string representation.
 66357  //
 66358  // API parameter values that are decorated as "sensitive" in the API will not
 66359  // be included in the string output. The member name will be present, but the
 66360  // value will be replaced with "sensitive".
 66361  func (s ViolationEventOccurrenceRange) String() string {
 66362  	return awsutil.Prettify(s)
 66363  }
 66364  
 66365  // GoString returns the string representation.
 66366  //
 66367  // API parameter values that are decorated as "sensitive" in the API will not
 66368  // be included in the string output. The member name will be present, but the
 66369  // value will be replaced with "sensitive".
 66370  func (s ViolationEventOccurrenceRange) GoString() string {
 66371  	return s.String()
 66372  }
 66373  
 66374  // Validate inspects the fields of the type to determine if they are valid.
 66375  func (s *ViolationEventOccurrenceRange) Validate() error {
 66376  	invalidParams := request.ErrInvalidParams{Context: "ViolationEventOccurrenceRange"}
 66377  	if s.EndTime == nil {
 66378  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 66379  	}
 66380  	if s.StartTime == nil {
 66381  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 66382  	}
 66383  
 66384  	if invalidParams.Len() > 0 {
 66385  		return invalidParams
 66386  	}
 66387  	return nil
 66388  }
 66389  
 66390  // SetEndTime sets the EndTime field's value.
 66391  func (s *ViolationEventOccurrenceRange) SetEndTime(v time.Time) *ViolationEventOccurrenceRange {
 66392  	s.EndTime = &v
 66393  	return s
 66394  }
 66395  
 66396  // SetStartTime sets the StartTime field's value.
 66397  func (s *ViolationEventOccurrenceRange) SetStartTime(v time.Time) *ViolationEventOccurrenceRange {
 66398  	s.StartTime = &v
 66399  	return s
 66400  }
 66401  
 66402  // The configuration information for a virtual private cloud (VPC) destination.
 66403  type VpcDestinationConfiguration struct {
 66404  	_ struct{} `type:"structure"`
 66405  
 66406  	// The ARN of a role that has permission to create and attach to elastic network
 66407  	// interfaces (ENIs).
 66408  	//
 66409  	// RoleArn is a required field
 66410  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
 66411  
 66412  	// The security groups of the VPC destination.
 66413  	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
 66414  
 66415  	// The subnet IDs of the VPC destination.
 66416  	//
 66417  	// SubnetIds is a required field
 66418  	SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
 66419  
 66420  	// The ID of the VPC.
 66421  	//
 66422  	// VpcId is a required field
 66423  	VpcId *string `locationName:"vpcId" type:"string" required:"true"`
 66424  }
 66425  
 66426  // String returns the string representation.
 66427  //
 66428  // API parameter values that are decorated as "sensitive" in the API will not
 66429  // be included in the string output. The member name will be present, but the
 66430  // value will be replaced with "sensitive".
 66431  func (s VpcDestinationConfiguration) String() string {
 66432  	return awsutil.Prettify(s)
 66433  }
 66434  
 66435  // GoString returns the string representation.
 66436  //
 66437  // API parameter values that are decorated as "sensitive" in the API will not
 66438  // be included in the string output. The member name will be present, but the
 66439  // value will be replaced with "sensitive".
 66440  func (s VpcDestinationConfiguration) GoString() string {
 66441  	return s.String()
 66442  }
 66443  
 66444  // Validate inspects the fields of the type to determine if they are valid.
 66445  func (s *VpcDestinationConfiguration) Validate() error {
 66446  	invalidParams := request.ErrInvalidParams{Context: "VpcDestinationConfiguration"}
 66447  	if s.RoleArn == nil {
 66448  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 66449  	}
 66450  	if s.SubnetIds == nil {
 66451  		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
 66452  	}
 66453  	if s.VpcId == nil {
 66454  		invalidParams.Add(request.NewErrParamRequired("VpcId"))
 66455  	}
 66456  
 66457  	if invalidParams.Len() > 0 {
 66458  		return invalidParams
 66459  	}
 66460  	return nil
 66461  }
 66462  
 66463  // SetRoleArn sets the RoleArn field's value.
 66464  func (s *VpcDestinationConfiguration) SetRoleArn(v string) *VpcDestinationConfiguration {
 66465  	s.RoleArn = &v
 66466  	return s
 66467  }
 66468  
 66469  // SetSecurityGroups sets the SecurityGroups field's value.
 66470  func (s *VpcDestinationConfiguration) SetSecurityGroups(v []*string) *VpcDestinationConfiguration {
 66471  	s.SecurityGroups = v
 66472  	return s
 66473  }
 66474  
 66475  // SetSubnetIds sets the SubnetIds field's value.
 66476  func (s *VpcDestinationConfiguration) SetSubnetIds(v []*string) *VpcDestinationConfiguration {
 66477  	s.SubnetIds = v
 66478  	return s
 66479  }
 66480  
 66481  // SetVpcId sets the VpcId field's value.
 66482  func (s *VpcDestinationConfiguration) SetVpcId(v string) *VpcDestinationConfiguration {
 66483  	s.VpcId = &v
 66484  	return s
 66485  }
 66486  
 66487  // The properties of a virtual private cloud (VPC) destination.
 66488  type VpcDestinationProperties struct {
 66489  	_ struct{} `type:"structure"`
 66490  
 66491  	// The ARN of a role that has permission to create and attach to elastic network
 66492  	// interfaces (ENIs).
 66493  	RoleArn *string `locationName:"roleArn" type:"string"`
 66494  
 66495  	// The security groups of the VPC destination.
 66496  	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
 66497  
 66498  	// The subnet IDs of the VPC destination.
 66499  	SubnetIds []*string `locationName:"subnetIds" type:"list"`
 66500  
 66501  	// The ID of the VPC.
 66502  	VpcId *string `locationName:"vpcId" type:"string"`
 66503  }
 66504  
 66505  // String returns the string representation.
 66506  //
 66507  // API parameter values that are decorated as "sensitive" in the API will not
 66508  // be included in the string output. The member name will be present, but the
 66509  // value will be replaced with "sensitive".
 66510  func (s VpcDestinationProperties) String() string {
 66511  	return awsutil.Prettify(s)
 66512  }
 66513  
 66514  // GoString returns the string representation.
 66515  //
 66516  // API parameter values that are decorated as "sensitive" in the API will not
 66517  // be included in the string output. The member name will be present, but the
 66518  // value will be replaced with "sensitive".
 66519  func (s VpcDestinationProperties) GoString() string {
 66520  	return s.String()
 66521  }
 66522  
 66523  // SetRoleArn sets the RoleArn field's value.
 66524  func (s *VpcDestinationProperties) SetRoleArn(v string) *VpcDestinationProperties {
 66525  	s.RoleArn = &v
 66526  	return s
 66527  }
 66528  
 66529  // SetSecurityGroups sets the SecurityGroups field's value.
 66530  func (s *VpcDestinationProperties) SetSecurityGroups(v []*string) *VpcDestinationProperties {
 66531  	s.SecurityGroups = v
 66532  	return s
 66533  }
 66534  
 66535  // SetSubnetIds sets the SubnetIds field's value.
 66536  func (s *VpcDestinationProperties) SetSubnetIds(v []*string) *VpcDestinationProperties {
 66537  	s.SubnetIds = v
 66538  	return s
 66539  }
 66540  
 66541  // SetVpcId sets the VpcId field's value.
 66542  func (s *VpcDestinationProperties) SetVpcId(v string) *VpcDestinationProperties {
 66543  	s.VpcId = &v
 66544  	return s
 66545  }
 66546  
 66547  // The summary of a virtual private cloud (VPC) destination.
 66548  type VpcDestinationSummary struct {
 66549  	_ struct{} `type:"structure"`
 66550  
 66551  	// The ARN of a role that has permission to create and attach to elastic network
 66552  	// interfaces (ENIs).
 66553  	RoleArn *string `locationName:"roleArn" type:"string"`
 66554  
 66555  	// The security groups of the VPC destination.
 66556  	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
 66557  
 66558  	// The subnet IDs of the VPC destination.
 66559  	SubnetIds []*string `locationName:"subnetIds" type:"list"`
 66560  
 66561  	// The ID of the VPC.
 66562  	VpcId *string `locationName:"vpcId" type:"string"`
 66563  }
 66564  
 66565  // String returns the string representation.
 66566  //
 66567  // API parameter values that are decorated as "sensitive" in the API will not
 66568  // be included in the string output. The member name will be present, but the
 66569  // value will be replaced with "sensitive".
 66570  func (s VpcDestinationSummary) String() string {
 66571  	return awsutil.Prettify(s)
 66572  }
 66573  
 66574  // GoString returns the string representation.
 66575  //
 66576  // API parameter values that are decorated as "sensitive" in the API will not
 66577  // be included in the string output. The member name will be present, but the
 66578  // value will be replaced with "sensitive".
 66579  func (s VpcDestinationSummary) GoString() string {
 66580  	return s.String()
 66581  }
 66582  
 66583  // SetRoleArn sets the RoleArn field's value.
 66584  func (s *VpcDestinationSummary) SetRoleArn(v string) *VpcDestinationSummary {
 66585  	s.RoleArn = &v
 66586  	return s
 66587  }
 66588  
 66589  // SetSecurityGroups sets the SecurityGroups field's value.
 66590  func (s *VpcDestinationSummary) SetSecurityGroups(v []*string) *VpcDestinationSummary {
 66591  	s.SecurityGroups = v
 66592  	return s
 66593  }
 66594  
 66595  // SetSubnetIds sets the SubnetIds field's value.
 66596  func (s *VpcDestinationSummary) SetSubnetIds(v []*string) *VpcDestinationSummary {
 66597  	s.SubnetIds = v
 66598  	return s
 66599  }
 66600  
 66601  // SetVpcId sets the VpcId field's value.
 66602  func (s *VpcDestinationSummary) SetVpcId(v string) *VpcDestinationSummary {
 66603  	s.VpcId = &v
 66604  	return s
 66605  }
 66606  
 66607  const (
 66608  	// AbortActionCancel is a AbortAction enum value
 66609  	AbortActionCancel = "CANCEL"
 66610  )
 66611  
 66612  // AbortAction_Values returns all elements of the AbortAction enum
 66613  func AbortAction_Values() []string {
 66614  	return []string{
 66615  		AbortActionCancel,
 66616  	}
 66617  }
 66618  
 66619  const (
 66620  	// ActionTypePublish is a ActionType enum value
 66621  	ActionTypePublish = "PUBLISH"
 66622  
 66623  	// ActionTypeSubscribe is a ActionType enum value
 66624  	ActionTypeSubscribe = "SUBSCRIBE"
 66625  
 66626  	// ActionTypeReceive is a ActionType enum value
 66627  	ActionTypeReceive = "RECEIVE"
 66628  
 66629  	// ActionTypeConnect is a ActionType enum value
 66630  	ActionTypeConnect = "CONNECT"
 66631  )
 66632  
 66633  // ActionType_Values returns all elements of the ActionType enum
 66634  func ActionType_Values() []string {
 66635  	return []string{
 66636  		ActionTypePublish,
 66637  		ActionTypeSubscribe,
 66638  		ActionTypeReceive,
 66639  		ActionTypeConnect,
 66640  	}
 66641  }
 66642  
 66643  const (
 66644  	// AggregationTypeNameStatistics is a AggregationTypeName enum value
 66645  	AggregationTypeNameStatistics = "Statistics"
 66646  
 66647  	// AggregationTypeNamePercentiles is a AggregationTypeName enum value
 66648  	AggregationTypeNamePercentiles = "Percentiles"
 66649  
 66650  	// AggregationTypeNameCardinality is a AggregationTypeName enum value
 66651  	AggregationTypeNameCardinality = "Cardinality"
 66652  )
 66653  
 66654  // AggregationTypeName_Values returns all elements of the AggregationTypeName enum
 66655  func AggregationTypeName_Values() []string {
 66656  	return []string{
 66657  		AggregationTypeNameStatistics,
 66658  		AggregationTypeNamePercentiles,
 66659  		AggregationTypeNameCardinality,
 66660  	}
 66661  }
 66662  
 66663  // The type of alert target: one of "SNS".
 66664  const (
 66665  	// AlertTargetTypeSns is a AlertTargetType enum value
 66666  	AlertTargetTypeSns = "SNS"
 66667  )
 66668  
 66669  // AlertTargetType_Values returns all elements of the AlertTargetType enum
 66670  func AlertTargetType_Values() []string {
 66671  	return []string{
 66672  		AlertTargetTypeSns,
 66673  	}
 66674  }
 66675  
 66676  const (
 66677  	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
 66678  	AuditCheckRunStatusInProgress = "IN_PROGRESS"
 66679  
 66680  	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
 66681  	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
 66682  
 66683  	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
 66684  	AuditCheckRunStatusCanceled = "CANCELED"
 66685  
 66686  	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
 66687  	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
 66688  
 66689  	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
 66690  	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
 66691  
 66692  	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
 66693  	AuditCheckRunStatusFailed = "FAILED"
 66694  )
 66695  
 66696  // AuditCheckRunStatus_Values returns all elements of the AuditCheckRunStatus enum
 66697  func AuditCheckRunStatus_Values() []string {
 66698  	return []string{
 66699  		AuditCheckRunStatusInProgress,
 66700  		AuditCheckRunStatusWaitingForDataCollection,
 66701  		AuditCheckRunStatusCanceled,
 66702  		AuditCheckRunStatusCompletedCompliant,
 66703  		AuditCheckRunStatusCompletedNonCompliant,
 66704  		AuditCheckRunStatusFailed,
 66705  	}
 66706  }
 66707  
 66708  const (
 66709  	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
 66710  	AuditFindingSeverityCritical = "CRITICAL"
 66711  
 66712  	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
 66713  	AuditFindingSeverityHigh = "HIGH"
 66714  
 66715  	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
 66716  	AuditFindingSeverityMedium = "MEDIUM"
 66717  
 66718  	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
 66719  	AuditFindingSeverityLow = "LOW"
 66720  )
 66721  
 66722  // AuditFindingSeverity_Values returns all elements of the AuditFindingSeverity enum
 66723  func AuditFindingSeverity_Values() []string {
 66724  	return []string{
 66725  		AuditFindingSeverityCritical,
 66726  		AuditFindingSeverityHigh,
 66727  		AuditFindingSeverityMedium,
 66728  		AuditFindingSeverityLow,
 66729  	}
 66730  }
 66731  
 66732  const (
 66733  	// AuditFrequencyDaily is a AuditFrequency enum value
 66734  	AuditFrequencyDaily = "DAILY"
 66735  
 66736  	// AuditFrequencyWeekly is a AuditFrequency enum value
 66737  	AuditFrequencyWeekly = "WEEKLY"
 66738  
 66739  	// AuditFrequencyBiweekly is a AuditFrequency enum value
 66740  	AuditFrequencyBiweekly = "BIWEEKLY"
 66741  
 66742  	// AuditFrequencyMonthly is a AuditFrequency enum value
 66743  	AuditFrequencyMonthly = "MONTHLY"
 66744  )
 66745  
 66746  // AuditFrequency_Values returns all elements of the AuditFrequency enum
 66747  func AuditFrequency_Values() []string {
 66748  	return []string{
 66749  		AuditFrequencyDaily,
 66750  		AuditFrequencyWeekly,
 66751  		AuditFrequencyBiweekly,
 66752  		AuditFrequencyMonthly,
 66753  	}
 66754  }
 66755  
 66756  const (
 66757  	// AuditMitigationActionsExecutionStatusInProgress is a AuditMitigationActionsExecutionStatus enum value
 66758  	AuditMitigationActionsExecutionStatusInProgress = "IN_PROGRESS"
 66759  
 66760  	// AuditMitigationActionsExecutionStatusCompleted is a AuditMitigationActionsExecutionStatus enum value
 66761  	AuditMitigationActionsExecutionStatusCompleted = "COMPLETED"
 66762  
 66763  	// AuditMitigationActionsExecutionStatusFailed is a AuditMitigationActionsExecutionStatus enum value
 66764  	AuditMitigationActionsExecutionStatusFailed = "FAILED"
 66765  
 66766  	// AuditMitigationActionsExecutionStatusCanceled is a AuditMitigationActionsExecutionStatus enum value
 66767  	AuditMitigationActionsExecutionStatusCanceled = "CANCELED"
 66768  
 66769  	// AuditMitigationActionsExecutionStatusSkipped is a AuditMitigationActionsExecutionStatus enum value
 66770  	AuditMitigationActionsExecutionStatusSkipped = "SKIPPED"
 66771  
 66772  	// AuditMitigationActionsExecutionStatusPending is a AuditMitigationActionsExecutionStatus enum value
 66773  	AuditMitigationActionsExecutionStatusPending = "PENDING"
 66774  )
 66775  
 66776  // AuditMitigationActionsExecutionStatus_Values returns all elements of the AuditMitigationActionsExecutionStatus enum
 66777  func AuditMitigationActionsExecutionStatus_Values() []string {
 66778  	return []string{
 66779  		AuditMitigationActionsExecutionStatusInProgress,
 66780  		AuditMitigationActionsExecutionStatusCompleted,
 66781  		AuditMitigationActionsExecutionStatusFailed,
 66782  		AuditMitigationActionsExecutionStatusCanceled,
 66783  		AuditMitigationActionsExecutionStatusSkipped,
 66784  		AuditMitigationActionsExecutionStatusPending,
 66785  	}
 66786  }
 66787  
 66788  const (
 66789  	// AuditMitigationActionsTaskStatusInProgress is a AuditMitigationActionsTaskStatus enum value
 66790  	AuditMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
 66791  
 66792  	// AuditMitigationActionsTaskStatusCompleted is a AuditMitigationActionsTaskStatus enum value
 66793  	AuditMitigationActionsTaskStatusCompleted = "COMPLETED"
 66794  
 66795  	// AuditMitigationActionsTaskStatusFailed is a AuditMitigationActionsTaskStatus enum value
 66796  	AuditMitigationActionsTaskStatusFailed = "FAILED"
 66797  
 66798  	// AuditMitigationActionsTaskStatusCanceled is a AuditMitigationActionsTaskStatus enum value
 66799  	AuditMitigationActionsTaskStatusCanceled = "CANCELED"
 66800  )
 66801  
 66802  // AuditMitigationActionsTaskStatus_Values returns all elements of the AuditMitigationActionsTaskStatus enum
 66803  func AuditMitigationActionsTaskStatus_Values() []string {
 66804  	return []string{
 66805  		AuditMitigationActionsTaskStatusInProgress,
 66806  		AuditMitigationActionsTaskStatusCompleted,
 66807  		AuditMitigationActionsTaskStatusFailed,
 66808  		AuditMitigationActionsTaskStatusCanceled,
 66809  	}
 66810  }
 66811  
 66812  const (
 66813  	// AuditNotificationTypeSns is a AuditNotificationType enum value
 66814  	AuditNotificationTypeSns = "SNS"
 66815  )
 66816  
 66817  // AuditNotificationType_Values returns all elements of the AuditNotificationType enum
 66818  func AuditNotificationType_Values() []string {
 66819  	return []string{
 66820  		AuditNotificationTypeSns,
 66821  	}
 66822  }
 66823  
 66824  const (
 66825  	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
 66826  	AuditTaskStatusInProgress = "IN_PROGRESS"
 66827  
 66828  	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
 66829  	AuditTaskStatusCompleted = "COMPLETED"
 66830  
 66831  	// AuditTaskStatusFailed is a AuditTaskStatus enum value
 66832  	AuditTaskStatusFailed = "FAILED"
 66833  
 66834  	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
 66835  	AuditTaskStatusCanceled = "CANCELED"
 66836  )
 66837  
 66838  // AuditTaskStatus_Values returns all elements of the AuditTaskStatus enum
 66839  func AuditTaskStatus_Values() []string {
 66840  	return []string{
 66841  		AuditTaskStatusInProgress,
 66842  		AuditTaskStatusCompleted,
 66843  		AuditTaskStatusFailed,
 66844  		AuditTaskStatusCanceled,
 66845  	}
 66846  }
 66847  
 66848  const (
 66849  	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
 66850  	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
 66851  
 66852  	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
 66853  	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
 66854  )
 66855  
 66856  // AuditTaskType_Values returns all elements of the AuditTaskType enum
 66857  func AuditTaskType_Values() []string {
 66858  	return []string{
 66859  		AuditTaskTypeOnDemandAuditTask,
 66860  		AuditTaskTypeScheduledAuditTask,
 66861  	}
 66862  }
 66863  
 66864  const (
 66865  	// AuthDecisionAllowed is a AuthDecision enum value
 66866  	AuthDecisionAllowed = "ALLOWED"
 66867  
 66868  	// AuthDecisionExplicitDeny is a AuthDecision enum value
 66869  	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
 66870  
 66871  	// AuthDecisionImplicitDeny is a AuthDecision enum value
 66872  	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
 66873  )
 66874  
 66875  // AuthDecision_Values returns all elements of the AuthDecision enum
 66876  func AuthDecision_Values() []string {
 66877  	return []string{
 66878  		AuthDecisionAllowed,
 66879  		AuthDecisionExplicitDeny,
 66880  		AuthDecisionImplicitDeny,
 66881  	}
 66882  }
 66883  
 66884  const (
 66885  	// AuthorizerStatusActive is a AuthorizerStatus enum value
 66886  	AuthorizerStatusActive = "ACTIVE"
 66887  
 66888  	// AuthorizerStatusInactive is a AuthorizerStatus enum value
 66889  	AuthorizerStatusInactive = "INACTIVE"
 66890  )
 66891  
 66892  // AuthorizerStatus_Values returns all elements of the AuthorizerStatus enum
 66893  func AuthorizerStatus_Values() []string {
 66894  	return []string{
 66895  		AuthorizerStatusActive,
 66896  		AuthorizerStatusInactive,
 66897  	}
 66898  }
 66899  
 66900  const (
 66901  	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
 66902  	AutoRegistrationStatusEnable = "ENABLE"
 66903  
 66904  	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
 66905  	AutoRegistrationStatusDisable = "DISABLE"
 66906  )
 66907  
 66908  // AutoRegistrationStatus_Values returns all elements of the AutoRegistrationStatus enum
 66909  func AutoRegistrationStatus_Values() []string {
 66910  	return []string{
 66911  		AutoRegistrationStatusEnable,
 66912  		AutoRegistrationStatusDisable,
 66913  	}
 66914  }
 66915  
 66916  const (
 66917  	// AwsJobAbortCriteriaAbortActionCancel is a AwsJobAbortCriteriaAbortAction enum value
 66918  	AwsJobAbortCriteriaAbortActionCancel = "CANCEL"
 66919  )
 66920  
 66921  // AwsJobAbortCriteriaAbortAction_Values returns all elements of the AwsJobAbortCriteriaAbortAction enum
 66922  func AwsJobAbortCriteriaAbortAction_Values() []string {
 66923  	return []string{
 66924  		AwsJobAbortCriteriaAbortActionCancel,
 66925  	}
 66926  }
 66927  
 66928  const (
 66929  	// AwsJobAbortCriteriaFailureTypeFailed is a AwsJobAbortCriteriaFailureType enum value
 66930  	AwsJobAbortCriteriaFailureTypeFailed = "FAILED"
 66931  
 66932  	// AwsJobAbortCriteriaFailureTypeRejected is a AwsJobAbortCriteriaFailureType enum value
 66933  	AwsJobAbortCriteriaFailureTypeRejected = "REJECTED"
 66934  
 66935  	// AwsJobAbortCriteriaFailureTypeTimedOut is a AwsJobAbortCriteriaFailureType enum value
 66936  	AwsJobAbortCriteriaFailureTypeTimedOut = "TIMED_OUT"
 66937  
 66938  	// AwsJobAbortCriteriaFailureTypeAll is a AwsJobAbortCriteriaFailureType enum value
 66939  	AwsJobAbortCriteriaFailureTypeAll = "ALL"
 66940  )
 66941  
 66942  // AwsJobAbortCriteriaFailureType_Values returns all elements of the AwsJobAbortCriteriaFailureType enum
 66943  func AwsJobAbortCriteriaFailureType_Values() []string {
 66944  	return []string{
 66945  		AwsJobAbortCriteriaFailureTypeFailed,
 66946  		AwsJobAbortCriteriaFailureTypeRejected,
 66947  		AwsJobAbortCriteriaFailureTypeTimedOut,
 66948  		AwsJobAbortCriteriaFailureTypeAll,
 66949  	}
 66950  }
 66951  
 66952  const (
 66953  	// BehaviorCriteriaTypeStatic is a BehaviorCriteriaType enum value
 66954  	BehaviorCriteriaTypeStatic = "STATIC"
 66955  
 66956  	// BehaviorCriteriaTypeStatistical is a BehaviorCriteriaType enum value
 66957  	BehaviorCriteriaTypeStatistical = "STATISTICAL"
 66958  
 66959  	// BehaviorCriteriaTypeMachineLearning is a BehaviorCriteriaType enum value
 66960  	BehaviorCriteriaTypeMachineLearning = "MACHINE_LEARNING"
 66961  )
 66962  
 66963  // BehaviorCriteriaType_Values returns all elements of the BehaviorCriteriaType enum
 66964  func BehaviorCriteriaType_Values() []string {
 66965  	return []string{
 66966  		BehaviorCriteriaTypeStatic,
 66967  		BehaviorCriteriaTypeStatistical,
 66968  		BehaviorCriteriaTypeMachineLearning,
 66969  	}
 66970  }
 66971  
 66972  const (
 66973  	// CACertificateStatusActive is a CACertificateStatus enum value
 66974  	CACertificateStatusActive = "ACTIVE"
 66975  
 66976  	// CACertificateStatusInactive is a CACertificateStatus enum value
 66977  	CACertificateStatusInactive = "INACTIVE"
 66978  )
 66979  
 66980  // CACertificateStatus_Values returns all elements of the CACertificateStatus enum
 66981  func CACertificateStatus_Values() []string {
 66982  	return []string{
 66983  		CACertificateStatusActive,
 66984  		CACertificateStatusInactive,
 66985  	}
 66986  }
 66987  
 66988  const (
 66989  	// CACertificateUpdateActionDeactivate is a CACertificateUpdateAction enum value
 66990  	CACertificateUpdateActionDeactivate = "DEACTIVATE"
 66991  )
 66992  
 66993  // CACertificateUpdateAction_Values returns all elements of the CACertificateUpdateAction enum
 66994  func CACertificateUpdateAction_Values() []string {
 66995  	return []string{
 66996  		CACertificateUpdateActionDeactivate,
 66997  	}
 66998  }
 66999  
 67000  const (
 67001  	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
 67002  	CannedAccessControlListPrivate = "private"
 67003  
 67004  	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
 67005  	CannedAccessControlListPublicRead = "public-read"
 67006  
 67007  	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
 67008  	CannedAccessControlListPublicReadWrite = "public-read-write"
 67009  
 67010  	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
 67011  	CannedAccessControlListAwsExecRead = "aws-exec-read"
 67012  
 67013  	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
 67014  	CannedAccessControlListAuthenticatedRead = "authenticated-read"
 67015  
 67016  	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
 67017  	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
 67018  
 67019  	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
 67020  	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
 67021  
 67022  	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
 67023  	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
 67024  )
 67025  
 67026  // CannedAccessControlList_Values returns all elements of the CannedAccessControlList enum
 67027  func CannedAccessControlList_Values() []string {
 67028  	return []string{
 67029  		CannedAccessControlListPrivate,
 67030  		CannedAccessControlListPublicRead,
 67031  		CannedAccessControlListPublicReadWrite,
 67032  		CannedAccessControlListAwsExecRead,
 67033  		CannedAccessControlListAuthenticatedRead,
 67034  		CannedAccessControlListBucketOwnerRead,
 67035  		CannedAccessControlListBucketOwnerFullControl,
 67036  		CannedAccessControlListLogDeliveryWrite,
 67037  	}
 67038  }
 67039  
 67040  const (
 67041  	// CertificateModeDefault is a CertificateMode enum value
 67042  	CertificateModeDefault = "DEFAULT"
 67043  
 67044  	// CertificateModeSniOnly is a CertificateMode enum value
 67045  	CertificateModeSniOnly = "SNI_ONLY"
 67046  )
 67047  
 67048  // CertificateMode_Values returns all elements of the CertificateMode enum
 67049  func CertificateMode_Values() []string {
 67050  	return []string{
 67051  		CertificateModeDefault,
 67052  		CertificateModeSniOnly,
 67053  	}
 67054  }
 67055  
 67056  const (
 67057  	// CertificateStatusActive is a CertificateStatus enum value
 67058  	CertificateStatusActive = "ACTIVE"
 67059  
 67060  	// CertificateStatusInactive is a CertificateStatus enum value
 67061  	CertificateStatusInactive = "INACTIVE"
 67062  
 67063  	// CertificateStatusRevoked is a CertificateStatus enum value
 67064  	CertificateStatusRevoked = "REVOKED"
 67065  
 67066  	// CertificateStatusPendingTransfer is a CertificateStatus enum value
 67067  	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
 67068  
 67069  	// CertificateStatusRegisterInactive is a CertificateStatus enum value
 67070  	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
 67071  
 67072  	// CertificateStatusPendingActivation is a CertificateStatus enum value
 67073  	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
 67074  )
 67075  
 67076  // CertificateStatus_Values returns all elements of the CertificateStatus enum
 67077  func CertificateStatus_Values() []string {
 67078  	return []string{
 67079  		CertificateStatusActive,
 67080  		CertificateStatusInactive,
 67081  		CertificateStatusRevoked,
 67082  		CertificateStatusPendingTransfer,
 67083  		CertificateStatusRegisterInactive,
 67084  		CertificateStatusPendingActivation,
 67085  	}
 67086  }
 67087  
 67088  const (
 67089  	// ComparisonOperatorLessThan is a ComparisonOperator enum value
 67090  	ComparisonOperatorLessThan = "less-than"
 67091  
 67092  	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
 67093  	ComparisonOperatorLessThanEquals = "less-than-equals"
 67094  
 67095  	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
 67096  	ComparisonOperatorGreaterThan = "greater-than"
 67097  
 67098  	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
 67099  	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
 67100  
 67101  	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
 67102  	ComparisonOperatorInCidrSet = "in-cidr-set"
 67103  
 67104  	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
 67105  	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
 67106  
 67107  	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
 67108  	ComparisonOperatorInPortSet = "in-port-set"
 67109  
 67110  	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
 67111  	ComparisonOperatorNotInPortSet = "not-in-port-set"
 67112  
 67113  	// ComparisonOperatorInSet is a ComparisonOperator enum value
 67114  	ComparisonOperatorInSet = "in-set"
 67115  
 67116  	// ComparisonOperatorNotInSet is a ComparisonOperator enum value
 67117  	ComparisonOperatorNotInSet = "not-in-set"
 67118  )
 67119  
 67120  // ComparisonOperator_Values returns all elements of the ComparisonOperator enum
 67121  func ComparisonOperator_Values() []string {
 67122  	return []string{
 67123  		ComparisonOperatorLessThan,
 67124  		ComparisonOperatorLessThanEquals,
 67125  		ComparisonOperatorGreaterThan,
 67126  		ComparisonOperatorGreaterThanEquals,
 67127  		ComparisonOperatorInCidrSet,
 67128  		ComparisonOperatorNotInCidrSet,
 67129  		ComparisonOperatorInPortSet,
 67130  		ComparisonOperatorNotInPortSet,
 67131  		ComparisonOperatorInSet,
 67132  		ComparisonOperatorNotInSet,
 67133  	}
 67134  }
 67135  
 67136  const (
 67137  	// ConfidenceLevelLow is a ConfidenceLevel enum value
 67138  	ConfidenceLevelLow = "LOW"
 67139  
 67140  	// ConfidenceLevelMedium is a ConfidenceLevel enum value
 67141  	ConfidenceLevelMedium = "MEDIUM"
 67142  
 67143  	// ConfidenceLevelHigh is a ConfidenceLevel enum value
 67144  	ConfidenceLevelHigh = "HIGH"
 67145  )
 67146  
 67147  // ConfidenceLevel_Values returns all elements of the ConfidenceLevel enum
 67148  func ConfidenceLevel_Values() []string {
 67149  	return []string{
 67150  		ConfidenceLevelLow,
 67151  		ConfidenceLevelMedium,
 67152  		ConfidenceLevelHigh,
 67153  	}
 67154  }
 67155  
 67156  const (
 67157  	// CustomMetricTypeStringList is a CustomMetricType enum value
 67158  	CustomMetricTypeStringList = "string-list"
 67159  
 67160  	// CustomMetricTypeIpAddressList is a CustomMetricType enum value
 67161  	CustomMetricTypeIpAddressList = "ip-address-list"
 67162  
 67163  	// CustomMetricTypeNumberList is a CustomMetricType enum value
 67164  	CustomMetricTypeNumberList = "number-list"
 67165  
 67166  	// CustomMetricTypeNumber is a CustomMetricType enum value
 67167  	CustomMetricTypeNumber = "number"
 67168  )
 67169  
 67170  // CustomMetricType_Values returns all elements of the CustomMetricType enum
 67171  func CustomMetricType_Values() []string {
 67172  	return []string{
 67173  		CustomMetricTypeStringList,
 67174  		CustomMetricTypeIpAddressList,
 67175  		CustomMetricTypeNumberList,
 67176  		CustomMetricTypeNumber,
 67177  	}
 67178  }
 67179  
 67180  const (
 67181  	// DayOfWeekSun is a DayOfWeek enum value
 67182  	DayOfWeekSun = "SUN"
 67183  
 67184  	// DayOfWeekMon is a DayOfWeek enum value
 67185  	DayOfWeekMon = "MON"
 67186  
 67187  	// DayOfWeekTue is a DayOfWeek enum value
 67188  	DayOfWeekTue = "TUE"
 67189  
 67190  	// DayOfWeekWed is a DayOfWeek enum value
 67191  	DayOfWeekWed = "WED"
 67192  
 67193  	// DayOfWeekThu is a DayOfWeek enum value
 67194  	DayOfWeekThu = "THU"
 67195  
 67196  	// DayOfWeekFri is a DayOfWeek enum value
 67197  	DayOfWeekFri = "FRI"
 67198  
 67199  	// DayOfWeekSat is a DayOfWeek enum value
 67200  	DayOfWeekSat = "SAT"
 67201  )
 67202  
 67203  // DayOfWeek_Values returns all elements of the DayOfWeek enum
 67204  func DayOfWeek_Values() []string {
 67205  	return []string{
 67206  		DayOfWeekSun,
 67207  		DayOfWeekMon,
 67208  		DayOfWeekTue,
 67209  		DayOfWeekWed,
 67210  		DayOfWeekThu,
 67211  		DayOfWeekFri,
 67212  		DayOfWeekSat,
 67213  	}
 67214  }
 67215  
 67216  const (
 67217  	// DetectMitigationActionExecutionStatusInProgress is a DetectMitigationActionExecutionStatus enum value
 67218  	DetectMitigationActionExecutionStatusInProgress = "IN_PROGRESS"
 67219  
 67220  	// DetectMitigationActionExecutionStatusSuccessful is a DetectMitigationActionExecutionStatus enum value
 67221  	DetectMitigationActionExecutionStatusSuccessful = "SUCCESSFUL"
 67222  
 67223  	// DetectMitigationActionExecutionStatusFailed is a DetectMitigationActionExecutionStatus enum value
 67224  	DetectMitigationActionExecutionStatusFailed = "FAILED"
 67225  
 67226  	// DetectMitigationActionExecutionStatusSkipped is a DetectMitigationActionExecutionStatus enum value
 67227  	DetectMitigationActionExecutionStatusSkipped = "SKIPPED"
 67228  )
 67229  
 67230  // DetectMitigationActionExecutionStatus_Values returns all elements of the DetectMitigationActionExecutionStatus enum
 67231  func DetectMitigationActionExecutionStatus_Values() []string {
 67232  	return []string{
 67233  		DetectMitigationActionExecutionStatusInProgress,
 67234  		DetectMitigationActionExecutionStatusSuccessful,
 67235  		DetectMitigationActionExecutionStatusFailed,
 67236  		DetectMitigationActionExecutionStatusSkipped,
 67237  	}
 67238  }
 67239  
 67240  const (
 67241  	// DetectMitigationActionsTaskStatusInProgress is a DetectMitigationActionsTaskStatus enum value
 67242  	DetectMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
 67243  
 67244  	// DetectMitigationActionsTaskStatusSuccessful is a DetectMitigationActionsTaskStatus enum value
 67245  	DetectMitigationActionsTaskStatusSuccessful = "SUCCESSFUL"
 67246  
 67247  	// DetectMitigationActionsTaskStatusFailed is a DetectMitigationActionsTaskStatus enum value
 67248  	DetectMitigationActionsTaskStatusFailed = "FAILED"
 67249  
 67250  	// DetectMitigationActionsTaskStatusCanceled is a DetectMitigationActionsTaskStatus enum value
 67251  	DetectMitigationActionsTaskStatusCanceled = "CANCELED"
 67252  )
 67253  
 67254  // DetectMitigationActionsTaskStatus_Values returns all elements of the DetectMitigationActionsTaskStatus enum
 67255  func DetectMitigationActionsTaskStatus_Values() []string {
 67256  	return []string{
 67257  		DetectMitigationActionsTaskStatusInProgress,
 67258  		DetectMitigationActionsTaskStatusSuccessful,
 67259  		DetectMitigationActionsTaskStatusFailed,
 67260  		DetectMitigationActionsTaskStatusCanceled,
 67261  	}
 67262  }
 67263  
 67264  const (
 67265  	// DeviceCertificateUpdateActionDeactivate is a DeviceCertificateUpdateAction enum value
 67266  	DeviceCertificateUpdateActionDeactivate = "DEACTIVATE"
 67267  )
 67268  
 67269  // DeviceCertificateUpdateAction_Values returns all elements of the DeviceCertificateUpdateAction enum
 67270  func DeviceCertificateUpdateAction_Values() []string {
 67271  	return []string{
 67272  		DeviceCertificateUpdateActionDeactivate,
 67273  	}
 67274  }
 67275  
 67276  const (
 67277  	// DimensionTypeTopicFilter is a DimensionType enum value
 67278  	DimensionTypeTopicFilter = "TOPIC_FILTER"
 67279  )
 67280  
 67281  // DimensionType_Values returns all elements of the DimensionType enum
 67282  func DimensionType_Values() []string {
 67283  	return []string{
 67284  		DimensionTypeTopicFilter,
 67285  	}
 67286  }
 67287  
 67288  const (
 67289  	// DimensionValueOperatorIn is a DimensionValueOperator enum value
 67290  	DimensionValueOperatorIn = "IN"
 67291  
 67292  	// DimensionValueOperatorNotIn is a DimensionValueOperator enum value
 67293  	DimensionValueOperatorNotIn = "NOT_IN"
 67294  )
 67295  
 67296  // DimensionValueOperator_Values returns all elements of the DimensionValueOperator enum
 67297  func DimensionValueOperator_Values() []string {
 67298  	return []string{
 67299  		DimensionValueOperatorIn,
 67300  		DimensionValueOperatorNotIn,
 67301  	}
 67302  }
 67303  
 67304  const (
 67305  	// DomainConfigurationStatusEnabled is a DomainConfigurationStatus enum value
 67306  	DomainConfigurationStatusEnabled = "ENABLED"
 67307  
 67308  	// DomainConfigurationStatusDisabled is a DomainConfigurationStatus enum value
 67309  	DomainConfigurationStatusDisabled = "DISABLED"
 67310  )
 67311  
 67312  // DomainConfigurationStatus_Values returns all elements of the DomainConfigurationStatus enum
 67313  func DomainConfigurationStatus_Values() []string {
 67314  	return []string{
 67315  		DomainConfigurationStatusEnabled,
 67316  		DomainConfigurationStatusDisabled,
 67317  	}
 67318  }
 67319  
 67320  const (
 67321  	// DomainTypeEndpoint is a DomainType enum value
 67322  	DomainTypeEndpoint = "ENDPOINT"
 67323  
 67324  	// DomainTypeAwsManaged is a DomainType enum value
 67325  	DomainTypeAwsManaged = "AWS_MANAGED"
 67326  
 67327  	// DomainTypeCustomerManaged is a DomainType enum value
 67328  	DomainTypeCustomerManaged = "CUSTOMER_MANAGED"
 67329  )
 67330  
 67331  // DomainType_Values returns all elements of the DomainType enum
 67332  func DomainType_Values() []string {
 67333  	return []string{
 67334  		DomainTypeEndpoint,
 67335  		DomainTypeAwsManaged,
 67336  		DomainTypeCustomerManaged,
 67337  	}
 67338  }
 67339  
 67340  const (
 67341  	// DynamicGroupStatusActive is a DynamicGroupStatus enum value
 67342  	DynamicGroupStatusActive = "ACTIVE"
 67343  
 67344  	// DynamicGroupStatusBuilding is a DynamicGroupStatus enum value
 67345  	DynamicGroupStatusBuilding = "BUILDING"
 67346  
 67347  	// DynamicGroupStatusRebuilding is a DynamicGroupStatus enum value
 67348  	DynamicGroupStatusRebuilding = "REBUILDING"
 67349  )
 67350  
 67351  // DynamicGroupStatus_Values returns all elements of the DynamicGroupStatus enum
 67352  func DynamicGroupStatus_Values() []string {
 67353  	return []string{
 67354  		DynamicGroupStatusActive,
 67355  		DynamicGroupStatusBuilding,
 67356  		DynamicGroupStatusRebuilding,
 67357  	}
 67358  }
 67359  
 67360  const (
 67361  	// DynamoKeyTypeString is a DynamoKeyType enum value
 67362  	DynamoKeyTypeString = "STRING"
 67363  
 67364  	// DynamoKeyTypeNumber is a DynamoKeyType enum value
 67365  	DynamoKeyTypeNumber = "NUMBER"
 67366  )
 67367  
 67368  // DynamoKeyType_Values returns all elements of the DynamoKeyType enum
 67369  func DynamoKeyType_Values() []string {
 67370  	return []string{
 67371  		DynamoKeyTypeString,
 67372  		DynamoKeyTypeNumber,
 67373  	}
 67374  }
 67375  
 67376  const (
 67377  	// EventTypeThing is a EventType enum value
 67378  	EventTypeThing = "THING"
 67379  
 67380  	// EventTypeThingGroup is a EventType enum value
 67381  	EventTypeThingGroup = "THING_GROUP"
 67382  
 67383  	// EventTypeThingType is a EventType enum value
 67384  	EventTypeThingType = "THING_TYPE"
 67385  
 67386  	// EventTypeThingGroupMembership is a EventType enum value
 67387  	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
 67388  
 67389  	// EventTypeThingGroupHierarchy is a EventType enum value
 67390  	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
 67391  
 67392  	// EventTypeThingTypeAssociation is a EventType enum value
 67393  	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
 67394  
 67395  	// EventTypeJob is a EventType enum value
 67396  	EventTypeJob = "JOB"
 67397  
 67398  	// EventTypeJobExecution is a EventType enum value
 67399  	EventTypeJobExecution = "JOB_EXECUTION"
 67400  
 67401  	// EventTypePolicy is a EventType enum value
 67402  	EventTypePolicy = "POLICY"
 67403  
 67404  	// EventTypeCertificate is a EventType enum value
 67405  	EventTypeCertificate = "CERTIFICATE"
 67406  
 67407  	// EventTypeCaCertificate is a EventType enum value
 67408  	EventTypeCaCertificate = "CA_CERTIFICATE"
 67409  )
 67410  
 67411  // EventType_Values returns all elements of the EventType enum
 67412  func EventType_Values() []string {
 67413  	return []string{
 67414  		EventTypeThing,
 67415  		EventTypeThingGroup,
 67416  		EventTypeThingType,
 67417  		EventTypeThingGroupMembership,
 67418  		EventTypeThingGroupHierarchy,
 67419  		EventTypeThingTypeAssociation,
 67420  		EventTypeJob,
 67421  		EventTypeJobExecution,
 67422  		EventTypePolicy,
 67423  		EventTypeCertificate,
 67424  		EventTypeCaCertificate,
 67425  	}
 67426  }
 67427  
 67428  const (
 67429  	// FieldTypeNumber is a FieldType enum value
 67430  	FieldTypeNumber = "Number"
 67431  
 67432  	// FieldTypeString is a FieldType enum value
 67433  	FieldTypeString = "String"
 67434  
 67435  	// FieldTypeBoolean is a FieldType enum value
 67436  	FieldTypeBoolean = "Boolean"
 67437  )
 67438  
 67439  // FieldType_Values returns all elements of the FieldType enum
 67440  func FieldType_Values() []string {
 67441  	return []string{
 67442  		FieldTypeNumber,
 67443  		FieldTypeString,
 67444  		FieldTypeBoolean,
 67445  	}
 67446  }
 67447  
 67448  const (
 67449  	// FleetMetricUnitSeconds is a FleetMetricUnit enum value
 67450  	FleetMetricUnitSeconds = "Seconds"
 67451  
 67452  	// FleetMetricUnitMicroseconds is a FleetMetricUnit enum value
 67453  	FleetMetricUnitMicroseconds = "Microseconds"
 67454  
 67455  	// FleetMetricUnitMilliseconds is a FleetMetricUnit enum value
 67456  	FleetMetricUnitMilliseconds = "Milliseconds"
 67457  
 67458  	// FleetMetricUnitBytes is a FleetMetricUnit enum value
 67459  	FleetMetricUnitBytes = "Bytes"
 67460  
 67461  	// FleetMetricUnitKilobytes is a FleetMetricUnit enum value
 67462  	FleetMetricUnitKilobytes = "Kilobytes"
 67463  
 67464  	// FleetMetricUnitMegabytes is a FleetMetricUnit enum value
 67465  	FleetMetricUnitMegabytes = "Megabytes"
 67466  
 67467  	// FleetMetricUnitGigabytes is a FleetMetricUnit enum value
 67468  	FleetMetricUnitGigabytes = "Gigabytes"
 67469  
 67470  	// FleetMetricUnitTerabytes is a FleetMetricUnit enum value
 67471  	FleetMetricUnitTerabytes = "Terabytes"
 67472  
 67473  	// FleetMetricUnitBits is a FleetMetricUnit enum value
 67474  	FleetMetricUnitBits = "Bits"
 67475  
 67476  	// FleetMetricUnitKilobits is a FleetMetricUnit enum value
 67477  	FleetMetricUnitKilobits = "Kilobits"
 67478  
 67479  	// FleetMetricUnitMegabits is a FleetMetricUnit enum value
 67480  	FleetMetricUnitMegabits = "Megabits"
 67481  
 67482  	// FleetMetricUnitGigabits is a FleetMetricUnit enum value
 67483  	FleetMetricUnitGigabits = "Gigabits"
 67484  
 67485  	// FleetMetricUnitTerabits is a FleetMetricUnit enum value
 67486  	FleetMetricUnitTerabits = "Terabits"
 67487  
 67488  	// FleetMetricUnitPercent is a FleetMetricUnit enum value
 67489  	FleetMetricUnitPercent = "Percent"
 67490  
 67491  	// FleetMetricUnitCount is a FleetMetricUnit enum value
 67492  	FleetMetricUnitCount = "Count"
 67493  
 67494  	// FleetMetricUnitBytesSecond is a FleetMetricUnit enum value
 67495  	FleetMetricUnitBytesSecond = "Bytes/Second"
 67496  
 67497  	// FleetMetricUnitKilobytesSecond is a FleetMetricUnit enum value
 67498  	FleetMetricUnitKilobytesSecond = "Kilobytes/Second"
 67499  
 67500  	// FleetMetricUnitMegabytesSecond is a FleetMetricUnit enum value
 67501  	FleetMetricUnitMegabytesSecond = "Megabytes/Second"
 67502  
 67503  	// FleetMetricUnitGigabytesSecond is a FleetMetricUnit enum value
 67504  	FleetMetricUnitGigabytesSecond = "Gigabytes/Second"
 67505  
 67506  	// FleetMetricUnitTerabytesSecond is a FleetMetricUnit enum value
 67507  	FleetMetricUnitTerabytesSecond = "Terabytes/Second"
 67508  
 67509  	// FleetMetricUnitBitsSecond is a FleetMetricUnit enum value
 67510  	FleetMetricUnitBitsSecond = "Bits/Second"
 67511  
 67512  	// FleetMetricUnitKilobitsSecond is a FleetMetricUnit enum value
 67513  	FleetMetricUnitKilobitsSecond = "Kilobits/Second"
 67514  
 67515  	// FleetMetricUnitMegabitsSecond is a FleetMetricUnit enum value
 67516  	FleetMetricUnitMegabitsSecond = "Megabits/Second"
 67517  
 67518  	// FleetMetricUnitGigabitsSecond is a FleetMetricUnit enum value
 67519  	FleetMetricUnitGigabitsSecond = "Gigabits/Second"
 67520  
 67521  	// FleetMetricUnitTerabitsSecond is a FleetMetricUnit enum value
 67522  	FleetMetricUnitTerabitsSecond = "Terabits/Second"
 67523  
 67524  	// FleetMetricUnitCountSecond is a FleetMetricUnit enum value
 67525  	FleetMetricUnitCountSecond = "Count/Second"
 67526  
 67527  	// FleetMetricUnitNone is a FleetMetricUnit enum value
 67528  	FleetMetricUnitNone = "None"
 67529  )
 67530  
 67531  // FleetMetricUnit_Values returns all elements of the FleetMetricUnit enum
 67532  func FleetMetricUnit_Values() []string {
 67533  	return []string{
 67534  		FleetMetricUnitSeconds,
 67535  		FleetMetricUnitMicroseconds,
 67536  		FleetMetricUnitMilliseconds,
 67537  		FleetMetricUnitBytes,
 67538  		FleetMetricUnitKilobytes,
 67539  		FleetMetricUnitMegabytes,
 67540  		FleetMetricUnitGigabytes,
 67541  		FleetMetricUnitTerabytes,
 67542  		FleetMetricUnitBits,
 67543  		FleetMetricUnitKilobits,
 67544  		FleetMetricUnitMegabits,
 67545  		FleetMetricUnitGigabits,
 67546  		FleetMetricUnitTerabits,
 67547  		FleetMetricUnitPercent,
 67548  		FleetMetricUnitCount,
 67549  		FleetMetricUnitBytesSecond,
 67550  		FleetMetricUnitKilobytesSecond,
 67551  		FleetMetricUnitMegabytesSecond,
 67552  		FleetMetricUnitGigabytesSecond,
 67553  		FleetMetricUnitTerabytesSecond,
 67554  		FleetMetricUnitBitsSecond,
 67555  		FleetMetricUnitKilobitsSecond,
 67556  		FleetMetricUnitMegabitsSecond,
 67557  		FleetMetricUnitGigabitsSecond,
 67558  		FleetMetricUnitTerabitsSecond,
 67559  		FleetMetricUnitCountSecond,
 67560  		FleetMetricUnitNone,
 67561  	}
 67562  }
 67563  
 67564  const (
 67565  	// IndexStatusActive is a IndexStatus enum value
 67566  	IndexStatusActive = "ACTIVE"
 67567  
 67568  	// IndexStatusBuilding is a IndexStatus enum value
 67569  	IndexStatusBuilding = "BUILDING"
 67570  
 67571  	// IndexStatusRebuilding is a IndexStatus enum value
 67572  	IndexStatusRebuilding = "REBUILDING"
 67573  )
 67574  
 67575  // IndexStatus_Values returns all elements of the IndexStatus enum
 67576  func IndexStatus_Values() []string {
 67577  	return []string{
 67578  		IndexStatusActive,
 67579  		IndexStatusBuilding,
 67580  		IndexStatusRebuilding,
 67581  	}
 67582  }
 67583  
 67584  const (
 67585  	// JobExecutionFailureTypeFailed is a JobExecutionFailureType enum value
 67586  	JobExecutionFailureTypeFailed = "FAILED"
 67587  
 67588  	// JobExecutionFailureTypeRejected is a JobExecutionFailureType enum value
 67589  	JobExecutionFailureTypeRejected = "REJECTED"
 67590  
 67591  	// JobExecutionFailureTypeTimedOut is a JobExecutionFailureType enum value
 67592  	JobExecutionFailureTypeTimedOut = "TIMED_OUT"
 67593  
 67594  	// JobExecutionFailureTypeAll is a JobExecutionFailureType enum value
 67595  	JobExecutionFailureTypeAll = "ALL"
 67596  )
 67597  
 67598  // JobExecutionFailureType_Values returns all elements of the JobExecutionFailureType enum
 67599  func JobExecutionFailureType_Values() []string {
 67600  	return []string{
 67601  		JobExecutionFailureTypeFailed,
 67602  		JobExecutionFailureTypeRejected,
 67603  		JobExecutionFailureTypeTimedOut,
 67604  		JobExecutionFailureTypeAll,
 67605  	}
 67606  }
 67607  
 67608  const (
 67609  	// JobExecutionStatusQueued is a JobExecutionStatus enum value
 67610  	JobExecutionStatusQueued = "QUEUED"
 67611  
 67612  	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
 67613  	JobExecutionStatusInProgress = "IN_PROGRESS"
 67614  
 67615  	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
 67616  	JobExecutionStatusSucceeded = "SUCCEEDED"
 67617  
 67618  	// JobExecutionStatusFailed is a JobExecutionStatus enum value
 67619  	JobExecutionStatusFailed = "FAILED"
 67620  
 67621  	// JobExecutionStatusTimedOut is a JobExecutionStatus enum value
 67622  	JobExecutionStatusTimedOut = "TIMED_OUT"
 67623  
 67624  	// JobExecutionStatusRejected is a JobExecutionStatus enum value
 67625  	JobExecutionStatusRejected = "REJECTED"
 67626  
 67627  	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
 67628  	JobExecutionStatusRemoved = "REMOVED"
 67629  
 67630  	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
 67631  	JobExecutionStatusCanceled = "CANCELED"
 67632  )
 67633  
 67634  // JobExecutionStatus_Values returns all elements of the JobExecutionStatus enum
 67635  func JobExecutionStatus_Values() []string {
 67636  	return []string{
 67637  		JobExecutionStatusQueued,
 67638  		JobExecutionStatusInProgress,
 67639  		JobExecutionStatusSucceeded,
 67640  		JobExecutionStatusFailed,
 67641  		JobExecutionStatusTimedOut,
 67642  		JobExecutionStatusRejected,
 67643  		JobExecutionStatusRemoved,
 67644  		JobExecutionStatusCanceled,
 67645  	}
 67646  }
 67647  
 67648  const (
 67649  	// JobStatusInProgress is a JobStatus enum value
 67650  	JobStatusInProgress = "IN_PROGRESS"
 67651  
 67652  	// JobStatusCanceled is a JobStatus enum value
 67653  	JobStatusCanceled = "CANCELED"
 67654  
 67655  	// JobStatusCompleted is a JobStatus enum value
 67656  	JobStatusCompleted = "COMPLETED"
 67657  
 67658  	// JobStatusDeletionInProgress is a JobStatus enum value
 67659  	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
 67660  )
 67661  
 67662  // JobStatus_Values returns all elements of the JobStatus enum
 67663  func JobStatus_Values() []string {
 67664  	return []string{
 67665  		JobStatusInProgress,
 67666  		JobStatusCanceled,
 67667  		JobStatusCompleted,
 67668  		JobStatusDeletionInProgress,
 67669  	}
 67670  }
 67671  
 67672  const (
 67673  	// LogLevelDebug is a LogLevel enum value
 67674  	LogLevelDebug = "DEBUG"
 67675  
 67676  	// LogLevelInfo is a LogLevel enum value
 67677  	LogLevelInfo = "INFO"
 67678  
 67679  	// LogLevelError is a LogLevel enum value
 67680  	LogLevelError = "ERROR"
 67681  
 67682  	// LogLevelWarn is a LogLevel enum value
 67683  	LogLevelWarn = "WARN"
 67684  
 67685  	// LogLevelDisabled is a LogLevel enum value
 67686  	LogLevelDisabled = "DISABLED"
 67687  )
 67688  
 67689  // LogLevel_Values returns all elements of the LogLevel enum
 67690  func LogLevel_Values() []string {
 67691  	return []string{
 67692  		LogLevelDebug,
 67693  		LogLevelInfo,
 67694  		LogLevelError,
 67695  		LogLevelWarn,
 67696  		LogLevelDisabled,
 67697  	}
 67698  }
 67699  
 67700  const (
 67701  	// LogTargetTypeDefault is a LogTargetType enum value
 67702  	LogTargetTypeDefault = "DEFAULT"
 67703  
 67704  	// LogTargetTypeThingGroup is a LogTargetType enum value
 67705  	LogTargetTypeThingGroup = "THING_GROUP"
 67706  )
 67707  
 67708  // LogTargetType_Values returns all elements of the LogTargetType enum
 67709  func LogTargetType_Values() []string {
 67710  	return []string{
 67711  		LogTargetTypeDefault,
 67712  		LogTargetTypeThingGroup,
 67713  	}
 67714  }
 67715  
 67716  const (
 67717  	// MessageFormatRaw is a MessageFormat enum value
 67718  	MessageFormatRaw = "RAW"
 67719  
 67720  	// MessageFormatJson is a MessageFormat enum value
 67721  	MessageFormatJson = "JSON"
 67722  )
 67723  
 67724  // MessageFormat_Values returns all elements of the MessageFormat enum
 67725  func MessageFormat_Values() []string {
 67726  	return []string{
 67727  		MessageFormatRaw,
 67728  		MessageFormatJson,
 67729  	}
 67730  }
 67731  
 67732  const (
 67733  	// MitigationActionTypeUpdateDeviceCertificate is a MitigationActionType enum value
 67734  	MitigationActionTypeUpdateDeviceCertificate = "UPDATE_DEVICE_CERTIFICATE"
 67735  
 67736  	// MitigationActionTypeUpdateCaCertificate is a MitigationActionType enum value
 67737  	MitigationActionTypeUpdateCaCertificate = "UPDATE_CA_CERTIFICATE"
 67738  
 67739  	// MitigationActionTypeAddThingsToThingGroup is a MitigationActionType enum value
 67740  	MitigationActionTypeAddThingsToThingGroup = "ADD_THINGS_TO_THING_GROUP"
 67741  
 67742  	// MitigationActionTypeReplaceDefaultPolicyVersion is a MitigationActionType enum value
 67743  	MitigationActionTypeReplaceDefaultPolicyVersion = "REPLACE_DEFAULT_POLICY_VERSION"
 67744  
 67745  	// MitigationActionTypeEnableIotLogging is a MitigationActionType enum value
 67746  	MitigationActionTypeEnableIotLogging = "ENABLE_IOT_LOGGING"
 67747  
 67748  	// MitigationActionTypePublishFindingToSns is a MitigationActionType enum value
 67749  	MitigationActionTypePublishFindingToSns = "PUBLISH_FINDING_TO_SNS"
 67750  )
 67751  
 67752  // MitigationActionType_Values returns all elements of the MitigationActionType enum
 67753  func MitigationActionType_Values() []string {
 67754  	return []string{
 67755  		MitigationActionTypeUpdateDeviceCertificate,
 67756  		MitigationActionTypeUpdateCaCertificate,
 67757  		MitigationActionTypeAddThingsToThingGroup,
 67758  		MitigationActionTypeReplaceDefaultPolicyVersion,
 67759  		MitigationActionTypeEnableIotLogging,
 67760  		MitigationActionTypePublishFindingToSns,
 67761  	}
 67762  }
 67763  
 67764  const (
 67765  	// ModelStatusPendingBuild is a ModelStatus enum value
 67766  	ModelStatusPendingBuild = "PENDING_BUILD"
 67767  
 67768  	// ModelStatusActive is a ModelStatus enum value
 67769  	ModelStatusActive = "ACTIVE"
 67770  
 67771  	// ModelStatusExpired is a ModelStatus enum value
 67772  	ModelStatusExpired = "EXPIRED"
 67773  )
 67774  
 67775  // ModelStatus_Values returns all elements of the ModelStatus enum
 67776  func ModelStatus_Values() []string {
 67777  	return []string{
 67778  		ModelStatusPendingBuild,
 67779  		ModelStatusActive,
 67780  		ModelStatusExpired,
 67781  	}
 67782  }
 67783  
 67784  const (
 67785  	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
 67786  	OTAUpdateStatusCreatePending = "CREATE_PENDING"
 67787  
 67788  	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
 67789  	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
 67790  
 67791  	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
 67792  	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
 67793  
 67794  	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
 67795  	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
 67796  )
 67797  
 67798  // OTAUpdateStatus_Values returns all elements of the OTAUpdateStatus enum
 67799  func OTAUpdateStatus_Values() []string {
 67800  	return []string{
 67801  		OTAUpdateStatusCreatePending,
 67802  		OTAUpdateStatusCreateInProgress,
 67803  		OTAUpdateStatusCreateComplete,
 67804  		OTAUpdateStatusCreateFailed,
 67805  	}
 67806  }
 67807  
 67808  const (
 67809  	// PolicyTemplateNameBlankPolicy is a PolicyTemplateName enum value
 67810  	PolicyTemplateNameBlankPolicy = "BLANK_POLICY"
 67811  )
 67812  
 67813  // PolicyTemplateName_Values returns all elements of the PolicyTemplateName enum
 67814  func PolicyTemplateName_Values() []string {
 67815  	return []string{
 67816  		PolicyTemplateNameBlankPolicy,
 67817  	}
 67818  }
 67819  
 67820  const (
 67821  	// ProtocolMqtt is a Protocol enum value
 67822  	ProtocolMqtt = "MQTT"
 67823  
 67824  	// ProtocolHttp is a Protocol enum value
 67825  	ProtocolHttp = "HTTP"
 67826  )
 67827  
 67828  // Protocol_Values returns all elements of the Protocol enum
 67829  func Protocol_Values() []string {
 67830  	return []string{
 67831  		ProtocolMqtt,
 67832  		ProtocolHttp,
 67833  	}
 67834  }
 67835  
 67836  const (
 67837  	// ReportTypeErrors is a ReportType enum value
 67838  	ReportTypeErrors = "ERRORS"
 67839  
 67840  	// ReportTypeResults is a ReportType enum value
 67841  	ReportTypeResults = "RESULTS"
 67842  )
 67843  
 67844  // ReportType_Values returns all elements of the ReportType enum
 67845  func ReportType_Values() []string {
 67846  	return []string{
 67847  		ReportTypeErrors,
 67848  		ReportTypeResults,
 67849  	}
 67850  }
 67851  
 67852  const (
 67853  	// ResourceTypeDeviceCertificate is a ResourceType enum value
 67854  	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
 67855  
 67856  	// ResourceTypeCaCertificate is a ResourceType enum value
 67857  	ResourceTypeCaCertificate = "CA_CERTIFICATE"
 67858  
 67859  	// ResourceTypeIotPolicy is a ResourceType enum value
 67860  	ResourceTypeIotPolicy = "IOT_POLICY"
 67861  
 67862  	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
 67863  	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
 67864  
 67865  	// ResourceTypeClientId is a ResourceType enum value
 67866  	ResourceTypeClientId = "CLIENT_ID"
 67867  
 67868  	// ResourceTypeAccountSettings is a ResourceType enum value
 67869  	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
 67870  
 67871  	// ResourceTypeRoleAlias is a ResourceType enum value
 67872  	ResourceTypeRoleAlias = "ROLE_ALIAS"
 67873  
 67874  	// ResourceTypeIamRole is a ResourceType enum value
 67875  	ResourceTypeIamRole = "IAM_ROLE"
 67876  )
 67877  
 67878  // ResourceType_Values returns all elements of the ResourceType enum
 67879  func ResourceType_Values() []string {
 67880  	return []string{
 67881  		ResourceTypeDeviceCertificate,
 67882  		ResourceTypeCaCertificate,
 67883  		ResourceTypeIotPolicy,
 67884  		ResourceTypeCognitoIdentityPool,
 67885  		ResourceTypeClientId,
 67886  		ResourceTypeAccountSettings,
 67887  		ResourceTypeRoleAlias,
 67888  		ResourceTypeIamRole,
 67889  	}
 67890  }
 67891  
 67892  const (
 67893  	// ServerCertificateStatusInvalid is a ServerCertificateStatus enum value
 67894  	ServerCertificateStatusInvalid = "INVALID"
 67895  
 67896  	// ServerCertificateStatusValid is a ServerCertificateStatus enum value
 67897  	ServerCertificateStatusValid = "VALID"
 67898  )
 67899  
 67900  // ServerCertificateStatus_Values returns all elements of the ServerCertificateStatus enum
 67901  func ServerCertificateStatus_Values() []string {
 67902  	return []string{
 67903  		ServerCertificateStatusInvalid,
 67904  		ServerCertificateStatusValid,
 67905  	}
 67906  }
 67907  
 67908  const (
 67909  	// ServiceTypeData is a ServiceType enum value
 67910  	ServiceTypeData = "DATA"
 67911  
 67912  	// ServiceTypeCredentialProvider is a ServiceType enum value
 67913  	ServiceTypeCredentialProvider = "CREDENTIAL_PROVIDER"
 67914  
 67915  	// ServiceTypeJobs is a ServiceType enum value
 67916  	ServiceTypeJobs = "JOBS"
 67917  )
 67918  
 67919  // ServiceType_Values returns all elements of the ServiceType enum
 67920  func ServiceType_Values() []string {
 67921  	return []string{
 67922  		ServiceTypeData,
 67923  		ServiceTypeCredentialProvider,
 67924  		ServiceTypeJobs,
 67925  	}
 67926  }
 67927  
 67928  const (
 67929  	// StatusInProgress is a Status enum value
 67930  	StatusInProgress = "InProgress"
 67931  
 67932  	// StatusCompleted is a Status enum value
 67933  	StatusCompleted = "Completed"
 67934  
 67935  	// StatusFailed is a Status enum value
 67936  	StatusFailed = "Failed"
 67937  
 67938  	// StatusCancelled is a Status enum value
 67939  	StatusCancelled = "Cancelled"
 67940  
 67941  	// StatusCancelling is a Status enum value
 67942  	StatusCancelling = "Cancelling"
 67943  )
 67944  
 67945  // Status_Values returns all elements of the Status enum
 67946  func Status_Values() []string {
 67947  	return []string{
 67948  		StatusInProgress,
 67949  		StatusCompleted,
 67950  		StatusFailed,
 67951  		StatusCancelled,
 67952  		StatusCancelling,
 67953  	}
 67954  }
 67955  
 67956  const (
 67957  	// TargetSelectionContinuous is a TargetSelection enum value
 67958  	TargetSelectionContinuous = "CONTINUOUS"
 67959  
 67960  	// TargetSelectionSnapshot is a TargetSelection enum value
 67961  	TargetSelectionSnapshot = "SNAPSHOT"
 67962  )
 67963  
 67964  // TargetSelection_Values returns all elements of the TargetSelection enum
 67965  func TargetSelection_Values() []string {
 67966  	return []string{
 67967  		TargetSelectionContinuous,
 67968  		TargetSelectionSnapshot,
 67969  	}
 67970  }
 67971  
 67972  const (
 67973  	// ThingConnectivityIndexingModeOff is a ThingConnectivityIndexingMode enum value
 67974  	ThingConnectivityIndexingModeOff = "OFF"
 67975  
 67976  	// ThingConnectivityIndexingModeStatus is a ThingConnectivityIndexingMode enum value
 67977  	ThingConnectivityIndexingModeStatus = "STATUS"
 67978  )
 67979  
 67980  // ThingConnectivityIndexingMode_Values returns all elements of the ThingConnectivityIndexingMode enum
 67981  func ThingConnectivityIndexingMode_Values() []string {
 67982  	return []string{
 67983  		ThingConnectivityIndexingModeOff,
 67984  		ThingConnectivityIndexingModeStatus,
 67985  	}
 67986  }
 67987  
 67988  const (
 67989  	// ThingGroupIndexingModeOff is a ThingGroupIndexingMode enum value
 67990  	ThingGroupIndexingModeOff = "OFF"
 67991  
 67992  	// ThingGroupIndexingModeOn is a ThingGroupIndexingMode enum value
 67993  	ThingGroupIndexingModeOn = "ON"
 67994  )
 67995  
 67996  // ThingGroupIndexingMode_Values returns all elements of the ThingGroupIndexingMode enum
 67997  func ThingGroupIndexingMode_Values() []string {
 67998  	return []string{
 67999  		ThingGroupIndexingModeOff,
 68000  		ThingGroupIndexingModeOn,
 68001  	}
 68002  }
 68003  
 68004  const (
 68005  	// ThingIndexingModeOff is a ThingIndexingMode enum value
 68006  	ThingIndexingModeOff = "OFF"
 68007  
 68008  	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
 68009  	ThingIndexingModeRegistry = "REGISTRY"
 68010  
 68011  	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
 68012  	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
 68013  )
 68014  
 68015  // ThingIndexingMode_Values returns all elements of the ThingIndexingMode enum
 68016  func ThingIndexingMode_Values() []string {
 68017  	return []string{
 68018  		ThingIndexingModeOff,
 68019  		ThingIndexingModeRegistry,
 68020  		ThingIndexingModeRegistryAndShadow,
 68021  	}
 68022  }
 68023  
 68024  const (
 68025  	// TopicRuleDestinationStatusEnabled is a TopicRuleDestinationStatus enum value
 68026  	TopicRuleDestinationStatusEnabled = "ENABLED"
 68027  
 68028  	// TopicRuleDestinationStatusInProgress is a TopicRuleDestinationStatus enum value
 68029  	TopicRuleDestinationStatusInProgress = "IN_PROGRESS"
 68030  
 68031  	// TopicRuleDestinationStatusDisabled is a TopicRuleDestinationStatus enum value
 68032  	TopicRuleDestinationStatusDisabled = "DISABLED"
 68033  
 68034  	// TopicRuleDestinationStatusError is a TopicRuleDestinationStatus enum value
 68035  	TopicRuleDestinationStatusError = "ERROR"
 68036  
 68037  	// TopicRuleDestinationStatusDeleting is a TopicRuleDestinationStatus enum value
 68038  	TopicRuleDestinationStatusDeleting = "DELETING"
 68039  )
 68040  
 68041  // TopicRuleDestinationStatus_Values returns all elements of the TopicRuleDestinationStatus enum
 68042  func TopicRuleDestinationStatus_Values() []string {
 68043  	return []string{
 68044  		TopicRuleDestinationStatusEnabled,
 68045  		TopicRuleDestinationStatusInProgress,
 68046  		TopicRuleDestinationStatusDisabled,
 68047  		TopicRuleDestinationStatusError,
 68048  		TopicRuleDestinationStatusDeleting,
 68049  	}
 68050  }
 68051  
 68052  const (
 68053  	// VerificationStateFalsePositive is a VerificationState enum value
 68054  	VerificationStateFalsePositive = "FALSE_POSITIVE"
 68055  
 68056  	// VerificationStateBenignPositive is a VerificationState enum value
 68057  	VerificationStateBenignPositive = "BENIGN_POSITIVE"
 68058  
 68059  	// VerificationStateTruePositive is a VerificationState enum value
 68060  	VerificationStateTruePositive = "TRUE_POSITIVE"
 68061  
 68062  	// VerificationStateUnknown is a VerificationState enum value
 68063  	VerificationStateUnknown = "UNKNOWN"
 68064  )
 68065  
 68066  // VerificationState_Values returns all elements of the VerificationState enum
 68067  func VerificationState_Values() []string {
 68068  	return []string{
 68069  		VerificationStateFalsePositive,
 68070  		VerificationStateBenignPositive,
 68071  		VerificationStateTruePositive,
 68072  		VerificationStateUnknown,
 68073  	}
 68074  }
 68075  
 68076  const (
 68077  	// ViolationEventTypeInAlarm is a ViolationEventType enum value
 68078  	ViolationEventTypeInAlarm = "in-alarm"
 68079  
 68080  	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
 68081  	ViolationEventTypeAlarmCleared = "alarm-cleared"
 68082  
 68083  	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
 68084  	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
 68085  )
 68086  
 68087  // ViolationEventType_Values returns all elements of the ViolationEventType enum
 68088  func ViolationEventType_Values() []string {
 68089  	return []string{
 68090  		ViolationEventTypeInAlarm,
 68091  		ViolationEventTypeAlarmCleared,
 68092  		ViolationEventTypeAlarmInvalidated,
 68093  	}
 68094  }