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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package greengrassv2
     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 opBatchAssociateClientDeviceWithCoreDevice = "BatchAssociateClientDeviceWithCoreDevice"
    17  
    18  // BatchAssociateClientDeviceWithCoreDeviceRequest generates a "aws/request.Request" representing the
    19  // client's request for the BatchAssociateClientDeviceWithCoreDevice 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 BatchAssociateClientDeviceWithCoreDevice for more information on using the BatchAssociateClientDeviceWithCoreDevice
    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 BatchAssociateClientDeviceWithCoreDeviceRequest method.
    34  //    req, resp := client.BatchAssociateClientDeviceWithCoreDeviceRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchAssociateClientDeviceWithCoreDevice
    42  func (c *GreengrassV2) BatchAssociateClientDeviceWithCoreDeviceRequest(input *BatchAssociateClientDeviceWithCoreDeviceInput) (req *request.Request, output *BatchAssociateClientDeviceWithCoreDeviceOutput) {
    43  	op := &request.Operation{
    44  		Name:       opBatchAssociateClientDeviceWithCoreDevice,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/greengrass/v2/coreDevices/{coreDeviceThingName}/associateClientDevices",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &BatchAssociateClientDeviceWithCoreDeviceInput{}
    51  	}
    52  
    53  	output = &BatchAssociateClientDeviceWithCoreDeviceOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // BatchAssociateClientDeviceWithCoreDevice API operation for AWS IoT Greengrass V2.
    59  //
    60  // Associate a list of client devices with a core device. Use this API operation
    61  // to specify which client devices can discover a core device through cloud
    62  // discovery. With cloud discovery, client devices connect to IoT Greengrass
    63  // to retrieve associated core devices' connectivity information and certificates.
    64  // For more information, see Configure cloud discovery (https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-cloud-discovery.html)
    65  // in the IoT Greengrass V2 Developer Guide.
    66  //
    67  // Client devices are local IoT devices that connect to and communicate with
    68  // an IoT Greengrass core device over MQTT. You can connect client devices to
    69  // a core device to sync MQTT messages and data to Amazon Web Services IoT Core
    70  // and interact with client devices in Greengrass components. For more information,
    71  // see Interact with local IoT devices (https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html)
    72  // in the IoT Greengrass V2 Developer Guide.
    73  //
    74  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    75  // with awserr.Error's Code and Message methods to get detailed information about
    76  // the error.
    77  //
    78  // See the AWS API reference guide for AWS IoT Greengrass V2's
    79  // API operation BatchAssociateClientDeviceWithCoreDevice for usage and error information.
    80  //
    81  // Returned Error Types:
    82  //   * ValidationException
    83  //   The request isn't valid. This can occur if your request contains malformed
    84  //   JSON or unsupported characters.
    85  //
    86  //   * ResourceNotFoundException
    87  //   The requested resource can't be found.
    88  //
    89  //   * AccessDeniedException
    90  //   You don't have permission to perform the action.
    91  //
    92  //   * InternalServerException
    93  //   IoT Greengrass can't process your request right now. Try again later.
    94  //
    95  //   * ThrottlingException
    96  //   Your request exceeded a request rate quota. For example, you might have exceeded
    97  //   the amount of times that you can retrieve device or deployment status per
    98  //   second.
    99  //
   100  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchAssociateClientDeviceWithCoreDevice
   101  func (c *GreengrassV2) BatchAssociateClientDeviceWithCoreDevice(input *BatchAssociateClientDeviceWithCoreDeviceInput) (*BatchAssociateClientDeviceWithCoreDeviceOutput, error) {
   102  	req, out := c.BatchAssociateClientDeviceWithCoreDeviceRequest(input)
   103  	return out, req.Send()
   104  }
   105  
   106  // BatchAssociateClientDeviceWithCoreDeviceWithContext is the same as BatchAssociateClientDeviceWithCoreDevice with the addition of
   107  // the ability to pass a context and additional request options.
   108  //
   109  // See BatchAssociateClientDeviceWithCoreDevice for details on how to use this API operation.
   110  //
   111  // The context must be non-nil and will be used for request cancellation. If
   112  // the context is nil a panic will occur. In the future the SDK may create
   113  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   114  // for more information on using Contexts.
   115  func (c *GreengrassV2) BatchAssociateClientDeviceWithCoreDeviceWithContext(ctx aws.Context, input *BatchAssociateClientDeviceWithCoreDeviceInput, opts ...request.Option) (*BatchAssociateClientDeviceWithCoreDeviceOutput, error) {
   116  	req, out := c.BatchAssociateClientDeviceWithCoreDeviceRequest(input)
   117  	req.SetContext(ctx)
   118  	req.ApplyOptions(opts...)
   119  	return out, req.Send()
   120  }
   121  
   122  const opBatchDisassociateClientDeviceFromCoreDevice = "BatchDisassociateClientDeviceFromCoreDevice"
   123  
   124  // BatchDisassociateClientDeviceFromCoreDeviceRequest generates a "aws/request.Request" representing the
   125  // client's request for the BatchDisassociateClientDeviceFromCoreDevice operation. The "output" return
   126  // value will be populated with the request's response once the request completes
   127  // successfully.
   128  //
   129  // Use "Send" method on the returned Request to send the API call to the service.
   130  // the "output" return value is not valid until after Send returns without error.
   131  //
   132  // See BatchDisassociateClientDeviceFromCoreDevice for more information on using the BatchDisassociateClientDeviceFromCoreDevice
   133  // API call, and error handling.
   134  //
   135  // This method is useful when you want to inject custom logic or configuration
   136  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   137  //
   138  //
   139  //    // Example sending a request using the BatchDisassociateClientDeviceFromCoreDeviceRequest method.
   140  //    req, resp := client.BatchDisassociateClientDeviceFromCoreDeviceRequest(params)
   141  //
   142  //    err := req.Send()
   143  //    if err == nil { // resp is now filled
   144  //        fmt.Println(resp)
   145  //    }
   146  //
   147  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchDisassociateClientDeviceFromCoreDevice
   148  func (c *GreengrassV2) BatchDisassociateClientDeviceFromCoreDeviceRequest(input *BatchDisassociateClientDeviceFromCoreDeviceInput) (req *request.Request, output *BatchDisassociateClientDeviceFromCoreDeviceOutput) {
   149  	op := &request.Operation{
   150  		Name:       opBatchDisassociateClientDeviceFromCoreDevice,
   151  		HTTPMethod: "POST",
   152  		HTTPPath:   "/greengrass/v2/coreDevices/{coreDeviceThingName}/disassociateClientDevices",
   153  	}
   154  
   155  	if input == nil {
   156  		input = &BatchDisassociateClientDeviceFromCoreDeviceInput{}
   157  	}
   158  
   159  	output = &BatchDisassociateClientDeviceFromCoreDeviceOutput{}
   160  	req = c.newRequest(op, input, output)
   161  	return
   162  }
   163  
   164  // BatchDisassociateClientDeviceFromCoreDevice API operation for AWS IoT Greengrass V2.
   165  //
   166  // Disassociate a list of client devices from a core device. After you disassociate
   167  // a client device from a core device, the client device won't be able to use
   168  // cloud discovery to retrieve the core device's connectivity information and
   169  // certificates.
   170  //
   171  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   172  // with awserr.Error's Code and Message methods to get detailed information about
   173  // the error.
   174  //
   175  // See the AWS API reference guide for AWS IoT Greengrass V2's
   176  // API operation BatchDisassociateClientDeviceFromCoreDevice for usage and error information.
   177  //
   178  // Returned Error Types:
   179  //   * ValidationException
   180  //   The request isn't valid. This can occur if your request contains malformed
   181  //   JSON or unsupported characters.
   182  //
   183  //   * ResourceNotFoundException
   184  //   The requested resource can't be found.
   185  //
   186  //   * AccessDeniedException
   187  //   You don't have permission to perform the action.
   188  //
   189  //   * InternalServerException
   190  //   IoT Greengrass can't process your request right now. Try again later.
   191  //
   192  //   * ThrottlingException
   193  //   Your request exceeded a request rate quota. For example, you might have exceeded
   194  //   the amount of times that you can retrieve device or deployment status per
   195  //   second.
   196  //
   197  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchDisassociateClientDeviceFromCoreDevice
   198  func (c *GreengrassV2) BatchDisassociateClientDeviceFromCoreDevice(input *BatchDisassociateClientDeviceFromCoreDeviceInput) (*BatchDisassociateClientDeviceFromCoreDeviceOutput, error) {
   199  	req, out := c.BatchDisassociateClientDeviceFromCoreDeviceRequest(input)
   200  	return out, req.Send()
   201  }
   202  
   203  // BatchDisassociateClientDeviceFromCoreDeviceWithContext is the same as BatchDisassociateClientDeviceFromCoreDevice with the addition of
   204  // the ability to pass a context and additional request options.
   205  //
   206  // See BatchDisassociateClientDeviceFromCoreDevice for details on how to use this API operation.
   207  //
   208  // The context must be non-nil and will be used for request cancellation. If
   209  // the context is nil a panic will occur. In the future the SDK may create
   210  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   211  // for more information on using Contexts.
   212  func (c *GreengrassV2) BatchDisassociateClientDeviceFromCoreDeviceWithContext(ctx aws.Context, input *BatchDisassociateClientDeviceFromCoreDeviceInput, opts ...request.Option) (*BatchDisassociateClientDeviceFromCoreDeviceOutput, error) {
   213  	req, out := c.BatchDisassociateClientDeviceFromCoreDeviceRequest(input)
   214  	req.SetContext(ctx)
   215  	req.ApplyOptions(opts...)
   216  	return out, req.Send()
   217  }
   218  
   219  const opCancelDeployment = "CancelDeployment"
   220  
   221  // CancelDeploymentRequest generates a "aws/request.Request" representing the
   222  // client's request for the CancelDeployment operation. The "output" return
   223  // value will be populated with the request's response once the request completes
   224  // successfully.
   225  //
   226  // Use "Send" method on the returned Request to send the API call to the service.
   227  // the "output" return value is not valid until after Send returns without error.
   228  //
   229  // See CancelDeployment for more information on using the CancelDeployment
   230  // API call, and error handling.
   231  //
   232  // This method is useful when you want to inject custom logic or configuration
   233  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   234  //
   235  //
   236  //    // Example sending a request using the CancelDeploymentRequest method.
   237  //    req, resp := client.CancelDeploymentRequest(params)
   238  //
   239  //    err := req.Send()
   240  //    if err == nil { // resp is now filled
   241  //        fmt.Println(resp)
   242  //    }
   243  //
   244  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CancelDeployment
   245  func (c *GreengrassV2) CancelDeploymentRequest(input *CancelDeploymentInput) (req *request.Request, output *CancelDeploymentOutput) {
   246  	op := &request.Operation{
   247  		Name:       opCancelDeployment,
   248  		HTTPMethod: "POST",
   249  		HTTPPath:   "/greengrass/v2/deployments/{deploymentId}/cancel",
   250  	}
   251  
   252  	if input == nil {
   253  		input = &CancelDeploymentInput{}
   254  	}
   255  
   256  	output = &CancelDeploymentOutput{}
   257  	req = c.newRequest(op, input, output)
   258  	return
   259  }
   260  
   261  // CancelDeployment API operation for AWS IoT Greengrass V2.
   262  //
   263  // Cancels a deployment. This operation cancels the deployment for devices that
   264  // haven't yet received it. If a device already received the deployment, this
   265  // operation doesn't change anything for that device.
   266  //
   267  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   268  // with awserr.Error's Code and Message methods to get detailed information about
   269  // the error.
   270  //
   271  // See the AWS API reference guide for AWS IoT Greengrass V2's
   272  // API operation CancelDeployment for usage and error information.
   273  //
   274  // Returned Error Types:
   275  //   * ResourceNotFoundException
   276  //   The requested resource can't be found.
   277  //
   278  //   * ValidationException
   279  //   The request isn't valid. This can occur if your request contains malformed
   280  //   JSON or unsupported characters.
   281  //
   282  //   * AccessDeniedException
   283  //   You don't have permission to perform the action.
   284  //
   285  //   * InternalServerException
   286  //   IoT Greengrass can't process your request right now. Try again later.
   287  //
   288  //   * ConflictException
   289  //   Your request has conflicting operations. This can occur if you're trying
   290  //   to perform more than one operation on the same resource at the same time.
   291  //
   292  //   * ThrottlingException
   293  //   Your request exceeded a request rate quota. For example, you might have exceeded
   294  //   the amount of times that you can retrieve device or deployment status per
   295  //   second.
   296  //
   297  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CancelDeployment
   298  func (c *GreengrassV2) CancelDeployment(input *CancelDeploymentInput) (*CancelDeploymentOutput, error) {
   299  	req, out := c.CancelDeploymentRequest(input)
   300  	return out, req.Send()
   301  }
   302  
   303  // CancelDeploymentWithContext is the same as CancelDeployment with the addition of
   304  // the ability to pass a context and additional request options.
   305  //
   306  // See CancelDeployment for details on how to use this API operation.
   307  //
   308  // The context must be non-nil and will be used for request cancellation. If
   309  // the context is nil a panic will occur. In the future the SDK may create
   310  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   311  // for more information on using Contexts.
   312  func (c *GreengrassV2) CancelDeploymentWithContext(ctx aws.Context, input *CancelDeploymentInput, opts ...request.Option) (*CancelDeploymentOutput, error) {
   313  	req, out := c.CancelDeploymentRequest(input)
   314  	req.SetContext(ctx)
   315  	req.ApplyOptions(opts...)
   316  	return out, req.Send()
   317  }
   318  
   319  const opCreateComponentVersion = "CreateComponentVersion"
   320  
   321  // CreateComponentVersionRequest generates a "aws/request.Request" representing the
   322  // client's request for the CreateComponentVersion operation. The "output" return
   323  // value will be populated with the request's response once the request completes
   324  // successfully.
   325  //
   326  // Use "Send" method on the returned Request to send the API call to the service.
   327  // the "output" return value is not valid until after Send returns without error.
   328  //
   329  // See CreateComponentVersion for more information on using the CreateComponentVersion
   330  // API call, and error handling.
   331  //
   332  // This method is useful when you want to inject custom logic or configuration
   333  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   334  //
   335  //
   336  //    // Example sending a request using the CreateComponentVersionRequest method.
   337  //    req, resp := client.CreateComponentVersionRequest(params)
   338  //
   339  //    err := req.Send()
   340  //    if err == nil { // resp is now filled
   341  //        fmt.Println(resp)
   342  //    }
   343  //
   344  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateComponentVersion
   345  func (c *GreengrassV2) CreateComponentVersionRequest(input *CreateComponentVersionInput) (req *request.Request, output *CreateComponentVersionOutput) {
   346  	op := &request.Operation{
   347  		Name:       opCreateComponentVersion,
   348  		HTTPMethod: "POST",
   349  		HTTPPath:   "/greengrass/v2/createComponentVersion",
   350  	}
   351  
   352  	if input == nil {
   353  		input = &CreateComponentVersionInput{}
   354  	}
   355  
   356  	output = &CreateComponentVersionOutput{}
   357  	req = c.newRequest(op, input, output)
   358  	return
   359  }
   360  
   361  // CreateComponentVersion API operation for AWS IoT Greengrass V2.
   362  //
   363  // Creates a component. Components are software that run on Greengrass core
   364  // devices. After you develop and test a component on your core device, you
   365  // can use this operation to upload your component to IoT Greengrass. Then,
   366  // you can deploy the component to other core devices.
   367  //
   368  // You can use this operation to do the following:
   369  //
   370  //    * Create components from recipes Create a component from a recipe, which
   371  //    is a file that defines the component's metadata, parameters, dependencies,
   372  //    lifecycle, artifacts, and platform capability. For more information, see
   373  //    IoT Greengrass component recipe reference (https://docs.aws.amazon.com/greengrass/v2/developerguide/component-recipe-reference.html)
   374  //    in the IoT Greengrass V2 Developer Guide. To create a component from a
   375  //    recipe, specify inlineRecipe when you call this operation.
   376  //
   377  //    * Create components from Lambda functions Create a component from an Lambda
   378  //    function that runs on IoT Greengrass. This creates a recipe and artifacts
   379  //    from the Lambda function's deployment package. You can use this operation
   380  //    to migrate Lambda functions from IoT Greengrass V1 to IoT Greengrass V2.
   381  //    This function only accepts Lambda functions that use the following runtimes:
   382  //    Python 2.7 – python2.7 Python 3.7 – python3.7 Python 3.8 – python3.8
   383  //    Java 8 – java8 Node.js 10 – nodejs10.x Node.js 12 – nodejs12.x To
   384  //    create a component from a Lambda function, specify lambdaFunction when
   385  //    you call this operation.
   386  //
   387  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   388  // with awserr.Error's Code and Message methods to get detailed information about
   389  // the error.
   390  //
   391  // See the AWS API reference guide for AWS IoT Greengrass V2's
   392  // API operation CreateComponentVersion for usage and error information.
   393  //
   394  // Returned Error Types:
   395  //   * ValidationException
   396  //   The request isn't valid. This can occur if your request contains malformed
   397  //   JSON or unsupported characters.
   398  //
   399  //   * ServiceQuotaExceededException
   400  //   Your request exceeds a service quota. For example, you might have the maximum
   401  //   number of components that you can create.
   402  //
   403  //   * AccessDeniedException
   404  //   You don't have permission to perform the action.
   405  //
   406  //   * ConflictException
   407  //   Your request has conflicting operations. This can occur if you're trying
   408  //   to perform more than one operation on the same resource at the same time.
   409  //
   410  //   * ThrottlingException
   411  //   Your request exceeded a request rate quota. For example, you might have exceeded
   412  //   the amount of times that you can retrieve device or deployment status per
   413  //   second.
   414  //
   415  //   * InternalServerException
   416  //   IoT Greengrass can't process your request right now. Try again later.
   417  //
   418  //   * RequestAlreadyInProgressException
   419  //   The request is already in progress. This exception occurs when you use a
   420  //   client token for multiple requests while IoT Greengrass is still processing
   421  //   an earlier request that uses the same client token.
   422  //
   423  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateComponentVersion
   424  func (c *GreengrassV2) CreateComponentVersion(input *CreateComponentVersionInput) (*CreateComponentVersionOutput, error) {
   425  	req, out := c.CreateComponentVersionRequest(input)
   426  	return out, req.Send()
   427  }
   428  
   429  // CreateComponentVersionWithContext is the same as CreateComponentVersion with the addition of
   430  // the ability to pass a context and additional request options.
   431  //
   432  // See CreateComponentVersion for details on how to use this API operation.
   433  //
   434  // The context must be non-nil and will be used for request cancellation. If
   435  // the context is nil a panic will occur. In the future the SDK may create
   436  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   437  // for more information on using Contexts.
   438  func (c *GreengrassV2) CreateComponentVersionWithContext(ctx aws.Context, input *CreateComponentVersionInput, opts ...request.Option) (*CreateComponentVersionOutput, error) {
   439  	req, out := c.CreateComponentVersionRequest(input)
   440  	req.SetContext(ctx)
   441  	req.ApplyOptions(opts...)
   442  	return out, req.Send()
   443  }
   444  
   445  const opCreateDeployment = "CreateDeployment"
   446  
   447  // CreateDeploymentRequest generates a "aws/request.Request" representing the
   448  // client's request for the CreateDeployment operation. The "output" return
   449  // value will be populated with the request's response once the request completes
   450  // successfully.
   451  //
   452  // Use "Send" method on the returned Request to send the API call to the service.
   453  // the "output" return value is not valid until after Send returns without error.
   454  //
   455  // See CreateDeployment for more information on using the CreateDeployment
   456  // API call, and error handling.
   457  //
   458  // This method is useful when you want to inject custom logic or configuration
   459  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   460  //
   461  //
   462  //    // Example sending a request using the CreateDeploymentRequest method.
   463  //    req, resp := client.CreateDeploymentRequest(params)
   464  //
   465  //    err := req.Send()
   466  //    if err == nil { // resp is now filled
   467  //        fmt.Println(resp)
   468  //    }
   469  //
   470  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateDeployment
   471  func (c *GreengrassV2) CreateDeploymentRequest(input *CreateDeploymentInput) (req *request.Request, output *CreateDeploymentOutput) {
   472  	op := &request.Operation{
   473  		Name:       opCreateDeployment,
   474  		HTTPMethod: "POST",
   475  		HTTPPath:   "/greengrass/v2/deployments",
   476  	}
   477  
   478  	if input == nil {
   479  		input = &CreateDeploymentInput{}
   480  	}
   481  
   482  	output = &CreateDeploymentOutput{}
   483  	req = c.newRequest(op, input, output)
   484  	return
   485  }
   486  
   487  // CreateDeployment API operation for AWS IoT Greengrass V2.
   488  //
   489  // Creates a continuous deployment for a target, which is a Greengrass core
   490  // device or group of core devices. When you add a new core device to a group
   491  // of core devices that has a deployment, IoT Greengrass deploys that group's
   492  // deployment to the new device.
   493  //
   494  // You can define one deployment for each target. When you create a new deployment
   495  // for a target that has an existing deployment, you replace the previous deployment.
   496  // IoT Greengrass applies the new deployment to the target devices.
   497  //
   498  // Every deployment has a revision number that indicates how many deployment
   499  // revisions you define for a target. Use this operation to create a new revision
   500  // of an existing deployment. This operation returns the revision number of
   501  // the new deployment when you create it.
   502  //
   503  // For more information, see the Create deployments (https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html)
   504  // in the IoT Greengrass V2 Developer Guide.
   505  //
   506  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   507  // with awserr.Error's Code and Message methods to get detailed information about
   508  // the error.
   509  //
   510  // See the AWS API reference guide for AWS IoT Greengrass V2's
   511  // API operation CreateDeployment for usage and error information.
   512  //
   513  // Returned Error Types:
   514  //   * ResourceNotFoundException
   515  //   The requested resource can't be found.
   516  //
   517  //   * ValidationException
   518  //   The request isn't valid. This can occur if your request contains malformed
   519  //   JSON or unsupported characters.
   520  //
   521  //   * AccessDeniedException
   522  //   You don't have permission to perform the action.
   523  //
   524  //   * ThrottlingException
   525  //   Your request exceeded a request rate quota. For example, you might have exceeded
   526  //   the amount of times that you can retrieve device or deployment status per
   527  //   second.
   528  //
   529  //   * InternalServerException
   530  //   IoT Greengrass can't process your request right now. Try again later.
   531  //
   532  //   * RequestAlreadyInProgressException
   533  //   The request is already in progress. This exception occurs when you use a
   534  //   client token for multiple requests while IoT Greengrass is still processing
   535  //   an earlier request that uses the same client token.
   536  //
   537  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/CreateDeployment
   538  func (c *GreengrassV2) CreateDeployment(input *CreateDeploymentInput) (*CreateDeploymentOutput, error) {
   539  	req, out := c.CreateDeploymentRequest(input)
   540  	return out, req.Send()
   541  }
   542  
   543  // CreateDeploymentWithContext is the same as CreateDeployment with the addition of
   544  // the ability to pass a context and additional request options.
   545  //
   546  // See CreateDeployment for details on how to use this API operation.
   547  //
   548  // The context must be non-nil and will be used for request cancellation. If
   549  // the context is nil a panic will occur. In the future the SDK may create
   550  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   551  // for more information on using Contexts.
   552  func (c *GreengrassV2) CreateDeploymentWithContext(ctx aws.Context, input *CreateDeploymentInput, opts ...request.Option) (*CreateDeploymentOutput, error) {
   553  	req, out := c.CreateDeploymentRequest(input)
   554  	req.SetContext(ctx)
   555  	req.ApplyOptions(opts...)
   556  	return out, req.Send()
   557  }
   558  
   559  const opDeleteComponent = "DeleteComponent"
   560  
   561  // DeleteComponentRequest generates a "aws/request.Request" representing the
   562  // client's request for the DeleteComponent operation. The "output" return
   563  // value will be populated with the request's response once the request completes
   564  // successfully.
   565  //
   566  // Use "Send" method on the returned Request to send the API call to the service.
   567  // the "output" return value is not valid until after Send returns without error.
   568  //
   569  // See DeleteComponent for more information on using the DeleteComponent
   570  // API call, and error handling.
   571  //
   572  // This method is useful when you want to inject custom logic or configuration
   573  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   574  //
   575  //
   576  //    // Example sending a request using the DeleteComponentRequest method.
   577  //    req, resp := client.DeleteComponentRequest(params)
   578  //
   579  //    err := req.Send()
   580  //    if err == nil { // resp is now filled
   581  //        fmt.Println(resp)
   582  //    }
   583  //
   584  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeleteComponent
   585  func (c *GreengrassV2) DeleteComponentRequest(input *DeleteComponentInput) (req *request.Request, output *DeleteComponentOutput) {
   586  	op := &request.Operation{
   587  		Name:       opDeleteComponent,
   588  		HTTPMethod: "DELETE",
   589  		HTTPPath:   "/greengrass/v2/components/{arn}",
   590  	}
   591  
   592  	if input == nil {
   593  		input = &DeleteComponentInput{}
   594  	}
   595  
   596  	output = &DeleteComponentOutput{}
   597  	req = c.newRequest(op, input, output)
   598  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   599  	return
   600  }
   601  
   602  // DeleteComponent API operation for AWS IoT Greengrass V2.
   603  //
   604  // Deletes a version of a component from IoT Greengrass.
   605  //
   606  // This operation deletes the component's recipe and artifacts. As a result,
   607  // deployments that refer to this component version will fail. If you have deployments
   608  // that use this component version, you can remove the component from the deployment
   609  // or update the deployment to use a valid version.
   610  //
   611  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   612  // with awserr.Error's Code and Message methods to get detailed information about
   613  // the error.
   614  //
   615  // See the AWS API reference guide for AWS IoT Greengrass V2's
   616  // API operation DeleteComponent for usage and error information.
   617  //
   618  // Returned Error Types:
   619  //   * ValidationException
   620  //   The request isn't valid. This can occur if your request contains malformed
   621  //   JSON or unsupported characters.
   622  //
   623  //   * AccessDeniedException
   624  //   You don't have permission to perform the action.
   625  //
   626  //   * ConflictException
   627  //   Your request has conflicting operations. This can occur if you're trying
   628  //   to perform more than one operation on the same resource at the same time.
   629  //
   630  //   * ResourceNotFoundException
   631  //   The requested resource can't be found.
   632  //
   633  //   * ThrottlingException
   634  //   Your request exceeded a request rate quota. For example, you might have exceeded
   635  //   the amount of times that you can retrieve device or deployment status per
   636  //   second.
   637  //
   638  //   * InternalServerException
   639  //   IoT Greengrass can't process your request right now. Try again later.
   640  //
   641  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeleteComponent
   642  func (c *GreengrassV2) DeleteComponent(input *DeleteComponentInput) (*DeleteComponentOutput, error) {
   643  	req, out := c.DeleteComponentRequest(input)
   644  	return out, req.Send()
   645  }
   646  
   647  // DeleteComponentWithContext is the same as DeleteComponent with the addition of
   648  // the ability to pass a context and additional request options.
   649  //
   650  // See DeleteComponent for details on how to use this API operation.
   651  //
   652  // The context must be non-nil and will be used for request cancellation. If
   653  // the context is nil a panic will occur. In the future the SDK may create
   654  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   655  // for more information on using Contexts.
   656  func (c *GreengrassV2) DeleteComponentWithContext(ctx aws.Context, input *DeleteComponentInput, opts ...request.Option) (*DeleteComponentOutput, error) {
   657  	req, out := c.DeleteComponentRequest(input)
   658  	req.SetContext(ctx)
   659  	req.ApplyOptions(opts...)
   660  	return out, req.Send()
   661  }
   662  
   663  const opDeleteCoreDevice = "DeleteCoreDevice"
   664  
   665  // DeleteCoreDeviceRequest generates a "aws/request.Request" representing the
   666  // client's request for the DeleteCoreDevice operation. The "output" return
   667  // value will be populated with the request's response once the request completes
   668  // successfully.
   669  //
   670  // Use "Send" method on the returned Request to send the API call to the service.
   671  // the "output" return value is not valid until after Send returns without error.
   672  //
   673  // See DeleteCoreDevice for more information on using the DeleteCoreDevice
   674  // API call, and error handling.
   675  //
   676  // This method is useful when you want to inject custom logic or configuration
   677  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   678  //
   679  //
   680  //    // Example sending a request using the DeleteCoreDeviceRequest method.
   681  //    req, resp := client.DeleteCoreDeviceRequest(params)
   682  //
   683  //    err := req.Send()
   684  //    if err == nil { // resp is now filled
   685  //        fmt.Println(resp)
   686  //    }
   687  //
   688  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeleteCoreDevice
   689  func (c *GreengrassV2) DeleteCoreDeviceRequest(input *DeleteCoreDeviceInput) (req *request.Request, output *DeleteCoreDeviceOutput) {
   690  	op := &request.Operation{
   691  		Name:       opDeleteCoreDevice,
   692  		HTTPMethod: "DELETE",
   693  		HTTPPath:   "/greengrass/v2/coreDevices/{coreDeviceThingName}",
   694  	}
   695  
   696  	if input == nil {
   697  		input = &DeleteCoreDeviceInput{}
   698  	}
   699  
   700  	output = &DeleteCoreDeviceOutput{}
   701  	req = c.newRequest(op, input, output)
   702  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   703  	return
   704  }
   705  
   706  // DeleteCoreDevice API operation for AWS IoT Greengrass V2.
   707  //
   708  // Deletes a Greengrass core device, which is an IoT thing. This operation removes
   709  // the core device from the list of core devices. This operation doesn't delete
   710  // the IoT thing. For more information about how to delete the IoT thing, see
   711  // DeleteThing (https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteThing.html)
   712  // in the IoT API Reference.
   713  //
   714  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   715  // with awserr.Error's Code and Message methods to get detailed information about
   716  // the error.
   717  //
   718  // See the AWS API reference guide for AWS IoT Greengrass V2's
   719  // API operation DeleteCoreDevice for usage and error information.
   720  //
   721  // Returned Error Types:
   722  //   * ValidationException
   723  //   The request isn't valid. This can occur if your request contains malformed
   724  //   JSON or unsupported characters.
   725  //
   726  //   * ResourceNotFoundException
   727  //   The requested resource can't be found.
   728  //
   729  //   * AccessDeniedException
   730  //   You don't have permission to perform the action.
   731  //
   732  //   * InternalServerException
   733  //   IoT Greengrass can't process your request right now. Try again later.
   734  //
   735  //   * ThrottlingException
   736  //   Your request exceeded a request rate quota. For example, you might have exceeded
   737  //   the amount of times that you can retrieve device or deployment status per
   738  //   second.
   739  //
   740  //   * ConflictException
   741  //   Your request has conflicting operations. This can occur if you're trying
   742  //   to perform more than one operation on the same resource at the same time.
   743  //
   744  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DeleteCoreDevice
   745  func (c *GreengrassV2) DeleteCoreDevice(input *DeleteCoreDeviceInput) (*DeleteCoreDeviceOutput, error) {
   746  	req, out := c.DeleteCoreDeviceRequest(input)
   747  	return out, req.Send()
   748  }
   749  
   750  // DeleteCoreDeviceWithContext is the same as DeleteCoreDevice with the addition of
   751  // the ability to pass a context and additional request options.
   752  //
   753  // See DeleteCoreDevice for details on how to use this API operation.
   754  //
   755  // The context must be non-nil and will be used for request cancellation. If
   756  // the context is nil a panic will occur. In the future the SDK may create
   757  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   758  // for more information on using Contexts.
   759  func (c *GreengrassV2) DeleteCoreDeviceWithContext(ctx aws.Context, input *DeleteCoreDeviceInput, opts ...request.Option) (*DeleteCoreDeviceOutput, error) {
   760  	req, out := c.DeleteCoreDeviceRequest(input)
   761  	req.SetContext(ctx)
   762  	req.ApplyOptions(opts...)
   763  	return out, req.Send()
   764  }
   765  
   766  const opDescribeComponent = "DescribeComponent"
   767  
   768  // DescribeComponentRequest generates a "aws/request.Request" representing the
   769  // client's request for the DescribeComponent operation. The "output" return
   770  // value will be populated with the request's response once the request completes
   771  // successfully.
   772  //
   773  // Use "Send" method on the returned Request to send the API call to the service.
   774  // the "output" return value is not valid until after Send returns without error.
   775  //
   776  // See DescribeComponent for more information on using the DescribeComponent
   777  // API call, and error handling.
   778  //
   779  // This method is useful when you want to inject custom logic or configuration
   780  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   781  //
   782  //
   783  //    // Example sending a request using the DescribeComponentRequest method.
   784  //    req, resp := client.DescribeComponentRequest(params)
   785  //
   786  //    err := req.Send()
   787  //    if err == nil { // resp is now filled
   788  //        fmt.Println(resp)
   789  //    }
   790  //
   791  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DescribeComponent
   792  func (c *GreengrassV2) DescribeComponentRequest(input *DescribeComponentInput) (req *request.Request, output *DescribeComponentOutput) {
   793  	op := &request.Operation{
   794  		Name:       opDescribeComponent,
   795  		HTTPMethod: "GET",
   796  		HTTPPath:   "/greengrass/v2/components/{arn}/metadata",
   797  	}
   798  
   799  	if input == nil {
   800  		input = &DescribeComponentInput{}
   801  	}
   802  
   803  	output = &DescribeComponentOutput{}
   804  	req = c.newRequest(op, input, output)
   805  	return
   806  }
   807  
   808  // DescribeComponent API operation for AWS IoT Greengrass V2.
   809  //
   810  // Retrieves metadata for a version of a component.
   811  //
   812  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   813  // with awserr.Error's Code and Message methods to get detailed information about
   814  // the error.
   815  //
   816  // See the AWS API reference guide for AWS IoT Greengrass V2's
   817  // API operation DescribeComponent for usage and error information.
   818  //
   819  // Returned Error Types:
   820  //   * ValidationException
   821  //   The request isn't valid. This can occur if your request contains malformed
   822  //   JSON or unsupported characters.
   823  //
   824  //   * AccessDeniedException
   825  //   You don't have permission to perform the action.
   826  //
   827  //   * ResourceNotFoundException
   828  //   The requested resource can't be found.
   829  //
   830  //   * ThrottlingException
   831  //   Your request exceeded a request rate quota. For example, you might have exceeded
   832  //   the amount of times that you can retrieve device or deployment status per
   833  //   second.
   834  //
   835  //   * InternalServerException
   836  //   IoT Greengrass can't process your request right now. Try again later.
   837  //
   838  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/DescribeComponent
   839  func (c *GreengrassV2) DescribeComponent(input *DescribeComponentInput) (*DescribeComponentOutput, error) {
   840  	req, out := c.DescribeComponentRequest(input)
   841  	return out, req.Send()
   842  }
   843  
   844  // DescribeComponentWithContext is the same as DescribeComponent with the addition of
   845  // the ability to pass a context and additional request options.
   846  //
   847  // See DescribeComponent for details on how to use this API operation.
   848  //
   849  // The context must be non-nil and will be used for request cancellation. If
   850  // the context is nil a panic will occur. In the future the SDK may create
   851  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   852  // for more information on using Contexts.
   853  func (c *GreengrassV2) DescribeComponentWithContext(ctx aws.Context, input *DescribeComponentInput, opts ...request.Option) (*DescribeComponentOutput, error) {
   854  	req, out := c.DescribeComponentRequest(input)
   855  	req.SetContext(ctx)
   856  	req.ApplyOptions(opts...)
   857  	return out, req.Send()
   858  }
   859  
   860  const opGetComponent = "GetComponent"
   861  
   862  // GetComponentRequest generates a "aws/request.Request" representing the
   863  // client's request for the GetComponent operation. The "output" return
   864  // value will be populated with the request's response once the request completes
   865  // successfully.
   866  //
   867  // Use "Send" method on the returned Request to send the API call to the service.
   868  // the "output" return value is not valid until after Send returns without error.
   869  //
   870  // See GetComponent for more information on using the GetComponent
   871  // API call, and error handling.
   872  //
   873  // This method is useful when you want to inject custom logic or configuration
   874  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   875  //
   876  //
   877  //    // Example sending a request using the GetComponentRequest method.
   878  //    req, resp := client.GetComponentRequest(params)
   879  //
   880  //    err := req.Send()
   881  //    if err == nil { // resp is now filled
   882  //        fmt.Println(resp)
   883  //    }
   884  //
   885  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponent
   886  func (c *GreengrassV2) GetComponentRequest(input *GetComponentInput) (req *request.Request, output *GetComponentOutput) {
   887  	op := &request.Operation{
   888  		Name:       opGetComponent,
   889  		HTTPMethod: "GET",
   890  		HTTPPath:   "/greengrass/v2/components/{arn}",
   891  	}
   892  
   893  	if input == nil {
   894  		input = &GetComponentInput{}
   895  	}
   896  
   897  	output = &GetComponentOutput{}
   898  	req = c.newRequest(op, input, output)
   899  	return
   900  }
   901  
   902  // GetComponent API operation for AWS IoT Greengrass V2.
   903  //
   904  // Gets the recipe for a version of a component. Core devices can call this
   905  // operation to identify the artifacts and requirements to install a component.
   906  //
   907  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   908  // with awserr.Error's Code and Message methods to get detailed information about
   909  // the error.
   910  //
   911  // See the AWS API reference guide for AWS IoT Greengrass V2's
   912  // API operation GetComponent for usage and error information.
   913  //
   914  // Returned Error Types:
   915  //   * ValidationException
   916  //   The request isn't valid. This can occur if your request contains malformed
   917  //   JSON or unsupported characters.
   918  //
   919  //   * AccessDeniedException
   920  //   You don't have permission to perform the action.
   921  //
   922  //   * ResourceNotFoundException
   923  //   The requested resource can't be found.
   924  //
   925  //   * ThrottlingException
   926  //   Your request exceeded a request rate quota. For example, you might have exceeded
   927  //   the amount of times that you can retrieve device or deployment status per
   928  //   second.
   929  //
   930  //   * InternalServerException
   931  //   IoT Greengrass can't process your request right now. Try again later.
   932  //
   933  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponent
   934  func (c *GreengrassV2) GetComponent(input *GetComponentInput) (*GetComponentOutput, error) {
   935  	req, out := c.GetComponentRequest(input)
   936  	return out, req.Send()
   937  }
   938  
   939  // GetComponentWithContext is the same as GetComponent with the addition of
   940  // the ability to pass a context and additional request options.
   941  //
   942  // See GetComponent for details on how to use this API operation.
   943  //
   944  // The context must be non-nil and will be used for request cancellation. If
   945  // the context is nil a panic will occur. In the future the SDK may create
   946  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   947  // for more information on using Contexts.
   948  func (c *GreengrassV2) GetComponentWithContext(ctx aws.Context, input *GetComponentInput, opts ...request.Option) (*GetComponentOutput, error) {
   949  	req, out := c.GetComponentRequest(input)
   950  	req.SetContext(ctx)
   951  	req.ApplyOptions(opts...)
   952  	return out, req.Send()
   953  }
   954  
   955  const opGetComponentVersionArtifact = "GetComponentVersionArtifact"
   956  
   957  // GetComponentVersionArtifactRequest generates a "aws/request.Request" representing the
   958  // client's request for the GetComponentVersionArtifact operation. The "output" return
   959  // value will be populated with the request's response once the request completes
   960  // successfully.
   961  //
   962  // Use "Send" method on the returned Request to send the API call to the service.
   963  // the "output" return value is not valid until after Send returns without error.
   964  //
   965  // See GetComponentVersionArtifact for more information on using the GetComponentVersionArtifact
   966  // API call, and error handling.
   967  //
   968  // This method is useful when you want to inject custom logic or configuration
   969  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   970  //
   971  //
   972  //    // Example sending a request using the GetComponentVersionArtifactRequest method.
   973  //    req, resp := client.GetComponentVersionArtifactRequest(params)
   974  //
   975  //    err := req.Send()
   976  //    if err == nil { // resp is now filled
   977  //        fmt.Println(resp)
   978  //    }
   979  //
   980  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponentVersionArtifact
   981  func (c *GreengrassV2) GetComponentVersionArtifactRequest(input *GetComponentVersionArtifactInput) (req *request.Request, output *GetComponentVersionArtifactOutput) {
   982  	op := &request.Operation{
   983  		Name:       opGetComponentVersionArtifact,
   984  		HTTPMethod: "GET",
   985  		HTTPPath:   "/greengrass/v2/components/{arn}/artifacts/{artifactName+}",
   986  	}
   987  
   988  	if input == nil {
   989  		input = &GetComponentVersionArtifactInput{}
   990  	}
   991  
   992  	output = &GetComponentVersionArtifactOutput{}
   993  	req = c.newRequest(op, input, output)
   994  	return
   995  }
   996  
   997  // GetComponentVersionArtifact API operation for AWS IoT Greengrass V2.
   998  //
   999  // Gets the pre-signed URL to download a public component artifact. Core devices
  1000  // call this operation to identify the URL that they can use to download an
  1001  // artifact to install.
  1002  //
  1003  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1004  // with awserr.Error's Code and Message methods to get detailed information about
  1005  // the error.
  1006  //
  1007  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1008  // API operation GetComponentVersionArtifact for usage and error information.
  1009  //
  1010  // Returned Error Types:
  1011  //   * ValidationException
  1012  //   The request isn't valid. This can occur if your request contains malformed
  1013  //   JSON or unsupported characters.
  1014  //
  1015  //   * AccessDeniedException
  1016  //   You don't have permission to perform the action.
  1017  //
  1018  //   * ResourceNotFoundException
  1019  //   The requested resource can't be found.
  1020  //
  1021  //   * ThrottlingException
  1022  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1023  //   the amount of times that you can retrieve device or deployment status per
  1024  //   second.
  1025  //
  1026  //   * InternalServerException
  1027  //   IoT Greengrass can't process your request right now. Try again later.
  1028  //
  1029  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetComponentVersionArtifact
  1030  func (c *GreengrassV2) GetComponentVersionArtifact(input *GetComponentVersionArtifactInput) (*GetComponentVersionArtifactOutput, error) {
  1031  	req, out := c.GetComponentVersionArtifactRequest(input)
  1032  	return out, req.Send()
  1033  }
  1034  
  1035  // GetComponentVersionArtifactWithContext is the same as GetComponentVersionArtifact with the addition of
  1036  // the ability to pass a context and additional request options.
  1037  //
  1038  // See GetComponentVersionArtifact for details on how to use this API operation.
  1039  //
  1040  // The context must be non-nil and will be used for request cancellation. If
  1041  // the context is nil a panic will occur. In the future the SDK may create
  1042  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1043  // for more information on using Contexts.
  1044  func (c *GreengrassV2) GetComponentVersionArtifactWithContext(ctx aws.Context, input *GetComponentVersionArtifactInput, opts ...request.Option) (*GetComponentVersionArtifactOutput, error) {
  1045  	req, out := c.GetComponentVersionArtifactRequest(input)
  1046  	req.SetContext(ctx)
  1047  	req.ApplyOptions(opts...)
  1048  	return out, req.Send()
  1049  }
  1050  
  1051  const opGetCoreDevice = "GetCoreDevice"
  1052  
  1053  // GetCoreDeviceRequest generates a "aws/request.Request" representing the
  1054  // client's request for the GetCoreDevice operation. The "output" return
  1055  // value will be populated with the request's response once the request completes
  1056  // successfully.
  1057  //
  1058  // Use "Send" method on the returned Request to send the API call to the service.
  1059  // the "output" return value is not valid until after Send returns without error.
  1060  //
  1061  // See GetCoreDevice for more information on using the GetCoreDevice
  1062  // API call, and error handling.
  1063  //
  1064  // This method is useful when you want to inject custom logic or configuration
  1065  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1066  //
  1067  //
  1068  //    // Example sending a request using the GetCoreDeviceRequest method.
  1069  //    req, resp := client.GetCoreDeviceRequest(params)
  1070  //
  1071  //    err := req.Send()
  1072  //    if err == nil { // resp is now filled
  1073  //        fmt.Println(resp)
  1074  //    }
  1075  //
  1076  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetCoreDevice
  1077  func (c *GreengrassV2) GetCoreDeviceRequest(input *GetCoreDeviceInput) (req *request.Request, output *GetCoreDeviceOutput) {
  1078  	op := &request.Operation{
  1079  		Name:       opGetCoreDevice,
  1080  		HTTPMethod: "GET",
  1081  		HTTPPath:   "/greengrass/v2/coreDevices/{coreDeviceThingName}",
  1082  	}
  1083  
  1084  	if input == nil {
  1085  		input = &GetCoreDeviceInput{}
  1086  	}
  1087  
  1088  	output = &GetCoreDeviceOutput{}
  1089  	req = c.newRequest(op, input, output)
  1090  	return
  1091  }
  1092  
  1093  // GetCoreDevice API operation for AWS IoT Greengrass V2.
  1094  //
  1095  // Retrieves metadata for a Greengrass core device.
  1096  //
  1097  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1098  // with awserr.Error's Code and Message methods to get detailed information about
  1099  // the error.
  1100  //
  1101  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1102  // API operation GetCoreDevice for usage and error information.
  1103  //
  1104  // Returned Error Types:
  1105  //   * ValidationException
  1106  //   The request isn't valid. This can occur if your request contains malformed
  1107  //   JSON or unsupported characters.
  1108  //
  1109  //   * ResourceNotFoundException
  1110  //   The requested resource can't be found.
  1111  //
  1112  //   * AccessDeniedException
  1113  //   You don't have permission to perform the action.
  1114  //
  1115  //   * InternalServerException
  1116  //   IoT Greengrass can't process your request right now. Try again later.
  1117  //
  1118  //   * ThrottlingException
  1119  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1120  //   the amount of times that you can retrieve device or deployment status per
  1121  //   second.
  1122  //
  1123  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetCoreDevice
  1124  func (c *GreengrassV2) GetCoreDevice(input *GetCoreDeviceInput) (*GetCoreDeviceOutput, error) {
  1125  	req, out := c.GetCoreDeviceRequest(input)
  1126  	return out, req.Send()
  1127  }
  1128  
  1129  // GetCoreDeviceWithContext is the same as GetCoreDevice with the addition of
  1130  // the ability to pass a context and additional request options.
  1131  //
  1132  // See GetCoreDevice for details on how to use this API operation.
  1133  //
  1134  // The context must be non-nil and will be used for request cancellation. If
  1135  // the context is nil a panic will occur. In the future the SDK may create
  1136  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1137  // for more information on using Contexts.
  1138  func (c *GreengrassV2) GetCoreDeviceWithContext(ctx aws.Context, input *GetCoreDeviceInput, opts ...request.Option) (*GetCoreDeviceOutput, error) {
  1139  	req, out := c.GetCoreDeviceRequest(input)
  1140  	req.SetContext(ctx)
  1141  	req.ApplyOptions(opts...)
  1142  	return out, req.Send()
  1143  }
  1144  
  1145  const opGetDeployment = "GetDeployment"
  1146  
  1147  // GetDeploymentRequest generates a "aws/request.Request" representing the
  1148  // client's request for the GetDeployment operation. The "output" return
  1149  // value will be populated with the request's response once the request completes
  1150  // successfully.
  1151  //
  1152  // Use "Send" method on the returned Request to send the API call to the service.
  1153  // the "output" return value is not valid until after Send returns without error.
  1154  //
  1155  // See GetDeployment for more information on using the GetDeployment
  1156  // API call, and error handling.
  1157  //
  1158  // This method is useful when you want to inject custom logic or configuration
  1159  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1160  //
  1161  //
  1162  //    // Example sending a request using the GetDeploymentRequest method.
  1163  //    req, resp := client.GetDeploymentRequest(params)
  1164  //
  1165  //    err := req.Send()
  1166  //    if err == nil { // resp is now filled
  1167  //        fmt.Println(resp)
  1168  //    }
  1169  //
  1170  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetDeployment
  1171  func (c *GreengrassV2) GetDeploymentRequest(input *GetDeploymentInput) (req *request.Request, output *GetDeploymentOutput) {
  1172  	op := &request.Operation{
  1173  		Name:       opGetDeployment,
  1174  		HTTPMethod: "GET",
  1175  		HTTPPath:   "/greengrass/v2/deployments/{deploymentId}",
  1176  	}
  1177  
  1178  	if input == nil {
  1179  		input = &GetDeploymentInput{}
  1180  	}
  1181  
  1182  	output = &GetDeploymentOutput{}
  1183  	req = c.newRequest(op, input, output)
  1184  	return
  1185  }
  1186  
  1187  // GetDeployment API operation for AWS IoT Greengrass V2.
  1188  //
  1189  // Gets a deployment. Deployments define the components that run on Greengrass
  1190  // core devices.
  1191  //
  1192  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1193  // with awserr.Error's Code and Message methods to get detailed information about
  1194  // the error.
  1195  //
  1196  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1197  // API operation GetDeployment for usage and error information.
  1198  //
  1199  // Returned Error Types:
  1200  //   * ValidationException
  1201  //   The request isn't valid. This can occur if your request contains malformed
  1202  //   JSON or unsupported characters.
  1203  //
  1204  //   * ResourceNotFoundException
  1205  //   The requested resource can't be found.
  1206  //
  1207  //   * AccessDeniedException
  1208  //   You don't have permission to perform the action.
  1209  //
  1210  //   * InternalServerException
  1211  //   IoT Greengrass can't process your request right now. Try again later.
  1212  //
  1213  //   * ThrottlingException
  1214  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1215  //   the amount of times that you can retrieve device or deployment status per
  1216  //   second.
  1217  //
  1218  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/GetDeployment
  1219  func (c *GreengrassV2) GetDeployment(input *GetDeploymentInput) (*GetDeploymentOutput, error) {
  1220  	req, out := c.GetDeploymentRequest(input)
  1221  	return out, req.Send()
  1222  }
  1223  
  1224  // GetDeploymentWithContext is the same as GetDeployment with the addition of
  1225  // the ability to pass a context and additional request options.
  1226  //
  1227  // See GetDeployment for details on how to use this API operation.
  1228  //
  1229  // The context must be non-nil and will be used for request cancellation. If
  1230  // the context is nil a panic will occur. In the future the SDK may create
  1231  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1232  // for more information on using Contexts.
  1233  func (c *GreengrassV2) GetDeploymentWithContext(ctx aws.Context, input *GetDeploymentInput, opts ...request.Option) (*GetDeploymentOutput, error) {
  1234  	req, out := c.GetDeploymentRequest(input)
  1235  	req.SetContext(ctx)
  1236  	req.ApplyOptions(opts...)
  1237  	return out, req.Send()
  1238  }
  1239  
  1240  const opListClientDevicesAssociatedWithCoreDevice = "ListClientDevicesAssociatedWithCoreDevice"
  1241  
  1242  // ListClientDevicesAssociatedWithCoreDeviceRequest generates a "aws/request.Request" representing the
  1243  // client's request for the ListClientDevicesAssociatedWithCoreDevice operation. The "output" return
  1244  // value will be populated with the request's response once the request completes
  1245  // successfully.
  1246  //
  1247  // Use "Send" method on the returned Request to send the API call to the service.
  1248  // the "output" return value is not valid until after Send returns without error.
  1249  //
  1250  // See ListClientDevicesAssociatedWithCoreDevice for more information on using the ListClientDevicesAssociatedWithCoreDevice
  1251  // API call, and error handling.
  1252  //
  1253  // This method is useful when you want to inject custom logic or configuration
  1254  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1255  //
  1256  //
  1257  //    // Example sending a request using the ListClientDevicesAssociatedWithCoreDeviceRequest method.
  1258  //    req, resp := client.ListClientDevicesAssociatedWithCoreDeviceRequest(params)
  1259  //
  1260  //    err := req.Send()
  1261  //    if err == nil { // resp is now filled
  1262  //        fmt.Println(resp)
  1263  //    }
  1264  //
  1265  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListClientDevicesAssociatedWithCoreDevice
  1266  func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDeviceRequest(input *ListClientDevicesAssociatedWithCoreDeviceInput) (req *request.Request, output *ListClientDevicesAssociatedWithCoreDeviceOutput) {
  1267  	op := &request.Operation{
  1268  		Name:       opListClientDevicesAssociatedWithCoreDevice,
  1269  		HTTPMethod: "GET",
  1270  		HTTPPath:   "/greengrass/v2/coreDevices/{coreDeviceThingName}/associatedClientDevices",
  1271  		Paginator: &request.Paginator{
  1272  			InputTokens:     []string{"nextToken"},
  1273  			OutputTokens:    []string{"nextToken"},
  1274  			LimitToken:      "maxResults",
  1275  			TruncationToken: "",
  1276  		},
  1277  	}
  1278  
  1279  	if input == nil {
  1280  		input = &ListClientDevicesAssociatedWithCoreDeviceInput{}
  1281  	}
  1282  
  1283  	output = &ListClientDevicesAssociatedWithCoreDeviceOutput{}
  1284  	req = c.newRequest(op, input, output)
  1285  	return
  1286  }
  1287  
  1288  // ListClientDevicesAssociatedWithCoreDevice API operation for AWS IoT Greengrass V2.
  1289  //
  1290  // Retrieves a paginated list of client devices that are associated with a core
  1291  // device.
  1292  //
  1293  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1294  // with awserr.Error's Code and Message methods to get detailed information about
  1295  // the error.
  1296  //
  1297  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1298  // API operation ListClientDevicesAssociatedWithCoreDevice for usage and error information.
  1299  //
  1300  // Returned Error Types:
  1301  //   * ValidationException
  1302  //   The request isn't valid. This can occur if your request contains malformed
  1303  //   JSON or unsupported characters.
  1304  //
  1305  //   * ResourceNotFoundException
  1306  //   The requested resource can't be found.
  1307  //
  1308  //   * AccessDeniedException
  1309  //   You don't have permission to perform the action.
  1310  //
  1311  //   * InternalServerException
  1312  //   IoT Greengrass can't process your request right now. Try again later.
  1313  //
  1314  //   * ThrottlingException
  1315  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1316  //   the amount of times that you can retrieve device or deployment status per
  1317  //   second.
  1318  //
  1319  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListClientDevicesAssociatedWithCoreDevice
  1320  func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDevice(input *ListClientDevicesAssociatedWithCoreDeviceInput) (*ListClientDevicesAssociatedWithCoreDeviceOutput, error) {
  1321  	req, out := c.ListClientDevicesAssociatedWithCoreDeviceRequest(input)
  1322  	return out, req.Send()
  1323  }
  1324  
  1325  // ListClientDevicesAssociatedWithCoreDeviceWithContext is the same as ListClientDevicesAssociatedWithCoreDevice with the addition of
  1326  // the ability to pass a context and additional request options.
  1327  //
  1328  // See ListClientDevicesAssociatedWithCoreDevice for details on how to use this API operation.
  1329  //
  1330  // The context must be non-nil and will be used for request cancellation. If
  1331  // the context is nil a panic will occur. In the future the SDK may create
  1332  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1333  // for more information on using Contexts.
  1334  func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDeviceWithContext(ctx aws.Context, input *ListClientDevicesAssociatedWithCoreDeviceInput, opts ...request.Option) (*ListClientDevicesAssociatedWithCoreDeviceOutput, error) {
  1335  	req, out := c.ListClientDevicesAssociatedWithCoreDeviceRequest(input)
  1336  	req.SetContext(ctx)
  1337  	req.ApplyOptions(opts...)
  1338  	return out, req.Send()
  1339  }
  1340  
  1341  // ListClientDevicesAssociatedWithCoreDevicePages iterates over the pages of a ListClientDevicesAssociatedWithCoreDevice operation,
  1342  // calling the "fn" function with the response data for each page. To stop
  1343  // iterating, return false from the fn function.
  1344  //
  1345  // See ListClientDevicesAssociatedWithCoreDevice method for more information on how to use this operation.
  1346  //
  1347  // Note: This operation can generate multiple requests to a service.
  1348  //
  1349  //    // Example iterating over at most 3 pages of a ListClientDevicesAssociatedWithCoreDevice operation.
  1350  //    pageNum := 0
  1351  //    err := client.ListClientDevicesAssociatedWithCoreDevicePages(params,
  1352  //        func(page *greengrassv2.ListClientDevicesAssociatedWithCoreDeviceOutput, lastPage bool) bool {
  1353  //            pageNum++
  1354  //            fmt.Println(page)
  1355  //            return pageNum <= 3
  1356  //        })
  1357  //
  1358  func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDevicePages(input *ListClientDevicesAssociatedWithCoreDeviceInput, fn func(*ListClientDevicesAssociatedWithCoreDeviceOutput, bool) bool) error {
  1359  	return c.ListClientDevicesAssociatedWithCoreDevicePagesWithContext(aws.BackgroundContext(), input, fn)
  1360  }
  1361  
  1362  // ListClientDevicesAssociatedWithCoreDevicePagesWithContext same as ListClientDevicesAssociatedWithCoreDevicePages except
  1363  // it takes a Context and allows setting request options on the pages.
  1364  //
  1365  // The context must be non-nil and will be used for request cancellation. If
  1366  // the context is nil a panic will occur. In the future the SDK may create
  1367  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1368  // for more information on using Contexts.
  1369  func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDevicePagesWithContext(ctx aws.Context, input *ListClientDevicesAssociatedWithCoreDeviceInput, fn func(*ListClientDevicesAssociatedWithCoreDeviceOutput, bool) bool, opts ...request.Option) error {
  1370  	p := request.Pagination{
  1371  		NewRequest: func() (*request.Request, error) {
  1372  			var inCpy *ListClientDevicesAssociatedWithCoreDeviceInput
  1373  			if input != nil {
  1374  				tmp := *input
  1375  				inCpy = &tmp
  1376  			}
  1377  			req, _ := c.ListClientDevicesAssociatedWithCoreDeviceRequest(inCpy)
  1378  			req.SetContext(ctx)
  1379  			req.ApplyOptions(opts...)
  1380  			return req, nil
  1381  		},
  1382  	}
  1383  
  1384  	for p.Next() {
  1385  		if !fn(p.Page().(*ListClientDevicesAssociatedWithCoreDeviceOutput), !p.HasNextPage()) {
  1386  			break
  1387  		}
  1388  	}
  1389  
  1390  	return p.Err()
  1391  }
  1392  
  1393  const opListComponentVersions = "ListComponentVersions"
  1394  
  1395  // ListComponentVersionsRequest generates a "aws/request.Request" representing the
  1396  // client's request for the ListComponentVersions operation. The "output" return
  1397  // value will be populated with the request's response once the request completes
  1398  // successfully.
  1399  //
  1400  // Use "Send" method on the returned Request to send the API call to the service.
  1401  // the "output" return value is not valid until after Send returns without error.
  1402  //
  1403  // See ListComponentVersions for more information on using the ListComponentVersions
  1404  // API call, and error handling.
  1405  //
  1406  // This method is useful when you want to inject custom logic or configuration
  1407  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1408  //
  1409  //
  1410  //    // Example sending a request using the ListComponentVersionsRequest method.
  1411  //    req, resp := client.ListComponentVersionsRequest(params)
  1412  //
  1413  //    err := req.Send()
  1414  //    if err == nil { // resp is now filled
  1415  //        fmt.Println(resp)
  1416  //    }
  1417  //
  1418  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponentVersions
  1419  func (c *GreengrassV2) ListComponentVersionsRequest(input *ListComponentVersionsInput) (req *request.Request, output *ListComponentVersionsOutput) {
  1420  	op := &request.Operation{
  1421  		Name:       opListComponentVersions,
  1422  		HTTPMethod: "GET",
  1423  		HTTPPath:   "/greengrass/v2/components/{arn}/versions",
  1424  		Paginator: &request.Paginator{
  1425  			InputTokens:     []string{"nextToken"},
  1426  			OutputTokens:    []string{"nextToken"},
  1427  			LimitToken:      "maxResults",
  1428  			TruncationToken: "",
  1429  		},
  1430  	}
  1431  
  1432  	if input == nil {
  1433  		input = &ListComponentVersionsInput{}
  1434  	}
  1435  
  1436  	output = &ListComponentVersionsOutput{}
  1437  	req = c.newRequest(op, input, output)
  1438  	return
  1439  }
  1440  
  1441  // ListComponentVersions API operation for AWS IoT Greengrass V2.
  1442  //
  1443  // Retrieves a paginated list of all versions for a component. Greater versions
  1444  // are listed first.
  1445  //
  1446  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1447  // with awserr.Error's Code and Message methods to get detailed information about
  1448  // the error.
  1449  //
  1450  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1451  // API operation ListComponentVersions for usage and error information.
  1452  //
  1453  // Returned Error Types:
  1454  //   * ValidationException
  1455  //   The request isn't valid. This can occur if your request contains malformed
  1456  //   JSON or unsupported characters.
  1457  //
  1458  //   * AccessDeniedException
  1459  //   You don't have permission to perform the action.
  1460  //
  1461  //   * ResourceNotFoundException
  1462  //   The requested resource can't be found.
  1463  //
  1464  //   * ThrottlingException
  1465  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1466  //   the amount of times that you can retrieve device or deployment status per
  1467  //   second.
  1468  //
  1469  //   * InternalServerException
  1470  //   IoT Greengrass can't process your request right now. Try again later.
  1471  //
  1472  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponentVersions
  1473  func (c *GreengrassV2) ListComponentVersions(input *ListComponentVersionsInput) (*ListComponentVersionsOutput, error) {
  1474  	req, out := c.ListComponentVersionsRequest(input)
  1475  	return out, req.Send()
  1476  }
  1477  
  1478  // ListComponentVersionsWithContext is the same as ListComponentVersions with the addition of
  1479  // the ability to pass a context and additional request options.
  1480  //
  1481  // See ListComponentVersions for details on how to use this API operation.
  1482  //
  1483  // The context must be non-nil and will be used for request cancellation. If
  1484  // the context is nil a panic will occur. In the future the SDK may create
  1485  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1486  // for more information on using Contexts.
  1487  func (c *GreengrassV2) ListComponentVersionsWithContext(ctx aws.Context, input *ListComponentVersionsInput, opts ...request.Option) (*ListComponentVersionsOutput, error) {
  1488  	req, out := c.ListComponentVersionsRequest(input)
  1489  	req.SetContext(ctx)
  1490  	req.ApplyOptions(opts...)
  1491  	return out, req.Send()
  1492  }
  1493  
  1494  // ListComponentVersionsPages iterates over the pages of a ListComponentVersions operation,
  1495  // calling the "fn" function with the response data for each page. To stop
  1496  // iterating, return false from the fn function.
  1497  //
  1498  // See ListComponentVersions method for more information on how to use this operation.
  1499  //
  1500  // Note: This operation can generate multiple requests to a service.
  1501  //
  1502  //    // Example iterating over at most 3 pages of a ListComponentVersions operation.
  1503  //    pageNum := 0
  1504  //    err := client.ListComponentVersionsPages(params,
  1505  //        func(page *greengrassv2.ListComponentVersionsOutput, lastPage bool) bool {
  1506  //            pageNum++
  1507  //            fmt.Println(page)
  1508  //            return pageNum <= 3
  1509  //        })
  1510  //
  1511  func (c *GreengrassV2) ListComponentVersionsPages(input *ListComponentVersionsInput, fn func(*ListComponentVersionsOutput, bool) bool) error {
  1512  	return c.ListComponentVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
  1513  }
  1514  
  1515  // ListComponentVersionsPagesWithContext same as ListComponentVersionsPages except
  1516  // it takes a Context and allows setting request options on the pages.
  1517  //
  1518  // The context must be non-nil and will be used for request cancellation. If
  1519  // the context is nil a panic will occur. In the future the SDK may create
  1520  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1521  // for more information on using Contexts.
  1522  func (c *GreengrassV2) ListComponentVersionsPagesWithContext(ctx aws.Context, input *ListComponentVersionsInput, fn func(*ListComponentVersionsOutput, bool) bool, opts ...request.Option) error {
  1523  	p := request.Pagination{
  1524  		NewRequest: func() (*request.Request, error) {
  1525  			var inCpy *ListComponentVersionsInput
  1526  			if input != nil {
  1527  				tmp := *input
  1528  				inCpy = &tmp
  1529  			}
  1530  			req, _ := c.ListComponentVersionsRequest(inCpy)
  1531  			req.SetContext(ctx)
  1532  			req.ApplyOptions(opts...)
  1533  			return req, nil
  1534  		},
  1535  	}
  1536  
  1537  	for p.Next() {
  1538  		if !fn(p.Page().(*ListComponentVersionsOutput), !p.HasNextPage()) {
  1539  			break
  1540  		}
  1541  	}
  1542  
  1543  	return p.Err()
  1544  }
  1545  
  1546  const opListComponents = "ListComponents"
  1547  
  1548  // ListComponentsRequest generates a "aws/request.Request" representing the
  1549  // client's request for the ListComponents operation. The "output" return
  1550  // value will be populated with the request's response once the request completes
  1551  // successfully.
  1552  //
  1553  // Use "Send" method on the returned Request to send the API call to the service.
  1554  // the "output" return value is not valid until after Send returns without error.
  1555  //
  1556  // See ListComponents for more information on using the ListComponents
  1557  // API call, and error handling.
  1558  //
  1559  // This method is useful when you want to inject custom logic or configuration
  1560  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1561  //
  1562  //
  1563  //    // Example sending a request using the ListComponentsRequest method.
  1564  //    req, resp := client.ListComponentsRequest(params)
  1565  //
  1566  //    err := req.Send()
  1567  //    if err == nil { // resp is now filled
  1568  //        fmt.Println(resp)
  1569  //    }
  1570  //
  1571  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponents
  1572  func (c *GreengrassV2) ListComponentsRequest(input *ListComponentsInput) (req *request.Request, output *ListComponentsOutput) {
  1573  	op := &request.Operation{
  1574  		Name:       opListComponents,
  1575  		HTTPMethod: "GET",
  1576  		HTTPPath:   "/greengrass/v2/components",
  1577  		Paginator: &request.Paginator{
  1578  			InputTokens:     []string{"nextToken"},
  1579  			OutputTokens:    []string{"nextToken"},
  1580  			LimitToken:      "maxResults",
  1581  			TruncationToken: "",
  1582  		},
  1583  	}
  1584  
  1585  	if input == nil {
  1586  		input = &ListComponentsInput{}
  1587  	}
  1588  
  1589  	output = &ListComponentsOutput{}
  1590  	req = c.newRequest(op, input, output)
  1591  	return
  1592  }
  1593  
  1594  // ListComponents API operation for AWS IoT Greengrass V2.
  1595  //
  1596  // Retrieves a paginated list of component summaries. This list includes components
  1597  // that you have permission to view.
  1598  //
  1599  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1600  // with awserr.Error's Code and Message methods to get detailed information about
  1601  // the error.
  1602  //
  1603  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1604  // API operation ListComponents for usage and error information.
  1605  //
  1606  // Returned Error Types:
  1607  //   * ValidationException
  1608  //   The request isn't valid. This can occur if your request contains malformed
  1609  //   JSON or unsupported characters.
  1610  //
  1611  //   * AccessDeniedException
  1612  //   You don't have permission to perform the action.
  1613  //
  1614  //   * ThrottlingException
  1615  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1616  //   the amount of times that you can retrieve device or deployment status per
  1617  //   second.
  1618  //
  1619  //   * InternalServerException
  1620  //   IoT Greengrass can't process your request right now. Try again later.
  1621  //
  1622  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListComponents
  1623  func (c *GreengrassV2) ListComponents(input *ListComponentsInput) (*ListComponentsOutput, error) {
  1624  	req, out := c.ListComponentsRequest(input)
  1625  	return out, req.Send()
  1626  }
  1627  
  1628  // ListComponentsWithContext is the same as ListComponents with the addition of
  1629  // the ability to pass a context and additional request options.
  1630  //
  1631  // See ListComponents for details on how to use this API operation.
  1632  //
  1633  // The context must be non-nil and will be used for request cancellation. If
  1634  // the context is nil a panic will occur. In the future the SDK may create
  1635  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1636  // for more information on using Contexts.
  1637  func (c *GreengrassV2) ListComponentsWithContext(ctx aws.Context, input *ListComponentsInput, opts ...request.Option) (*ListComponentsOutput, error) {
  1638  	req, out := c.ListComponentsRequest(input)
  1639  	req.SetContext(ctx)
  1640  	req.ApplyOptions(opts...)
  1641  	return out, req.Send()
  1642  }
  1643  
  1644  // ListComponentsPages iterates over the pages of a ListComponents operation,
  1645  // calling the "fn" function with the response data for each page. To stop
  1646  // iterating, return false from the fn function.
  1647  //
  1648  // See ListComponents method for more information on how to use this operation.
  1649  //
  1650  // Note: This operation can generate multiple requests to a service.
  1651  //
  1652  //    // Example iterating over at most 3 pages of a ListComponents operation.
  1653  //    pageNum := 0
  1654  //    err := client.ListComponentsPages(params,
  1655  //        func(page *greengrassv2.ListComponentsOutput, lastPage bool) bool {
  1656  //            pageNum++
  1657  //            fmt.Println(page)
  1658  //            return pageNum <= 3
  1659  //        })
  1660  //
  1661  func (c *GreengrassV2) ListComponentsPages(input *ListComponentsInput, fn func(*ListComponentsOutput, bool) bool) error {
  1662  	return c.ListComponentsPagesWithContext(aws.BackgroundContext(), input, fn)
  1663  }
  1664  
  1665  // ListComponentsPagesWithContext same as ListComponentsPages except
  1666  // it takes a Context and allows setting request options on the pages.
  1667  //
  1668  // The context must be non-nil and will be used for request cancellation. If
  1669  // the context is nil a panic will occur. In the future the SDK may create
  1670  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1671  // for more information on using Contexts.
  1672  func (c *GreengrassV2) ListComponentsPagesWithContext(ctx aws.Context, input *ListComponentsInput, fn func(*ListComponentsOutput, bool) bool, opts ...request.Option) error {
  1673  	p := request.Pagination{
  1674  		NewRequest: func() (*request.Request, error) {
  1675  			var inCpy *ListComponentsInput
  1676  			if input != nil {
  1677  				tmp := *input
  1678  				inCpy = &tmp
  1679  			}
  1680  			req, _ := c.ListComponentsRequest(inCpy)
  1681  			req.SetContext(ctx)
  1682  			req.ApplyOptions(opts...)
  1683  			return req, nil
  1684  		},
  1685  	}
  1686  
  1687  	for p.Next() {
  1688  		if !fn(p.Page().(*ListComponentsOutput), !p.HasNextPage()) {
  1689  			break
  1690  		}
  1691  	}
  1692  
  1693  	return p.Err()
  1694  }
  1695  
  1696  const opListCoreDevices = "ListCoreDevices"
  1697  
  1698  // ListCoreDevicesRequest generates a "aws/request.Request" representing the
  1699  // client's request for the ListCoreDevices operation. The "output" return
  1700  // value will be populated with the request's response once the request completes
  1701  // successfully.
  1702  //
  1703  // Use "Send" method on the returned Request to send the API call to the service.
  1704  // the "output" return value is not valid until after Send returns without error.
  1705  //
  1706  // See ListCoreDevices for more information on using the ListCoreDevices
  1707  // API call, and error handling.
  1708  //
  1709  // This method is useful when you want to inject custom logic or configuration
  1710  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1711  //
  1712  //
  1713  //    // Example sending a request using the ListCoreDevicesRequest method.
  1714  //    req, resp := client.ListCoreDevicesRequest(params)
  1715  //
  1716  //    err := req.Send()
  1717  //    if err == nil { // resp is now filled
  1718  //        fmt.Println(resp)
  1719  //    }
  1720  //
  1721  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListCoreDevices
  1722  func (c *GreengrassV2) ListCoreDevicesRequest(input *ListCoreDevicesInput) (req *request.Request, output *ListCoreDevicesOutput) {
  1723  	op := &request.Operation{
  1724  		Name:       opListCoreDevices,
  1725  		HTTPMethod: "GET",
  1726  		HTTPPath:   "/greengrass/v2/coreDevices",
  1727  		Paginator: &request.Paginator{
  1728  			InputTokens:     []string{"nextToken"},
  1729  			OutputTokens:    []string{"nextToken"},
  1730  			LimitToken:      "maxResults",
  1731  			TruncationToken: "",
  1732  		},
  1733  	}
  1734  
  1735  	if input == nil {
  1736  		input = &ListCoreDevicesInput{}
  1737  	}
  1738  
  1739  	output = &ListCoreDevicesOutput{}
  1740  	req = c.newRequest(op, input, output)
  1741  	return
  1742  }
  1743  
  1744  // ListCoreDevices API operation for AWS IoT Greengrass V2.
  1745  //
  1746  // Retrieves a paginated list of Greengrass core devices.
  1747  //
  1748  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1749  // with awserr.Error's Code and Message methods to get detailed information about
  1750  // the error.
  1751  //
  1752  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1753  // API operation ListCoreDevices for usage and error information.
  1754  //
  1755  // Returned Error Types:
  1756  //   * ValidationException
  1757  //   The request isn't valid. This can occur if your request contains malformed
  1758  //   JSON or unsupported characters.
  1759  //
  1760  //   * AccessDeniedException
  1761  //   You don't have permission to perform the action.
  1762  //
  1763  //   * InternalServerException
  1764  //   IoT Greengrass can't process your request right now. Try again later.
  1765  //
  1766  //   * ThrottlingException
  1767  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1768  //   the amount of times that you can retrieve device or deployment status per
  1769  //   second.
  1770  //
  1771  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListCoreDevices
  1772  func (c *GreengrassV2) ListCoreDevices(input *ListCoreDevicesInput) (*ListCoreDevicesOutput, error) {
  1773  	req, out := c.ListCoreDevicesRequest(input)
  1774  	return out, req.Send()
  1775  }
  1776  
  1777  // ListCoreDevicesWithContext is the same as ListCoreDevices with the addition of
  1778  // the ability to pass a context and additional request options.
  1779  //
  1780  // See ListCoreDevices for details on how to use this API operation.
  1781  //
  1782  // The context must be non-nil and will be used for request cancellation. If
  1783  // the context is nil a panic will occur. In the future the SDK may create
  1784  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1785  // for more information on using Contexts.
  1786  func (c *GreengrassV2) ListCoreDevicesWithContext(ctx aws.Context, input *ListCoreDevicesInput, opts ...request.Option) (*ListCoreDevicesOutput, error) {
  1787  	req, out := c.ListCoreDevicesRequest(input)
  1788  	req.SetContext(ctx)
  1789  	req.ApplyOptions(opts...)
  1790  	return out, req.Send()
  1791  }
  1792  
  1793  // ListCoreDevicesPages iterates over the pages of a ListCoreDevices operation,
  1794  // calling the "fn" function with the response data for each page. To stop
  1795  // iterating, return false from the fn function.
  1796  //
  1797  // See ListCoreDevices method for more information on how to use this operation.
  1798  //
  1799  // Note: This operation can generate multiple requests to a service.
  1800  //
  1801  //    // Example iterating over at most 3 pages of a ListCoreDevices operation.
  1802  //    pageNum := 0
  1803  //    err := client.ListCoreDevicesPages(params,
  1804  //        func(page *greengrassv2.ListCoreDevicesOutput, lastPage bool) bool {
  1805  //            pageNum++
  1806  //            fmt.Println(page)
  1807  //            return pageNum <= 3
  1808  //        })
  1809  //
  1810  func (c *GreengrassV2) ListCoreDevicesPages(input *ListCoreDevicesInput, fn func(*ListCoreDevicesOutput, bool) bool) error {
  1811  	return c.ListCoreDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
  1812  }
  1813  
  1814  // ListCoreDevicesPagesWithContext same as ListCoreDevicesPages except
  1815  // it takes a Context and allows setting request options on the pages.
  1816  //
  1817  // The context must be non-nil and will be used for request cancellation. If
  1818  // the context is nil a panic will occur. In the future the SDK may create
  1819  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1820  // for more information on using Contexts.
  1821  func (c *GreengrassV2) ListCoreDevicesPagesWithContext(ctx aws.Context, input *ListCoreDevicesInput, fn func(*ListCoreDevicesOutput, bool) bool, opts ...request.Option) error {
  1822  	p := request.Pagination{
  1823  		NewRequest: func() (*request.Request, error) {
  1824  			var inCpy *ListCoreDevicesInput
  1825  			if input != nil {
  1826  				tmp := *input
  1827  				inCpy = &tmp
  1828  			}
  1829  			req, _ := c.ListCoreDevicesRequest(inCpy)
  1830  			req.SetContext(ctx)
  1831  			req.ApplyOptions(opts...)
  1832  			return req, nil
  1833  		},
  1834  	}
  1835  
  1836  	for p.Next() {
  1837  		if !fn(p.Page().(*ListCoreDevicesOutput), !p.HasNextPage()) {
  1838  			break
  1839  		}
  1840  	}
  1841  
  1842  	return p.Err()
  1843  }
  1844  
  1845  const opListDeployments = "ListDeployments"
  1846  
  1847  // ListDeploymentsRequest generates a "aws/request.Request" representing the
  1848  // client's request for the ListDeployments operation. The "output" return
  1849  // value will be populated with the request's response once the request completes
  1850  // successfully.
  1851  //
  1852  // Use "Send" method on the returned Request to send the API call to the service.
  1853  // the "output" return value is not valid until after Send returns without error.
  1854  //
  1855  // See ListDeployments for more information on using the ListDeployments
  1856  // API call, and error handling.
  1857  //
  1858  // This method is useful when you want to inject custom logic or configuration
  1859  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1860  //
  1861  //
  1862  //    // Example sending a request using the ListDeploymentsRequest method.
  1863  //    req, resp := client.ListDeploymentsRequest(params)
  1864  //
  1865  //    err := req.Send()
  1866  //    if err == nil { // resp is now filled
  1867  //        fmt.Println(resp)
  1868  //    }
  1869  //
  1870  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListDeployments
  1871  func (c *GreengrassV2) ListDeploymentsRequest(input *ListDeploymentsInput) (req *request.Request, output *ListDeploymentsOutput) {
  1872  	op := &request.Operation{
  1873  		Name:       opListDeployments,
  1874  		HTTPMethod: "GET",
  1875  		HTTPPath:   "/greengrass/v2/deployments",
  1876  		Paginator: &request.Paginator{
  1877  			InputTokens:     []string{"nextToken"},
  1878  			OutputTokens:    []string{"nextToken"},
  1879  			LimitToken:      "maxResults",
  1880  			TruncationToken: "",
  1881  		},
  1882  	}
  1883  
  1884  	if input == nil {
  1885  		input = &ListDeploymentsInput{}
  1886  	}
  1887  
  1888  	output = &ListDeploymentsOutput{}
  1889  	req = c.newRequest(op, input, output)
  1890  	return
  1891  }
  1892  
  1893  // ListDeployments API operation for AWS IoT Greengrass V2.
  1894  //
  1895  // Retrieves a paginated list of deployments.
  1896  //
  1897  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1898  // with awserr.Error's Code and Message methods to get detailed information about
  1899  // the error.
  1900  //
  1901  // See the AWS API reference guide for AWS IoT Greengrass V2's
  1902  // API operation ListDeployments for usage and error information.
  1903  //
  1904  // Returned Error Types:
  1905  //   * ValidationException
  1906  //   The request isn't valid. This can occur if your request contains malformed
  1907  //   JSON or unsupported characters.
  1908  //
  1909  //   * AccessDeniedException
  1910  //   You don't have permission to perform the action.
  1911  //
  1912  //   * InternalServerException
  1913  //   IoT Greengrass can't process your request right now. Try again later.
  1914  //
  1915  //   * ThrottlingException
  1916  //   Your request exceeded a request rate quota. For example, you might have exceeded
  1917  //   the amount of times that you can retrieve device or deployment status per
  1918  //   second.
  1919  //
  1920  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListDeployments
  1921  func (c *GreengrassV2) ListDeployments(input *ListDeploymentsInput) (*ListDeploymentsOutput, error) {
  1922  	req, out := c.ListDeploymentsRequest(input)
  1923  	return out, req.Send()
  1924  }
  1925  
  1926  // ListDeploymentsWithContext is the same as ListDeployments with the addition of
  1927  // the ability to pass a context and additional request options.
  1928  //
  1929  // See ListDeployments for details on how to use this API operation.
  1930  //
  1931  // The context must be non-nil and will be used for request cancellation. If
  1932  // the context is nil a panic will occur. In the future the SDK may create
  1933  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1934  // for more information on using Contexts.
  1935  func (c *GreengrassV2) ListDeploymentsWithContext(ctx aws.Context, input *ListDeploymentsInput, opts ...request.Option) (*ListDeploymentsOutput, error) {
  1936  	req, out := c.ListDeploymentsRequest(input)
  1937  	req.SetContext(ctx)
  1938  	req.ApplyOptions(opts...)
  1939  	return out, req.Send()
  1940  }
  1941  
  1942  // ListDeploymentsPages iterates over the pages of a ListDeployments operation,
  1943  // calling the "fn" function with the response data for each page. To stop
  1944  // iterating, return false from the fn function.
  1945  //
  1946  // See ListDeployments method for more information on how to use this operation.
  1947  //
  1948  // Note: This operation can generate multiple requests to a service.
  1949  //
  1950  //    // Example iterating over at most 3 pages of a ListDeployments operation.
  1951  //    pageNum := 0
  1952  //    err := client.ListDeploymentsPages(params,
  1953  //        func(page *greengrassv2.ListDeploymentsOutput, lastPage bool) bool {
  1954  //            pageNum++
  1955  //            fmt.Println(page)
  1956  //            return pageNum <= 3
  1957  //        })
  1958  //
  1959  func (c *GreengrassV2) ListDeploymentsPages(input *ListDeploymentsInput, fn func(*ListDeploymentsOutput, bool) bool) error {
  1960  	return c.ListDeploymentsPagesWithContext(aws.BackgroundContext(), input, fn)
  1961  }
  1962  
  1963  // ListDeploymentsPagesWithContext same as ListDeploymentsPages except
  1964  // it takes a Context and allows setting request options on the pages.
  1965  //
  1966  // The context must be non-nil and will be used for request cancellation. If
  1967  // the context is nil a panic will occur. In the future the SDK may create
  1968  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1969  // for more information on using Contexts.
  1970  func (c *GreengrassV2) ListDeploymentsPagesWithContext(ctx aws.Context, input *ListDeploymentsInput, fn func(*ListDeploymentsOutput, bool) bool, opts ...request.Option) error {
  1971  	p := request.Pagination{
  1972  		NewRequest: func() (*request.Request, error) {
  1973  			var inCpy *ListDeploymentsInput
  1974  			if input != nil {
  1975  				tmp := *input
  1976  				inCpy = &tmp
  1977  			}
  1978  			req, _ := c.ListDeploymentsRequest(inCpy)
  1979  			req.SetContext(ctx)
  1980  			req.ApplyOptions(opts...)
  1981  			return req, nil
  1982  		},
  1983  	}
  1984  
  1985  	for p.Next() {
  1986  		if !fn(p.Page().(*ListDeploymentsOutput), !p.HasNextPage()) {
  1987  			break
  1988  		}
  1989  	}
  1990  
  1991  	return p.Err()
  1992  }
  1993  
  1994  const opListEffectiveDeployments = "ListEffectiveDeployments"
  1995  
  1996  // ListEffectiveDeploymentsRequest generates a "aws/request.Request" representing the
  1997  // client's request for the ListEffectiveDeployments operation. The "output" return
  1998  // value will be populated with the request's response once the request completes
  1999  // successfully.
  2000  //
  2001  // Use "Send" method on the returned Request to send the API call to the service.
  2002  // the "output" return value is not valid until after Send returns without error.
  2003  //
  2004  // See ListEffectiveDeployments for more information on using the ListEffectiveDeployments
  2005  // API call, and error handling.
  2006  //
  2007  // This method is useful when you want to inject custom logic or configuration
  2008  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2009  //
  2010  //
  2011  //    // Example sending a request using the ListEffectiveDeploymentsRequest method.
  2012  //    req, resp := client.ListEffectiveDeploymentsRequest(params)
  2013  //
  2014  //    err := req.Send()
  2015  //    if err == nil { // resp is now filled
  2016  //        fmt.Println(resp)
  2017  //    }
  2018  //
  2019  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListEffectiveDeployments
  2020  func (c *GreengrassV2) ListEffectiveDeploymentsRequest(input *ListEffectiveDeploymentsInput) (req *request.Request, output *ListEffectiveDeploymentsOutput) {
  2021  	op := &request.Operation{
  2022  		Name:       opListEffectiveDeployments,
  2023  		HTTPMethod: "GET",
  2024  		HTTPPath:   "/greengrass/v2/coreDevices/{coreDeviceThingName}/effectiveDeployments",
  2025  		Paginator: &request.Paginator{
  2026  			InputTokens:     []string{"nextToken"},
  2027  			OutputTokens:    []string{"nextToken"},
  2028  			LimitToken:      "maxResults",
  2029  			TruncationToken: "",
  2030  		},
  2031  	}
  2032  
  2033  	if input == nil {
  2034  		input = &ListEffectiveDeploymentsInput{}
  2035  	}
  2036  
  2037  	output = &ListEffectiveDeploymentsOutput{}
  2038  	req = c.newRequest(op, input, output)
  2039  	return
  2040  }
  2041  
  2042  // ListEffectiveDeployments API operation for AWS IoT Greengrass V2.
  2043  //
  2044  // Retrieves a paginated list of deployment jobs that IoT Greengrass sends to
  2045  // Greengrass core devices.
  2046  //
  2047  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2048  // with awserr.Error's Code and Message methods to get detailed information about
  2049  // the error.
  2050  //
  2051  // See the AWS API reference guide for AWS IoT Greengrass V2's
  2052  // API operation ListEffectiveDeployments for usage and error information.
  2053  //
  2054  // Returned Error Types:
  2055  //   * ValidationException
  2056  //   The request isn't valid. This can occur if your request contains malformed
  2057  //   JSON or unsupported characters.
  2058  //
  2059  //   * ResourceNotFoundException
  2060  //   The requested resource can't be found.
  2061  //
  2062  //   * AccessDeniedException
  2063  //   You don't have permission to perform the action.
  2064  //
  2065  //   * InternalServerException
  2066  //   IoT Greengrass can't process your request right now. Try again later.
  2067  //
  2068  //   * ThrottlingException
  2069  //   Your request exceeded a request rate quota. For example, you might have exceeded
  2070  //   the amount of times that you can retrieve device or deployment status per
  2071  //   second.
  2072  //
  2073  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListEffectiveDeployments
  2074  func (c *GreengrassV2) ListEffectiveDeployments(input *ListEffectiveDeploymentsInput) (*ListEffectiveDeploymentsOutput, error) {
  2075  	req, out := c.ListEffectiveDeploymentsRequest(input)
  2076  	return out, req.Send()
  2077  }
  2078  
  2079  // ListEffectiveDeploymentsWithContext is the same as ListEffectiveDeployments with the addition of
  2080  // the ability to pass a context and additional request options.
  2081  //
  2082  // See ListEffectiveDeployments for details on how to use this API operation.
  2083  //
  2084  // The context must be non-nil and will be used for request cancellation. If
  2085  // the context is nil a panic will occur. In the future the SDK may create
  2086  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2087  // for more information on using Contexts.
  2088  func (c *GreengrassV2) ListEffectiveDeploymentsWithContext(ctx aws.Context, input *ListEffectiveDeploymentsInput, opts ...request.Option) (*ListEffectiveDeploymentsOutput, error) {
  2089  	req, out := c.ListEffectiveDeploymentsRequest(input)
  2090  	req.SetContext(ctx)
  2091  	req.ApplyOptions(opts...)
  2092  	return out, req.Send()
  2093  }
  2094  
  2095  // ListEffectiveDeploymentsPages iterates over the pages of a ListEffectiveDeployments operation,
  2096  // calling the "fn" function with the response data for each page. To stop
  2097  // iterating, return false from the fn function.
  2098  //
  2099  // See ListEffectiveDeployments method for more information on how to use this operation.
  2100  //
  2101  // Note: This operation can generate multiple requests to a service.
  2102  //
  2103  //    // Example iterating over at most 3 pages of a ListEffectiveDeployments operation.
  2104  //    pageNum := 0
  2105  //    err := client.ListEffectiveDeploymentsPages(params,
  2106  //        func(page *greengrassv2.ListEffectiveDeploymentsOutput, lastPage bool) bool {
  2107  //            pageNum++
  2108  //            fmt.Println(page)
  2109  //            return pageNum <= 3
  2110  //        })
  2111  //
  2112  func (c *GreengrassV2) ListEffectiveDeploymentsPages(input *ListEffectiveDeploymentsInput, fn func(*ListEffectiveDeploymentsOutput, bool) bool) error {
  2113  	return c.ListEffectiveDeploymentsPagesWithContext(aws.BackgroundContext(), input, fn)
  2114  }
  2115  
  2116  // ListEffectiveDeploymentsPagesWithContext same as ListEffectiveDeploymentsPages except
  2117  // it takes a Context and allows setting request options on the pages.
  2118  //
  2119  // The context must be non-nil and will be used for request cancellation. If
  2120  // the context is nil a panic will occur. In the future the SDK may create
  2121  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2122  // for more information on using Contexts.
  2123  func (c *GreengrassV2) ListEffectiveDeploymentsPagesWithContext(ctx aws.Context, input *ListEffectiveDeploymentsInput, fn func(*ListEffectiveDeploymentsOutput, bool) bool, opts ...request.Option) error {
  2124  	p := request.Pagination{
  2125  		NewRequest: func() (*request.Request, error) {
  2126  			var inCpy *ListEffectiveDeploymentsInput
  2127  			if input != nil {
  2128  				tmp := *input
  2129  				inCpy = &tmp
  2130  			}
  2131  			req, _ := c.ListEffectiveDeploymentsRequest(inCpy)
  2132  			req.SetContext(ctx)
  2133  			req.ApplyOptions(opts...)
  2134  			return req, nil
  2135  		},
  2136  	}
  2137  
  2138  	for p.Next() {
  2139  		if !fn(p.Page().(*ListEffectiveDeploymentsOutput), !p.HasNextPage()) {
  2140  			break
  2141  		}
  2142  	}
  2143  
  2144  	return p.Err()
  2145  }
  2146  
  2147  const opListInstalledComponents = "ListInstalledComponents"
  2148  
  2149  // ListInstalledComponentsRequest generates a "aws/request.Request" representing the
  2150  // client's request for the ListInstalledComponents operation. The "output" return
  2151  // value will be populated with the request's response once the request completes
  2152  // successfully.
  2153  //
  2154  // Use "Send" method on the returned Request to send the API call to the service.
  2155  // the "output" return value is not valid until after Send returns without error.
  2156  //
  2157  // See ListInstalledComponents for more information on using the ListInstalledComponents
  2158  // API call, and error handling.
  2159  //
  2160  // This method is useful when you want to inject custom logic or configuration
  2161  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2162  //
  2163  //
  2164  //    // Example sending a request using the ListInstalledComponentsRequest method.
  2165  //    req, resp := client.ListInstalledComponentsRequest(params)
  2166  //
  2167  //    err := req.Send()
  2168  //    if err == nil { // resp is now filled
  2169  //        fmt.Println(resp)
  2170  //    }
  2171  //
  2172  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListInstalledComponents
  2173  func (c *GreengrassV2) ListInstalledComponentsRequest(input *ListInstalledComponentsInput) (req *request.Request, output *ListInstalledComponentsOutput) {
  2174  	op := &request.Operation{
  2175  		Name:       opListInstalledComponents,
  2176  		HTTPMethod: "GET",
  2177  		HTTPPath:   "/greengrass/v2/coreDevices/{coreDeviceThingName}/installedComponents",
  2178  		Paginator: &request.Paginator{
  2179  			InputTokens:     []string{"nextToken"},
  2180  			OutputTokens:    []string{"nextToken"},
  2181  			LimitToken:      "maxResults",
  2182  			TruncationToken: "",
  2183  		},
  2184  	}
  2185  
  2186  	if input == nil {
  2187  		input = &ListInstalledComponentsInput{}
  2188  	}
  2189  
  2190  	output = &ListInstalledComponentsOutput{}
  2191  	req = c.newRequest(op, input, output)
  2192  	return
  2193  }
  2194  
  2195  // ListInstalledComponents API operation for AWS IoT Greengrass V2.
  2196  //
  2197  // Retrieves a paginated list of the components that a Greengrass core device
  2198  // runs.
  2199  //
  2200  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2201  // with awserr.Error's Code and Message methods to get detailed information about
  2202  // the error.
  2203  //
  2204  // See the AWS API reference guide for AWS IoT Greengrass V2's
  2205  // API operation ListInstalledComponents for usage and error information.
  2206  //
  2207  // Returned Error Types:
  2208  //   * ValidationException
  2209  //   The request isn't valid. This can occur if your request contains malformed
  2210  //   JSON or unsupported characters.
  2211  //
  2212  //   * ResourceNotFoundException
  2213  //   The requested resource can't be found.
  2214  //
  2215  //   * AccessDeniedException
  2216  //   You don't have permission to perform the action.
  2217  //
  2218  //   * InternalServerException
  2219  //   IoT Greengrass can't process your request right now. Try again later.
  2220  //
  2221  //   * ThrottlingException
  2222  //   Your request exceeded a request rate quota. For example, you might have exceeded
  2223  //   the amount of times that you can retrieve device or deployment status per
  2224  //   second.
  2225  //
  2226  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListInstalledComponents
  2227  func (c *GreengrassV2) ListInstalledComponents(input *ListInstalledComponentsInput) (*ListInstalledComponentsOutput, error) {
  2228  	req, out := c.ListInstalledComponentsRequest(input)
  2229  	return out, req.Send()
  2230  }
  2231  
  2232  // ListInstalledComponentsWithContext is the same as ListInstalledComponents with the addition of
  2233  // the ability to pass a context and additional request options.
  2234  //
  2235  // See ListInstalledComponents for details on how to use this API operation.
  2236  //
  2237  // The context must be non-nil and will be used for request cancellation. If
  2238  // the context is nil a panic will occur. In the future the SDK may create
  2239  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2240  // for more information on using Contexts.
  2241  func (c *GreengrassV2) ListInstalledComponentsWithContext(ctx aws.Context, input *ListInstalledComponentsInput, opts ...request.Option) (*ListInstalledComponentsOutput, error) {
  2242  	req, out := c.ListInstalledComponentsRequest(input)
  2243  	req.SetContext(ctx)
  2244  	req.ApplyOptions(opts...)
  2245  	return out, req.Send()
  2246  }
  2247  
  2248  // ListInstalledComponentsPages iterates over the pages of a ListInstalledComponents operation,
  2249  // calling the "fn" function with the response data for each page. To stop
  2250  // iterating, return false from the fn function.
  2251  //
  2252  // See ListInstalledComponents method for more information on how to use this operation.
  2253  //
  2254  // Note: This operation can generate multiple requests to a service.
  2255  //
  2256  //    // Example iterating over at most 3 pages of a ListInstalledComponents operation.
  2257  //    pageNum := 0
  2258  //    err := client.ListInstalledComponentsPages(params,
  2259  //        func(page *greengrassv2.ListInstalledComponentsOutput, lastPage bool) bool {
  2260  //            pageNum++
  2261  //            fmt.Println(page)
  2262  //            return pageNum <= 3
  2263  //        })
  2264  //
  2265  func (c *GreengrassV2) ListInstalledComponentsPages(input *ListInstalledComponentsInput, fn func(*ListInstalledComponentsOutput, bool) bool) error {
  2266  	return c.ListInstalledComponentsPagesWithContext(aws.BackgroundContext(), input, fn)
  2267  }
  2268  
  2269  // ListInstalledComponentsPagesWithContext same as ListInstalledComponentsPages except
  2270  // it takes a Context and allows setting request options on the pages.
  2271  //
  2272  // The context must be non-nil and will be used for request cancellation. If
  2273  // the context is nil a panic will occur. In the future the SDK may create
  2274  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2275  // for more information on using Contexts.
  2276  func (c *GreengrassV2) ListInstalledComponentsPagesWithContext(ctx aws.Context, input *ListInstalledComponentsInput, fn func(*ListInstalledComponentsOutput, bool) bool, opts ...request.Option) error {
  2277  	p := request.Pagination{
  2278  		NewRequest: func() (*request.Request, error) {
  2279  			var inCpy *ListInstalledComponentsInput
  2280  			if input != nil {
  2281  				tmp := *input
  2282  				inCpy = &tmp
  2283  			}
  2284  			req, _ := c.ListInstalledComponentsRequest(inCpy)
  2285  			req.SetContext(ctx)
  2286  			req.ApplyOptions(opts...)
  2287  			return req, nil
  2288  		},
  2289  	}
  2290  
  2291  	for p.Next() {
  2292  		if !fn(p.Page().(*ListInstalledComponentsOutput), !p.HasNextPage()) {
  2293  			break
  2294  		}
  2295  	}
  2296  
  2297  	return p.Err()
  2298  }
  2299  
  2300  const opListTagsForResource = "ListTagsForResource"
  2301  
  2302  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2303  // client's request for the ListTagsForResource operation. The "output" return
  2304  // value will be populated with the request's response once the request completes
  2305  // successfully.
  2306  //
  2307  // Use "Send" method on the returned Request to send the API call to the service.
  2308  // the "output" return value is not valid until after Send returns without error.
  2309  //
  2310  // See ListTagsForResource for more information on using the ListTagsForResource
  2311  // API call, and error handling.
  2312  //
  2313  // This method is useful when you want to inject custom logic or configuration
  2314  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2315  //
  2316  //
  2317  //    // Example sending a request using the ListTagsForResourceRequest method.
  2318  //    req, resp := client.ListTagsForResourceRequest(params)
  2319  //
  2320  //    err := req.Send()
  2321  //    if err == nil { // resp is now filled
  2322  //        fmt.Println(resp)
  2323  //    }
  2324  //
  2325  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListTagsForResource
  2326  func (c *GreengrassV2) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2327  	op := &request.Operation{
  2328  		Name:       opListTagsForResource,
  2329  		HTTPMethod: "GET",
  2330  		HTTPPath:   "/tags/{resourceArn}",
  2331  	}
  2332  
  2333  	if input == nil {
  2334  		input = &ListTagsForResourceInput{}
  2335  	}
  2336  
  2337  	output = &ListTagsForResourceOutput{}
  2338  	req = c.newRequest(op, input, output)
  2339  	return
  2340  }
  2341  
  2342  // ListTagsForResource API operation for AWS IoT Greengrass V2.
  2343  //
  2344  // Retrieves the list of tags for an IoT Greengrass resource.
  2345  //
  2346  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2347  // with awserr.Error's Code and Message methods to get detailed information about
  2348  // the error.
  2349  //
  2350  // See the AWS API reference guide for AWS IoT Greengrass V2's
  2351  // API operation ListTagsForResource for usage and error information.
  2352  //
  2353  // Returned Error Types:
  2354  //   * InternalServerException
  2355  //   IoT Greengrass can't process your request right now. Try again later.
  2356  //
  2357  //   * ValidationException
  2358  //   The request isn't valid. This can occur if your request contains malformed
  2359  //   JSON or unsupported characters.
  2360  //
  2361  //   * ResourceNotFoundException
  2362  //   The requested resource can't be found.
  2363  //
  2364  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListTagsForResource
  2365  func (c *GreengrassV2) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2366  	req, out := c.ListTagsForResourceRequest(input)
  2367  	return out, req.Send()
  2368  }
  2369  
  2370  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2371  // the ability to pass a context and additional request options.
  2372  //
  2373  // See ListTagsForResource for details on how to use this API operation.
  2374  //
  2375  // The context must be non-nil and will be used for request cancellation. If
  2376  // the context is nil a panic will occur. In the future the SDK may create
  2377  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2378  // for more information on using Contexts.
  2379  func (c *GreengrassV2) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2380  	req, out := c.ListTagsForResourceRequest(input)
  2381  	req.SetContext(ctx)
  2382  	req.ApplyOptions(opts...)
  2383  	return out, req.Send()
  2384  }
  2385  
  2386  const opResolveComponentCandidates = "ResolveComponentCandidates"
  2387  
  2388  // ResolveComponentCandidatesRequest generates a "aws/request.Request" representing the
  2389  // client's request for the ResolveComponentCandidates operation. The "output" return
  2390  // value will be populated with the request's response once the request completes
  2391  // successfully.
  2392  //
  2393  // Use "Send" method on the returned Request to send the API call to the service.
  2394  // the "output" return value is not valid until after Send returns without error.
  2395  //
  2396  // See ResolveComponentCandidates for more information on using the ResolveComponentCandidates
  2397  // API call, and error handling.
  2398  //
  2399  // This method is useful when you want to inject custom logic or configuration
  2400  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2401  //
  2402  //
  2403  //    // Example sending a request using the ResolveComponentCandidatesRequest method.
  2404  //    req, resp := client.ResolveComponentCandidatesRequest(params)
  2405  //
  2406  //    err := req.Send()
  2407  //    if err == nil { // resp is now filled
  2408  //        fmt.Println(resp)
  2409  //    }
  2410  //
  2411  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ResolveComponentCandidates
  2412  func (c *GreengrassV2) ResolveComponentCandidatesRequest(input *ResolveComponentCandidatesInput) (req *request.Request, output *ResolveComponentCandidatesOutput) {
  2413  	op := &request.Operation{
  2414  		Name:       opResolveComponentCandidates,
  2415  		HTTPMethod: "POST",
  2416  		HTTPPath:   "/greengrass/v2/resolveComponentCandidates",
  2417  	}
  2418  
  2419  	if input == nil {
  2420  		input = &ResolveComponentCandidatesInput{}
  2421  	}
  2422  
  2423  	output = &ResolveComponentCandidatesOutput{}
  2424  	req = c.newRequest(op, input, output)
  2425  	return
  2426  }
  2427  
  2428  // ResolveComponentCandidates API operation for AWS IoT Greengrass V2.
  2429  //
  2430  // Retrieves a list of components that meet the component, version, and platform
  2431  // requirements of a deployment. Greengrass core devices call this operation
  2432  // when they receive a deployment to identify the components to install.
  2433  //
  2434  // This operation identifies components that meet all dependency requirements
  2435  // for a deployment. If the requirements conflict, then this operation returns
  2436  // an error and the deployment fails. For example, this occurs if component
  2437  // A requires version >2.0.0 and component B requires version <2.0.0 of a component
  2438  // dependency.
  2439  //
  2440  // When you specify the component candidates to resolve, IoT Greengrass compares
  2441  // each component's digest from the core device with the component's digest
  2442  // in the Amazon Web Services Cloud. If the digests don't match, then IoT Greengrass
  2443  // specifies to use the version from the Amazon Web Services Cloud.
  2444  //
  2445  // To use this operation, you must use the data plane API endpoint and authenticate
  2446  // with an IoT device certificate. For more information, see IoT Greengrass
  2447  // endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/greengrass.html).
  2448  //
  2449  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2450  // with awserr.Error's Code and Message methods to get detailed information about
  2451  // the error.
  2452  //
  2453  // See the AWS API reference guide for AWS IoT Greengrass V2's
  2454  // API operation ResolveComponentCandidates for usage and error information.
  2455  //
  2456  // Returned Error Types:
  2457  //   * ValidationException
  2458  //   The request isn't valid. This can occur if your request contains malformed
  2459  //   JSON or unsupported characters.
  2460  //
  2461  //   * AccessDeniedException
  2462  //   You don't have permission to perform the action.
  2463  //
  2464  //   * ResourceNotFoundException
  2465  //   The requested resource can't be found.
  2466  //
  2467  //   * ThrottlingException
  2468  //   Your request exceeded a request rate quota. For example, you might have exceeded
  2469  //   the amount of times that you can retrieve device or deployment status per
  2470  //   second.
  2471  //
  2472  //   * InternalServerException
  2473  //   IoT Greengrass can't process your request right now. Try again later.
  2474  //
  2475  //   * ConflictException
  2476  //   Your request has conflicting operations. This can occur if you're trying
  2477  //   to perform more than one operation on the same resource at the same time.
  2478  //
  2479  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ResolveComponentCandidates
  2480  func (c *GreengrassV2) ResolveComponentCandidates(input *ResolveComponentCandidatesInput) (*ResolveComponentCandidatesOutput, error) {
  2481  	req, out := c.ResolveComponentCandidatesRequest(input)
  2482  	return out, req.Send()
  2483  }
  2484  
  2485  // ResolveComponentCandidatesWithContext is the same as ResolveComponentCandidates with the addition of
  2486  // the ability to pass a context and additional request options.
  2487  //
  2488  // See ResolveComponentCandidates for details on how to use this API operation.
  2489  //
  2490  // The context must be non-nil and will be used for request cancellation. If
  2491  // the context is nil a panic will occur. In the future the SDK may create
  2492  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2493  // for more information on using Contexts.
  2494  func (c *GreengrassV2) ResolveComponentCandidatesWithContext(ctx aws.Context, input *ResolveComponentCandidatesInput, opts ...request.Option) (*ResolveComponentCandidatesOutput, error) {
  2495  	req, out := c.ResolveComponentCandidatesRequest(input)
  2496  	req.SetContext(ctx)
  2497  	req.ApplyOptions(opts...)
  2498  	return out, req.Send()
  2499  }
  2500  
  2501  const opTagResource = "TagResource"
  2502  
  2503  // TagResourceRequest generates a "aws/request.Request" representing the
  2504  // client's request for the TagResource operation. The "output" return
  2505  // value will be populated with the request's response once the request completes
  2506  // successfully.
  2507  //
  2508  // Use "Send" method on the returned Request to send the API call to the service.
  2509  // the "output" return value is not valid until after Send returns without error.
  2510  //
  2511  // See TagResource for more information on using the TagResource
  2512  // API call, and error handling.
  2513  //
  2514  // This method is useful when you want to inject custom logic or configuration
  2515  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2516  //
  2517  //
  2518  //    // Example sending a request using the TagResourceRequest method.
  2519  //    req, resp := client.TagResourceRequest(params)
  2520  //
  2521  //    err := req.Send()
  2522  //    if err == nil { // resp is now filled
  2523  //        fmt.Println(resp)
  2524  //    }
  2525  //
  2526  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/TagResource
  2527  func (c *GreengrassV2) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  2528  	op := &request.Operation{
  2529  		Name:       opTagResource,
  2530  		HTTPMethod: "POST",
  2531  		HTTPPath:   "/tags/{resourceArn}",
  2532  	}
  2533  
  2534  	if input == nil {
  2535  		input = &TagResourceInput{}
  2536  	}
  2537  
  2538  	output = &TagResourceOutput{}
  2539  	req = c.newRequest(op, input, output)
  2540  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2541  	return
  2542  }
  2543  
  2544  // TagResource API operation for AWS IoT Greengrass V2.
  2545  //
  2546  // Adds tags to an IoT Greengrass resource. If a tag already exists for the
  2547  // resource, this operation updates the tag's value.
  2548  //
  2549  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2550  // with awserr.Error's Code and Message methods to get detailed information about
  2551  // the error.
  2552  //
  2553  // See the AWS API reference guide for AWS IoT Greengrass V2's
  2554  // API operation TagResource for usage and error information.
  2555  //
  2556  // Returned Error Types:
  2557  //   * InternalServerException
  2558  //   IoT Greengrass can't process your request right now. Try again later.
  2559  //
  2560  //   * ValidationException
  2561  //   The request isn't valid. This can occur if your request contains malformed
  2562  //   JSON or unsupported characters.
  2563  //
  2564  //   * ResourceNotFoundException
  2565  //   The requested resource can't be found.
  2566  //
  2567  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/TagResource
  2568  func (c *GreengrassV2) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  2569  	req, out := c.TagResourceRequest(input)
  2570  	return out, req.Send()
  2571  }
  2572  
  2573  // TagResourceWithContext is the same as TagResource with the addition of
  2574  // the ability to pass a context and additional request options.
  2575  //
  2576  // See TagResource for details on how to use this API operation.
  2577  //
  2578  // The context must be non-nil and will be used for request cancellation. If
  2579  // the context is nil a panic will occur. In the future the SDK may create
  2580  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2581  // for more information on using Contexts.
  2582  func (c *GreengrassV2) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  2583  	req, out := c.TagResourceRequest(input)
  2584  	req.SetContext(ctx)
  2585  	req.ApplyOptions(opts...)
  2586  	return out, req.Send()
  2587  }
  2588  
  2589  const opUntagResource = "UntagResource"
  2590  
  2591  // UntagResourceRequest generates a "aws/request.Request" representing the
  2592  // client's request for the UntagResource operation. The "output" return
  2593  // value will be populated with the request's response once the request completes
  2594  // successfully.
  2595  //
  2596  // Use "Send" method on the returned Request to send the API call to the service.
  2597  // the "output" return value is not valid until after Send returns without error.
  2598  //
  2599  // See UntagResource for more information on using the UntagResource
  2600  // API call, and error handling.
  2601  //
  2602  // This method is useful when you want to inject custom logic or configuration
  2603  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2604  //
  2605  //
  2606  //    // Example sending a request using the UntagResourceRequest method.
  2607  //    req, resp := client.UntagResourceRequest(params)
  2608  //
  2609  //    err := req.Send()
  2610  //    if err == nil { // resp is now filled
  2611  //        fmt.Println(resp)
  2612  //    }
  2613  //
  2614  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/UntagResource
  2615  func (c *GreengrassV2) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  2616  	op := &request.Operation{
  2617  		Name:       opUntagResource,
  2618  		HTTPMethod: "DELETE",
  2619  		HTTPPath:   "/tags/{resourceArn}",
  2620  	}
  2621  
  2622  	if input == nil {
  2623  		input = &UntagResourceInput{}
  2624  	}
  2625  
  2626  	output = &UntagResourceOutput{}
  2627  	req = c.newRequest(op, input, output)
  2628  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2629  	return
  2630  }
  2631  
  2632  // UntagResource API operation for AWS IoT Greengrass V2.
  2633  //
  2634  // Removes a tag from an IoT Greengrass resource.
  2635  //
  2636  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2637  // with awserr.Error's Code and Message methods to get detailed information about
  2638  // the error.
  2639  //
  2640  // See the AWS API reference guide for AWS IoT Greengrass V2's
  2641  // API operation UntagResource for usage and error information.
  2642  //
  2643  // Returned Error Types:
  2644  //   * InternalServerException
  2645  //   IoT Greengrass can't process your request right now. Try again later.
  2646  //
  2647  //   * ValidationException
  2648  //   The request isn't valid. This can occur if your request contains malformed
  2649  //   JSON or unsupported characters.
  2650  //
  2651  //   * ResourceNotFoundException
  2652  //   The requested resource can't be found.
  2653  //
  2654  // See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/UntagResource
  2655  func (c *GreengrassV2) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  2656  	req, out := c.UntagResourceRequest(input)
  2657  	return out, req.Send()
  2658  }
  2659  
  2660  // UntagResourceWithContext is the same as UntagResource with the addition of
  2661  // the ability to pass a context and additional request options.
  2662  //
  2663  // See UntagResource for details on how to use this API operation.
  2664  //
  2665  // The context must be non-nil and will be used for request cancellation. If
  2666  // the context is nil a panic will occur. In the future the SDK may create
  2667  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2668  // for more information on using Contexts.
  2669  func (c *GreengrassV2) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  2670  	req, out := c.UntagResourceRequest(input)
  2671  	req.SetContext(ctx)
  2672  	req.ApplyOptions(opts...)
  2673  	return out, req.Send()
  2674  }
  2675  
  2676  // You don't have permission to perform the action.
  2677  type AccessDeniedException struct {
  2678  	_            struct{}                  `type:"structure"`
  2679  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2680  
  2681  	Message_ *string `locationName:"message" type:"string"`
  2682  }
  2683  
  2684  // String returns the string representation.
  2685  //
  2686  // API parameter values that are decorated as "sensitive" in the API will not
  2687  // be included in the string output. The member name will be present, but the
  2688  // value will be replaced with "sensitive".
  2689  func (s AccessDeniedException) String() string {
  2690  	return awsutil.Prettify(s)
  2691  }
  2692  
  2693  // GoString returns the string representation.
  2694  //
  2695  // API parameter values that are decorated as "sensitive" in the API will not
  2696  // be included in the string output. The member name will be present, but the
  2697  // value will be replaced with "sensitive".
  2698  func (s AccessDeniedException) GoString() string {
  2699  	return s.String()
  2700  }
  2701  
  2702  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  2703  	return &AccessDeniedException{
  2704  		RespMetadata: v,
  2705  	}
  2706  }
  2707  
  2708  // Code returns the exception type name.
  2709  func (s *AccessDeniedException) Code() string {
  2710  	return "AccessDeniedException"
  2711  }
  2712  
  2713  // Message returns the exception's message.
  2714  func (s *AccessDeniedException) Message() string {
  2715  	if s.Message_ != nil {
  2716  		return *s.Message_
  2717  	}
  2718  	return ""
  2719  }
  2720  
  2721  // OrigErr always returns nil, satisfies awserr.Error interface.
  2722  func (s *AccessDeniedException) OrigErr() error {
  2723  	return nil
  2724  }
  2725  
  2726  func (s *AccessDeniedException) Error() string {
  2727  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2728  }
  2729  
  2730  // Status code returns the HTTP status code for the request's response error.
  2731  func (s *AccessDeniedException) StatusCode() int {
  2732  	return s.RespMetadata.StatusCode
  2733  }
  2734  
  2735  // RequestID returns the service's response RequestID for request.
  2736  func (s *AccessDeniedException) RequestID() string {
  2737  	return s.RespMetadata.RequestID
  2738  }
  2739  
  2740  // Contains a request to associate a client device with a core device. The BatchAssociateClientDeviceWithCoreDevice
  2741  // (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html)
  2742  // operation consumes a list of these requests.
  2743  type AssociateClientDeviceWithCoreDeviceEntry struct {
  2744  	_ struct{} `type:"structure"`
  2745  
  2746  	// The name of the IoT thing that represents the client device to associate.
  2747  	//
  2748  	// ThingName is a required field
  2749  	ThingName *string `locationName:"thingName" min:"1" type:"string" required:"true"`
  2750  }
  2751  
  2752  // String returns the string representation.
  2753  //
  2754  // API parameter values that are decorated as "sensitive" in the API will not
  2755  // be included in the string output. The member name will be present, but the
  2756  // value will be replaced with "sensitive".
  2757  func (s AssociateClientDeviceWithCoreDeviceEntry) String() string {
  2758  	return awsutil.Prettify(s)
  2759  }
  2760  
  2761  // GoString returns the string representation.
  2762  //
  2763  // API parameter values that are decorated as "sensitive" in the API will not
  2764  // be included in the string output. The member name will be present, but the
  2765  // value will be replaced with "sensitive".
  2766  func (s AssociateClientDeviceWithCoreDeviceEntry) GoString() string {
  2767  	return s.String()
  2768  }
  2769  
  2770  // Validate inspects the fields of the type to determine if they are valid.
  2771  func (s *AssociateClientDeviceWithCoreDeviceEntry) Validate() error {
  2772  	invalidParams := request.ErrInvalidParams{Context: "AssociateClientDeviceWithCoreDeviceEntry"}
  2773  	if s.ThingName == nil {
  2774  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
  2775  	}
  2776  	if s.ThingName != nil && len(*s.ThingName) < 1 {
  2777  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
  2778  	}
  2779  
  2780  	if invalidParams.Len() > 0 {
  2781  		return invalidParams
  2782  	}
  2783  	return nil
  2784  }
  2785  
  2786  // SetThingName sets the ThingName field's value.
  2787  func (s *AssociateClientDeviceWithCoreDeviceEntry) SetThingName(v string) *AssociateClientDeviceWithCoreDeviceEntry {
  2788  	s.ThingName = &v
  2789  	return s
  2790  }
  2791  
  2792  // Contains an error that occurs from a request to associate a client device
  2793  // with a core device. The BatchAssociateClientDeviceWithCoreDevice (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html)
  2794  // operation returns a list of these errors.
  2795  type AssociateClientDeviceWithCoreDeviceErrorEntry struct {
  2796  	_ struct{} `type:"structure"`
  2797  
  2798  	// The error code for the request.
  2799  	Code *string `locationName:"code" min:"1" type:"string"`
  2800  
  2801  	// A message that provides additional information about the error.
  2802  	Message *string `locationName:"message" min:"1" type:"string"`
  2803  
  2804  	// The name of the IoT thing whose associate request failed.
  2805  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
  2806  }
  2807  
  2808  // String returns the string representation.
  2809  //
  2810  // API parameter values that are decorated as "sensitive" in the API will not
  2811  // be included in the string output. The member name will be present, but the
  2812  // value will be replaced with "sensitive".
  2813  func (s AssociateClientDeviceWithCoreDeviceErrorEntry) String() string {
  2814  	return awsutil.Prettify(s)
  2815  }
  2816  
  2817  // GoString returns the string representation.
  2818  //
  2819  // API parameter values that are decorated as "sensitive" in the API will not
  2820  // be included in the string output. The member name will be present, but the
  2821  // value will be replaced with "sensitive".
  2822  func (s AssociateClientDeviceWithCoreDeviceErrorEntry) GoString() string {
  2823  	return s.String()
  2824  }
  2825  
  2826  // SetCode sets the Code field's value.
  2827  func (s *AssociateClientDeviceWithCoreDeviceErrorEntry) SetCode(v string) *AssociateClientDeviceWithCoreDeviceErrorEntry {
  2828  	s.Code = &v
  2829  	return s
  2830  }
  2831  
  2832  // SetMessage sets the Message field's value.
  2833  func (s *AssociateClientDeviceWithCoreDeviceErrorEntry) SetMessage(v string) *AssociateClientDeviceWithCoreDeviceErrorEntry {
  2834  	s.Message = &v
  2835  	return s
  2836  }
  2837  
  2838  // SetThingName sets the ThingName field's value.
  2839  func (s *AssociateClientDeviceWithCoreDeviceErrorEntry) SetThingName(v string) *AssociateClientDeviceWithCoreDeviceErrorEntry {
  2840  	s.ThingName = &v
  2841  	return s
  2842  }
  2843  
  2844  // Contains information about a client device that is associated to a core device
  2845  // for cloud discovery.
  2846  type AssociatedClientDevice struct {
  2847  	_ struct{} `type:"structure"`
  2848  
  2849  	// The time that the client device was associated, expressed in ISO 8601 format.
  2850  	AssociationTimestamp *time.Time `locationName:"associationTimestamp" type:"timestamp"`
  2851  
  2852  	// The name of the IoT thing that represents the associated client device.
  2853  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
  2854  }
  2855  
  2856  // String returns the string representation.
  2857  //
  2858  // API parameter values that are decorated as "sensitive" in the API will not
  2859  // be included in the string output. The member name will be present, but the
  2860  // value will be replaced with "sensitive".
  2861  func (s AssociatedClientDevice) String() string {
  2862  	return awsutil.Prettify(s)
  2863  }
  2864  
  2865  // GoString returns the string representation.
  2866  //
  2867  // API parameter values that are decorated as "sensitive" in the API will not
  2868  // be included in the string output. The member name will be present, but the
  2869  // value will be replaced with "sensitive".
  2870  func (s AssociatedClientDevice) GoString() string {
  2871  	return s.String()
  2872  }
  2873  
  2874  // SetAssociationTimestamp sets the AssociationTimestamp field's value.
  2875  func (s *AssociatedClientDevice) SetAssociationTimestamp(v time.Time) *AssociatedClientDevice {
  2876  	s.AssociationTimestamp = &v
  2877  	return s
  2878  }
  2879  
  2880  // SetThingName sets the ThingName field's value.
  2881  func (s *AssociatedClientDevice) SetThingName(v string) *AssociatedClientDevice {
  2882  	s.ThingName = &v
  2883  	return s
  2884  }
  2885  
  2886  type BatchAssociateClientDeviceWithCoreDeviceInput struct {
  2887  	_ struct{} `type:"structure"`
  2888  
  2889  	// The name of the core device. This is also the name of the IoT thing.
  2890  	//
  2891  	// CoreDeviceThingName is a required field
  2892  	CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"`
  2893  
  2894  	// The list of client devices to associate.
  2895  	Entries []*AssociateClientDeviceWithCoreDeviceEntry `locationName:"entries" min:"1" type:"list"`
  2896  }
  2897  
  2898  // String returns the string representation.
  2899  //
  2900  // API parameter values that are decorated as "sensitive" in the API will not
  2901  // be included in the string output. The member name will be present, but the
  2902  // value will be replaced with "sensitive".
  2903  func (s BatchAssociateClientDeviceWithCoreDeviceInput) String() string {
  2904  	return awsutil.Prettify(s)
  2905  }
  2906  
  2907  // GoString returns the string representation.
  2908  //
  2909  // API parameter values that are decorated as "sensitive" in the API will not
  2910  // be included in the string output. The member name will be present, but the
  2911  // value will be replaced with "sensitive".
  2912  func (s BatchAssociateClientDeviceWithCoreDeviceInput) GoString() string {
  2913  	return s.String()
  2914  }
  2915  
  2916  // Validate inspects the fields of the type to determine if they are valid.
  2917  func (s *BatchAssociateClientDeviceWithCoreDeviceInput) Validate() error {
  2918  	invalidParams := request.ErrInvalidParams{Context: "BatchAssociateClientDeviceWithCoreDeviceInput"}
  2919  	if s.CoreDeviceThingName == nil {
  2920  		invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName"))
  2921  	}
  2922  	if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 {
  2923  		invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1))
  2924  	}
  2925  	if s.Entries != nil && len(s.Entries) < 1 {
  2926  		invalidParams.Add(request.NewErrParamMinLen("Entries", 1))
  2927  	}
  2928  	if s.Entries != nil {
  2929  		for i, v := range s.Entries {
  2930  			if v == nil {
  2931  				continue
  2932  			}
  2933  			if err := v.Validate(); err != nil {
  2934  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams))
  2935  			}
  2936  		}
  2937  	}
  2938  
  2939  	if invalidParams.Len() > 0 {
  2940  		return invalidParams
  2941  	}
  2942  	return nil
  2943  }
  2944  
  2945  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  2946  func (s *BatchAssociateClientDeviceWithCoreDeviceInput) SetCoreDeviceThingName(v string) *BatchAssociateClientDeviceWithCoreDeviceInput {
  2947  	s.CoreDeviceThingName = &v
  2948  	return s
  2949  }
  2950  
  2951  // SetEntries sets the Entries field's value.
  2952  func (s *BatchAssociateClientDeviceWithCoreDeviceInput) SetEntries(v []*AssociateClientDeviceWithCoreDeviceEntry) *BatchAssociateClientDeviceWithCoreDeviceInput {
  2953  	s.Entries = v
  2954  	return s
  2955  }
  2956  
  2957  type BatchAssociateClientDeviceWithCoreDeviceOutput struct {
  2958  	_ struct{} `type:"structure"`
  2959  
  2960  	// The list of any errors for the entries in the request. Each error entry contains
  2961  	// the name of the IoT thing that failed to associate.
  2962  	ErrorEntries []*AssociateClientDeviceWithCoreDeviceErrorEntry `locationName:"errorEntries" min:"1" type:"list"`
  2963  }
  2964  
  2965  // String returns the string representation.
  2966  //
  2967  // API parameter values that are decorated as "sensitive" in the API will not
  2968  // be included in the string output. The member name will be present, but the
  2969  // value will be replaced with "sensitive".
  2970  func (s BatchAssociateClientDeviceWithCoreDeviceOutput) String() string {
  2971  	return awsutil.Prettify(s)
  2972  }
  2973  
  2974  // GoString returns the string representation.
  2975  //
  2976  // API parameter values that are decorated as "sensitive" in the API will not
  2977  // be included in the string output. The member name will be present, but the
  2978  // value will be replaced with "sensitive".
  2979  func (s BatchAssociateClientDeviceWithCoreDeviceOutput) GoString() string {
  2980  	return s.String()
  2981  }
  2982  
  2983  // SetErrorEntries sets the ErrorEntries field's value.
  2984  func (s *BatchAssociateClientDeviceWithCoreDeviceOutput) SetErrorEntries(v []*AssociateClientDeviceWithCoreDeviceErrorEntry) *BatchAssociateClientDeviceWithCoreDeviceOutput {
  2985  	s.ErrorEntries = v
  2986  	return s
  2987  }
  2988  
  2989  type BatchDisassociateClientDeviceFromCoreDeviceInput struct {
  2990  	_ struct{} `type:"structure"`
  2991  
  2992  	// The name of the core device. This is also the name of the IoT thing.
  2993  	//
  2994  	// CoreDeviceThingName is a required field
  2995  	CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"`
  2996  
  2997  	// The list of client devices to disassociate.
  2998  	Entries []*DisassociateClientDeviceFromCoreDeviceEntry `locationName:"entries" min:"1" type:"list"`
  2999  }
  3000  
  3001  // String returns the string representation.
  3002  //
  3003  // API parameter values that are decorated as "sensitive" in the API will not
  3004  // be included in the string output. The member name will be present, but the
  3005  // value will be replaced with "sensitive".
  3006  func (s BatchDisassociateClientDeviceFromCoreDeviceInput) String() string {
  3007  	return awsutil.Prettify(s)
  3008  }
  3009  
  3010  // GoString returns the string representation.
  3011  //
  3012  // API parameter values that are decorated as "sensitive" in the API will not
  3013  // be included in the string output. The member name will be present, but the
  3014  // value will be replaced with "sensitive".
  3015  func (s BatchDisassociateClientDeviceFromCoreDeviceInput) GoString() string {
  3016  	return s.String()
  3017  }
  3018  
  3019  // Validate inspects the fields of the type to determine if they are valid.
  3020  func (s *BatchDisassociateClientDeviceFromCoreDeviceInput) Validate() error {
  3021  	invalidParams := request.ErrInvalidParams{Context: "BatchDisassociateClientDeviceFromCoreDeviceInput"}
  3022  	if s.CoreDeviceThingName == nil {
  3023  		invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName"))
  3024  	}
  3025  	if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 {
  3026  		invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1))
  3027  	}
  3028  	if s.Entries != nil && len(s.Entries) < 1 {
  3029  		invalidParams.Add(request.NewErrParamMinLen("Entries", 1))
  3030  	}
  3031  	if s.Entries != nil {
  3032  		for i, v := range s.Entries {
  3033  			if v == nil {
  3034  				continue
  3035  			}
  3036  			if err := v.Validate(); err != nil {
  3037  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams))
  3038  			}
  3039  		}
  3040  	}
  3041  
  3042  	if invalidParams.Len() > 0 {
  3043  		return invalidParams
  3044  	}
  3045  	return nil
  3046  }
  3047  
  3048  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  3049  func (s *BatchDisassociateClientDeviceFromCoreDeviceInput) SetCoreDeviceThingName(v string) *BatchDisassociateClientDeviceFromCoreDeviceInput {
  3050  	s.CoreDeviceThingName = &v
  3051  	return s
  3052  }
  3053  
  3054  // SetEntries sets the Entries field's value.
  3055  func (s *BatchDisassociateClientDeviceFromCoreDeviceInput) SetEntries(v []*DisassociateClientDeviceFromCoreDeviceEntry) *BatchDisassociateClientDeviceFromCoreDeviceInput {
  3056  	s.Entries = v
  3057  	return s
  3058  }
  3059  
  3060  type BatchDisassociateClientDeviceFromCoreDeviceOutput struct {
  3061  	_ struct{} `type:"structure"`
  3062  
  3063  	// The list of errors (if any) for the entries in the request. Each error entry
  3064  	// contains the name of the IoT thing that failed to disassociate.
  3065  	ErrorEntries []*DisassociateClientDeviceFromCoreDeviceErrorEntry `locationName:"errorEntries" min:"1" type:"list"`
  3066  }
  3067  
  3068  // String returns the string representation.
  3069  //
  3070  // API parameter values that are decorated as "sensitive" in the API will not
  3071  // be included in the string output. The member name will be present, but the
  3072  // value will be replaced with "sensitive".
  3073  func (s BatchDisassociateClientDeviceFromCoreDeviceOutput) String() string {
  3074  	return awsutil.Prettify(s)
  3075  }
  3076  
  3077  // GoString returns the string representation.
  3078  //
  3079  // API parameter values that are decorated as "sensitive" in the API will not
  3080  // be included in the string output. The member name will be present, but the
  3081  // value will be replaced with "sensitive".
  3082  func (s BatchDisassociateClientDeviceFromCoreDeviceOutput) GoString() string {
  3083  	return s.String()
  3084  }
  3085  
  3086  // SetErrorEntries sets the ErrorEntries field's value.
  3087  func (s *BatchDisassociateClientDeviceFromCoreDeviceOutput) SetErrorEntries(v []*DisassociateClientDeviceFromCoreDeviceErrorEntry) *BatchDisassociateClientDeviceFromCoreDeviceOutput {
  3088  	s.ErrorEntries = v
  3089  	return s
  3090  }
  3091  
  3092  type CancelDeploymentInput struct {
  3093  	_ struct{} `type:"structure" nopayload:"true"`
  3094  
  3095  	// The ID of the deployment.
  3096  	//
  3097  	// DeploymentId is a required field
  3098  	DeploymentId *string `location:"uri" locationName:"deploymentId" min:"1" type:"string" required:"true"`
  3099  }
  3100  
  3101  // String returns the string representation.
  3102  //
  3103  // API parameter values that are decorated as "sensitive" in the API will not
  3104  // be included in the string output. The member name will be present, but the
  3105  // value will be replaced with "sensitive".
  3106  func (s CancelDeploymentInput) String() string {
  3107  	return awsutil.Prettify(s)
  3108  }
  3109  
  3110  // GoString returns the string representation.
  3111  //
  3112  // API parameter values that are decorated as "sensitive" in the API will not
  3113  // be included in the string output. The member name will be present, but the
  3114  // value will be replaced with "sensitive".
  3115  func (s CancelDeploymentInput) GoString() string {
  3116  	return s.String()
  3117  }
  3118  
  3119  // Validate inspects the fields of the type to determine if they are valid.
  3120  func (s *CancelDeploymentInput) Validate() error {
  3121  	invalidParams := request.ErrInvalidParams{Context: "CancelDeploymentInput"}
  3122  	if s.DeploymentId == nil {
  3123  		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
  3124  	}
  3125  	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
  3126  		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
  3127  	}
  3128  
  3129  	if invalidParams.Len() > 0 {
  3130  		return invalidParams
  3131  	}
  3132  	return nil
  3133  }
  3134  
  3135  // SetDeploymentId sets the DeploymentId field's value.
  3136  func (s *CancelDeploymentInput) SetDeploymentId(v string) *CancelDeploymentInput {
  3137  	s.DeploymentId = &v
  3138  	return s
  3139  }
  3140  
  3141  type CancelDeploymentOutput struct {
  3142  	_ struct{} `type:"structure"`
  3143  
  3144  	// A message that communicates if the cancel was successful.
  3145  	Message *string `locationName:"message" min:"1" type:"string"`
  3146  }
  3147  
  3148  // String returns the string representation.
  3149  //
  3150  // API parameter values that are decorated as "sensitive" in the API will not
  3151  // be included in the string output. The member name will be present, but the
  3152  // value will be replaced with "sensitive".
  3153  func (s CancelDeploymentOutput) String() string {
  3154  	return awsutil.Prettify(s)
  3155  }
  3156  
  3157  // GoString returns the string representation.
  3158  //
  3159  // API parameter values that are decorated as "sensitive" in the API will not
  3160  // be included in the string output. The member name will be present, but the
  3161  // value will be replaced with "sensitive".
  3162  func (s CancelDeploymentOutput) GoString() string {
  3163  	return s.String()
  3164  }
  3165  
  3166  // SetMessage sets the Message field's value.
  3167  func (s *CancelDeploymentOutput) SetMessage(v string) *CancelDeploymentOutput {
  3168  	s.Message = &v
  3169  	return s
  3170  }
  3171  
  3172  // Contains the status of a component in the IoT Greengrass service.
  3173  type CloudComponentStatus struct {
  3174  	_ struct{} `type:"structure"`
  3175  
  3176  	// The state of the component.
  3177  	ComponentState *string `locationName:"componentState" type:"string" enum:"CloudComponentState"`
  3178  
  3179  	// A dictionary of errors that communicate why the component is in an error
  3180  	// state. For example, if IoT Greengrass can't access an artifact for the component,
  3181  	// then errors contains the artifact's URI as a key, and the error message as
  3182  	// the value for that key.
  3183  	Errors map[string]*string `locationName:"errors" type:"map"`
  3184  
  3185  	// A message that communicates details, such as errors, about the status of
  3186  	// the component.
  3187  	Message *string `locationName:"message" min:"1" type:"string"`
  3188  }
  3189  
  3190  // String returns the string representation.
  3191  //
  3192  // API parameter values that are decorated as "sensitive" in the API will not
  3193  // be included in the string output. The member name will be present, but the
  3194  // value will be replaced with "sensitive".
  3195  func (s CloudComponentStatus) String() string {
  3196  	return awsutil.Prettify(s)
  3197  }
  3198  
  3199  // GoString returns the string representation.
  3200  //
  3201  // API parameter values that are decorated as "sensitive" in the API will not
  3202  // be included in the string output. The member name will be present, but the
  3203  // value will be replaced with "sensitive".
  3204  func (s CloudComponentStatus) GoString() string {
  3205  	return s.String()
  3206  }
  3207  
  3208  // SetComponentState sets the ComponentState field's value.
  3209  func (s *CloudComponentStatus) SetComponentState(v string) *CloudComponentStatus {
  3210  	s.ComponentState = &v
  3211  	return s
  3212  }
  3213  
  3214  // SetErrors sets the Errors field's value.
  3215  func (s *CloudComponentStatus) SetErrors(v map[string]*string) *CloudComponentStatus {
  3216  	s.Errors = v
  3217  	return s
  3218  }
  3219  
  3220  // SetMessage sets the Message field's value.
  3221  func (s *CloudComponentStatus) SetMessage(v string) *CloudComponentStatus {
  3222  	s.Message = &v
  3223  	return s
  3224  }
  3225  
  3226  // Contains information about a component.
  3227  type Component struct {
  3228  	_ struct{} `type:"structure"`
  3229  
  3230  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  3231  	// of the component version.
  3232  	Arn *string `locationName:"arn" type:"string"`
  3233  
  3234  	// The name of the component.
  3235  	ComponentName *string `locationName:"componentName" min:"1" type:"string"`
  3236  
  3237  	// The latest version of the component and its details.
  3238  	LatestVersion *ComponentLatestVersion `locationName:"latestVersion" type:"structure"`
  3239  }
  3240  
  3241  // String returns the string representation.
  3242  //
  3243  // API parameter values that are decorated as "sensitive" in the API will not
  3244  // be included in the string output. The member name will be present, but the
  3245  // value will be replaced with "sensitive".
  3246  func (s Component) String() string {
  3247  	return awsutil.Prettify(s)
  3248  }
  3249  
  3250  // GoString returns the string representation.
  3251  //
  3252  // API parameter values that are decorated as "sensitive" in the API will not
  3253  // be included in the string output. The member name will be present, but the
  3254  // value will be replaced with "sensitive".
  3255  func (s Component) GoString() string {
  3256  	return s.String()
  3257  }
  3258  
  3259  // SetArn sets the Arn field's value.
  3260  func (s *Component) SetArn(v string) *Component {
  3261  	s.Arn = &v
  3262  	return s
  3263  }
  3264  
  3265  // SetComponentName sets the ComponentName field's value.
  3266  func (s *Component) SetComponentName(v string) *Component {
  3267  	s.ComponentName = &v
  3268  	return s
  3269  }
  3270  
  3271  // SetLatestVersion sets the LatestVersion field's value.
  3272  func (s *Component) SetLatestVersion(v *ComponentLatestVersion) *Component {
  3273  	s.LatestVersion = v
  3274  	return s
  3275  }
  3276  
  3277  // Contains information about a component that is a candidate to deploy to a
  3278  // Greengrass core device.
  3279  type ComponentCandidate struct {
  3280  	_ struct{} `type:"structure"`
  3281  
  3282  	// The name of the component.
  3283  	ComponentName *string `locationName:"componentName" min:"1" type:"string"`
  3284  
  3285  	// The version of the component.
  3286  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  3287  
  3288  	// The version requirements for the component's dependencies. Greengrass core
  3289  	// devices get the version requirements from component recipes.
  3290  	//
  3291  	// IoT Greengrass V2 uses semantic version constraints. For more information,
  3292  	// see Semantic Versioning (https://semver.org/).
  3293  	VersionRequirements map[string]*string `locationName:"versionRequirements" type:"map"`
  3294  }
  3295  
  3296  // String returns the string representation.
  3297  //
  3298  // API parameter values that are decorated as "sensitive" in the API will not
  3299  // be included in the string output. The member name will be present, but the
  3300  // value will be replaced with "sensitive".
  3301  func (s ComponentCandidate) String() string {
  3302  	return awsutil.Prettify(s)
  3303  }
  3304  
  3305  // GoString returns the string representation.
  3306  //
  3307  // API parameter values that are decorated as "sensitive" in the API will not
  3308  // be included in the string output. The member name will be present, but the
  3309  // value will be replaced with "sensitive".
  3310  func (s ComponentCandidate) GoString() string {
  3311  	return s.String()
  3312  }
  3313  
  3314  // Validate inspects the fields of the type to determine if they are valid.
  3315  func (s *ComponentCandidate) Validate() error {
  3316  	invalidParams := request.ErrInvalidParams{Context: "ComponentCandidate"}
  3317  	if s.ComponentName != nil && len(*s.ComponentName) < 1 {
  3318  		invalidParams.Add(request.NewErrParamMinLen("ComponentName", 1))
  3319  	}
  3320  	if s.ComponentVersion != nil && len(*s.ComponentVersion) < 1 {
  3321  		invalidParams.Add(request.NewErrParamMinLen("ComponentVersion", 1))
  3322  	}
  3323  
  3324  	if invalidParams.Len() > 0 {
  3325  		return invalidParams
  3326  	}
  3327  	return nil
  3328  }
  3329  
  3330  // SetComponentName sets the ComponentName field's value.
  3331  func (s *ComponentCandidate) SetComponentName(v string) *ComponentCandidate {
  3332  	s.ComponentName = &v
  3333  	return s
  3334  }
  3335  
  3336  // SetComponentVersion sets the ComponentVersion field's value.
  3337  func (s *ComponentCandidate) SetComponentVersion(v string) *ComponentCandidate {
  3338  	s.ComponentVersion = &v
  3339  	return s
  3340  }
  3341  
  3342  // SetVersionRequirements sets the VersionRequirements field's value.
  3343  func (s *ComponentCandidate) SetVersionRequirements(v map[string]*string) *ComponentCandidate {
  3344  	s.VersionRequirements = v
  3345  	return s
  3346  }
  3347  
  3348  // Contains information about a deployment's update to a component's configuration
  3349  // on Greengrass core devices. For more information, see Update component configurations
  3350  // (https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html)
  3351  // in the IoT Greengrass V2 Developer Guide.
  3352  type ComponentConfigurationUpdate struct {
  3353  	_ struct{} `type:"structure"`
  3354  
  3355  	// A serialized JSON string that contains the configuration object to merge
  3356  	// to target devices. The core device merges this configuration with the component's
  3357  	// existing configuration. If this is the first time a component deploys on
  3358  	// a device, the core device merges this configuration with the component's
  3359  	// default configuration. This means that the core device keeps it's existing
  3360  	// configuration for keys and values that you don't specify in this object.
  3361  	// For more information, see Merge configuration updates (https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#merge-configuration-update)
  3362  	// in the IoT Greengrass V2 Developer Guide.
  3363  	Merge *string `locationName:"merge" min:"1" type:"string"`
  3364  
  3365  	// The list of configuration nodes to reset to default values on target devices.
  3366  	// Use JSON pointers to specify each node to reset. JSON pointers start with
  3367  	// a forward slash (/) and use forward slashes to separate the key for each
  3368  	// level in the object. For more information, see the JSON pointer specification
  3369  	// (https://tools.ietf.org/html/rfc6901) and Reset configuration updates (https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update)
  3370  	// in the IoT Greengrass V2 Developer Guide.
  3371  	Reset []*string `locationName:"reset" type:"list"`
  3372  }
  3373  
  3374  // String returns the string representation.
  3375  //
  3376  // API parameter values that are decorated as "sensitive" in the API will not
  3377  // be included in the string output. The member name will be present, but the
  3378  // value will be replaced with "sensitive".
  3379  func (s ComponentConfigurationUpdate) String() string {
  3380  	return awsutil.Prettify(s)
  3381  }
  3382  
  3383  // GoString returns the string representation.
  3384  //
  3385  // API parameter values that are decorated as "sensitive" in the API will not
  3386  // be included in the string output. The member name will be present, but the
  3387  // value will be replaced with "sensitive".
  3388  func (s ComponentConfigurationUpdate) GoString() string {
  3389  	return s.String()
  3390  }
  3391  
  3392  // Validate inspects the fields of the type to determine if they are valid.
  3393  func (s *ComponentConfigurationUpdate) Validate() error {
  3394  	invalidParams := request.ErrInvalidParams{Context: "ComponentConfigurationUpdate"}
  3395  	if s.Merge != nil && len(*s.Merge) < 1 {
  3396  		invalidParams.Add(request.NewErrParamMinLen("Merge", 1))
  3397  	}
  3398  
  3399  	if invalidParams.Len() > 0 {
  3400  		return invalidParams
  3401  	}
  3402  	return nil
  3403  }
  3404  
  3405  // SetMerge sets the Merge field's value.
  3406  func (s *ComponentConfigurationUpdate) SetMerge(v string) *ComponentConfigurationUpdate {
  3407  	s.Merge = &v
  3408  	return s
  3409  }
  3410  
  3411  // SetReset sets the Reset field's value.
  3412  func (s *ComponentConfigurationUpdate) SetReset(v []*string) *ComponentConfigurationUpdate {
  3413  	s.Reset = v
  3414  	return s
  3415  }
  3416  
  3417  // Contains information about a component dependency for a Lambda function component.
  3418  type ComponentDependencyRequirement struct {
  3419  	_ struct{} `type:"structure"`
  3420  
  3421  	// The type of this dependency. Choose from the following options:
  3422  	//
  3423  	//    * SOFT – The component doesn't restart if the dependency changes state.
  3424  	//
  3425  	//    * HARD – The component restarts if the dependency changes state.
  3426  	//
  3427  	// Default: HARD
  3428  	DependencyType *string `locationName:"dependencyType" type:"string" enum:"ComponentDependencyType"`
  3429  
  3430  	// The component version requirement for the component dependency.
  3431  	//
  3432  	// IoT Greengrass V2 uses semantic version constraints. For more information,
  3433  	// see Semantic Versioning (https://semver.org/).
  3434  	VersionRequirement *string `locationName:"versionRequirement" min:"1" type:"string"`
  3435  }
  3436  
  3437  // String returns the string representation.
  3438  //
  3439  // API parameter values that are decorated as "sensitive" in the API will not
  3440  // be included in the string output. The member name will be present, but the
  3441  // value will be replaced with "sensitive".
  3442  func (s ComponentDependencyRequirement) String() string {
  3443  	return awsutil.Prettify(s)
  3444  }
  3445  
  3446  // GoString returns the string representation.
  3447  //
  3448  // API parameter values that are decorated as "sensitive" in the API will not
  3449  // be included in the string output. The member name will be present, but the
  3450  // value will be replaced with "sensitive".
  3451  func (s ComponentDependencyRequirement) GoString() string {
  3452  	return s.String()
  3453  }
  3454  
  3455  // Validate inspects the fields of the type to determine if they are valid.
  3456  func (s *ComponentDependencyRequirement) Validate() error {
  3457  	invalidParams := request.ErrInvalidParams{Context: "ComponentDependencyRequirement"}
  3458  	if s.VersionRequirement != nil && len(*s.VersionRequirement) < 1 {
  3459  		invalidParams.Add(request.NewErrParamMinLen("VersionRequirement", 1))
  3460  	}
  3461  
  3462  	if invalidParams.Len() > 0 {
  3463  		return invalidParams
  3464  	}
  3465  	return nil
  3466  }
  3467  
  3468  // SetDependencyType sets the DependencyType field's value.
  3469  func (s *ComponentDependencyRequirement) SetDependencyType(v string) *ComponentDependencyRequirement {
  3470  	s.DependencyType = &v
  3471  	return s
  3472  }
  3473  
  3474  // SetVersionRequirement sets the VersionRequirement field's value.
  3475  func (s *ComponentDependencyRequirement) SetVersionRequirement(v string) *ComponentDependencyRequirement {
  3476  	s.VersionRequirement = &v
  3477  	return s
  3478  }
  3479  
  3480  // Contains information about a component to deploy.
  3481  type ComponentDeploymentSpecification struct {
  3482  	_ struct{} `type:"structure"`
  3483  
  3484  	// The version of the component.
  3485  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  3486  
  3487  	// The configuration updates to deploy for the component. You can define reset
  3488  	// updates and merge updates. A reset updates the keys that you specify to the
  3489  	// default configuration for the component. A merge updates the core device's
  3490  	// component configuration with the keys and values that you specify. The IoT
  3491  	// Greengrass Core software applies reset updates before it applies merge updates.
  3492  	// For more information, see Update component configurations (https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html)
  3493  	// in the IoT Greengrass V2 Developer Guide.
  3494  	ConfigurationUpdate *ComponentConfigurationUpdate `locationName:"configurationUpdate" type:"structure"`
  3495  
  3496  	// The system user and group that the IoT Greengrass Core software uses to run
  3497  	// component processes on the core device. If you omit this parameter, the IoT
  3498  	// Greengrass Core software uses the system user and group that you configure
  3499  	// for the core device. For more information, see Configure the user and group
  3500  	// that run components (https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user)
  3501  	// in the IoT Greengrass V2 Developer Guide.
  3502  	RunWith *ComponentRunWith `locationName:"runWith" type:"structure"`
  3503  }
  3504  
  3505  // String returns the string representation.
  3506  //
  3507  // API parameter values that are decorated as "sensitive" in the API will not
  3508  // be included in the string output. The member name will be present, but the
  3509  // value will be replaced with "sensitive".
  3510  func (s ComponentDeploymentSpecification) String() string {
  3511  	return awsutil.Prettify(s)
  3512  }
  3513  
  3514  // GoString returns the string representation.
  3515  //
  3516  // API parameter values that are decorated as "sensitive" in the API will not
  3517  // be included in the string output. The member name will be present, but the
  3518  // value will be replaced with "sensitive".
  3519  func (s ComponentDeploymentSpecification) GoString() string {
  3520  	return s.String()
  3521  }
  3522  
  3523  // Validate inspects the fields of the type to determine if they are valid.
  3524  func (s *ComponentDeploymentSpecification) Validate() error {
  3525  	invalidParams := request.ErrInvalidParams{Context: "ComponentDeploymentSpecification"}
  3526  	if s.ComponentVersion != nil && len(*s.ComponentVersion) < 1 {
  3527  		invalidParams.Add(request.NewErrParamMinLen("ComponentVersion", 1))
  3528  	}
  3529  	if s.ConfigurationUpdate != nil {
  3530  		if err := s.ConfigurationUpdate.Validate(); err != nil {
  3531  			invalidParams.AddNested("ConfigurationUpdate", err.(request.ErrInvalidParams))
  3532  		}
  3533  	}
  3534  	if s.RunWith != nil {
  3535  		if err := s.RunWith.Validate(); err != nil {
  3536  			invalidParams.AddNested("RunWith", err.(request.ErrInvalidParams))
  3537  		}
  3538  	}
  3539  
  3540  	if invalidParams.Len() > 0 {
  3541  		return invalidParams
  3542  	}
  3543  	return nil
  3544  }
  3545  
  3546  // SetComponentVersion sets the ComponentVersion field's value.
  3547  func (s *ComponentDeploymentSpecification) SetComponentVersion(v string) *ComponentDeploymentSpecification {
  3548  	s.ComponentVersion = &v
  3549  	return s
  3550  }
  3551  
  3552  // SetConfigurationUpdate sets the ConfigurationUpdate field's value.
  3553  func (s *ComponentDeploymentSpecification) SetConfigurationUpdate(v *ComponentConfigurationUpdate) *ComponentDeploymentSpecification {
  3554  	s.ConfigurationUpdate = v
  3555  	return s
  3556  }
  3557  
  3558  // SetRunWith sets the RunWith field's value.
  3559  func (s *ComponentDeploymentSpecification) SetRunWith(v *ComponentRunWith) *ComponentDeploymentSpecification {
  3560  	s.RunWith = v
  3561  	return s
  3562  }
  3563  
  3564  // Contains information about the latest version of a component.
  3565  type ComponentLatestVersion struct {
  3566  	_ struct{} `type:"structure"`
  3567  
  3568  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  3569  	// of the component version.
  3570  	Arn *string `locationName:"arn" type:"string"`
  3571  
  3572  	// The version of the component.
  3573  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  3574  
  3575  	// The time at which the component was created, expressed in ISO 8601 format.
  3576  	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
  3577  
  3578  	// The description of the component version.
  3579  	Description *string `locationName:"description" min:"1" type:"string"`
  3580  
  3581  	// The platforms that the component version supports.
  3582  	Platforms []*ComponentPlatform `locationName:"platforms" type:"list"`
  3583  
  3584  	// The publisher of the component version.
  3585  	Publisher *string `locationName:"publisher" min:"1" type:"string"`
  3586  }
  3587  
  3588  // String returns the string representation.
  3589  //
  3590  // API parameter values that are decorated as "sensitive" in the API will not
  3591  // be included in the string output. The member name will be present, but the
  3592  // value will be replaced with "sensitive".
  3593  func (s ComponentLatestVersion) String() string {
  3594  	return awsutil.Prettify(s)
  3595  }
  3596  
  3597  // GoString returns the string representation.
  3598  //
  3599  // API parameter values that are decorated as "sensitive" in the API will not
  3600  // be included in the string output. The member name will be present, but the
  3601  // value will be replaced with "sensitive".
  3602  func (s ComponentLatestVersion) GoString() string {
  3603  	return s.String()
  3604  }
  3605  
  3606  // SetArn sets the Arn field's value.
  3607  func (s *ComponentLatestVersion) SetArn(v string) *ComponentLatestVersion {
  3608  	s.Arn = &v
  3609  	return s
  3610  }
  3611  
  3612  // SetComponentVersion sets the ComponentVersion field's value.
  3613  func (s *ComponentLatestVersion) SetComponentVersion(v string) *ComponentLatestVersion {
  3614  	s.ComponentVersion = &v
  3615  	return s
  3616  }
  3617  
  3618  // SetCreationTimestamp sets the CreationTimestamp field's value.
  3619  func (s *ComponentLatestVersion) SetCreationTimestamp(v time.Time) *ComponentLatestVersion {
  3620  	s.CreationTimestamp = &v
  3621  	return s
  3622  }
  3623  
  3624  // SetDescription sets the Description field's value.
  3625  func (s *ComponentLatestVersion) SetDescription(v string) *ComponentLatestVersion {
  3626  	s.Description = &v
  3627  	return s
  3628  }
  3629  
  3630  // SetPlatforms sets the Platforms field's value.
  3631  func (s *ComponentLatestVersion) SetPlatforms(v []*ComponentPlatform) *ComponentLatestVersion {
  3632  	s.Platforms = v
  3633  	return s
  3634  }
  3635  
  3636  // SetPublisher sets the Publisher field's value.
  3637  func (s *ComponentLatestVersion) SetPublisher(v string) *ComponentLatestVersion {
  3638  	s.Publisher = &v
  3639  	return s
  3640  }
  3641  
  3642  // Contains information about a platform that a component supports.
  3643  type ComponentPlatform struct {
  3644  	_ struct{} `type:"structure"`
  3645  
  3646  	// A dictionary of attributes for the platform. The IoT Greengrass Core software
  3647  	// defines the os and platform by default. You can specify additional platform
  3648  	// attributes for a core device when you deploy the Greengrass nucleus component.
  3649  	// For more information, see the Greengrass nucleus component (https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html)
  3650  	// in the IoT Greengrass V2 Developer Guide.
  3651  	Attributes map[string]*string `locationName:"attributes" type:"map"`
  3652  
  3653  	// The friendly name of the platform. This name helps you identify the platform.
  3654  	//
  3655  	// If you omit this parameter, IoT Greengrass creates a friendly name from the
  3656  	// os and architecture of the platform.
  3657  	Name *string `locationName:"name" min:"1" type:"string"`
  3658  }
  3659  
  3660  // String returns the string representation.
  3661  //
  3662  // API parameter values that are decorated as "sensitive" in the API will not
  3663  // be included in the string output. The member name will be present, but the
  3664  // value will be replaced with "sensitive".
  3665  func (s ComponentPlatform) String() string {
  3666  	return awsutil.Prettify(s)
  3667  }
  3668  
  3669  // GoString returns the string representation.
  3670  //
  3671  // API parameter values that are decorated as "sensitive" in the API will not
  3672  // be included in the string output. The member name will be present, but the
  3673  // value will be replaced with "sensitive".
  3674  func (s ComponentPlatform) GoString() string {
  3675  	return s.String()
  3676  }
  3677  
  3678  // Validate inspects the fields of the type to determine if they are valid.
  3679  func (s *ComponentPlatform) Validate() error {
  3680  	invalidParams := request.ErrInvalidParams{Context: "ComponentPlatform"}
  3681  	if s.Name != nil && len(*s.Name) < 1 {
  3682  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  3683  	}
  3684  
  3685  	if invalidParams.Len() > 0 {
  3686  		return invalidParams
  3687  	}
  3688  	return nil
  3689  }
  3690  
  3691  // SetAttributes sets the Attributes field's value.
  3692  func (s *ComponentPlatform) SetAttributes(v map[string]*string) *ComponentPlatform {
  3693  	s.Attributes = v
  3694  	return s
  3695  }
  3696  
  3697  // SetName sets the Name field's value.
  3698  func (s *ComponentPlatform) SetName(v string) *ComponentPlatform {
  3699  	s.Name = &v
  3700  	return s
  3701  }
  3702  
  3703  // Contains information system user and group that the IoT Greengrass Core software
  3704  // uses to run component processes on the core device. For more information,
  3705  // see Configure the user and group that run components (https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user)
  3706  // in the IoT Greengrass V2 Developer Guide.
  3707  type ComponentRunWith struct {
  3708  	_ struct{} `type:"structure"`
  3709  
  3710  	// The POSIX system user and (optional) group to use to run this component.
  3711  	// Specify the user and group separated by a colon (:) in the following format:
  3712  	// user:group. The group is optional. If you don't specify a group, the IoT
  3713  	// Greengrass Core software uses the primary user for the group.
  3714  	//
  3715  	// If you omit this parameter, the IoT Greengrass Core software uses the default
  3716  	// system user and group that you configure on the Greengrass nucleus component.
  3717  	// For more information, see Configure the user and group that run components
  3718  	// (https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user).
  3719  	PosixUser *string `locationName:"posixUser" min:"1" type:"string"`
  3720  
  3721  	// The system resource limits to apply to this component's process on the core
  3722  	// device.
  3723  	//
  3724  	// If you omit this parameter, the IoT Greengrass Core software uses the default
  3725  	// system resource limits that you configure on the Greengrass nucleus component.
  3726  	// For more information, see Configure system resource limits for components
  3727  	// (https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits).
  3728  	SystemResourceLimits *SystemResourceLimits `locationName:"systemResourceLimits" type:"structure"`
  3729  }
  3730  
  3731  // String returns the string representation.
  3732  //
  3733  // API parameter values that are decorated as "sensitive" in the API will not
  3734  // be included in the string output. The member name will be present, but the
  3735  // value will be replaced with "sensitive".
  3736  func (s ComponentRunWith) String() string {
  3737  	return awsutil.Prettify(s)
  3738  }
  3739  
  3740  // GoString returns the string representation.
  3741  //
  3742  // API parameter values that are decorated as "sensitive" in the API will not
  3743  // be included in the string output. The member name will be present, but the
  3744  // value will be replaced with "sensitive".
  3745  func (s ComponentRunWith) GoString() string {
  3746  	return s.String()
  3747  }
  3748  
  3749  // Validate inspects the fields of the type to determine if they are valid.
  3750  func (s *ComponentRunWith) Validate() error {
  3751  	invalidParams := request.ErrInvalidParams{Context: "ComponentRunWith"}
  3752  	if s.PosixUser != nil && len(*s.PosixUser) < 1 {
  3753  		invalidParams.Add(request.NewErrParamMinLen("PosixUser", 1))
  3754  	}
  3755  
  3756  	if invalidParams.Len() > 0 {
  3757  		return invalidParams
  3758  	}
  3759  	return nil
  3760  }
  3761  
  3762  // SetPosixUser sets the PosixUser field's value.
  3763  func (s *ComponentRunWith) SetPosixUser(v string) *ComponentRunWith {
  3764  	s.PosixUser = &v
  3765  	return s
  3766  }
  3767  
  3768  // SetSystemResourceLimits sets the SystemResourceLimits field's value.
  3769  func (s *ComponentRunWith) SetSystemResourceLimits(v *SystemResourceLimits) *ComponentRunWith {
  3770  	s.SystemResourceLimits = v
  3771  	return s
  3772  }
  3773  
  3774  // Contains information about a component version in a list.
  3775  type ComponentVersionListItem struct {
  3776  	_ struct{} `type:"structure"`
  3777  
  3778  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  3779  	// of the component version.
  3780  	Arn *string `locationName:"arn" min:"1" type:"string"`
  3781  
  3782  	// The name of the component.
  3783  	ComponentName *string `locationName:"componentName" min:"1" type:"string"`
  3784  
  3785  	// The version of the component.
  3786  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  3787  }
  3788  
  3789  // String returns the string representation.
  3790  //
  3791  // API parameter values that are decorated as "sensitive" in the API will not
  3792  // be included in the string output. The member name will be present, but the
  3793  // value will be replaced with "sensitive".
  3794  func (s ComponentVersionListItem) String() string {
  3795  	return awsutil.Prettify(s)
  3796  }
  3797  
  3798  // GoString returns the string representation.
  3799  //
  3800  // API parameter values that are decorated as "sensitive" in the API will not
  3801  // be included in the string output. The member name will be present, but the
  3802  // value will be replaced with "sensitive".
  3803  func (s ComponentVersionListItem) GoString() string {
  3804  	return s.String()
  3805  }
  3806  
  3807  // SetArn sets the Arn field's value.
  3808  func (s *ComponentVersionListItem) SetArn(v string) *ComponentVersionListItem {
  3809  	s.Arn = &v
  3810  	return s
  3811  }
  3812  
  3813  // SetComponentName sets the ComponentName field's value.
  3814  func (s *ComponentVersionListItem) SetComponentName(v string) *ComponentVersionListItem {
  3815  	s.ComponentName = &v
  3816  	return s
  3817  }
  3818  
  3819  // SetComponentVersion sets the ComponentVersion field's value.
  3820  func (s *ComponentVersionListItem) SetComponentVersion(v string) *ComponentVersionListItem {
  3821  	s.ComponentVersion = &v
  3822  	return s
  3823  }
  3824  
  3825  // Your request has conflicting operations. This can occur if you're trying
  3826  // to perform more than one operation on the same resource at the same time.
  3827  type ConflictException struct {
  3828  	_            struct{}                  `type:"structure"`
  3829  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3830  
  3831  	Message_ *string `locationName:"message" type:"string"`
  3832  
  3833  	// The ID of the resource that conflicts with the request.
  3834  	//
  3835  	// ResourceId is a required field
  3836  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  3837  
  3838  	// The type of the resource that conflicts with the request.
  3839  	//
  3840  	// ResourceType is a required field
  3841  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  3842  }
  3843  
  3844  // String returns the string representation.
  3845  //
  3846  // API parameter values that are decorated as "sensitive" in the API will not
  3847  // be included in the string output. The member name will be present, but the
  3848  // value will be replaced with "sensitive".
  3849  func (s ConflictException) String() string {
  3850  	return awsutil.Prettify(s)
  3851  }
  3852  
  3853  // GoString returns the string representation.
  3854  //
  3855  // API parameter values that are decorated as "sensitive" in the API will not
  3856  // be included in the string output. The member name will be present, but the
  3857  // value will be replaced with "sensitive".
  3858  func (s ConflictException) GoString() string {
  3859  	return s.String()
  3860  }
  3861  
  3862  func newErrorConflictException(v protocol.ResponseMetadata) error {
  3863  	return &ConflictException{
  3864  		RespMetadata: v,
  3865  	}
  3866  }
  3867  
  3868  // Code returns the exception type name.
  3869  func (s *ConflictException) Code() string {
  3870  	return "ConflictException"
  3871  }
  3872  
  3873  // Message returns the exception's message.
  3874  func (s *ConflictException) Message() string {
  3875  	if s.Message_ != nil {
  3876  		return *s.Message_
  3877  	}
  3878  	return ""
  3879  }
  3880  
  3881  // OrigErr always returns nil, satisfies awserr.Error interface.
  3882  func (s *ConflictException) OrigErr() error {
  3883  	return nil
  3884  }
  3885  
  3886  func (s *ConflictException) Error() string {
  3887  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  3888  }
  3889  
  3890  // Status code returns the HTTP status code for the request's response error.
  3891  func (s *ConflictException) StatusCode() int {
  3892  	return s.RespMetadata.StatusCode
  3893  }
  3894  
  3895  // RequestID returns the service's response RequestID for request.
  3896  func (s *ConflictException) RequestID() string {
  3897  	return s.RespMetadata.RequestID
  3898  }
  3899  
  3900  // Contains information about a Greengrass core device, which is an IoT thing
  3901  // that runs the IoT Greengrass Core software.
  3902  type CoreDevice struct {
  3903  	_ struct{} `type:"structure"`
  3904  
  3905  	// The name of the core device. This is also the name of the IoT thing.
  3906  	CoreDeviceThingName *string `locationName:"coreDeviceThingName" min:"1" type:"string"`
  3907  
  3908  	// The time at which the core device's status last updated, expressed in ISO
  3909  	// 8601 format.
  3910  	LastStatusUpdateTimestamp *time.Time `locationName:"lastStatusUpdateTimestamp" type:"timestamp"`
  3911  
  3912  	// The status of the core device. Core devices can have the following statuses:
  3913  	//
  3914  	//    * HEALTHY – The IoT Greengrass Core software and all components run
  3915  	//    on the core device without issue.
  3916  	//
  3917  	//    * UNHEALTHY – The IoT Greengrass Core software or a component is in
  3918  	//    a failed state on the core device.
  3919  	Status *string `locationName:"status" type:"string" enum:"CoreDeviceStatus"`
  3920  }
  3921  
  3922  // String returns the string representation.
  3923  //
  3924  // API parameter values that are decorated as "sensitive" in the API will not
  3925  // be included in the string output. The member name will be present, but the
  3926  // value will be replaced with "sensitive".
  3927  func (s CoreDevice) String() string {
  3928  	return awsutil.Prettify(s)
  3929  }
  3930  
  3931  // GoString returns the string representation.
  3932  //
  3933  // API parameter values that are decorated as "sensitive" in the API will not
  3934  // be included in the string output. The member name will be present, but the
  3935  // value will be replaced with "sensitive".
  3936  func (s CoreDevice) GoString() string {
  3937  	return s.String()
  3938  }
  3939  
  3940  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  3941  func (s *CoreDevice) SetCoreDeviceThingName(v string) *CoreDevice {
  3942  	s.CoreDeviceThingName = &v
  3943  	return s
  3944  }
  3945  
  3946  // SetLastStatusUpdateTimestamp sets the LastStatusUpdateTimestamp field's value.
  3947  func (s *CoreDevice) SetLastStatusUpdateTimestamp(v time.Time) *CoreDevice {
  3948  	s.LastStatusUpdateTimestamp = &v
  3949  	return s
  3950  }
  3951  
  3952  // SetStatus sets the Status field's value.
  3953  func (s *CoreDevice) SetStatus(v string) *CoreDevice {
  3954  	s.Status = &v
  3955  	return s
  3956  }
  3957  
  3958  type CreateComponentVersionInput struct {
  3959  	_ struct{} `type:"structure"`
  3960  
  3961  	// A unique, case-sensitive identifier that you can provide to ensure that the
  3962  	// request is idempotent. Idempotency means that the request is successfully
  3963  	// processed only once, even if you send the request multiple times. When a
  3964  	// request succeeds, and you specify the same client token for subsequent successful
  3965  	// requests, the IoT Greengrass V2 service returns the successful response that
  3966  	// it caches from the previous request. IoT Greengrass V2 caches successful
  3967  	// responses for idempotent requests for up to 8 hours.
  3968  	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`
  3969  
  3970  	// The recipe to use to create the component. The recipe defines the component's
  3971  	// metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility.
  3972  	//
  3973  	// You must specify either inlineRecipe or lambdaFunction.
  3974  	// InlineRecipe is automatically base64 encoded/decoded by the SDK.
  3975  	InlineRecipe []byte `locationName:"inlineRecipe" type:"blob"`
  3976  
  3977  	// The parameters to create a component from a Lambda function.
  3978  	//
  3979  	// You must specify either inlineRecipe or lambdaFunction.
  3980  	LambdaFunction *LambdaFunctionRecipeSource `locationName:"lambdaFunction" type:"structure"`
  3981  
  3982  	// A list of key-value pairs that contain metadata for the resource. For more
  3983  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  3984  	// in the IoT Greengrass V2 Developer Guide.
  3985  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  3986  }
  3987  
  3988  // String returns the string representation.
  3989  //
  3990  // API parameter values that are decorated as "sensitive" in the API will not
  3991  // be included in the string output. The member name will be present, but the
  3992  // value will be replaced with "sensitive".
  3993  func (s CreateComponentVersionInput) String() string {
  3994  	return awsutil.Prettify(s)
  3995  }
  3996  
  3997  // GoString returns the string representation.
  3998  //
  3999  // API parameter values that are decorated as "sensitive" in the API will not
  4000  // be included in the string output. The member name will be present, but the
  4001  // value will be replaced with "sensitive".
  4002  func (s CreateComponentVersionInput) GoString() string {
  4003  	return s.String()
  4004  }
  4005  
  4006  // Validate inspects the fields of the type to determine if they are valid.
  4007  func (s *CreateComponentVersionInput) Validate() error {
  4008  	invalidParams := request.ErrInvalidParams{Context: "CreateComponentVersionInput"}
  4009  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  4010  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  4011  	}
  4012  	if s.Tags != nil && len(s.Tags) < 1 {
  4013  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  4014  	}
  4015  	if s.LambdaFunction != nil {
  4016  		if err := s.LambdaFunction.Validate(); err != nil {
  4017  			invalidParams.AddNested("LambdaFunction", err.(request.ErrInvalidParams))
  4018  		}
  4019  	}
  4020  
  4021  	if invalidParams.Len() > 0 {
  4022  		return invalidParams
  4023  	}
  4024  	return nil
  4025  }
  4026  
  4027  // SetClientToken sets the ClientToken field's value.
  4028  func (s *CreateComponentVersionInput) SetClientToken(v string) *CreateComponentVersionInput {
  4029  	s.ClientToken = &v
  4030  	return s
  4031  }
  4032  
  4033  // SetInlineRecipe sets the InlineRecipe field's value.
  4034  func (s *CreateComponentVersionInput) SetInlineRecipe(v []byte) *CreateComponentVersionInput {
  4035  	s.InlineRecipe = v
  4036  	return s
  4037  }
  4038  
  4039  // SetLambdaFunction sets the LambdaFunction field's value.
  4040  func (s *CreateComponentVersionInput) SetLambdaFunction(v *LambdaFunctionRecipeSource) *CreateComponentVersionInput {
  4041  	s.LambdaFunction = v
  4042  	return s
  4043  }
  4044  
  4045  // SetTags sets the Tags field's value.
  4046  func (s *CreateComponentVersionInput) SetTags(v map[string]*string) *CreateComponentVersionInput {
  4047  	s.Tags = v
  4048  	return s
  4049  }
  4050  
  4051  type CreateComponentVersionOutput struct {
  4052  	_ struct{} `type:"structure"`
  4053  
  4054  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  4055  	// of the component version.
  4056  	Arn *string `locationName:"arn" type:"string"`
  4057  
  4058  	// The name of the component.
  4059  	//
  4060  	// ComponentName is a required field
  4061  	ComponentName *string `locationName:"componentName" min:"1" type:"string" required:"true"`
  4062  
  4063  	// The version of the component.
  4064  	//
  4065  	// ComponentVersion is a required field
  4066  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string" required:"true"`
  4067  
  4068  	// The time at which the component was created, expressed in ISO 8601 format.
  4069  	//
  4070  	// CreationTimestamp is a required field
  4071  	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp" required:"true"`
  4072  
  4073  	// The status of the component version in IoT Greengrass V2. This status is
  4074  	// different from the status of the component on a core device.
  4075  	//
  4076  	// Status is a required field
  4077  	Status *CloudComponentStatus `locationName:"status" type:"structure" required:"true"`
  4078  }
  4079  
  4080  // String returns the string representation.
  4081  //
  4082  // API parameter values that are decorated as "sensitive" in the API will not
  4083  // be included in the string output. The member name will be present, but the
  4084  // value will be replaced with "sensitive".
  4085  func (s CreateComponentVersionOutput) String() string {
  4086  	return awsutil.Prettify(s)
  4087  }
  4088  
  4089  // GoString returns the string representation.
  4090  //
  4091  // API parameter values that are decorated as "sensitive" in the API will not
  4092  // be included in the string output. The member name will be present, but the
  4093  // value will be replaced with "sensitive".
  4094  func (s CreateComponentVersionOutput) GoString() string {
  4095  	return s.String()
  4096  }
  4097  
  4098  // SetArn sets the Arn field's value.
  4099  func (s *CreateComponentVersionOutput) SetArn(v string) *CreateComponentVersionOutput {
  4100  	s.Arn = &v
  4101  	return s
  4102  }
  4103  
  4104  // SetComponentName sets the ComponentName field's value.
  4105  func (s *CreateComponentVersionOutput) SetComponentName(v string) *CreateComponentVersionOutput {
  4106  	s.ComponentName = &v
  4107  	return s
  4108  }
  4109  
  4110  // SetComponentVersion sets the ComponentVersion field's value.
  4111  func (s *CreateComponentVersionOutput) SetComponentVersion(v string) *CreateComponentVersionOutput {
  4112  	s.ComponentVersion = &v
  4113  	return s
  4114  }
  4115  
  4116  // SetCreationTimestamp sets the CreationTimestamp field's value.
  4117  func (s *CreateComponentVersionOutput) SetCreationTimestamp(v time.Time) *CreateComponentVersionOutput {
  4118  	s.CreationTimestamp = &v
  4119  	return s
  4120  }
  4121  
  4122  // SetStatus sets the Status field's value.
  4123  func (s *CreateComponentVersionOutput) SetStatus(v *CloudComponentStatus) *CreateComponentVersionOutput {
  4124  	s.Status = v
  4125  	return s
  4126  }
  4127  
  4128  type CreateDeploymentInput struct {
  4129  	_ struct{} `type:"structure"`
  4130  
  4131  	// A unique, case-sensitive identifier that you can provide to ensure that the
  4132  	// request is idempotent. Idempotency means that the request is successfully
  4133  	// processed only once, even if you send the request multiple times. When a
  4134  	// request succeeds, and you specify the same client token for subsequent successful
  4135  	// requests, the IoT Greengrass V2 service returns the successful response that
  4136  	// it caches from the previous request. IoT Greengrass V2 caches successful
  4137  	// responses for idempotent requests for up to 8 hours.
  4138  	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`
  4139  
  4140  	// The components to deploy. This is a dictionary, where each key is the name
  4141  	// of a component, and each key's value is the version and configuration to
  4142  	// deploy for that component.
  4143  	Components map[string]*ComponentDeploymentSpecification `locationName:"components" type:"map"`
  4144  
  4145  	// The name of the deployment.
  4146  	DeploymentName *string `locationName:"deploymentName" min:"1" type:"string"`
  4147  
  4148  	// The deployment policies for the deployment. These policies define how the
  4149  	// deployment updates components and handles failure.
  4150  	DeploymentPolicies *DeploymentPolicies `locationName:"deploymentPolicies" type:"structure"`
  4151  
  4152  	// The job configuration for the deployment configuration. The job configuration
  4153  	// specifies the rollout, timeout, and stop configurations for the deployment
  4154  	// configuration.
  4155  	IotJobConfiguration *DeploymentIoTJobConfiguration `locationName:"iotJobConfiguration" type:"structure"`
  4156  
  4157  	// A list of key-value pairs that contain metadata for the resource. For more
  4158  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  4159  	// in the IoT Greengrass V2 Developer Guide.
  4160  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  4161  
  4162  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  4163  	// of the target IoT thing or thing group.
  4164  	//
  4165  	// TargetArn is a required field
  4166  	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
  4167  }
  4168  
  4169  // String returns the string representation.
  4170  //
  4171  // API parameter values that are decorated as "sensitive" in the API will not
  4172  // be included in the string output. The member name will be present, but the
  4173  // value will be replaced with "sensitive".
  4174  func (s CreateDeploymentInput) String() string {
  4175  	return awsutil.Prettify(s)
  4176  }
  4177  
  4178  // GoString returns the string representation.
  4179  //
  4180  // API parameter values that are decorated as "sensitive" in the API will not
  4181  // be included in the string output. The member name will be present, but the
  4182  // value will be replaced with "sensitive".
  4183  func (s CreateDeploymentInput) GoString() string {
  4184  	return s.String()
  4185  }
  4186  
  4187  // Validate inspects the fields of the type to determine if they are valid.
  4188  func (s *CreateDeploymentInput) Validate() error {
  4189  	invalidParams := request.ErrInvalidParams{Context: "CreateDeploymentInput"}
  4190  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  4191  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  4192  	}
  4193  	if s.DeploymentName != nil && len(*s.DeploymentName) < 1 {
  4194  		invalidParams.Add(request.NewErrParamMinLen("DeploymentName", 1))
  4195  	}
  4196  	if s.Tags != nil && len(s.Tags) < 1 {
  4197  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  4198  	}
  4199  	if s.TargetArn == nil {
  4200  		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
  4201  	}
  4202  	if s.Components != nil {
  4203  		for i, v := range s.Components {
  4204  			if v == nil {
  4205  				continue
  4206  			}
  4207  			if err := v.Validate(); err != nil {
  4208  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Components", i), err.(request.ErrInvalidParams))
  4209  			}
  4210  		}
  4211  	}
  4212  	if s.IotJobConfiguration != nil {
  4213  		if err := s.IotJobConfiguration.Validate(); err != nil {
  4214  			invalidParams.AddNested("IotJobConfiguration", err.(request.ErrInvalidParams))
  4215  		}
  4216  	}
  4217  
  4218  	if invalidParams.Len() > 0 {
  4219  		return invalidParams
  4220  	}
  4221  	return nil
  4222  }
  4223  
  4224  // SetClientToken sets the ClientToken field's value.
  4225  func (s *CreateDeploymentInput) SetClientToken(v string) *CreateDeploymentInput {
  4226  	s.ClientToken = &v
  4227  	return s
  4228  }
  4229  
  4230  // SetComponents sets the Components field's value.
  4231  func (s *CreateDeploymentInput) SetComponents(v map[string]*ComponentDeploymentSpecification) *CreateDeploymentInput {
  4232  	s.Components = v
  4233  	return s
  4234  }
  4235  
  4236  // SetDeploymentName sets the DeploymentName field's value.
  4237  func (s *CreateDeploymentInput) SetDeploymentName(v string) *CreateDeploymentInput {
  4238  	s.DeploymentName = &v
  4239  	return s
  4240  }
  4241  
  4242  // SetDeploymentPolicies sets the DeploymentPolicies field's value.
  4243  func (s *CreateDeploymentInput) SetDeploymentPolicies(v *DeploymentPolicies) *CreateDeploymentInput {
  4244  	s.DeploymentPolicies = v
  4245  	return s
  4246  }
  4247  
  4248  // SetIotJobConfiguration sets the IotJobConfiguration field's value.
  4249  func (s *CreateDeploymentInput) SetIotJobConfiguration(v *DeploymentIoTJobConfiguration) *CreateDeploymentInput {
  4250  	s.IotJobConfiguration = v
  4251  	return s
  4252  }
  4253  
  4254  // SetTags sets the Tags field's value.
  4255  func (s *CreateDeploymentInput) SetTags(v map[string]*string) *CreateDeploymentInput {
  4256  	s.Tags = v
  4257  	return s
  4258  }
  4259  
  4260  // SetTargetArn sets the TargetArn field's value.
  4261  func (s *CreateDeploymentInput) SetTargetArn(v string) *CreateDeploymentInput {
  4262  	s.TargetArn = &v
  4263  	return s
  4264  }
  4265  
  4266  type CreateDeploymentOutput struct {
  4267  	_ struct{} `type:"structure"`
  4268  
  4269  	// The ID of the deployment.
  4270  	DeploymentId *string `locationName:"deploymentId" min:"1" type:"string"`
  4271  
  4272  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  4273  	// of the IoT job that applies the deployment to target devices.
  4274  	IotJobArn *string `locationName:"iotJobArn" type:"string"`
  4275  
  4276  	// The ID of the IoT job that applies the deployment to target devices.
  4277  	IotJobId *string `locationName:"iotJobId" min:"1" type:"string"`
  4278  }
  4279  
  4280  // String returns the string representation.
  4281  //
  4282  // API parameter values that are decorated as "sensitive" in the API will not
  4283  // be included in the string output. The member name will be present, but the
  4284  // value will be replaced with "sensitive".
  4285  func (s CreateDeploymentOutput) String() string {
  4286  	return awsutil.Prettify(s)
  4287  }
  4288  
  4289  // GoString returns the string representation.
  4290  //
  4291  // API parameter values that are decorated as "sensitive" in the API will not
  4292  // be included in the string output. The member name will be present, but the
  4293  // value will be replaced with "sensitive".
  4294  func (s CreateDeploymentOutput) GoString() string {
  4295  	return s.String()
  4296  }
  4297  
  4298  // SetDeploymentId sets the DeploymentId field's value.
  4299  func (s *CreateDeploymentOutput) SetDeploymentId(v string) *CreateDeploymentOutput {
  4300  	s.DeploymentId = &v
  4301  	return s
  4302  }
  4303  
  4304  // SetIotJobArn sets the IotJobArn field's value.
  4305  func (s *CreateDeploymentOutput) SetIotJobArn(v string) *CreateDeploymentOutput {
  4306  	s.IotJobArn = &v
  4307  	return s
  4308  }
  4309  
  4310  // SetIotJobId sets the IotJobId field's value.
  4311  func (s *CreateDeploymentOutput) SetIotJobId(v string) *CreateDeploymentOutput {
  4312  	s.IotJobId = &v
  4313  	return s
  4314  }
  4315  
  4316  type DeleteComponentInput struct {
  4317  	_ struct{} `type:"structure" nopayload:"true"`
  4318  
  4319  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  4320  	// of the component version.
  4321  	//
  4322  	// Arn is a required field
  4323  	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
  4324  }
  4325  
  4326  // String returns the string representation.
  4327  //
  4328  // API parameter values that are decorated as "sensitive" in the API will not
  4329  // be included in the string output. The member name will be present, but the
  4330  // value will be replaced with "sensitive".
  4331  func (s DeleteComponentInput) String() string {
  4332  	return awsutil.Prettify(s)
  4333  }
  4334  
  4335  // GoString returns the string representation.
  4336  //
  4337  // API parameter values that are decorated as "sensitive" in the API will not
  4338  // be included in the string output. The member name will be present, but the
  4339  // value will be replaced with "sensitive".
  4340  func (s DeleteComponentInput) GoString() string {
  4341  	return s.String()
  4342  }
  4343  
  4344  // Validate inspects the fields of the type to determine if they are valid.
  4345  func (s *DeleteComponentInput) Validate() error {
  4346  	invalidParams := request.ErrInvalidParams{Context: "DeleteComponentInput"}
  4347  	if s.Arn == nil {
  4348  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  4349  	}
  4350  	if s.Arn != nil && len(*s.Arn) < 1 {
  4351  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
  4352  	}
  4353  
  4354  	if invalidParams.Len() > 0 {
  4355  		return invalidParams
  4356  	}
  4357  	return nil
  4358  }
  4359  
  4360  // SetArn sets the Arn field's value.
  4361  func (s *DeleteComponentInput) SetArn(v string) *DeleteComponentInput {
  4362  	s.Arn = &v
  4363  	return s
  4364  }
  4365  
  4366  type DeleteComponentOutput struct {
  4367  	_ struct{} `type:"structure" nopayload:"true"`
  4368  }
  4369  
  4370  // String returns the string representation.
  4371  //
  4372  // API parameter values that are decorated as "sensitive" in the API will not
  4373  // be included in the string output. The member name will be present, but the
  4374  // value will be replaced with "sensitive".
  4375  func (s DeleteComponentOutput) String() string {
  4376  	return awsutil.Prettify(s)
  4377  }
  4378  
  4379  // GoString returns the string representation.
  4380  //
  4381  // API parameter values that are decorated as "sensitive" in the API will not
  4382  // be included in the string output. The member name will be present, but the
  4383  // value will be replaced with "sensitive".
  4384  func (s DeleteComponentOutput) GoString() string {
  4385  	return s.String()
  4386  }
  4387  
  4388  type DeleteCoreDeviceInput struct {
  4389  	_ struct{} `type:"structure" nopayload:"true"`
  4390  
  4391  	// The name of the core device. This is also the name of the IoT thing.
  4392  	//
  4393  	// CoreDeviceThingName is a required field
  4394  	CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"`
  4395  }
  4396  
  4397  // String returns the string representation.
  4398  //
  4399  // API parameter values that are decorated as "sensitive" in the API will not
  4400  // be included in the string output. The member name will be present, but the
  4401  // value will be replaced with "sensitive".
  4402  func (s DeleteCoreDeviceInput) String() string {
  4403  	return awsutil.Prettify(s)
  4404  }
  4405  
  4406  // GoString returns the string representation.
  4407  //
  4408  // API parameter values that are decorated as "sensitive" in the API will not
  4409  // be included in the string output. The member name will be present, but the
  4410  // value will be replaced with "sensitive".
  4411  func (s DeleteCoreDeviceInput) GoString() string {
  4412  	return s.String()
  4413  }
  4414  
  4415  // Validate inspects the fields of the type to determine if they are valid.
  4416  func (s *DeleteCoreDeviceInput) Validate() error {
  4417  	invalidParams := request.ErrInvalidParams{Context: "DeleteCoreDeviceInput"}
  4418  	if s.CoreDeviceThingName == nil {
  4419  		invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName"))
  4420  	}
  4421  	if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 {
  4422  		invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1))
  4423  	}
  4424  
  4425  	if invalidParams.Len() > 0 {
  4426  		return invalidParams
  4427  	}
  4428  	return nil
  4429  }
  4430  
  4431  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  4432  func (s *DeleteCoreDeviceInput) SetCoreDeviceThingName(v string) *DeleteCoreDeviceInput {
  4433  	s.CoreDeviceThingName = &v
  4434  	return s
  4435  }
  4436  
  4437  type DeleteCoreDeviceOutput struct {
  4438  	_ struct{} `type:"structure" nopayload:"true"`
  4439  }
  4440  
  4441  // String returns the string representation.
  4442  //
  4443  // API parameter values that are decorated as "sensitive" in the API will not
  4444  // be included in the string output. The member name will be present, but the
  4445  // value will be replaced with "sensitive".
  4446  func (s DeleteCoreDeviceOutput) String() string {
  4447  	return awsutil.Prettify(s)
  4448  }
  4449  
  4450  // GoString returns the string representation.
  4451  //
  4452  // API parameter values that are decorated as "sensitive" in the API will not
  4453  // be included in the string output. The member name will be present, but the
  4454  // value will be replaced with "sensitive".
  4455  func (s DeleteCoreDeviceOutput) GoString() string {
  4456  	return s.String()
  4457  }
  4458  
  4459  // Contains information about a deployment.
  4460  type Deployment struct {
  4461  	_ struct{} `type:"structure"`
  4462  
  4463  	// The time at which the deployment was created, expressed in ISO 8601 format.
  4464  	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
  4465  
  4466  	// The ID of the deployment.
  4467  	DeploymentId *string `locationName:"deploymentId" min:"1" type:"string"`
  4468  
  4469  	// The name of the deployment.
  4470  	DeploymentName *string `locationName:"deploymentName" min:"1" type:"string"`
  4471  
  4472  	// The status of the deployment.
  4473  	DeploymentStatus *string `locationName:"deploymentStatus" type:"string" enum:"DeploymentStatus"`
  4474  
  4475  	// Whether or not the deployment is the latest revision for its target.
  4476  	IsLatestForTarget *bool `locationName:"isLatestForTarget" type:"boolean"`
  4477  
  4478  	// The revision number of the deployment.
  4479  	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
  4480  
  4481  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  4482  	// of the target IoT thing or thing group.
  4483  	TargetArn *string `locationName:"targetArn" type:"string"`
  4484  }
  4485  
  4486  // String returns the string representation.
  4487  //
  4488  // API parameter values that are decorated as "sensitive" in the API will not
  4489  // be included in the string output. The member name will be present, but the
  4490  // value will be replaced with "sensitive".
  4491  func (s Deployment) String() string {
  4492  	return awsutil.Prettify(s)
  4493  }
  4494  
  4495  // GoString returns the string representation.
  4496  //
  4497  // API parameter values that are decorated as "sensitive" in the API will not
  4498  // be included in the string output. The member name will be present, but the
  4499  // value will be replaced with "sensitive".
  4500  func (s Deployment) GoString() string {
  4501  	return s.String()
  4502  }
  4503  
  4504  // SetCreationTimestamp sets the CreationTimestamp field's value.
  4505  func (s *Deployment) SetCreationTimestamp(v time.Time) *Deployment {
  4506  	s.CreationTimestamp = &v
  4507  	return s
  4508  }
  4509  
  4510  // SetDeploymentId sets the DeploymentId field's value.
  4511  func (s *Deployment) SetDeploymentId(v string) *Deployment {
  4512  	s.DeploymentId = &v
  4513  	return s
  4514  }
  4515  
  4516  // SetDeploymentName sets the DeploymentName field's value.
  4517  func (s *Deployment) SetDeploymentName(v string) *Deployment {
  4518  	s.DeploymentName = &v
  4519  	return s
  4520  }
  4521  
  4522  // SetDeploymentStatus sets the DeploymentStatus field's value.
  4523  func (s *Deployment) SetDeploymentStatus(v string) *Deployment {
  4524  	s.DeploymentStatus = &v
  4525  	return s
  4526  }
  4527  
  4528  // SetIsLatestForTarget sets the IsLatestForTarget field's value.
  4529  func (s *Deployment) SetIsLatestForTarget(v bool) *Deployment {
  4530  	s.IsLatestForTarget = &v
  4531  	return s
  4532  }
  4533  
  4534  // SetRevisionId sets the RevisionId field's value.
  4535  func (s *Deployment) SetRevisionId(v string) *Deployment {
  4536  	s.RevisionId = &v
  4537  	return s
  4538  }
  4539  
  4540  // SetTargetArn sets the TargetArn field's value.
  4541  func (s *Deployment) SetTargetArn(v string) *Deployment {
  4542  	s.TargetArn = &v
  4543  	return s
  4544  }
  4545  
  4546  // Contains information about a deployment's policy that defines when components
  4547  // are safe to update.
  4548  //
  4549  // Each component on a device can report whether or not it's ready to update.
  4550  // After a component and its dependencies are ready, they can apply the update
  4551  // in the deployment. You can configure whether or not the deployment notifies
  4552  // components of an update and waits for a response. You specify the amount
  4553  // of time each component has to respond to the update notification.
  4554  type DeploymentComponentUpdatePolicy struct {
  4555  	_ struct{} `type:"structure"`
  4556  
  4557  	// Whether or not to notify components and wait for components to become safe
  4558  	// to update. Choose from the following options:
  4559  	//
  4560  	//    * NOTIFY_COMPONENTS – The deployment notifies each component before
  4561  	//    it stops and updates that component. Components can use the SubscribeToComponentUpdates
  4562  	//    (https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates)
  4563  	//    IPC operation to receive these notifications. Then, components can respond
  4564  	//    with the DeferComponentUpdate (https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate)
  4565  	//    IPC operation. For more information, see Create deployments (https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html)
  4566  	//    in the IoT Greengrass V2 Developer Guide.
  4567  	//
  4568  	//    * SKIP_NOTIFY_COMPONENTS – The deployment doesn't notify components
  4569  	//    or wait for them to be safe to update.
  4570  	//
  4571  	// Default: NOTIFY_COMPONENTS
  4572  	Action *string `locationName:"action" type:"string" enum:"DeploymentComponentUpdatePolicyAction"`
  4573  
  4574  	// The amount of time in seconds that each component on a device has to report
  4575  	// that it's safe to update. If the component waits for longer than this timeout,
  4576  	// then the deployment proceeds on the device.
  4577  	//
  4578  	// Default: 60
  4579  	TimeoutInSeconds *int64 `locationName:"timeoutInSeconds" type:"integer"`
  4580  }
  4581  
  4582  // String returns the string representation.
  4583  //
  4584  // API parameter values that are decorated as "sensitive" in the API will not
  4585  // be included in the string output. The member name will be present, but the
  4586  // value will be replaced with "sensitive".
  4587  func (s DeploymentComponentUpdatePolicy) String() string {
  4588  	return awsutil.Prettify(s)
  4589  }
  4590  
  4591  // GoString returns the string representation.
  4592  //
  4593  // API parameter values that are decorated as "sensitive" in the API will not
  4594  // be included in the string output. The member name will be present, but the
  4595  // value will be replaced with "sensitive".
  4596  func (s DeploymentComponentUpdatePolicy) GoString() string {
  4597  	return s.String()
  4598  }
  4599  
  4600  // SetAction sets the Action field's value.
  4601  func (s *DeploymentComponentUpdatePolicy) SetAction(v string) *DeploymentComponentUpdatePolicy {
  4602  	s.Action = &v
  4603  	return s
  4604  }
  4605  
  4606  // SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
  4607  func (s *DeploymentComponentUpdatePolicy) SetTimeoutInSeconds(v int64) *DeploymentComponentUpdatePolicy {
  4608  	s.TimeoutInSeconds = &v
  4609  	return s
  4610  }
  4611  
  4612  // Contains information about how long a component on a core device can validate
  4613  // its configuration updates before it times out. Components can use the SubscribeToValidateConfigurationUpdates
  4614  // (https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetovalidateconfigurationupdates)
  4615  // IPC operation to receive notifications when a deployment specifies a configuration
  4616  // update. Then, components can respond with the SendConfigurationValidityReport
  4617  // (https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-sendconfigurationvalidityreport)
  4618  // IPC operation. For more information, see Create deployments (https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html)
  4619  // in the IoT Greengrass V2 Developer Guide.
  4620  type DeploymentConfigurationValidationPolicy struct {
  4621  	_ struct{} `type:"structure"`
  4622  
  4623  	// The amount of time in seconds that a component can validate its configuration
  4624  	// updates. If the validation time exceeds this timeout, then the deployment
  4625  	// proceeds for the device.
  4626  	//
  4627  	// Default: 30
  4628  	TimeoutInSeconds *int64 `locationName:"timeoutInSeconds" type:"integer"`
  4629  }
  4630  
  4631  // String returns the string representation.
  4632  //
  4633  // API parameter values that are decorated as "sensitive" in the API will not
  4634  // be included in the string output. The member name will be present, but the
  4635  // value will be replaced with "sensitive".
  4636  func (s DeploymentConfigurationValidationPolicy) String() string {
  4637  	return awsutil.Prettify(s)
  4638  }
  4639  
  4640  // GoString returns the string representation.
  4641  //
  4642  // API parameter values that are decorated as "sensitive" in the API will not
  4643  // be included in the string output. The member name will be present, but the
  4644  // value will be replaced with "sensitive".
  4645  func (s DeploymentConfigurationValidationPolicy) GoString() string {
  4646  	return s.String()
  4647  }
  4648  
  4649  // SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
  4650  func (s *DeploymentConfigurationValidationPolicy) SetTimeoutInSeconds(v int64) *DeploymentConfigurationValidationPolicy {
  4651  	s.TimeoutInSeconds = &v
  4652  	return s
  4653  }
  4654  
  4655  // Contains information about an IoT job configuration.
  4656  type DeploymentIoTJobConfiguration struct {
  4657  	_ struct{} `type:"structure"`
  4658  
  4659  	// The stop configuration for the job. This configuration defines when and how
  4660  	// to stop a job rollout.
  4661  	AbortConfig *IoTJobAbortConfig `locationName:"abortConfig" type:"structure"`
  4662  
  4663  	// The rollout configuration for the job. This configuration defines the rate
  4664  	// at which the job rolls out to the fleet of target devices.
  4665  	JobExecutionsRolloutConfig *IoTJobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
  4666  
  4667  	// The timeout configuration for the job. This configuration defines the amount
  4668  	// of time each device has to complete the job.
  4669  	TimeoutConfig *IoTJobTimeoutConfig `locationName:"timeoutConfig" type:"structure"`
  4670  }
  4671  
  4672  // String returns the string representation.
  4673  //
  4674  // API parameter values that are decorated as "sensitive" in the API will not
  4675  // be included in the string output. The member name will be present, but the
  4676  // value will be replaced with "sensitive".
  4677  func (s DeploymentIoTJobConfiguration) String() string {
  4678  	return awsutil.Prettify(s)
  4679  }
  4680  
  4681  // GoString returns the string representation.
  4682  //
  4683  // API parameter values that are decorated as "sensitive" in the API will not
  4684  // be included in the string output. The member name will be present, but the
  4685  // value will be replaced with "sensitive".
  4686  func (s DeploymentIoTJobConfiguration) GoString() string {
  4687  	return s.String()
  4688  }
  4689  
  4690  // Validate inspects the fields of the type to determine if they are valid.
  4691  func (s *DeploymentIoTJobConfiguration) Validate() error {
  4692  	invalidParams := request.ErrInvalidParams{Context: "DeploymentIoTJobConfiguration"}
  4693  	if s.AbortConfig != nil {
  4694  		if err := s.AbortConfig.Validate(); err != nil {
  4695  			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
  4696  		}
  4697  	}
  4698  	if s.JobExecutionsRolloutConfig != nil {
  4699  		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
  4700  			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
  4701  		}
  4702  	}
  4703  
  4704  	if invalidParams.Len() > 0 {
  4705  		return invalidParams
  4706  	}
  4707  	return nil
  4708  }
  4709  
  4710  // SetAbortConfig sets the AbortConfig field's value.
  4711  func (s *DeploymentIoTJobConfiguration) SetAbortConfig(v *IoTJobAbortConfig) *DeploymentIoTJobConfiguration {
  4712  	s.AbortConfig = v
  4713  	return s
  4714  }
  4715  
  4716  // SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
  4717  func (s *DeploymentIoTJobConfiguration) SetJobExecutionsRolloutConfig(v *IoTJobExecutionsRolloutConfig) *DeploymentIoTJobConfiguration {
  4718  	s.JobExecutionsRolloutConfig = v
  4719  	return s
  4720  }
  4721  
  4722  // SetTimeoutConfig sets the TimeoutConfig field's value.
  4723  func (s *DeploymentIoTJobConfiguration) SetTimeoutConfig(v *IoTJobTimeoutConfig) *DeploymentIoTJobConfiguration {
  4724  	s.TimeoutConfig = v
  4725  	return s
  4726  }
  4727  
  4728  // Contains information about policies that define how a deployment updates
  4729  // components and handles failure.
  4730  type DeploymentPolicies struct {
  4731  	_ struct{} `type:"structure"`
  4732  
  4733  	// The component update policy for the configuration deployment. This policy
  4734  	// defines when it's safe to deploy the configuration to devices.
  4735  	ComponentUpdatePolicy *DeploymentComponentUpdatePolicy `locationName:"componentUpdatePolicy" type:"structure"`
  4736  
  4737  	// The configuration validation policy for the configuration deployment. This
  4738  	// policy defines how long each component has to validate its configure updates.
  4739  	ConfigurationValidationPolicy *DeploymentConfigurationValidationPolicy `locationName:"configurationValidationPolicy" type:"structure"`
  4740  
  4741  	// The failure handling policy for the configuration deployment. This policy
  4742  	// defines what to do if the deployment fails.
  4743  	//
  4744  	// Default: ROLLBACK
  4745  	FailureHandlingPolicy *string `locationName:"failureHandlingPolicy" type:"string" enum:"DeploymentFailureHandlingPolicy"`
  4746  }
  4747  
  4748  // String returns the string representation.
  4749  //
  4750  // API parameter values that are decorated as "sensitive" in the API will not
  4751  // be included in the string output. The member name will be present, but the
  4752  // value will be replaced with "sensitive".
  4753  func (s DeploymentPolicies) String() string {
  4754  	return awsutil.Prettify(s)
  4755  }
  4756  
  4757  // GoString returns the string representation.
  4758  //
  4759  // API parameter values that are decorated as "sensitive" in the API will not
  4760  // be included in the string output. The member name will be present, but the
  4761  // value will be replaced with "sensitive".
  4762  func (s DeploymentPolicies) GoString() string {
  4763  	return s.String()
  4764  }
  4765  
  4766  // SetComponentUpdatePolicy sets the ComponentUpdatePolicy field's value.
  4767  func (s *DeploymentPolicies) SetComponentUpdatePolicy(v *DeploymentComponentUpdatePolicy) *DeploymentPolicies {
  4768  	s.ComponentUpdatePolicy = v
  4769  	return s
  4770  }
  4771  
  4772  // SetConfigurationValidationPolicy sets the ConfigurationValidationPolicy field's value.
  4773  func (s *DeploymentPolicies) SetConfigurationValidationPolicy(v *DeploymentConfigurationValidationPolicy) *DeploymentPolicies {
  4774  	s.ConfigurationValidationPolicy = v
  4775  	return s
  4776  }
  4777  
  4778  // SetFailureHandlingPolicy sets the FailureHandlingPolicy field's value.
  4779  func (s *DeploymentPolicies) SetFailureHandlingPolicy(v string) *DeploymentPolicies {
  4780  	s.FailureHandlingPolicy = &v
  4781  	return s
  4782  }
  4783  
  4784  type DescribeComponentInput struct {
  4785  	_ struct{} `type:"structure" nopayload:"true"`
  4786  
  4787  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  4788  	// of the component version.
  4789  	//
  4790  	// Arn is a required field
  4791  	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
  4792  }
  4793  
  4794  // String returns the string representation.
  4795  //
  4796  // API parameter values that are decorated as "sensitive" in the API will not
  4797  // be included in the string output. The member name will be present, but the
  4798  // value will be replaced with "sensitive".
  4799  func (s DescribeComponentInput) String() string {
  4800  	return awsutil.Prettify(s)
  4801  }
  4802  
  4803  // GoString returns the string representation.
  4804  //
  4805  // API parameter values that are decorated as "sensitive" in the API will not
  4806  // be included in the string output. The member name will be present, but the
  4807  // value will be replaced with "sensitive".
  4808  func (s DescribeComponentInput) GoString() string {
  4809  	return s.String()
  4810  }
  4811  
  4812  // Validate inspects the fields of the type to determine if they are valid.
  4813  func (s *DescribeComponentInput) Validate() error {
  4814  	invalidParams := request.ErrInvalidParams{Context: "DescribeComponentInput"}
  4815  	if s.Arn == nil {
  4816  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  4817  	}
  4818  	if s.Arn != nil && len(*s.Arn) < 1 {
  4819  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
  4820  	}
  4821  
  4822  	if invalidParams.Len() > 0 {
  4823  		return invalidParams
  4824  	}
  4825  	return nil
  4826  }
  4827  
  4828  // SetArn sets the Arn field's value.
  4829  func (s *DescribeComponentInput) SetArn(v string) *DescribeComponentInput {
  4830  	s.Arn = &v
  4831  	return s
  4832  }
  4833  
  4834  type DescribeComponentOutput struct {
  4835  	_ struct{} `type:"structure"`
  4836  
  4837  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  4838  	// of the component version.
  4839  	Arn *string `locationName:"arn" type:"string"`
  4840  
  4841  	// The name of the component.
  4842  	ComponentName *string `locationName:"componentName" min:"1" type:"string"`
  4843  
  4844  	// The version of the component.
  4845  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  4846  
  4847  	// The time at which the component was created, expressed in ISO 8601 format.
  4848  	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
  4849  
  4850  	// The description of the component version.
  4851  	Description *string `locationName:"description" type:"string"`
  4852  
  4853  	// The platforms that the component version supports.
  4854  	Platforms []*ComponentPlatform `locationName:"platforms" type:"list"`
  4855  
  4856  	// The publisher of the component version.
  4857  	Publisher *string `locationName:"publisher" type:"string"`
  4858  
  4859  	// The status of the component version in IoT Greengrass V2. This status is
  4860  	// different from the status of the component on a core device.
  4861  	Status *CloudComponentStatus `locationName:"status" type:"structure"`
  4862  
  4863  	// A list of key-value pairs that contain metadata for the resource. For more
  4864  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  4865  	// in the IoT Greengrass V2 Developer Guide.
  4866  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  4867  }
  4868  
  4869  // String returns the string representation.
  4870  //
  4871  // API parameter values that are decorated as "sensitive" in the API will not
  4872  // be included in the string output. The member name will be present, but the
  4873  // value will be replaced with "sensitive".
  4874  func (s DescribeComponentOutput) String() string {
  4875  	return awsutil.Prettify(s)
  4876  }
  4877  
  4878  // GoString returns the string representation.
  4879  //
  4880  // API parameter values that are decorated as "sensitive" in the API will not
  4881  // be included in the string output. The member name will be present, but the
  4882  // value will be replaced with "sensitive".
  4883  func (s DescribeComponentOutput) GoString() string {
  4884  	return s.String()
  4885  }
  4886  
  4887  // SetArn sets the Arn field's value.
  4888  func (s *DescribeComponentOutput) SetArn(v string) *DescribeComponentOutput {
  4889  	s.Arn = &v
  4890  	return s
  4891  }
  4892  
  4893  // SetComponentName sets the ComponentName field's value.
  4894  func (s *DescribeComponentOutput) SetComponentName(v string) *DescribeComponentOutput {
  4895  	s.ComponentName = &v
  4896  	return s
  4897  }
  4898  
  4899  // SetComponentVersion sets the ComponentVersion field's value.
  4900  func (s *DescribeComponentOutput) SetComponentVersion(v string) *DescribeComponentOutput {
  4901  	s.ComponentVersion = &v
  4902  	return s
  4903  }
  4904  
  4905  // SetCreationTimestamp sets the CreationTimestamp field's value.
  4906  func (s *DescribeComponentOutput) SetCreationTimestamp(v time.Time) *DescribeComponentOutput {
  4907  	s.CreationTimestamp = &v
  4908  	return s
  4909  }
  4910  
  4911  // SetDescription sets the Description field's value.
  4912  func (s *DescribeComponentOutput) SetDescription(v string) *DescribeComponentOutput {
  4913  	s.Description = &v
  4914  	return s
  4915  }
  4916  
  4917  // SetPlatforms sets the Platforms field's value.
  4918  func (s *DescribeComponentOutput) SetPlatforms(v []*ComponentPlatform) *DescribeComponentOutput {
  4919  	s.Platforms = v
  4920  	return s
  4921  }
  4922  
  4923  // SetPublisher sets the Publisher field's value.
  4924  func (s *DescribeComponentOutput) SetPublisher(v string) *DescribeComponentOutput {
  4925  	s.Publisher = &v
  4926  	return s
  4927  }
  4928  
  4929  // SetStatus sets the Status field's value.
  4930  func (s *DescribeComponentOutput) SetStatus(v *CloudComponentStatus) *DescribeComponentOutput {
  4931  	s.Status = v
  4932  	return s
  4933  }
  4934  
  4935  // SetTags sets the Tags field's value.
  4936  func (s *DescribeComponentOutput) SetTags(v map[string]*string) *DescribeComponentOutput {
  4937  	s.Tags = v
  4938  	return s
  4939  }
  4940  
  4941  // Contains a request to disassociate a client device from a core device. The
  4942  // BatchDisassociateClientDeviceWithCoreDevice (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html)
  4943  // operation consumes a list of these requests.
  4944  type DisassociateClientDeviceFromCoreDeviceEntry struct {
  4945  	_ struct{} `type:"structure"`
  4946  
  4947  	// The name of the IoT thing that represents the client device to disassociate.
  4948  	//
  4949  	// ThingName is a required field
  4950  	ThingName *string `locationName:"thingName" min:"1" type:"string" required:"true"`
  4951  }
  4952  
  4953  // String returns the string representation.
  4954  //
  4955  // API parameter values that are decorated as "sensitive" in the API will not
  4956  // be included in the string output. The member name will be present, but the
  4957  // value will be replaced with "sensitive".
  4958  func (s DisassociateClientDeviceFromCoreDeviceEntry) String() string {
  4959  	return awsutil.Prettify(s)
  4960  }
  4961  
  4962  // GoString returns the string representation.
  4963  //
  4964  // API parameter values that are decorated as "sensitive" in the API will not
  4965  // be included in the string output. The member name will be present, but the
  4966  // value will be replaced with "sensitive".
  4967  func (s DisassociateClientDeviceFromCoreDeviceEntry) GoString() string {
  4968  	return s.String()
  4969  }
  4970  
  4971  // Validate inspects the fields of the type to determine if they are valid.
  4972  func (s *DisassociateClientDeviceFromCoreDeviceEntry) Validate() error {
  4973  	invalidParams := request.ErrInvalidParams{Context: "DisassociateClientDeviceFromCoreDeviceEntry"}
  4974  	if s.ThingName == nil {
  4975  		invalidParams.Add(request.NewErrParamRequired("ThingName"))
  4976  	}
  4977  	if s.ThingName != nil && len(*s.ThingName) < 1 {
  4978  		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
  4979  	}
  4980  
  4981  	if invalidParams.Len() > 0 {
  4982  		return invalidParams
  4983  	}
  4984  	return nil
  4985  }
  4986  
  4987  // SetThingName sets the ThingName field's value.
  4988  func (s *DisassociateClientDeviceFromCoreDeviceEntry) SetThingName(v string) *DisassociateClientDeviceFromCoreDeviceEntry {
  4989  	s.ThingName = &v
  4990  	return s
  4991  }
  4992  
  4993  // Contains an error that occurs from a request to disassociate a client device
  4994  // from a core device. The BatchDisassociateClientDeviceWithCoreDevice (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html)
  4995  // operation returns a list of these errors.
  4996  type DisassociateClientDeviceFromCoreDeviceErrorEntry struct {
  4997  	_ struct{} `type:"structure"`
  4998  
  4999  	// The error code for the request.
  5000  	Code *string `locationName:"code" min:"1" type:"string"`
  5001  
  5002  	// A message that provides additional information about the error.
  5003  	Message *string `locationName:"message" min:"1" type:"string"`
  5004  
  5005  	// The name of the IoT thing whose disassociate request failed.
  5006  	ThingName *string `locationName:"thingName" min:"1" type:"string"`
  5007  }
  5008  
  5009  // String returns the string representation.
  5010  //
  5011  // API parameter values that are decorated as "sensitive" in the API will not
  5012  // be included in the string output. The member name will be present, but the
  5013  // value will be replaced with "sensitive".
  5014  func (s DisassociateClientDeviceFromCoreDeviceErrorEntry) String() string {
  5015  	return awsutil.Prettify(s)
  5016  }
  5017  
  5018  // GoString returns the string representation.
  5019  //
  5020  // API parameter values that are decorated as "sensitive" in the API will not
  5021  // be included in the string output. The member name will be present, but the
  5022  // value will be replaced with "sensitive".
  5023  func (s DisassociateClientDeviceFromCoreDeviceErrorEntry) GoString() string {
  5024  	return s.String()
  5025  }
  5026  
  5027  // SetCode sets the Code field's value.
  5028  func (s *DisassociateClientDeviceFromCoreDeviceErrorEntry) SetCode(v string) *DisassociateClientDeviceFromCoreDeviceErrorEntry {
  5029  	s.Code = &v
  5030  	return s
  5031  }
  5032  
  5033  // SetMessage sets the Message field's value.
  5034  func (s *DisassociateClientDeviceFromCoreDeviceErrorEntry) SetMessage(v string) *DisassociateClientDeviceFromCoreDeviceErrorEntry {
  5035  	s.Message = &v
  5036  	return s
  5037  }
  5038  
  5039  // SetThingName sets the ThingName field's value.
  5040  func (s *DisassociateClientDeviceFromCoreDeviceErrorEntry) SetThingName(v string) *DisassociateClientDeviceFromCoreDeviceErrorEntry {
  5041  	s.ThingName = &v
  5042  	return s
  5043  }
  5044  
  5045  // Contains information about a deployment job that IoT Greengrass sends to
  5046  // a Greengrass core device.
  5047  type EffectiveDeployment struct {
  5048  	_ struct{} `type:"structure"`
  5049  
  5050  	// The status of the deployment job on the Greengrass core device.
  5051  	//
  5052  	// CoreDeviceExecutionStatus is a required field
  5053  	CoreDeviceExecutionStatus *string `locationName:"coreDeviceExecutionStatus" type:"string" required:"true" enum:"EffectiveDeploymentExecutionStatus"`
  5054  
  5055  	// The time at which the deployment was created, expressed in ISO 8601 format.
  5056  	//
  5057  	// CreationTimestamp is a required field
  5058  	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp" required:"true"`
  5059  
  5060  	// The ID of the deployment.
  5061  	//
  5062  	// DeploymentId is a required field
  5063  	DeploymentId *string `locationName:"deploymentId" type:"string" required:"true"`
  5064  
  5065  	// The name of the deployment.
  5066  	//
  5067  	// DeploymentName is a required field
  5068  	DeploymentName *string `locationName:"deploymentName" type:"string" required:"true"`
  5069  
  5070  	// The description of the deployment job.
  5071  	Description *string `locationName:"description" min:"1" type:"string"`
  5072  
  5073  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  5074  	// of the IoT job that applies the deployment to target devices.
  5075  	IotJobArn *string `locationName:"iotJobArn" type:"string"`
  5076  
  5077  	// The ID of the IoT job that applies the deployment to target devices.
  5078  	IotJobId *string `locationName:"iotJobId" min:"1" type:"string"`
  5079  
  5080  	// The time at which the deployment job was last modified, expressed in ISO
  5081  	// 8601 format.
  5082  	//
  5083  	// ModifiedTimestamp is a required field
  5084  	ModifiedTimestamp *time.Time `locationName:"modifiedTimestamp" type:"timestamp" required:"true"`
  5085  
  5086  	// The reason code for the update, if the job was updated.
  5087  	Reason *string `locationName:"reason" type:"string"`
  5088  
  5089  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  5090  	// of the target IoT thing or thing group.
  5091  	//
  5092  	// TargetArn is a required field
  5093  	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
  5094  }
  5095  
  5096  // String returns the string representation.
  5097  //
  5098  // API parameter values that are decorated as "sensitive" in the API will not
  5099  // be included in the string output. The member name will be present, but the
  5100  // value will be replaced with "sensitive".
  5101  func (s EffectiveDeployment) String() string {
  5102  	return awsutil.Prettify(s)
  5103  }
  5104  
  5105  // GoString returns the string representation.
  5106  //
  5107  // API parameter values that are decorated as "sensitive" in the API will not
  5108  // be included in the string output. The member name will be present, but the
  5109  // value will be replaced with "sensitive".
  5110  func (s EffectiveDeployment) GoString() string {
  5111  	return s.String()
  5112  }
  5113  
  5114  // SetCoreDeviceExecutionStatus sets the CoreDeviceExecutionStatus field's value.
  5115  func (s *EffectiveDeployment) SetCoreDeviceExecutionStatus(v string) *EffectiveDeployment {
  5116  	s.CoreDeviceExecutionStatus = &v
  5117  	return s
  5118  }
  5119  
  5120  // SetCreationTimestamp sets the CreationTimestamp field's value.
  5121  func (s *EffectiveDeployment) SetCreationTimestamp(v time.Time) *EffectiveDeployment {
  5122  	s.CreationTimestamp = &v
  5123  	return s
  5124  }
  5125  
  5126  // SetDeploymentId sets the DeploymentId field's value.
  5127  func (s *EffectiveDeployment) SetDeploymentId(v string) *EffectiveDeployment {
  5128  	s.DeploymentId = &v
  5129  	return s
  5130  }
  5131  
  5132  // SetDeploymentName sets the DeploymentName field's value.
  5133  func (s *EffectiveDeployment) SetDeploymentName(v string) *EffectiveDeployment {
  5134  	s.DeploymentName = &v
  5135  	return s
  5136  }
  5137  
  5138  // SetDescription sets the Description field's value.
  5139  func (s *EffectiveDeployment) SetDescription(v string) *EffectiveDeployment {
  5140  	s.Description = &v
  5141  	return s
  5142  }
  5143  
  5144  // SetIotJobArn sets the IotJobArn field's value.
  5145  func (s *EffectiveDeployment) SetIotJobArn(v string) *EffectiveDeployment {
  5146  	s.IotJobArn = &v
  5147  	return s
  5148  }
  5149  
  5150  // SetIotJobId sets the IotJobId field's value.
  5151  func (s *EffectiveDeployment) SetIotJobId(v string) *EffectiveDeployment {
  5152  	s.IotJobId = &v
  5153  	return s
  5154  }
  5155  
  5156  // SetModifiedTimestamp sets the ModifiedTimestamp field's value.
  5157  func (s *EffectiveDeployment) SetModifiedTimestamp(v time.Time) *EffectiveDeployment {
  5158  	s.ModifiedTimestamp = &v
  5159  	return s
  5160  }
  5161  
  5162  // SetReason sets the Reason field's value.
  5163  func (s *EffectiveDeployment) SetReason(v string) *EffectiveDeployment {
  5164  	s.Reason = &v
  5165  	return s
  5166  }
  5167  
  5168  // SetTargetArn sets the TargetArn field's value.
  5169  func (s *EffectiveDeployment) SetTargetArn(v string) *EffectiveDeployment {
  5170  	s.TargetArn = &v
  5171  	return s
  5172  }
  5173  
  5174  type GetComponentInput struct {
  5175  	_ struct{} `type:"structure" nopayload:"true"`
  5176  
  5177  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  5178  	// of the component version.
  5179  	//
  5180  	// Arn is a required field
  5181  	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
  5182  
  5183  	// The format of the recipe.
  5184  	RecipeOutputFormat *string `location:"querystring" locationName:"recipeOutputFormat" type:"string" enum:"RecipeOutputFormat"`
  5185  }
  5186  
  5187  // String returns the string representation.
  5188  //
  5189  // API parameter values that are decorated as "sensitive" in the API will not
  5190  // be included in the string output. The member name will be present, but the
  5191  // value will be replaced with "sensitive".
  5192  func (s GetComponentInput) String() string {
  5193  	return awsutil.Prettify(s)
  5194  }
  5195  
  5196  // GoString returns the string representation.
  5197  //
  5198  // API parameter values that are decorated as "sensitive" in the API will not
  5199  // be included in the string output. The member name will be present, but the
  5200  // value will be replaced with "sensitive".
  5201  func (s GetComponentInput) GoString() string {
  5202  	return s.String()
  5203  }
  5204  
  5205  // Validate inspects the fields of the type to determine if they are valid.
  5206  func (s *GetComponentInput) Validate() error {
  5207  	invalidParams := request.ErrInvalidParams{Context: "GetComponentInput"}
  5208  	if s.Arn == nil {
  5209  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  5210  	}
  5211  	if s.Arn != nil && len(*s.Arn) < 1 {
  5212  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
  5213  	}
  5214  
  5215  	if invalidParams.Len() > 0 {
  5216  		return invalidParams
  5217  	}
  5218  	return nil
  5219  }
  5220  
  5221  // SetArn sets the Arn field's value.
  5222  func (s *GetComponentInput) SetArn(v string) *GetComponentInput {
  5223  	s.Arn = &v
  5224  	return s
  5225  }
  5226  
  5227  // SetRecipeOutputFormat sets the RecipeOutputFormat field's value.
  5228  func (s *GetComponentInput) SetRecipeOutputFormat(v string) *GetComponentInput {
  5229  	s.RecipeOutputFormat = &v
  5230  	return s
  5231  }
  5232  
  5233  type GetComponentOutput struct {
  5234  	_ struct{} `type:"structure"`
  5235  
  5236  	// The recipe of the component version.
  5237  	// Recipe is automatically base64 encoded/decoded by the SDK.
  5238  	//
  5239  	// Recipe is a required field
  5240  	Recipe []byte `locationName:"recipe" type:"blob" required:"true"`
  5241  
  5242  	// The format of the recipe.
  5243  	//
  5244  	// RecipeOutputFormat is a required field
  5245  	RecipeOutputFormat *string `locationName:"recipeOutputFormat" type:"string" required:"true" enum:"RecipeOutputFormat"`
  5246  
  5247  	// A list of key-value pairs that contain metadata for the resource. For more
  5248  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  5249  	// in the IoT Greengrass V2 Developer Guide.
  5250  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  5251  }
  5252  
  5253  // String returns the string representation.
  5254  //
  5255  // API parameter values that are decorated as "sensitive" in the API will not
  5256  // be included in the string output. The member name will be present, but the
  5257  // value will be replaced with "sensitive".
  5258  func (s GetComponentOutput) String() string {
  5259  	return awsutil.Prettify(s)
  5260  }
  5261  
  5262  // GoString returns the string representation.
  5263  //
  5264  // API parameter values that are decorated as "sensitive" in the API will not
  5265  // be included in the string output. The member name will be present, but the
  5266  // value will be replaced with "sensitive".
  5267  func (s GetComponentOutput) GoString() string {
  5268  	return s.String()
  5269  }
  5270  
  5271  // SetRecipe sets the Recipe field's value.
  5272  func (s *GetComponentOutput) SetRecipe(v []byte) *GetComponentOutput {
  5273  	s.Recipe = v
  5274  	return s
  5275  }
  5276  
  5277  // SetRecipeOutputFormat sets the RecipeOutputFormat field's value.
  5278  func (s *GetComponentOutput) SetRecipeOutputFormat(v string) *GetComponentOutput {
  5279  	s.RecipeOutputFormat = &v
  5280  	return s
  5281  }
  5282  
  5283  // SetTags sets the Tags field's value.
  5284  func (s *GetComponentOutput) SetTags(v map[string]*string) *GetComponentOutput {
  5285  	s.Tags = v
  5286  	return s
  5287  }
  5288  
  5289  type GetComponentVersionArtifactInput struct {
  5290  	_ struct{} `type:"structure" nopayload:"true"`
  5291  
  5292  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  5293  	// of the component version. Specify the ARN of a public component version.
  5294  	//
  5295  	// Arn is a required field
  5296  	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
  5297  
  5298  	// The name of the artifact.
  5299  	//
  5300  	// You can use the GetComponent (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetComponent.html)
  5301  	// operation to download the component recipe, which includes the URI of the
  5302  	// artifact. The artifact name is the section of the URI after the scheme. For
  5303  	// example, in the artifact URI greengrass:SomeArtifact.zip, the artifact name
  5304  	// is SomeArtifact.zip.
  5305  	//
  5306  	// ArtifactName is a required field
  5307  	ArtifactName *string `location:"uri" locationName:"artifactName" min:"1" type:"string" required:"true"`
  5308  }
  5309  
  5310  // String returns the string representation.
  5311  //
  5312  // API parameter values that are decorated as "sensitive" in the API will not
  5313  // be included in the string output. The member name will be present, but the
  5314  // value will be replaced with "sensitive".
  5315  func (s GetComponentVersionArtifactInput) String() string {
  5316  	return awsutil.Prettify(s)
  5317  }
  5318  
  5319  // GoString returns the string representation.
  5320  //
  5321  // API parameter values that are decorated as "sensitive" in the API will not
  5322  // be included in the string output. The member name will be present, but the
  5323  // value will be replaced with "sensitive".
  5324  func (s GetComponentVersionArtifactInput) GoString() string {
  5325  	return s.String()
  5326  }
  5327  
  5328  // Validate inspects the fields of the type to determine if they are valid.
  5329  func (s *GetComponentVersionArtifactInput) Validate() error {
  5330  	invalidParams := request.ErrInvalidParams{Context: "GetComponentVersionArtifactInput"}
  5331  	if s.Arn == nil {
  5332  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  5333  	}
  5334  	if s.Arn != nil && len(*s.Arn) < 1 {
  5335  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
  5336  	}
  5337  	if s.ArtifactName == nil {
  5338  		invalidParams.Add(request.NewErrParamRequired("ArtifactName"))
  5339  	}
  5340  	if s.ArtifactName != nil && len(*s.ArtifactName) < 1 {
  5341  		invalidParams.Add(request.NewErrParamMinLen("ArtifactName", 1))
  5342  	}
  5343  
  5344  	if invalidParams.Len() > 0 {
  5345  		return invalidParams
  5346  	}
  5347  	return nil
  5348  }
  5349  
  5350  // SetArn sets the Arn field's value.
  5351  func (s *GetComponentVersionArtifactInput) SetArn(v string) *GetComponentVersionArtifactInput {
  5352  	s.Arn = &v
  5353  	return s
  5354  }
  5355  
  5356  // SetArtifactName sets the ArtifactName field's value.
  5357  func (s *GetComponentVersionArtifactInput) SetArtifactName(v string) *GetComponentVersionArtifactInput {
  5358  	s.ArtifactName = &v
  5359  	return s
  5360  }
  5361  
  5362  type GetComponentVersionArtifactOutput struct {
  5363  	_ struct{} `type:"structure"`
  5364  
  5365  	// The URL of the artifact.
  5366  	//
  5367  	// PreSignedUrl is a required field
  5368  	PreSignedUrl *string `locationName:"preSignedUrl" min:"1" type:"string" required:"true"`
  5369  }
  5370  
  5371  // String returns the string representation.
  5372  //
  5373  // API parameter values that are decorated as "sensitive" in the API will not
  5374  // be included in the string output. The member name will be present, but the
  5375  // value will be replaced with "sensitive".
  5376  func (s GetComponentVersionArtifactOutput) String() string {
  5377  	return awsutil.Prettify(s)
  5378  }
  5379  
  5380  // GoString returns the string representation.
  5381  //
  5382  // API parameter values that are decorated as "sensitive" in the API will not
  5383  // be included in the string output. The member name will be present, but the
  5384  // value will be replaced with "sensitive".
  5385  func (s GetComponentVersionArtifactOutput) GoString() string {
  5386  	return s.String()
  5387  }
  5388  
  5389  // SetPreSignedUrl sets the PreSignedUrl field's value.
  5390  func (s *GetComponentVersionArtifactOutput) SetPreSignedUrl(v string) *GetComponentVersionArtifactOutput {
  5391  	s.PreSignedUrl = &v
  5392  	return s
  5393  }
  5394  
  5395  type GetCoreDeviceInput struct {
  5396  	_ struct{} `type:"structure" nopayload:"true"`
  5397  
  5398  	// The name of the core device. This is also the name of the IoT thing.
  5399  	//
  5400  	// CoreDeviceThingName is a required field
  5401  	CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"`
  5402  }
  5403  
  5404  // String returns the string representation.
  5405  //
  5406  // API parameter values that are decorated as "sensitive" in the API will not
  5407  // be included in the string output. The member name will be present, but the
  5408  // value will be replaced with "sensitive".
  5409  func (s GetCoreDeviceInput) String() string {
  5410  	return awsutil.Prettify(s)
  5411  }
  5412  
  5413  // GoString returns the string representation.
  5414  //
  5415  // API parameter values that are decorated as "sensitive" in the API will not
  5416  // be included in the string output. The member name will be present, but the
  5417  // value will be replaced with "sensitive".
  5418  func (s GetCoreDeviceInput) GoString() string {
  5419  	return s.String()
  5420  }
  5421  
  5422  // Validate inspects the fields of the type to determine if they are valid.
  5423  func (s *GetCoreDeviceInput) Validate() error {
  5424  	invalidParams := request.ErrInvalidParams{Context: "GetCoreDeviceInput"}
  5425  	if s.CoreDeviceThingName == nil {
  5426  		invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName"))
  5427  	}
  5428  	if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 {
  5429  		invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1))
  5430  	}
  5431  
  5432  	if invalidParams.Len() > 0 {
  5433  		return invalidParams
  5434  	}
  5435  	return nil
  5436  }
  5437  
  5438  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  5439  func (s *GetCoreDeviceInput) SetCoreDeviceThingName(v string) *GetCoreDeviceInput {
  5440  	s.CoreDeviceThingName = &v
  5441  	return s
  5442  }
  5443  
  5444  type GetCoreDeviceOutput struct {
  5445  	_ struct{} `type:"structure"`
  5446  
  5447  	// The computer architecture of the core device.
  5448  	Architecture *string `locationName:"architecture" min:"1" type:"string"`
  5449  
  5450  	// The name of the core device. This is also the name of the IoT thing.
  5451  	CoreDeviceThingName *string `locationName:"coreDeviceThingName" min:"1" type:"string"`
  5452  
  5453  	// The version of the IoT Greengrass Core software that the core device runs.
  5454  	// This version is equivalent to the version of the Greengrass nucleus component
  5455  	// that runs on the core device. For more information, see the Greengrass nucleus
  5456  	// component (https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html)
  5457  	// in the IoT Greengrass V2 Developer Guide.
  5458  	CoreVersion *string `locationName:"coreVersion" min:"1" type:"string"`
  5459  
  5460  	// The time at which the core device's status last updated, expressed in ISO
  5461  	// 8601 format.
  5462  	LastStatusUpdateTimestamp *time.Time `locationName:"lastStatusUpdateTimestamp" type:"timestamp"`
  5463  
  5464  	// The operating system platform that the core device runs.
  5465  	Platform *string `locationName:"platform" min:"1" type:"string"`
  5466  
  5467  	// The status of the core device. The core device status can be:
  5468  	//
  5469  	//    * HEALTHY – The IoT Greengrass Core software and all components run
  5470  	//    on the core device without issue.
  5471  	//
  5472  	//    * UNHEALTHY – The IoT Greengrass Core software or a component is in
  5473  	//    a failed state on the core device.
  5474  	Status *string `locationName:"status" type:"string" enum:"CoreDeviceStatus"`
  5475  
  5476  	// A list of key-value pairs that contain metadata for the resource. For more
  5477  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  5478  	// in the IoT Greengrass V2 Developer Guide.
  5479  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  5480  }
  5481  
  5482  // String returns the string representation.
  5483  //
  5484  // API parameter values that are decorated as "sensitive" in the API will not
  5485  // be included in the string output. The member name will be present, but the
  5486  // value will be replaced with "sensitive".
  5487  func (s GetCoreDeviceOutput) String() string {
  5488  	return awsutil.Prettify(s)
  5489  }
  5490  
  5491  // GoString returns the string representation.
  5492  //
  5493  // API parameter values that are decorated as "sensitive" in the API will not
  5494  // be included in the string output. The member name will be present, but the
  5495  // value will be replaced with "sensitive".
  5496  func (s GetCoreDeviceOutput) GoString() string {
  5497  	return s.String()
  5498  }
  5499  
  5500  // SetArchitecture sets the Architecture field's value.
  5501  func (s *GetCoreDeviceOutput) SetArchitecture(v string) *GetCoreDeviceOutput {
  5502  	s.Architecture = &v
  5503  	return s
  5504  }
  5505  
  5506  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  5507  func (s *GetCoreDeviceOutput) SetCoreDeviceThingName(v string) *GetCoreDeviceOutput {
  5508  	s.CoreDeviceThingName = &v
  5509  	return s
  5510  }
  5511  
  5512  // SetCoreVersion sets the CoreVersion field's value.
  5513  func (s *GetCoreDeviceOutput) SetCoreVersion(v string) *GetCoreDeviceOutput {
  5514  	s.CoreVersion = &v
  5515  	return s
  5516  }
  5517  
  5518  // SetLastStatusUpdateTimestamp sets the LastStatusUpdateTimestamp field's value.
  5519  func (s *GetCoreDeviceOutput) SetLastStatusUpdateTimestamp(v time.Time) *GetCoreDeviceOutput {
  5520  	s.LastStatusUpdateTimestamp = &v
  5521  	return s
  5522  }
  5523  
  5524  // SetPlatform sets the Platform field's value.
  5525  func (s *GetCoreDeviceOutput) SetPlatform(v string) *GetCoreDeviceOutput {
  5526  	s.Platform = &v
  5527  	return s
  5528  }
  5529  
  5530  // SetStatus sets the Status field's value.
  5531  func (s *GetCoreDeviceOutput) SetStatus(v string) *GetCoreDeviceOutput {
  5532  	s.Status = &v
  5533  	return s
  5534  }
  5535  
  5536  // SetTags sets the Tags field's value.
  5537  func (s *GetCoreDeviceOutput) SetTags(v map[string]*string) *GetCoreDeviceOutput {
  5538  	s.Tags = v
  5539  	return s
  5540  }
  5541  
  5542  type GetDeploymentInput struct {
  5543  	_ struct{} `type:"structure" nopayload:"true"`
  5544  
  5545  	// The ID of the deployment.
  5546  	//
  5547  	// DeploymentId is a required field
  5548  	DeploymentId *string `location:"uri" locationName:"deploymentId" min:"1" type:"string" required:"true"`
  5549  }
  5550  
  5551  // String returns the string representation.
  5552  //
  5553  // API parameter values that are decorated as "sensitive" in the API will not
  5554  // be included in the string output. The member name will be present, but the
  5555  // value will be replaced with "sensitive".
  5556  func (s GetDeploymentInput) String() string {
  5557  	return awsutil.Prettify(s)
  5558  }
  5559  
  5560  // GoString returns the string representation.
  5561  //
  5562  // API parameter values that are decorated as "sensitive" in the API will not
  5563  // be included in the string output. The member name will be present, but the
  5564  // value will be replaced with "sensitive".
  5565  func (s GetDeploymentInput) GoString() string {
  5566  	return s.String()
  5567  }
  5568  
  5569  // Validate inspects the fields of the type to determine if they are valid.
  5570  func (s *GetDeploymentInput) Validate() error {
  5571  	invalidParams := request.ErrInvalidParams{Context: "GetDeploymentInput"}
  5572  	if s.DeploymentId == nil {
  5573  		invalidParams.Add(request.NewErrParamRequired("DeploymentId"))
  5574  	}
  5575  	if s.DeploymentId != nil && len(*s.DeploymentId) < 1 {
  5576  		invalidParams.Add(request.NewErrParamMinLen("DeploymentId", 1))
  5577  	}
  5578  
  5579  	if invalidParams.Len() > 0 {
  5580  		return invalidParams
  5581  	}
  5582  	return nil
  5583  }
  5584  
  5585  // SetDeploymentId sets the DeploymentId field's value.
  5586  func (s *GetDeploymentInput) SetDeploymentId(v string) *GetDeploymentInput {
  5587  	s.DeploymentId = &v
  5588  	return s
  5589  }
  5590  
  5591  type GetDeploymentOutput struct {
  5592  	_ struct{} `type:"structure"`
  5593  
  5594  	// The components to deploy. This is a dictionary, where each key is the name
  5595  	// of a component, and each key's value is the version and configuration to
  5596  	// deploy for that component.
  5597  	Components map[string]*ComponentDeploymentSpecification `locationName:"components" type:"map"`
  5598  
  5599  	// The time at which the deployment was created, expressed in ISO 8601 format.
  5600  	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
  5601  
  5602  	// The ID of the deployment.
  5603  	DeploymentId *string `locationName:"deploymentId" min:"1" type:"string"`
  5604  
  5605  	// The name of the deployment.
  5606  	DeploymentName *string `locationName:"deploymentName" type:"string"`
  5607  
  5608  	// The deployment policies for the deployment. These policies define how the
  5609  	// deployment updates components and handles failure.
  5610  	DeploymentPolicies *DeploymentPolicies `locationName:"deploymentPolicies" type:"structure"`
  5611  
  5612  	// The status of the deployment.
  5613  	DeploymentStatus *string `locationName:"deploymentStatus" type:"string" enum:"DeploymentStatus"`
  5614  
  5615  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  5616  	// of the IoT job that applies the deployment to target devices.
  5617  	IotJobArn *string `locationName:"iotJobArn" type:"string"`
  5618  
  5619  	// The job configuration for the deployment configuration. The job configuration
  5620  	// specifies the rollout, timeout, and stop configurations for the deployment
  5621  	// configuration.
  5622  	IotJobConfiguration *DeploymentIoTJobConfiguration `locationName:"iotJobConfiguration" type:"structure"`
  5623  
  5624  	// The ID of the IoT job that applies the deployment to target devices.
  5625  	IotJobId *string `locationName:"iotJobId" type:"string"`
  5626  
  5627  	// Whether or not the deployment is the latest revision for its target.
  5628  	IsLatestForTarget *bool `locationName:"isLatestForTarget" type:"boolean"`
  5629  
  5630  	// The revision number of the deployment.
  5631  	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
  5632  
  5633  	// A list of key-value pairs that contain metadata for the resource. For more
  5634  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  5635  	// in the IoT Greengrass V2 Developer Guide.
  5636  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  5637  
  5638  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  5639  	// of the target IoT thing or thing group.
  5640  	TargetArn *string `locationName:"targetArn" type:"string"`
  5641  }
  5642  
  5643  // String returns the string representation.
  5644  //
  5645  // API parameter values that are decorated as "sensitive" in the API will not
  5646  // be included in the string output. The member name will be present, but the
  5647  // value will be replaced with "sensitive".
  5648  func (s GetDeploymentOutput) String() string {
  5649  	return awsutil.Prettify(s)
  5650  }
  5651  
  5652  // GoString returns the string representation.
  5653  //
  5654  // API parameter values that are decorated as "sensitive" in the API will not
  5655  // be included in the string output. The member name will be present, but the
  5656  // value will be replaced with "sensitive".
  5657  func (s GetDeploymentOutput) GoString() string {
  5658  	return s.String()
  5659  }
  5660  
  5661  // SetComponents sets the Components field's value.
  5662  func (s *GetDeploymentOutput) SetComponents(v map[string]*ComponentDeploymentSpecification) *GetDeploymentOutput {
  5663  	s.Components = v
  5664  	return s
  5665  }
  5666  
  5667  // SetCreationTimestamp sets the CreationTimestamp field's value.
  5668  func (s *GetDeploymentOutput) SetCreationTimestamp(v time.Time) *GetDeploymentOutput {
  5669  	s.CreationTimestamp = &v
  5670  	return s
  5671  }
  5672  
  5673  // SetDeploymentId sets the DeploymentId field's value.
  5674  func (s *GetDeploymentOutput) SetDeploymentId(v string) *GetDeploymentOutput {
  5675  	s.DeploymentId = &v
  5676  	return s
  5677  }
  5678  
  5679  // SetDeploymentName sets the DeploymentName field's value.
  5680  func (s *GetDeploymentOutput) SetDeploymentName(v string) *GetDeploymentOutput {
  5681  	s.DeploymentName = &v
  5682  	return s
  5683  }
  5684  
  5685  // SetDeploymentPolicies sets the DeploymentPolicies field's value.
  5686  func (s *GetDeploymentOutput) SetDeploymentPolicies(v *DeploymentPolicies) *GetDeploymentOutput {
  5687  	s.DeploymentPolicies = v
  5688  	return s
  5689  }
  5690  
  5691  // SetDeploymentStatus sets the DeploymentStatus field's value.
  5692  func (s *GetDeploymentOutput) SetDeploymentStatus(v string) *GetDeploymentOutput {
  5693  	s.DeploymentStatus = &v
  5694  	return s
  5695  }
  5696  
  5697  // SetIotJobArn sets the IotJobArn field's value.
  5698  func (s *GetDeploymentOutput) SetIotJobArn(v string) *GetDeploymentOutput {
  5699  	s.IotJobArn = &v
  5700  	return s
  5701  }
  5702  
  5703  // SetIotJobConfiguration sets the IotJobConfiguration field's value.
  5704  func (s *GetDeploymentOutput) SetIotJobConfiguration(v *DeploymentIoTJobConfiguration) *GetDeploymentOutput {
  5705  	s.IotJobConfiguration = v
  5706  	return s
  5707  }
  5708  
  5709  // SetIotJobId sets the IotJobId field's value.
  5710  func (s *GetDeploymentOutput) SetIotJobId(v string) *GetDeploymentOutput {
  5711  	s.IotJobId = &v
  5712  	return s
  5713  }
  5714  
  5715  // SetIsLatestForTarget sets the IsLatestForTarget field's value.
  5716  func (s *GetDeploymentOutput) SetIsLatestForTarget(v bool) *GetDeploymentOutput {
  5717  	s.IsLatestForTarget = &v
  5718  	return s
  5719  }
  5720  
  5721  // SetRevisionId sets the RevisionId field's value.
  5722  func (s *GetDeploymentOutput) SetRevisionId(v string) *GetDeploymentOutput {
  5723  	s.RevisionId = &v
  5724  	return s
  5725  }
  5726  
  5727  // SetTags sets the Tags field's value.
  5728  func (s *GetDeploymentOutput) SetTags(v map[string]*string) *GetDeploymentOutput {
  5729  	s.Tags = v
  5730  	return s
  5731  }
  5732  
  5733  // SetTargetArn sets the TargetArn field's value.
  5734  func (s *GetDeploymentOutput) SetTargetArn(v string) *GetDeploymentOutput {
  5735  	s.TargetArn = &v
  5736  	return s
  5737  }
  5738  
  5739  // Contains information about a component on a Greengrass core device.
  5740  type InstalledComponent struct {
  5741  	_ struct{} `type:"structure"`
  5742  
  5743  	// The name of the component.
  5744  	ComponentName *string `locationName:"componentName" min:"1" type:"string"`
  5745  
  5746  	// The version of the component.
  5747  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  5748  
  5749  	// Whether or not the component is a root component.
  5750  	IsRoot *bool `locationName:"isRoot" type:"boolean"`
  5751  
  5752  	// The lifecycle state of the component.
  5753  	LifecycleState *string `locationName:"lifecycleState" type:"string" enum:"InstalledComponentLifecycleState"`
  5754  
  5755  	// The details about the lifecycle state of the component.
  5756  	LifecycleStateDetails *string `locationName:"lifecycleStateDetails" min:"1" type:"string"`
  5757  }
  5758  
  5759  // String returns the string representation.
  5760  //
  5761  // API parameter values that are decorated as "sensitive" in the API will not
  5762  // be included in the string output. The member name will be present, but the
  5763  // value will be replaced with "sensitive".
  5764  func (s InstalledComponent) String() string {
  5765  	return awsutil.Prettify(s)
  5766  }
  5767  
  5768  // GoString returns the string representation.
  5769  //
  5770  // API parameter values that are decorated as "sensitive" in the API will not
  5771  // be included in the string output. The member name will be present, but the
  5772  // value will be replaced with "sensitive".
  5773  func (s InstalledComponent) GoString() string {
  5774  	return s.String()
  5775  }
  5776  
  5777  // SetComponentName sets the ComponentName field's value.
  5778  func (s *InstalledComponent) SetComponentName(v string) *InstalledComponent {
  5779  	s.ComponentName = &v
  5780  	return s
  5781  }
  5782  
  5783  // SetComponentVersion sets the ComponentVersion field's value.
  5784  func (s *InstalledComponent) SetComponentVersion(v string) *InstalledComponent {
  5785  	s.ComponentVersion = &v
  5786  	return s
  5787  }
  5788  
  5789  // SetIsRoot sets the IsRoot field's value.
  5790  func (s *InstalledComponent) SetIsRoot(v bool) *InstalledComponent {
  5791  	s.IsRoot = &v
  5792  	return s
  5793  }
  5794  
  5795  // SetLifecycleState sets the LifecycleState field's value.
  5796  func (s *InstalledComponent) SetLifecycleState(v string) *InstalledComponent {
  5797  	s.LifecycleState = &v
  5798  	return s
  5799  }
  5800  
  5801  // SetLifecycleStateDetails sets the LifecycleStateDetails field's value.
  5802  func (s *InstalledComponent) SetLifecycleStateDetails(v string) *InstalledComponent {
  5803  	s.LifecycleStateDetails = &v
  5804  	return s
  5805  }
  5806  
  5807  // IoT Greengrass can't process your request right now. Try again later.
  5808  type InternalServerException struct {
  5809  	_            struct{}                  `type:"structure"`
  5810  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5811  
  5812  	Message_ *string `locationName:"message" type:"string"`
  5813  
  5814  	// The amount of time to wait before you retry the request.
  5815  	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
  5816  }
  5817  
  5818  // String returns the string representation.
  5819  //
  5820  // API parameter values that are decorated as "sensitive" in the API will not
  5821  // be included in the string output. The member name will be present, but the
  5822  // value will be replaced with "sensitive".
  5823  func (s InternalServerException) String() string {
  5824  	return awsutil.Prettify(s)
  5825  }
  5826  
  5827  // GoString returns the string representation.
  5828  //
  5829  // API parameter values that are decorated as "sensitive" in the API will not
  5830  // be included in the string output. The member name will be present, but the
  5831  // value will be replaced with "sensitive".
  5832  func (s InternalServerException) GoString() string {
  5833  	return s.String()
  5834  }
  5835  
  5836  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
  5837  	return &InternalServerException{
  5838  		RespMetadata: v,
  5839  	}
  5840  }
  5841  
  5842  // Code returns the exception type name.
  5843  func (s *InternalServerException) Code() string {
  5844  	return "InternalServerException"
  5845  }
  5846  
  5847  // Message returns the exception's message.
  5848  func (s *InternalServerException) Message() string {
  5849  	if s.Message_ != nil {
  5850  		return *s.Message_
  5851  	}
  5852  	return ""
  5853  }
  5854  
  5855  // OrigErr always returns nil, satisfies awserr.Error interface.
  5856  func (s *InternalServerException) OrigErr() error {
  5857  	return nil
  5858  }
  5859  
  5860  func (s *InternalServerException) Error() string {
  5861  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  5862  }
  5863  
  5864  // Status code returns the HTTP status code for the request's response error.
  5865  func (s *InternalServerException) StatusCode() int {
  5866  	return s.RespMetadata.StatusCode
  5867  }
  5868  
  5869  // RequestID returns the service's response RequestID for request.
  5870  func (s *InternalServerException) RequestID() string {
  5871  	return s.RespMetadata.RequestID
  5872  }
  5873  
  5874  // Contains a list of criteria that define when and how to cancel a configuration
  5875  // deployment.
  5876  type IoTJobAbortConfig struct {
  5877  	_ struct{} `type:"structure"`
  5878  
  5879  	// The list of criteria that define when and how to cancel the configuration
  5880  	// deployment.
  5881  	//
  5882  	// CriteriaList is a required field
  5883  	CriteriaList []*IoTJobAbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
  5884  }
  5885  
  5886  // String returns the string representation.
  5887  //
  5888  // API parameter values that are decorated as "sensitive" in the API will not
  5889  // be included in the string output. The member name will be present, but the
  5890  // value will be replaced with "sensitive".
  5891  func (s IoTJobAbortConfig) String() string {
  5892  	return awsutil.Prettify(s)
  5893  }
  5894  
  5895  // GoString returns the string representation.
  5896  //
  5897  // API parameter values that are decorated as "sensitive" in the API will not
  5898  // be included in the string output. The member name will be present, but the
  5899  // value will be replaced with "sensitive".
  5900  func (s IoTJobAbortConfig) GoString() string {
  5901  	return s.String()
  5902  }
  5903  
  5904  // Validate inspects the fields of the type to determine if they are valid.
  5905  func (s *IoTJobAbortConfig) Validate() error {
  5906  	invalidParams := request.ErrInvalidParams{Context: "IoTJobAbortConfig"}
  5907  	if s.CriteriaList == nil {
  5908  		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
  5909  	}
  5910  	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
  5911  		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
  5912  	}
  5913  	if s.CriteriaList != nil {
  5914  		for i, v := range s.CriteriaList {
  5915  			if v == nil {
  5916  				continue
  5917  			}
  5918  			if err := v.Validate(); err != nil {
  5919  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
  5920  			}
  5921  		}
  5922  	}
  5923  
  5924  	if invalidParams.Len() > 0 {
  5925  		return invalidParams
  5926  	}
  5927  	return nil
  5928  }
  5929  
  5930  // SetCriteriaList sets the CriteriaList field's value.
  5931  func (s *IoTJobAbortConfig) SetCriteriaList(v []*IoTJobAbortCriteria) *IoTJobAbortConfig {
  5932  	s.CriteriaList = v
  5933  	return s
  5934  }
  5935  
  5936  // Contains criteria that define when and how to cancel a job.
  5937  //
  5938  // The deployment stops if the following conditions are true:
  5939  //
  5940  // The number of things that receive the deployment exceeds the minNumberOfExecutedThings.
  5941  //
  5942  // The percentage of failures with type failureType exceeds the thresholdPercentage.
  5943  type IoTJobAbortCriteria struct {
  5944  	_ struct{} `type:"structure"`
  5945  
  5946  	// The action to perform when the criteria are met.
  5947  	//
  5948  	// Action is a required field
  5949  	Action *string `locationName:"action" type:"string" required:"true" enum:"IoTJobAbortAction"`
  5950  
  5951  	// The type of job deployment failure that can cancel a job.
  5952  	//
  5953  	// FailureType is a required field
  5954  	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"IoTJobExecutionFailureType"`
  5955  
  5956  	// The minimum number of things that receive the configuration before the job
  5957  	// can cancel.
  5958  	//
  5959  	// MinNumberOfExecutedThings is a required field
  5960  	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
  5961  
  5962  	// The minimum percentage of failureType failures that occur before the job
  5963  	// can cancel.
  5964  	//
  5965  	// This parameter supports up to two digits after the decimal (for example,
  5966  	// you can specify 10.9 or 10.99, but not 10.999).
  5967  	//
  5968  	// ThresholdPercentage is a required field
  5969  	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
  5970  }
  5971  
  5972  // String returns the string representation.
  5973  //
  5974  // API parameter values that are decorated as "sensitive" in the API will not
  5975  // be included in the string output. The member name will be present, but the
  5976  // value will be replaced with "sensitive".
  5977  func (s IoTJobAbortCriteria) String() string {
  5978  	return awsutil.Prettify(s)
  5979  }
  5980  
  5981  // GoString returns the string representation.
  5982  //
  5983  // API parameter values that are decorated as "sensitive" in the API will not
  5984  // be included in the string output. The member name will be present, but the
  5985  // value will be replaced with "sensitive".
  5986  func (s IoTJobAbortCriteria) GoString() string {
  5987  	return s.String()
  5988  }
  5989  
  5990  // Validate inspects the fields of the type to determine if they are valid.
  5991  func (s *IoTJobAbortCriteria) Validate() error {
  5992  	invalidParams := request.ErrInvalidParams{Context: "IoTJobAbortCriteria"}
  5993  	if s.Action == nil {
  5994  		invalidParams.Add(request.NewErrParamRequired("Action"))
  5995  	}
  5996  	if s.FailureType == nil {
  5997  		invalidParams.Add(request.NewErrParamRequired("FailureType"))
  5998  	}
  5999  	if s.MinNumberOfExecutedThings == nil {
  6000  		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
  6001  	}
  6002  	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
  6003  		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
  6004  	}
  6005  	if s.ThresholdPercentage == nil {
  6006  		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
  6007  	}
  6008  
  6009  	if invalidParams.Len() > 0 {
  6010  		return invalidParams
  6011  	}
  6012  	return nil
  6013  }
  6014  
  6015  // SetAction sets the Action field's value.
  6016  func (s *IoTJobAbortCriteria) SetAction(v string) *IoTJobAbortCriteria {
  6017  	s.Action = &v
  6018  	return s
  6019  }
  6020  
  6021  // SetFailureType sets the FailureType field's value.
  6022  func (s *IoTJobAbortCriteria) SetFailureType(v string) *IoTJobAbortCriteria {
  6023  	s.FailureType = &v
  6024  	return s
  6025  }
  6026  
  6027  // SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
  6028  func (s *IoTJobAbortCriteria) SetMinNumberOfExecutedThings(v int64) *IoTJobAbortCriteria {
  6029  	s.MinNumberOfExecutedThings = &v
  6030  	return s
  6031  }
  6032  
  6033  // SetThresholdPercentage sets the ThresholdPercentage field's value.
  6034  func (s *IoTJobAbortCriteria) SetThresholdPercentage(v float64) *IoTJobAbortCriteria {
  6035  	s.ThresholdPercentage = &v
  6036  	return s
  6037  }
  6038  
  6039  // Contains information about the rollout configuration for a job. This configuration
  6040  // defines the rate at which the job deploys a configuration to a fleet of target
  6041  // devices.
  6042  type IoTJobExecutionsRolloutConfig struct {
  6043  	_ struct{} `type:"structure"`
  6044  
  6045  	// The exponential rate to increase the job rollout rate.
  6046  	ExponentialRate *IoTJobExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
  6047  
  6048  	// The maximum number of devices that receive a pending job notification, per
  6049  	// minute.
  6050  	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
  6051  }
  6052  
  6053  // String returns the string representation.
  6054  //
  6055  // API parameter values that are decorated as "sensitive" in the API will not
  6056  // be included in the string output. The member name will be present, but the
  6057  // value will be replaced with "sensitive".
  6058  func (s IoTJobExecutionsRolloutConfig) String() string {
  6059  	return awsutil.Prettify(s)
  6060  }
  6061  
  6062  // GoString returns the string representation.
  6063  //
  6064  // API parameter values that are decorated as "sensitive" in the API will not
  6065  // be included in the string output. The member name will be present, but the
  6066  // value will be replaced with "sensitive".
  6067  func (s IoTJobExecutionsRolloutConfig) GoString() string {
  6068  	return s.String()
  6069  }
  6070  
  6071  // Validate inspects the fields of the type to determine if they are valid.
  6072  func (s *IoTJobExecutionsRolloutConfig) Validate() error {
  6073  	invalidParams := request.ErrInvalidParams{Context: "IoTJobExecutionsRolloutConfig"}
  6074  	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
  6075  		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
  6076  	}
  6077  	if s.ExponentialRate != nil {
  6078  		if err := s.ExponentialRate.Validate(); err != nil {
  6079  			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
  6080  		}
  6081  	}
  6082  
  6083  	if invalidParams.Len() > 0 {
  6084  		return invalidParams
  6085  	}
  6086  	return nil
  6087  }
  6088  
  6089  // SetExponentialRate sets the ExponentialRate field's value.
  6090  func (s *IoTJobExecutionsRolloutConfig) SetExponentialRate(v *IoTJobExponentialRolloutRate) *IoTJobExecutionsRolloutConfig {
  6091  	s.ExponentialRate = v
  6092  	return s
  6093  }
  6094  
  6095  // SetMaximumPerMinute sets the MaximumPerMinute field's value.
  6096  func (s *IoTJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *IoTJobExecutionsRolloutConfig {
  6097  	s.MaximumPerMinute = &v
  6098  	return s
  6099  }
  6100  
  6101  // Contains information about an exponential rollout rate for a configuration
  6102  // deployment job.
  6103  type IoTJobExponentialRolloutRate struct {
  6104  	_ struct{} `type:"structure"`
  6105  
  6106  	// The minimum number of devices that receive a pending job notification, per
  6107  	// minute, when the job starts. This parameter defines the initial rollout rate
  6108  	// of the job.
  6109  	//
  6110  	// BaseRatePerMinute is a required field
  6111  	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
  6112  
  6113  	// The exponential factor to increase the rollout rate for the job.
  6114  	//
  6115  	// This parameter supports up to one digit after the decimal (for example, you
  6116  	// can specify 1.5, but not 1.55).
  6117  	//
  6118  	// IncrementFactor is a required field
  6119  	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
  6120  
  6121  	// The criteria to increase the rollout rate for the job.
  6122  	//
  6123  	// RateIncreaseCriteria is a required field
  6124  	RateIncreaseCriteria *IoTJobRateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
  6125  }
  6126  
  6127  // String returns the string representation.
  6128  //
  6129  // API parameter values that are decorated as "sensitive" in the API will not
  6130  // be included in the string output. The member name will be present, but the
  6131  // value will be replaced with "sensitive".
  6132  func (s IoTJobExponentialRolloutRate) String() string {
  6133  	return awsutil.Prettify(s)
  6134  }
  6135  
  6136  // GoString returns the string representation.
  6137  //
  6138  // API parameter values that are decorated as "sensitive" in the API will not
  6139  // be included in the string output. The member name will be present, but the
  6140  // value will be replaced with "sensitive".
  6141  func (s IoTJobExponentialRolloutRate) GoString() string {
  6142  	return s.String()
  6143  }
  6144  
  6145  // Validate inspects the fields of the type to determine if they are valid.
  6146  func (s *IoTJobExponentialRolloutRate) Validate() error {
  6147  	invalidParams := request.ErrInvalidParams{Context: "IoTJobExponentialRolloutRate"}
  6148  	if s.BaseRatePerMinute == nil {
  6149  		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
  6150  	}
  6151  	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
  6152  		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
  6153  	}
  6154  	if s.IncrementFactor == nil {
  6155  		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
  6156  	}
  6157  	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
  6158  		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
  6159  	}
  6160  	if s.RateIncreaseCriteria == nil {
  6161  		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
  6162  	}
  6163  	if s.RateIncreaseCriteria != nil {
  6164  		if err := s.RateIncreaseCriteria.Validate(); err != nil {
  6165  			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
  6166  		}
  6167  	}
  6168  
  6169  	if invalidParams.Len() > 0 {
  6170  		return invalidParams
  6171  	}
  6172  	return nil
  6173  }
  6174  
  6175  // SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
  6176  func (s *IoTJobExponentialRolloutRate) SetBaseRatePerMinute(v int64) *IoTJobExponentialRolloutRate {
  6177  	s.BaseRatePerMinute = &v
  6178  	return s
  6179  }
  6180  
  6181  // SetIncrementFactor sets the IncrementFactor field's value.
  6182  func (s *IoTJobExponentialRolloutRate) SetIncrementFactor(v float64) *IoTJobExponentialRolloutRate {
  6183  	s.IncrementFactor = &v
  6184  	return s
  6185  }
  6186  
  6187  // SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
  6188  func (s *IoTJobExponentialRolloutRate) SetRateIncreaseCriteria(v *IoTJobRateIncreaseCriteria) *IoTJobExponentialRolloutRate {
  6189  	s.RateIncreaseCriteria = v
  6190  	return s
  6191  }
  6192  
  6193  // Contains information about criteria to meet before a job increases its rollout
  6194  // rate. Specify either numberOfNotifiedThings or numberOfSucceededThings.
  6195  type IoTJobRateIncreaseCriteria struct {
  6196  	_ struct{} `type:"structure"`
  6197  
  6198  	// The number of devices to receive the job notification before the rollout
  6199  	// rate increases.
  6200  	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
  6201  
  6202  	// The number of devices to successfully run the configuration job before the
  6203  	// rollout rate increases.
  6204  	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
  6205  }
  6206  
  6207  // String returns the string representation.
  6208  //
  6209  // API parameter values that are decorated as "sensitive" in the API will not
  6210  // be included in the string output. The member name will be present, but the
  6211  // value will be replaced with "sensitive".
  6212  func (s IoTJobRateIncreaseCriteria) String() string {
  6213  	return awsutil.Prettify(s)
  6214  }
  6215  
  6216  // GoString returns the string representation.
  6217  //
  6218  // API parameter values that are decorated as "sensitive" in the API will not
  6219  // be included in the string output. The member name will be present, but the
  6220  // value will be replaced with "sensitive".
  6221  func (s IoTJobRateIncreaseCriteria) GoString() string {
  6222  	return s.String()
  6223  }
  6224  
  6225  // Validate inspects the fields of the type to determine if they are valid.
  6226  func (s *IoTJobRateIncreaseCriteria) Validate() error {
  6227  	invalidParams := request.ErrInvalidParams{Context: "IoTJobRateIncreaseCriteria"}
  6228  	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
  6229  		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
  6230  	}
  6231  	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
  6232  		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
  6233  	}
  6234  
  6235  	if invalidParams.Len() > 0 {
  6236  		return invalidParams
  6237  	}
  6238  	return nil
  6239  }
  6240  
  6241  // SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
  6242  func (s *IoTJobRateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *IoTJobRateIncreaseCriteria {
  6243  	s.NumberOfNotifiedThings = &v
  6244  	return s
  6245  }
  6246  
  6247  // SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
  6248  func (s *IoTJobRateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *IoTJobRateIncreaseCriteria {
  6249  	s.NumberOfSucceededThings = &v
  6250  	return s
  6251  }
  6252  
  6253  // Contains information about the timeout configuration for a job.
  6254  type IoTJobTimeoutConfig struct {
  6255  	_ struct{} `type:"structure"`
  6256  
  6257  	// The amount of time, in minutes, that devices have to complete the job. The
  6258  	// timer starts when the job status is set to IN_PROGRESS. If the job status
  6259  	// doesn't change to a terminal state before the time expires, then the job
  6260  	// status is set to TIMED_OUT.
  6261  	//
  6262  	// The timeout interval must be between 1 minute and 7 days (10080 minutes).
  6263  	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
  6264  }
  6265  
  6266  // String returns the string representation.
  6267  //
  6268  // API parameter values that are decorated as "sensitive" in the API will not
  6269  // be included in the string output. The member name will be present, but the
  6270  // value will be replaced with "sensitive".
  6271  func (s IoTJobTimeoutConfig) String() string {
  6272  	return awsutil.Prettify(s)
  6273  }
  6274  
  6275  // GoString returns the string representation.
  6276  //
  6277  // API parameter values that are decorated as "sensitive" in the API will not
  6278  // be included in the string output. The member name will be present, but the
  6279  // value will be replaced with "sensitive".
  6280  func (s IoTJobTimeoutConfig) GoString() string {
  6281  	return s.String()
  6282  }
  6283  
  6284  // SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
  6285  func (s *IoTJobTimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *IoTJobTimeoutConfig {
  6286  	s.InProgressTimeoutInMinutes = &v
  6287  	return s
  6288  }
  6289  
  6290  // Contains information about a container in which Lambda functions run on Greengrass
  6291  // core devices.
  6292  type LambdaContainerParams struct {
  6293  	_ struct{} `type:"structure"`
  6294  
  6295  	// The list of system devices that the container can access.
  6296  	Devices []*LambdaDeviceMount `locationName:"devices" type:"list"`
  6297  
  6298  	// The memory size of the container, expressed in kilobytes.
  6299  	//
  6300  	// Default: 16384 (16 MB)
  6301  	MemorySizeInKB *int64 `locationName:"memorySizeInKB" type:"integer"`
  6302  
  6303  	// Whether or not the container can read information from the device's /sys
  6304  	// folder.
  6305  	//
  6306  	// Default: false
  6307  	MountROSysfs *bool `locationName:"mountROSysfs" type:"boolean"`
  6308  
  6309  	// The list of volumes that the container can access.
  6310  	Volumes []*LambdaVolumeMount `locationName:"volumes" type:"list"`
  6311  }
  6312  
  6313  // String returns the string representation.
  6314  //
  6315  // API parameter values that are decorated as "sensitive" in the API will not
  6316  // be included in the string output. The member name will be present, but the
  6317  // value will be replaced with "sensitive".
  6318  func (s LambdaContainerParams) String() string {
  6319  	return awsutil.Prettify(s)
  6320  }
  6321  
  6322  // GoString returns the string representation.
  6323  //
  6324  // API parameter values that are decorated as "sensitive" in the API will not
  6325  // be included in the string output. The member name will be present, but the
  6326  // value will be replaced with "sensitive".
  6327  func (s LambdaContainerParams) GoString() string {
  6328  	return s.String()
  6329  }
  6330  
  6331  // Validate inspects the fields of the type to determine if they are valid.
  6332  func (s *LambdaContainerParams) Validate() error {
  6333  	invalidParams := request.ErrInvalidParams{Context: "LambdaContainerParams"}
  6334  	if s.Devices != nil {
  6335  		for i, v := range s.Devices {
  6336  			if v == nil {
  6337  				continue
  6338  			}
  6339  			if err := v.Validate(); err != nil {
  6340  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
  6341  			}
  6342  		}
  6343  	}
  6344  	if s.Volumes != nil {
  6345  		for i, v := range s.Volumes {
  6346  			if v == nil {
  6347  				continue
  6348  			}
  6349  			if err := v.Validate(); err != nil {
  6350  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
  6351  			}
  6352  		}
  6353  	}
  6354  
  6355  	if invalidParams.Len() > 0 {
  6356  		return invalidParams
  6357  	}
  6358  	return nil
  6359  }
  6360  
  6361  // SetDevices sets the Devices field's value.
  6362  func (s *LambdaContainerParams) SetDevices(v []*LambdaDeviceMount) *LambdaContainerParams {
  6363  	s.Devices = v
  6364  	return s
  6365  }
  6366  
  6367  // SetMemorySizeInKB sets the MemorySizeInKB field's value.
  6368  func (s *LambdaContainerParams) SetMemorySizeInKB(v int64) *LambdaContainerParams {
  6369  	s.MemorySizeInKB = &v
  6370  	return s
  6371  }
  6372  
  6373  // SetMountROSysfs sets the MountROSysfs field's value.
  6374  func (s *LambdaContainerParams) SetMountROSysfs(v bool) *LambdaContainerParams {
  6375  	s.MountROSysfs = &v
  6376  	return s
  6377  }
  6378  
  6379  // SetVolumes sets the Volumes field's value.
  6380  func (s *LambdaContainerParams) SetVolumes(v []*LambdaVolumeMount) *LambdaContainerParams {
  6381  	s.Volumes = v
  6382  	return s
  6383  }
  6384  
  6385  // Contains information about a device that Linux processes in a container can
  6386  // access.
  6387  type LambdaDeviceMount struct {
  6388  	_ struct{} `type:"structure"`
  6389  
  6390  	// Whether or not to add the component's system user as an owner of the device.
  6391  	//
  6392  	// Default: false
  6393  	AddGroupOwner *bool `locationName:"addGroupOwner" type:"boolean"`
  6394  
  6395  	// The mount path for the device in the file system.
  6396  	//
  6397  	// Path is a required field
  6398  	Path *string `locationName:"path" type:"string" required:"true"`
  6399  
  6400  	// The permission to access the device: read/only (ro) or read/write (rw).
  6401  	//
  6402  	// Default: ro
  6403  	Permission *string `locationName:"permission" type:"string" enum:"LambdaFilesystemPermission"`
  6404  }
  6405  
  6406  // String returns the string representation.
  6407  //
  6408  // API parameter values that are decorated as "sensitive" in the API will not
  6409  // be included in the string output. The member name will be present, but the
  6410  // value will be replaced with "sensitive".
  6411  func (s LambdaDeviceMount) String() string {
  6412  	return awsutil.Prettify(s)
  6413  }
  6414  
  6415  // GoString returns the string representation.
  6416  //
  6417  // API parameter values that are decorated as "sensitive" in the API will not
  6418  // be included in the string output. The member name will be present, but the
  6419  // value will be replaced with "sensitive".
  6420  func (s LambdaDeviceMount) GoString() string {
  6421  	return s.String()
  6422  }
  6423  
  6424  // Validate inspects the fields of the type to determine if they are valid.
  6425  func (s *LambdaDeviceMount) Validate() error {
  6426  	invalidParams := request.ErrInvalidParams{Context: "LambdaDeviceMount"}
  6427  	if s.Path == nil {
  6428  		invalidParams.Add(request.NewErrParamRequired("Path"))
  6429  	}
  6430  
  6431  	if invalidParams.Len() > 0 {
  6432  		return invalidParams
  6433  	}
  6434  	return nil
  6435  }
  6436  
  6437  // SetAddGroupOwner sets the AddGroupOwner field's value.
  6438  func (s *LambdaDeviceMount) SetAddGroupOwner(v bool) *LambdaDeviceMount {
  6439  	s.AddGroupOwner = &v
  6440  	return s
  6441  }
  6442  
  6443  // SetPath sets the Path field's value.
  6444  func (s *LambdaDeviceMount) SetPath(v string) *LambdaDeviceMount {
  6445  	s.Path = &v
  6446  	return s
  6447  }
  6448  
  6449  // SetPermission sets the Permission field's value.
  6450  func (s *LambdaDeviceMount) SetPermission(v string) *LambdaDeviceMount {
  6451  	s.Permission = &v
  6452  	return s
  6453  }
  6454  
  6455  // Contains information about an event source for an Lambda function. The event
  6456  // source defines the topics on which this Lambda function subscribes to receive
  6457  // messages that run the function.
  6458  type LambdaEventSource struct {
  6459  	_ struct{} `type:"structure"`
  6460  
  6461  	// The topic to which to subscribe to receive event messages.
  6462  	//
  6463  	// Topic is a required field
  6464  	Topic *string `locationName:"topic" type:"string" required:"true"`
  6465  
  6466  	// The type of event source. Choose from the following options:
  6467  	//
  6468  	//    * PUB_SUB – Subscribe to local publish/subscribe messages. This event
  6469  	//    source type doesn't support MQTT wildcards (+ and #) in the event source
  6470  	//    topic.
  6471  	//
  6472  	//    * IOT_CORE – Subscribe to Amazon Web Services IoT Core MQTT messages.
  6473  	//    This event source type supports MQTT wildcards (+ and #) in the event
  6474  	//    source topic.
  6475  	//
  6476  	// Type is a required field
  6477  	Type *string `locationName:"type" type:"string" required:"true" enum:"LambdaEventSourceType"`
  6478  }
  6479  
  6480  // String returns the string representation.
  6481  //
  6482  // API parameter values that are decorated as "sensitive" in the API will not
  6483  // be included in the string output. The member name will be present, but the
  6484  // value will be replaced with "sensitive".
  6485  func (s LambdaEventSource) String() string {
  6486  	return awsutil.Prettify(s)
  6487  }
  6488  
  6489  // GoString returns the string representation.
  6490  //
  6491  // API parameter values that are decorated as "sensitive" in the API will not
  6492  // be included in the string output. The member name will be present, but the
  6493  // value will be replaced with "sensitive".
  6494  func (s LambdaEventSource) GoString() string {
  6495  	return s.String()
  6496  }
  6497  
  6498  // Validate inspects the fields of the type to determine if they are valid.
  6499  func (s *LambdaEventSource) Validate() error {
  6500  	invalidParams := request.ErrInvalidParams{Context: "LambdaEventSource"}
  6501  	if s.Topic == nil {
  6502  		invalidParams.Add(request.NewErrParamRequired("Topic"))
  6503  	}
  6504  	if s.Type == nil {
  6505  		invalidParams.Add(request.NewErrParamRequired("Type"))
  6506  	}
  6507  
  6508  	if invalidParams.Len() > 0 {
  6509  		return invalidParams
  6510  	}
  6511  	return nil
  6512  }
  6513  
  6514  // SetTopic sets the Topic field's value.
  6515  func (s *LambdaEventSource) SetTopic(v string) *LambdaEventSource {
  6516  	s.Topic = &v
  6517  	return s
  6518  }
  6519  
  6520  // SetType sets the Type field's value.
  6521  func (s *LambdaEventSource) SetType(v string) *LambdaEventSource {
  6522  	s.Type = &v
  6523  	return s
  6524  }
  6525  
  6526  // Contains parameters for a Lambda function that runs on IoT Greengrass.
  6527  type LambdaExecutionParameters struct {
  6528  	_ struct{} `type:"structure"`
  6529  
  6530  	// The map of environment variables that are available to the Lambda function
  6531  	// when it runs.
  6532  	EnvironmentVariables map[string]*string `locationName:"environmentVariables" type:"map"`
  6533  
  6534  	// The list of event sources to which to subscribe to receive work messages.
  6535  	// The Lambda function runs when it receives a message from an event source.
  6536  	// You can subscribe this function to local publish/subscribe messages and Amazon
  6537  	// Web Services IoT Core MQTT messages.
  6538  	EventSources []*LambdaEventSource `locationName:"eventSources" type:"list"`
  6539  
  6540  	// The list of arguments to pass to the Lambda function when it runs.
  6541  	ExecArgs []*string `locationName:"execArgs" type:"list"`
  6542  
  6543  	// The encoding type that the Lambda function supports.
  6544  	//
  6545  	// Default: json
  6546  	InputPayloadEncodingType *string `locationName:"inputPayloadEncodingType" type:"string" enum:"LambdaInputPayloadEncodingType"`
  6547  
  6548  	// The parameters for the Linux process that contains the Lambda function.
  6549  	LinuxProcessParams *LambdaLinuxProcessParams `locationName:"linuxProcessParams" type:"structure"`
  6550  
  6551  	// The maximum amount of time in seconds that a non-pinned Lambda function can
  6552  	// idle before the IoT Greengrass Core software stops its process.
  6553  	MaxIdleTimeInSeconds *int64 `locationName:"maxIdleTimeInSeconds" type:"integer"`
  6554  
  6555  	// The maximum number of instances that a non-pinned Lambda function can run
  6556  	// at the same time.
  6557  	MaxInstancesCount *int64 `locationName:"maxInstancesCount" type:"integer"`
  6558  
  6559  	// The maximum size of the message queue for the Lambda function component.
  6560  	// The IoT Greengrass core stores messages in a FIFO (first-in-first-out) queue
  6561  	// until it can run the Lambda function to consume each message.
  6562  	MaxQueueSize *int64 `locationName:"maxQueueSize" type:"integer"`
  6563  
  6564  	// Whether or not the Lambda function is pinned, or long-lived.
  6565  	//
  6566  	//    * A pinned Lambda function starts when IoT Greengrass starts and keeps
  6567  	//    running in its own container.
  6568  	//
  6569  	//    * A non-pinned Lambda function starts only when it receives a work item
  6570  	//    and exists after it idles for maxIdleTimeInSeconds. If the function has
  6571  	//    multiple work items, the IoT Greengrass Core software creates multiple
  6572  	//    instances of the function.
  6573  	//
  6574  	// Default: true
  6575  	Pinned *bool `locationName:"pinned" type:"boolean"`
  6576  
  6577  	// The interval in seconds at which a pinned (also known as long-lived) Lambda
  6578  	// function component sends status updates to the Lambda manager component.
  6579  	StatusTimeoutInSeconds *int64 `locationName:"statusTimeoutInSeconds" type:"integer"`
  6580  
  6581  	// The maximum amount of time in seconds that the Lambda function can process
  6582  	// a work item.
  6583  	TimeoutInSeconds *int64 `locationName:"timeoutInSeconds" type:"integer"`
  6584  }
  6585  
  6586  // String returns the string representation.
  6587  //
  6588  // API parameter values that are decorated as "sensitive" in the API will not
  6589  // be included in the string output. The member name will be present, but the
  6590  // value will be replaced with "sensitive".
  6591  func (s LambdaExecutionParameters) String() string {
  6592  	return awsutil.Prettify(s)
  6593  }
  6594  
  6595  // GoString returns the string representation.
  6596  //
  6597  // API parameter values that are decorated as "sensitive" in the API will not
  6598  // be included in the string output. The member name will be present, but the
  6599  // value will be replaced with "sensitive".
  6600  func (s LambdaExecutionParameters) GoString() string {
  6601  	return s.String()
  6602  }
  6603  
  6604  // Validate inspects the fields of the type to determine if they are valid.
  6605  func (s *LambdaExecutionParameters) Validate() error {
  6606  	invalidParams := request.ErrInvalidParams{Context: "LambdaExecutionParameters"}
  6607  	if s.EventSources != nil {
  6608  		for i, v := range s.EventSources {
  6609  			if v == nil {
  6610  				continue
  6611  			}
  6612  			if err := v.Validate(); err != nil {
  6613  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EventSources", i), err.(request.ErrInvalidParams))
  6614  			}
  6615  		}
  6616  	}
  6617  	if s.LinuxProcessParams != nil {
  6618  		if err := s.LinuxProcessParams.Validate(); err != nil {
  6619  			invalidParams.AddNested("LinuxProcessParams", err.(request.ErrInvalidParams))
  6620  		}
  6621  	}
  6622  
  6623  	if invalidParams.Len() > 0 {
  6624  		return invalidParams
  6625  	}
  6626  	return nil
  6627  }
  6628  
  6629  // SetEnvironmentVariables sets the EnvironmentVariables field's value.
  6630  func (s *LambdaExecutionParameters) SetEnvironmentVariables(v map[string]*string) *LambdaExecutionParameters {
  6631  	s.EnvironmentVariables = v
  6632  	return s
  6633  }
  6634  
  6635  // SetEventSources sets the EventSources field's value.
  6636  func (s *LambdaExecutionParameters) SetEventSources(v []*LambdaEventSource) *LambdaExecutionParameters {
  6637  	s.EventSources = v
  6638  	return s
  6639  }
  6640  
  6641  // SetExecArgs sets the ExecArgs field's value.
  6642  func (s *LambdaExecutionParameters) SetExecArgs(v []*string) *LambdaExecutionParameters {
  6643  	s.ExecArgs = v
  6644  	return s
  6645  }
  6646  
  6647  // SetInputPayloadEncodingType sets the InputPayloadEncodingType field's value.
  6648  func (s *LambdaExecutionParameters) SetInputPayloadEncodingType(v string) *LambdaExecutionParameters {
  6649  	s.InputPayloadEncodingType = &v
  6650  	return s
  6651  }
  6652  
  6653  // SetLinuxProcessParams sets the LinuxProcessParams field's value.
  6654  func (s *LambdaExecutionParameters) SetLinuxProcessParams(v *LambdaLinuxProcessParams) *LambdaExecutionParameters {
  6655  	s.LinuxProcessParams = v
  6656  	return s
  6657  }
  6658  
  6659  // SetMaxIdleTimeInSeconds sets the MaxIdleTimeInSeconds field's value.
  6660  func (s *LambdaExecutionParameters) SetMaxIdleTimeInSeconds(v int64) *LambdaExecutionParameters {
  6661  	s.MaxIdleTimeInSeconds = &v
  6662  	return s
  6663  }
  6664  
  6665  // SetMaxInstancesCount sets the MaxInstancesCount field's value.
  6666  func (s *LambdaExecutionParameters) SetMaxInstancesCount(v int64) *LambdaExecutionParameters {
  6667  	s.MaxInstancesCount = &v
  6668  	return s
  6669  }
  6670  
  6671  // SetMaxQueueSize sets the MaxQueueSize field's value.
  6672  func (s *LambdaExecutionParameters) SetMaxQueueSize(v int64) *LambdaExecutionParameters {
  6673  	s.MaxQueueSize = &v
  6674  	return s
  6675  }
  6676  
  6677  // SetPinned sets the Pinned field's value.
  6678  func (s *LambdaExecutionParameters) SetPinned(v bool) *LambdaExecutionParameters {
  6679  	s.Pinned = &v
  6680  	return s
  6681  }
  6682  
  6683  // SetStatusTimeoutInSeconds sets the StatusTimeoutInSeconds field's value.
  6684  func (s *LambdaExecutionParameters) SetStatusTimeoutInSeconds(v int64) *LambdaExecutionParameters {
  6685  	s.StatusTimeoutInSeconds = &v
  6686  	return s
  6687  }
  6688  
  6689  // SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
  6690  func (s *LambdaExecutionParameters) SetTimeoutInSeconds(v int64) *LambdaExecutionParameters {
  6691  	s.TimeoutInSeconds = &v
  6692  	return s
  6693  }
  6694  
  6695  // Contains information about an Lambda function to import to create a component.
  6696  type LambdaFunctionRecipeSource struct {
  6697  	_ struct{} `type:"structure"`
  6698  
  6699  	// The component versions on which this Lambda function component depends.
  6700  	ComponentDependencies map[string]*ComponentDependencyRequirement `locationName:"componentDependencies" type:"map"`
  6701  
  6702  	// The system and runtime parameters for the Lambda function as it runs on the
  6703  	// Greengrass core device.
  6704  	ComponentLambdaParameters *LambdaExecutionParameters `locationName:"componentLambdaParameters" type:"structure"`
  6705  
  6706  	// The name of the component.
  6707  	//
  6708  	// Defaults to the name of the Lambda function.
  6709  	ComponentName *string `locationName:"componentName" min:"1" type:"string"`
  6710  
  6711  	// The platforms that the component version supports.
  6712  	ComponentPlatforms []*ComponentPlatform `locationName:"componentPlatforms" type:"list"`
  6713  
  6714  	// The version of the component.
  6715  	//
  6716  	// Defaults to the version of the Lambda function as a semantic version. For
  6717  	// example, if your function version is 3, the component version becomes 3.0.0.
  6718  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  6719  
  6720  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  6721  	// of the Lambda function. The ARN must include the version of the function
  6722  	// to import. You can't use version aliases like $LATEST.
  6723  	//
  6724  	// LambdaArn is a required field
  6725  	LambdaArn *string `locationName:"lambdaArn" type:"string" required:"true"`
  6726  }
  6727  
  6728  // String returns the string representation.
  6729  //
  6730  // API parameter values that are decorated as "sensitive" in the API will not
  6731  // be included in the string output. The member name will be present, but the
  6732  // value will be replaced with "sensitive".
  6733  func (s LambdaFunctionRecipeSource) String() string {
  6734  	return awsutil.Prettify(s)
  6735  }
  6736  
  6737  // GoString returns the string representation.
  6738  //
  6739  // API parameter values that are decorated as "sensitive" in the API will not
  6740  // be included in the string output. The member name will be present, but the
  6741  // value will be replaced with "sensitive".
  6742  func (s LambdaFunctionRecipeSource) GoString() string {
  6743  	return s.String()
  6744  }
  6745  
  6746  // Validate inspects the fields of the type to determine if they are valid.
  6747  func (s *LambdaFunctionRecipeSource) Validate() error {
  6748  	invalidParams := request.ErrInvalidParams{Context: "LambdaFunctionRecipeSource"}
  6749  	if s.ComponentName != nil && len(*s.ComponentName) < 1 {
  6750  		invalidParams.Add(request.NewErrParamMinLen("ComponentName", 1))
  6751  	}
  6752  	if s.ComponentVersion != nil && len(*s.ComponentVersion) < 1 {
  6753  		invalidParams.Add(request.NewErrParamMinLen("ComponentVersion", 1))
  6754  	}
  6755  	if s.LambdaArn == nil {
  6756  		invalidParams.Add(request.NewErrParamRequired("LambdaArn"))
  6757  	}
  6758  	if s.ComponentDependencies != nil {
  6759  		for i, v := range s.ComponentDependencies {
  6760  			if v == nil {
  6761  				continue
  6762  			}
  6763  			if err := v.Validate(); err != nil {
  6764  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComponentDependencies", i), err.(request.ErrInvalidParams))
  6765  			}
  6766  		}
  6767  	}
  6768  	if s.ComponentLambdaParameters != nil {
  6769  		if err := s.ComponentLambdaParameters.Validate(); err != nil {
  6770  			invalidParams.AddNested("ComponentLambdaParameters", err.(request.ErrInvalidParams))
  6771  		}
  6772  	}
  6773  	if s.ComponentPlatforms != nil {
  6774  		for i, v := range s.ComponentPlatforms {
  6775  			if v == nil {
  6776  				continue
  6777  			}
  6778  			if err := v.Validate(); err != nil {
  6779  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComponentPlatforms", i), err.(request.ErrInvalidParams))
  6780  			}
  6781  		}
  6782  	}
  6783  
  6784  	if invalidParams.Len() > 0 {
  6785  		return invalidParams
  6786  	}
  6787  	return nil
  6788  }
  6789  
  6790  // SetComponentDependencies sets the ComponentDependencies field's value.
  6791  func (s *LambdaFunctionRecipeSource) SetComponentDependencies(v map[string]*ComponentDependencyRequirement) *LambdaFunctionRecipeSource {
  6792  	s.ComponentDependencies = v
  6793  	return s
  6794  }
  6795  
  6796  // SetComponentLambdaParameters sets the ComponentLambdaParameters field's value.
  6797  func (s *LambdaFunctionRecipeSource) SetComponentLambdaParameters(v *LambdaExecutionParameters) *LambdaFunctionRecipeSource {
  6798  	s.ComponentLambdaParameters = v
  6799  	return s
  6800  }
  6801  
  6802  // SetComponentName sets the ComponentName field's value.
  6803  func (s *LambdaFunctionRecipeSource) SetComponentName(v string) *LambdaFunctionRecipeSource {
  6804  	s.ComponentName = &v
  6805  	return s
  6806  }
  6807  
  6808  // SetComponentPlatforms sets the ComponentPlatforms field's value.
  6809  func (s *LambdaFunctionRecipeSource) SetComponentPlatforms(v []*ComponentPlatform) *LambdaFunctionRecipeSource {
  6810  	s.ComponentPlatforms = v
  6811  	return s
  6812  }
  6813  
  6814  // SetComponentVersion sets the ComponentVersion field's value.
  6815  func (s *LambdaFunctionRecipeSource) SetComponentVersion(v string) *LambdaFunctionRecipeSource {
  6816  	s.ComponentVersion = &v
  6817  	return s
  6818  }
  6819  
  6820  // SetLambdaArn sets the LambdaArn field's value.
  6821  func (s *LambdaFunctionRecipeSource) SetLambdaArn(v string) *LambdaFunctionRecipeSource {
  6822  	s.LambdaArn = &v
  6823  	return s
  6824  }
  6825  
  6826  // Contains parameters for a Linux process that contains an Lambda function.
  6827  type LambdaLinuxProcessParams struct {
  6828  	_ struct{} `type:"structure"`
  6829  
  6830  	// The parameters for the container in which the Lambda function runs.
  6831  	ContainerParams *LambdaContainerParams `locationName:"containerParams" type:"structure"`
  6832  
  6833  	// The isolation mode for the process that contains the Lambda function. The
  6834  	// process can run in an isolated runtime environment inside the IoT Greengrass
  6835  	// container, or as a regular process outside any container.
  6836  	//
  6837  	// Default: GreengrassContainer
  6838  	IsolationMode *string `locationName:"isolationMode" type:"string" enum:"LambdaIsolationMode"`
  6839  }
  6840  
  6841  // String returns the string representation.
  6842  //
  6843  // API parameter values that are decorated as "sensitive" in the API will not
  6844  // be included in the string output. The member name will be present, but the
  6845  // value will be replaced with "sensitive".
  6846  func (s LambdaLinuxProcessParams) String() string {
  6847  	return awsutil.Prettify(s)
  6848  }
  6849  
  6850  // GoString returns the string representation.
  6851  //
  6852  // API parameter values that are decorated as "sensitive" in the API will not
  6853  // be included in the string output. The member name will be present, but the
  6854  // value will be replaced with "sensitive".
  6855  func (s LambdaLinuxProcessParams) GoString() string {
  6856  	return s.String()
  6857  }
  6858  
  6859  // Validate inspects the fields of the type to determine if they are valid.
  6860  func (s *LambdaLinuxProcessParams) Validate() error {
  6861  	invalidParams := request.ErrInvalidParams{Context: "LambdaLinuxProcessParams"}
  6862  	if s.ContainerParams != nil {
  6863  		if err := s.ContainerParams.Validate(); err != nil {
  6864  			invalidParams.AddNested("ContainerParams", err.(request.ErrInvalidParams))
  6865  		}
  6866  	}
  6867  
  6868  	if invalidParams.Len() > 0 {
  6869  		return invalidParams
  6870  	}
  6871  	return nil
  6872  }
  6873  
  6874  // SetContainerParams sets the ContainerParams field's value.
  6875  func (s *LambdaLinuxProcessParams) SetContainerParams(v *LambdaContainerParams) *LambdaLinuxProcessParams {
  6876  	s.ContainerParams = v
  6877  	return s
  6878  }
  6879  
  6880  // SetIsolationMode sets the IsolationMode field's value.
  6881  func (s *LambdaLinuxProcessParams) SetIsolationMode(v string) *LambdaLinuxProcessParams {
  6882  	s.IsolationMode = &v
  6883  	return s
  6884  }
  6885  
  6886  // Contains information about a volume that Linux processes in a container can
  6887  // access. When you define a volume, the IoT Greengrass Core software mounts
  6888  // the source files to the destination inside the container.
  6889  type LambdaVolumeMount struct {
  6890  	_ struct{} `type:"structure"`
  6891  
  6892  	// Whether or not to add the IoT Greengrass user group as an owner of the volume.
  6893  	//
  6894  	// Default: false
  6895  	AddGroupOwner *bool `locationName:"addGroupOwner" type:"boolean"`
  6896  
  6897  	// The path to the logical volume in the file system.
  6898  	//
  6899  	// DestinationPath is a required field
  6900  	DestinationPath *string `locationName:"destinationPath" type:"string" required:"true"`
  6901  
  6902  	// The permission to access the volume: read/only (ro) or read/write (rw).
  6903  	//
  6904  	// Default: ro
  6905  	Permission *string `locationName:"permission" type:"string" enum:"LambdaFilesystemPermission"`
  6906  
  6907  	// The path to the physical volume in the file system.
  6908  	//
  6909  	// SourcePath is a required field
  6910  	SourcePath *string `locationName:"sourcePath" type:"string" required:"true"`
  6911  }
  6912  
  6913  // String returns the string representation.
  6914  //
  6915  // API parameter values that are decorated as "sensitive" in the API will not
  6916  // be included in the string output. The member name will be present, but the
  6917  // value will be replaced with "sensitive".
  6918  func (s LambdaVolumeMount) String() string {
  6919  	return awsutil.Prettify(s)
  6920  }
  6921  
  6922  // GoString returns the string representation.
  6923  //
  6924  // API parameter values that are decorated as "sensitive" in the API will not
  6925  // be included in the string output. The member name will be present, but the
  6926  // value will be replaced with "sensitive".
  6927  func (s LambdaVolumeMount) GoString() string {
  6928  	return s.String()
  6929  }
  6930  
  6931  // Validate inspects the fields of the type to determine if they are valid.
  6932  func (s *LambdaVolumeMount) Validate() error {
  6933  	invalidParams := request.ErrInvalidParams{Context: "LambdaVolumeMount"}
  6934  	if s.DestinationPath == nil {
  6935  		invalidParams.Add(request.NewErrParamRequired("DestinationPath"))
  6936  	}
  6937  	if s.SourcePath == nil {
  6938  		invalidParams.Add(request.NewErrParamRequired("SourcePath"))
  6939  	}
  6940  
  6941  	if invalidParams.Len() > 0 {
  6942  		return invalidParams
  6943  	}
  6944  	return nil
  6945  }
  6946  
  6947  // SetAddGroupOwner sets the AddGroupOwner field's value.
  6948  func (s *LambdaVolumeMount) SetAddGroupOwner(v bool) *LambdaVolumeMount {
  6949  	s.AddGroupOwner = &v
  6950  	return s
  6951  }
  6952  
  6953  // SetDestinationPath sets the DestinationPath field's value.
  6954  func (s *LambdaVolumeMount) SetDestinationPath(v string) *LambdaVolumeMount {
  6955  	s.DestinationPath = &v
  6956  	return s
  6957  }
  6958  
  6959  // SetPermission sets the Permission field's value.
  6960  func (s *LambdaVolumeMount) SetPermission(v string) *LambdaVolumeMount {
  6961  	s.Permission = &v
  6962  	return s
  6963  }
  6964  
  6965  // SetSourcePath sets the SourcePath field's value.
  6966  func (s *LambdaVolumeMount) SetSourcePath(v string) *LambdaVolumeMount {
  6967  	s.SourcePath = &v
  6968  	return s
  6969  }
  6970  
  6971  type ListClientDevicesAssociatedWithCoreDeviceInput struct {
  6972  	_ struct{} `type:"structure" nopayload:"true"`
  6973  
  6974  	// The name of the core device. This is also the name of the IoT thing.
  6975  	//
  6976  	// CoreDeviceThingName is a required field
  6977  	CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"`
  6978  
  6979  	// The maximum number of results to be returned per paginated request.
  6980  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  6981  
  6982  	// The token to be used for the next set of paginated results.
  6983  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  6984  }
  6985  
  6986  // String returns the string representation.
  6987  //
  6988  // API parameter values that are decorated as "sensitive" in the API will not
  6989  // be included in the string output. The member name will be present, but the
  6990  // value will be replaced with "sensitive".
  6991  func (s ListClientDevicesAssociatedWithCoreDeviceInput) String() string {
  6992  	return awsutil.Prettify(s)
  6993  }
  6994  
  6995  // GoString returns the string representation.
  6996  //
  6997  // API parameter values that are decorated as "sensitive" in the API will not
  6998  // be included in the string output. The member name will be present, but the
  6999  // value will be replaced with "sensitive".
  7000  func (s ListClientDevicesAssociatedWithCoreDeviceInput) GoString() string {
  7001  	return s.String()
  7002  }
  7003  
  7004  // Validate inspects the fields of the type to determine if they are valid.
  7005  func (s *ListClientDevicesAssociatedWithCoreDeviceInput) Validate() error {
  7006  	invalidParams := request.ErrInvalidParams{Context: "ListClientDevicesAssociatedWithCoreDeviceInput"}
  7007  	if s.CoreDeviceThingName == nil {
  7008  		invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName"))
  7009  	}
  7010  	if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 {
  7011  		invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1))
  7012  	}
  7013  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7014  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7015  	}
  7016  
  7017  	if invalidParams.Len() > 0 {
  7018  		return invalidParams
  7019  	}
  7020  	return nil
  7021  }
  7022  
  7023  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  7024  func (s *ListClientDevicesAssociatedWithCoreDeviceInput) SetCoreDeviceThingName(v string) *ListClientDevicesAssociatedWithCoreDeviceInput {
  7025  	s.CoreDeviceThingName = &v
  7026  	return s
  7027  }
  7028  
  7029  // SetMaxResults sets the MaxResults field's value.
  7030  func (s *ListClientDevicesAssociatedWithCoreDeviceInput) SetMaxResults(v int64) *ListClientDevicesAssociatedWithCoreDeviceInput {
  7031  	s.MaxResults = &v
  7032  	return s
  7033  }
  7034  
  7035  // SetNextToken sets the NextToken field's value.
  7036  func (s *ListClientDevicesAssociatedWithCoreDeviceInput) SetNextToken(v string) *ListClientDevicesAssociatedWithCoreDeviceInput {
  7037  	s.NextToken = &v
  7038  	return s
  7039  }
  7040  
  7041  type ListClientDevicesAssociatedWithCoreDeviceOutput struct {
  7042  	_ struct{} `type:"structure"`
  7043  
  7044  	// A list that describes the client devices that are associated with the core
  7045  	// device.
  7046  	AssociatedClientDevices []*AssociatedClientDevice `locationName:"associatedClientDevices" min:"1" type:"list"`
  7047  
  7048  	// The token for the next set of results, or null if there are no additional
  7049  	// results.
  7050  	NextToken *string `locationName:"nextToken" type:"string"`
  7051  }
  7052  
  7053  // String returns the string representation.
  7054  //
  7055  // API parameter values that are decorated as "sensitive" in the API will not
  7056  // be included in the string output. The member name will be present, but the
  7057  // value will be replaced with "sensitive".
  7058  func (s ListClientDevicesAssociatedWithCoreDeviceOutput) String() string {
  7059  	return awsutil.Prettify(s)
  7060  }
  7061  
  7062  // GoString returns the string representation.
  7063  //
  7064  // API parameter values that are decorated as "sensitive" in the API will not
  7065  // be included in the string output. The member name will be present, but the
  7066  // value will be replaced with "sensitive".
  7067  func (s ListClientDevicesAssociatedWithCoreDeviceOutput) GoString() string {
  7068  	return s.String()
  7069  }
  7070  
  7071  // SetAssociatedClientDevices sets the AssociatedClientDevices field's value.
  7072  func (s *ListClientDevicesAssociatedWithCoreDeviceOutput) SetAssociatedClientDevices(v []*AssociatedClientDevice) *ListClientDevicesAssociatedWithCoreDeviceOutput {
  7073  	s.AssociatedClientDevices = v
  7074  	return s
  7075  }
  7076  
  7077  // SetNextToken sets the NextToken field's value.
  7078  func (s *ListClientDevicesAssociatedWithCoreDeviceOutput) SetNextToken(v string) *ListClientDevicesAssociatedWithCoreDeviceOutput {
  7079  	s.NextToken = &v
  7080  	return s
  7081  }
  7082  
  7083  type ListComponentVersionsInput struct {
  7084  	_ struct{} `type:"structure" nopayload:"true"`
  7085  
  7086  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  7087  	// of the component version.
  7088  	//
  7089  	// Arn is a required field
  7090  	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
  7091  
  7092  	// The maximum number of results to be returned per paginated request.
  7093  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7094  
  7095  	// The token to be used for the next set of paginated results.
  7096  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7097  }
  7098  
  7099  // String returns the string representation.
  7100  //
  7101  // API parameter values that are decorated as "sensitive" in the API will not
  7102  // be included in the string output. The member name will be present, but the
  7103  // value will be replaced with "sensitive".
  7104  func (s ListComponentVersionsInput) String() string {
  7105  	return awsutil.Prettify(s)
  7106  }
  7107  
  7108  // GoString returns the string representation.
  7109  //
  7110  // API parameter values that are decorated as "sensitive" in the API will not
  7111  // be included in the string output. The member name will be present, but the
  7112  // value will be replaced with "sensitive".
  7113  func (s ListComponentVersionsInput) GoString() string {
  7114  	return s.String()
  7115  }
  7116  
  7117  // Validate inspects the fields of the type to determine if they are valid.
  7118  func (s *ListComponentVersionsInput) Validate() error {
  7119  	invalidParams := request.ErrInvalidParams{Context: "ListComponentVersionsInput"}
  7120  	if s.Arn == nil {
  7121  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  7122  	}
  7123  	if s.Arn != nil && len(*s.Arn) < 1 {
  7124  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
  7125  	}
  7126  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7127  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7128  	}
  7129  
  7130  	if invalidParams.Len() > 0 {
  7131  		return invalidParams
  7132  	}
  7133  	return nil
  7134  }
  7135  
  7136  // SetArn sets the Arn field's value.
  7137  func (s *ListComponentVersionsInput) SetArn(v string) *ListComponentVersionsInput {
  7138  	s.Arn = &v
  7139  	return s
  7140  }
  7141  
  7142  // SetMaxResults sets the MaxResults field's value.
  7143  func (s *ListComponentVersionsInput) SetMaxResults(v int64) *ListComponentVersionsInput {
  7144  	s.MaxResults = &v
  7145  	return s
  7146  }
  7147  
  7148  // SetNextToken sets the NextToken field's value.
  7149  func (s *ListComponentVersionsInput) SetNextToken(v string) *ListComponentVersionsInput {
  7150  	s.NextToken = &v
  7151  	return s
  7152  }
  7153  
  7154  type ListComponentVersionsOutput struct {
  7155  	_ struct{} `type:"structure"`
  7156  
  7157  	// A list of versions that exist for the component.
  7158  	ComponentVersions []*ComponentVersionListItem `locationName:"componentVersions" type:"list"`
  7159  
  7160  	// The token for the next set of results, or null if there are no additional
  7161  	// results.
  7162  	NextToken *string `locationName:"nextToken" type:"string"`
  7163  }
  7164  
  7165  // String returns the string representation.
  7166  //
  7167  // API parameter values that are decorated as "sensitive" in the API will not
  7168  // be included in the string output. The member name will be present, but the
  7169  // value will be replaced with "sensitive".
  7170  func (s ListComponentVersionsOutput) String() string {
  7171  	return awsutil.Prettify(s)
  7172  }
  7173  
  7174  // GoString returns the string representation.
  7175  //
  7176  // API parameter values that are decorated as "sensitive" in the API will not
  7177  // be included in the string output. The member name will be present, but the
  7178  // value will be replaced with "sensitive".
  7179  func (s ListComponentVersionsOutput) GoString() string {
  7180  	return s.String()
  7181  }
  7182  
  7183  // SetComponentVersions sets the ComponentVersions field's value.
  7184  func (s *ListComponentVersionsOutput) SetComponentVersions(v []*ComponentVersionListItem) *ListComponentVersionsOutput {
  7185  	s.ComponentVersions = v
  7186  	return s
  7187  }
  7188  
  7189  // SetNextToken sets the NextToken field's value.
  7190  func (s *ListComponentVersionsOutput) SetNextToken(v string) *ListComponentVersionsOutput {
  7191  	s.NextToken = &v
  7192  	return s
  7193  }
  7194  
  7195  type ListComponentsInput struct {
  7196  	_ struct{} `type:"structure" nopayload:"true"`
  7197  
  7198  	// The maximum number of results to be returned per paginated request.
  7199  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7200  
  7201  	// The token to be used for the next set of paginated results.
  7202  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7203  
  7204  	// The scope of the components to list.
  7205  	//
  7206  	// Default: PRIVATE
  7207  	Scope *string `location:"querystring" locationName:"scope" type:"string" enum:"ComponentVisibilityScope"`
  7208  }
  7209  
  7210  // String returns the string representation.
  7211  //
  7212  // API parameter values that are decorated as "sensitive" in the API will not
  7213  // be included in the string output. The member name will be present, but the
  7214  // value will be replaced with "sensitive".
  7215  func (s ListComponentsInput) String() string {
  7216  	return awsutil.Prettify(s)
  7217  }
  7218  
  7219  // GoString returns the string representation.
  7220  //
  7221  // API parameter values that are decorated as "sensitive" in the API will not
  7222  // be included in the string output. The member name will be present, but the
  7223  // value will be replaced with "sensitive".
  7224  func (s ListComponentsInput) GoString() string {
  7225  	return s.String()
  7226  }
  7227  
  7228  // Validate inspects the fields of the type to determine if they are valid.
  7229  func (s *ListComponentsInput) Validate() error {
  7230  	invalidParams := request.ErrInvalidParams{Context: "ListComponentsInput"}
  7231  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7232  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7233  	}
  7234  
  7235  	if invalidParams.Len() > 0 {
  7236  		return invalidParams
  7237  	}
  7238  	return nil
  7239  }
  7240  
  7241  // SetMaxResults sets the MaxResults field's value.
  7242  func (s *ListComponentsInput) SetMaxResults(v int64) *ListComponentsInput {
  7243  	s.MaxResults = &v
  7244  	return s
  7245  }
  7246  
  7247  // SetNextToken sets the NextToken field's value.
  7248  func (s *ListComponentsInput) SetNextToken(v string) *ListComponentsInput {
  7249  	s.NextToken = &v
  7250  	return s
  7251  }
  7252  
  7253  // SetScope sets the Scope field's value.
  7254  func (s *ListComponentsInput) SetScope(v string) *ListComponentsInput {
  7255  	s.Scope = &v
  7256  	return s
  7257  }
  7258  
  7259  type ListComponentsOutput struct {
  7260  	_ struct{} `type:"structure"`
  7261  
  7262  	// A list that summarizes each component.
  7263  	Components []*Component `locationName:"components" type:"list"`
  7264  
  7265  	// The token for the next set of results, or null if there are no additional
  7266  	// results.
  7267  	NextToken *string `locationName:"nextToken" type:"string"`
  7268  }
  7269  
  7270  // String returns the string representation.
  7271  //
  7272  // API parameter values that are decorated as "sensitive" in the API will not
  7273  // be included in the string output. The member name will be present, but the
  7274  // value will be replaced with "sensitive".
  7275  func (s ListComponentsOutput) String() string {
  7276  	return awsutil.Prettify(s)
  7277  }
  7278  
  7279  // GoString returns the string representation.
  7280  //
  7281  // API parameter values that are decorated as "sensitive" in the API will not
  7282  // be included in the string output. The member name will be present, but the
  7283  // value will be replaced with "sensitive".
  7284  func (s ListComponentsOutput) GoString() string {
  7285  	return s.String()
  7286  }
  7287  
  7288  // SetComponents sets the Components field's value.
  7289  func (s *ListComponentsOutput) SetComponents(v []*Component) *ListComponentsOutput {
  7290  	s.Components = v
  7291  	return s
  7292  }
  7293  
  7294  // SetNextToken sets the NextToken field's value.
  7295  func (s *ListComponentsOutput) SetNextToken(v string) *ListComponentsOutput {
  7296  	s.NextToken = &v
  7297  	return s
  7298  }
  7299  
  7300  type ListCoreDevicesInput struct {
  7301  	_ struct{} `type:"structure" nopayload:"true"`
  7302  
  7303  	// The maximum number of results to be returned per paginated request.
  7304  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7305  
  7306  	// The token to be used for the next set of paginated results.
  7307  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7308  
  7309  	// The core device status by which to filter. If you specify this parameter,
  7310  	// the list includes only core devices that have this status. Choose one of
  7311  	// the following options:
  7312  	//
  7313  	//    * HEALTHY – The IoT Greengrass Core software and all components run
  7314  	//    on the core device without issue.
  7315  	//
  7316  	//    * UNHEALTHY – The IoT Greengrass Core software or a component is in
  7317  	//    a failed state on the core device.
  7318  	Status *string `location:"querystring" locationName:"status" type:"string" enum:"CoreDeviceStatus"`
  7319  
  7320  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  7321  	// of the IoT thing group by which to filter. If you specify this parameter,
  7322  	// the list includes only core devices that are members of this thing group.
  7323  	ThingGroupArn *string `location:"querystring" locationName:"thingGroupArn" type:"string"`
  7324  }
  7325  
  7326  // String returns the string representation.
  7327  //
  7328  // API parameter values that are decorated as "sensitive" in the API will not
  7329  // be included in the string output. The member name will be present, but the
  7330  // value will be replaced with "sensitive".
  7331  func (s ListCoreDevicesInput) String() string {
  7332  	return awsutil.Prettify(s)
  7333  }
  7334  
  7335  // GoString returns the string representation.
  7336  //
  7337  // API parameter values that are decorated as "sensitive" in the API will not
  7338  // be included in the string output. The member name will be present, but the
  7339  // value will be replaced with "sensitive".
  7340  func (s ListCoreDevicesInput) GoString() string {
  7341  	return s.String()
  7342  }
  7343  
  7344  // Validate inspects the fields of the type to determine if they are valid.
  7345  func (s *ListCoreDevicesInput) Validate() error {
  7346  	invalidParams := request.ErrInvalidParams{Context: "ListCoreDevicesInput"}
  7347  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7348  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7349  	}
  7350  
  7351  	if invalidParams.Len() > 0 {
  7352  		return invalidParams
  7353  	}
  7354  	return nil
  7355  }
  7356  
  7357  // SetMaxResults sets the MaxResults field's value.
  7358  func (s *ListCoreDevicesInput) SetMaxResults(v int64) *ListCoreDevicesInput {
  7359  	s.MaxResults = &v
  7360  	return s
  7361  }
  7362  
  7363  // SetNextToken sets the NextToken field's value.
  7364  func (s *ListCoreDevicesInput) SetNextToken(v string) *ListCoreDevicesInput {
  7365  	s.NextToken = &v
  7366  	return s
  7367  }
  7368  
  7369  // SetStatus sets the Status field's value.
  7370  func (s *ListCoreDevicesInput) SetStatus(v string) *ListCoreDevicesInput {
  7371  	s.Status = &v
  7372  	return s
  7373  }
  7374  
  7375  // SetThingGroupArn sets the ThingGroupArn field's value.
  7376  func (s *ListCoreDevicesInput) SetThingGroupArn(v string) *ListCoreDevicesInput {
  7377  	s.ThingGroupArn = &v
  7378  	return s
  7379  }
  7380  
  7381  type ListCoreDevicesOutput struct {
  7382  	_ struct{} `type:"structure"`
  7383  
  7384  	// A list that summarizes each core device.
  7385  	CoreDevices []*CoreDevice `locationName:"coreDevices" type:"list"`
  7386  
  7387  	// The token for the next set of results, or null if there are no additional
  7388  	// results.
  7389  	NextToken *string `locationName:"nextToken" type:"string"`
  7390  }
  7391  
  7392  // String returns the string representation.
  7393  //
  7394  // API parameter values that are decorated as "sensitive" in the API will not
  7395  // be included in the string output. The member name will be present, but the
  7396  // value will be replaced with "sensitive".
  7397  func (s ListCoreDevicesOutput) String() string {
  7398  	return awsutil.Prettify(s)
  7399  }
  7400  
  7401  // GoString returns the string representation.
  7402  //
  7403  // API parameter values that are decorated as "sensitive" in the API will not
  7404  // be included in the string output. The member name will be present, but the
  7405  // value will be replaced with "sensitive".
  7406  func (s ListCoreDevicesOutput) GoString() string {
  7407  	return s.String()
  7408  }
  7409  
  7410  // SetCoreDevices sets the CoreDevices field's value.
  7411  func (s *ListCoreDevicesOutput) SetCoreDevices(v []*CoreDevice) *ListCoreDevicesOutput {
  7412  	s.CoreDevices = v
  7413  	return s
  7414  }
  7415  
  7416  // SetNextToken sets the NextToken field's value.
  7417  func (s *ListCoreDevicesOutput) SetNextToken(v string) *ListCoreDevicesOutput {
  7418  	s.NextToken = &v
  7419  	return s
  7420  }
  7421  
  7422  type ListDeploymentsInput struct {
  7423  	_ struct{} `type:"structure" nopayload:"true"`
  7424  
  7425  	// The filter for the list of deployments. Choose one of the following options:
  7426  	//
  7427  	//    * ALL – The list includes all deployments.
  7428  	//
  7429  	//    * LATEST_ONLY – The list includes only the latest revision of each deployment.
  7430  	//
  7431  	// Default: LATEST_ONLY
  7432  	HistoryFilter *string `location:"querystring" locationName:"historyFilter" type:"string" enum:"DeploymentHistoryFilter"`
  7433  
  7434  	// The maximum number of results to be returned per paginated request.
  7435  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7436  
  7437  	// The token to be used for the next set of paginated results.
  7438  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7439  
  7440  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  7441  	// of the target IoT thing or thing group.
  7442  	TargetArn *string `location:"querystring" locationName:"targetArn" type:"string"`
  7443  }
  7444  
  7445  // String returns the string representation.
  7446  //
  7447  // API parameter values that are decorated as "sensitive" in the API will not
  7448  // be included in the string output. The member name will be present, but the
  7449  // value will be replaced with "sensitive".
  7450  func (s ListDeploymentsInput) String() string {
  7451  	return awsutil.Prettify(s)
  7452  }
  7453  
  7454  // GoString returns the string representation.
  7455  //
  7456  // API parameter values that are decorated as "sensitive" in the API will not
  7457  // be included in the string output. The member name will be present, but the
  7458  // value will be replaced with "sensitive".
  7459  func (s ListDeploymentsInput) GoString() string {
  7460  	return s.String()
  7461  }
  7462  
  7463  // Validate inspects the fields of the type to determine if they are valid.
  7464  func (s *ListDeploymentsInput) Validate() error {
  7465  	invalidParams := request.ErrInvalidParams{Context: "ListDeploymentsInput"}
  7466  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7467  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7468  	}
  7469  
  7470  	if invalidParams.Len() > 0 {
  7471  		return invalidParams
  7472  	}
  7473  	return nil
  7474  }
  7475  
  7476  // SetHistoryFilter sets the HistoryFilter field's value.
  7477  func (s *ListDeploymentsInput) SetHistoryFilter(v string) *ListDeploymentsInput {
  7478  	s.HistoryFilter = &v
  7479  	return s
  7480  }
  7481  
  7482  // SetMaxResults sets the MaxResults field's value.
  7483  func (s *ListDeploymentsInput) SetMaxResults(v int64) *ListDeploymentsInput {
  7484  	s.MaxResults = &v
  7485  	return s
  7486  }
  7487  
  7488  // SetNextToken sets the NextToken field's value.
  7489  func (s *ListDeploymentsInput) SetNextToken(v string) *ListDeploymentsInput {
  7490  	s.NextToken = &v
  7491  	return s
  7492  }
  7493  
  7494  // SetTargetArn sets the TargetArn field's value.
  7495  func (s *ListDeploymentsInput) SetTargetArn(v string) *ListDeploymentsInput {
  7496  	s.TargetArn = &v
  7497  	return s
  7498  }
  7499  
  7500  type ListDeploymentsOutput struct {
  7501  	_ struct{} `type:"structure"`
  7502  
  7503  	// A list that summarizes each deployment.
  7504  	Deployments []*Deployment `locationName:"deployments" type:"list"`
  7505  
  7506  	// The token for the next set of results, or null if there are no additional
  7507  	// results.
  7508  	NextToken *string `locationName:"nextToken" type:"string"`
  7509  }
  7510  
  7511  // String returns the string representation.
  7512  //
  7513  // API parameter values that are decorated as "sensitive" in the API will not
  7514  // be included in the string output. The member name will be present, but the
  7515  // value will be replaced with "sensitive".
  7516  func (s ListDeploymentsOutput) String() string {
  7517  	return awsutil.Prettify(s)
  7518  }
  7519  
  7520  // GoString returns the string representation.
  7521  //
  7522  // API parameter values that are decorated as "sensitive" in the API will not
  7523  // be included in the string output. The member name will be present, but the
  7524  // value will be replaced with "sensitive".
  7525  func (s ListDeploymentsOutput) GoString() string {
  7526  	return s.String()
  7527  }
  7528  
  7529  // SetDeployments sets the Deployments field's value.
  7530  func (s *ListDeploymentsOutput) SetDeployments(v []*Deployment) *ListDeploymentsOutput {
  7531  	s.Deployments = v
  7532  	return s
  7533  }
  7534  
  7535  // SetNextToken sets the NextToken field's value.
  7536  func (s *ListDeploymentsOutput) SetNextToken(v string) *ListDeploymentsOutput {
  7537  	s.NextToken = &v
  7538  	return s
  7539  }
  7540  
  7541  type ListEffectiveDeploymentsInput struct {
  7542  	_ struct{} `type:"structure" nopayload:"true"`
  7543  
  7544  	// The name of the core device. This is also the name of the IoT thing.
  7545  	//
  7546  	// CoreDeviceThingName is a required field
  7547  	CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"`
  7548  
  7549  	// The maximum number of results to be returned per paginated request.
  7550  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7551  
  7552  	// The token to be used for the next set of paginated results.
  7553  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7554  }
  7555  
  7556  // String returns the string representation.
  7557  //
  7558  // API parameter values that are decorated as "sensitive" in the API will not
  7559  // be included in the string output. The member name will be present, but the
  7560  // value will be replaced with "sensitive".
  7561  func (s ListEffectiveDeploymentsInput) String() string {
  7562  	return awsutil.Prettify(s)
  7563  }
  7564  
  7565  // GoString returns the string representation.
  7566  //
  7567  // API parameter values that are decorated as "sensitive" in the API will not
  7568  // be included in the string output. The member name will be present, but the
  7569  // value will be replaced with "sensitive".
  7570  func (s ListEffectiveDeploymentsInput) GoString() string {
  7571  	return s.String()
  7572  }
  7573  
  7574  // Validate inspects the fields of the type to determine if they are valid.
  7575  func (s *ListEffectiveDeploymentsInput) Validate() error {
  7576  	invalidParams := request.ErrInvalidParams{Context: "ListEffectiveDeploymentsInput"}
  7577  	if s.CoreDeviceThingName == nil {
  7578  		invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName"))
  7579  	}
  7580  	if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 {
  7581  		invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1))
  7582  	}
  7583  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7584  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7585  	}
  7586  
  7587  	if invalidParams.Len() > 0 {
  7588  		return invalidParams
  7589  	}
  7590  	return nil
  7591  }
  7592  
  7593  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  7594  func (s *ListEffectiveDeploymentsInput) SetCoreDeviceThingName(v string) *ListEffectiveDeploymentsInput {
  7595  	s.CoreDeviceThingName = &v
  7596  	return s
  7597  }
  7598  
  7599  // SetMaxResults sets the MaxResults field's value.
  7600  func (s *ListEffectiveDeploymentsInput) SetMaxResults(v int64) *ListEffectiveDeploymentsInput {
  7601  	s.MaxResults = &v
  7602  	return s
  7603  }
  7604  
  7605  // SetNextToken sets the NextToken field's value.
  7606  func (s *ListEffectiveDeploymentsInput) SetNextToken(v string) *ListEffectiveDeploymentsInput {
  7607  	s.NextToken = &v
  7608  	return s
  7609  }
  7610  
  7611  type ListEffectiveDeploymentsOutput struct {
  7612  	_ struct{} `type:"structure"`
  7613  
  7614  	// A list that summarizes each deployment on the core device.
  7615  	EffectiveDeployments []*EffectiveDeployment `locationName:"effectiveDeployments" type:"list"`
  7616  
  7617  	// The token for the next set of results, or null if there are no additional
  7618  	// results.
  7619  	NextToken *string `locationName:"nextToken" type:"string"`
  7620  }
  7621  
  7622  // String returns the string representation.
  7623  //
  7624  // API parameter values that are decorated as "sensitive" in the API will not
  7625  // be included in the string output. The member name will be present, but the
  7626  // value will be replaced with "sensitive".
  7627  func (s ListEffectiveDeploymentsOutput) String() string {
  7628  	return awsutil.Prettify(s)
  7629  }
  7630  
  7631  // GoString returns the string representation.
  7632  //
  7633  // API parameter values that are decorated as "sensitive" in the API will not
  7634  // be included in the string output. The member name will be present, but the
  7635  // value will be replaced with "sensitive".
  7636  func (s ListEffectiveDeploymentsOutput) GoString() string {
  7637  	return s.String()
  7638  }
  7639  
  7640  // SetEffectiveDeployments sets the EffectiveDeployments field's value.
  7641  func (s *ListEffectiveDeploymentsOutput) SetEffectiveDeployments(v []*EffectiveDeployment) *ListEffectiveDeploymentsOutput {
  7642  	s.EffectiveDeployments = v
  7643  	return s
  7644  }
  7645  
  7646  // SetNextToken sets the NextToken field's value.
  7647  func (s *ListEffectiveDeploymentsOutput) SetNextToken(v string) *ListEffectiveDeploymentsOutput {
  7648  	s.NextToken = &v
  7649  	return s
  7650  }
  7651  
  7652  type ListInstalledComponentsInput struct {
  7653  	_ struct{} `type:"structure" nopayload:"true"`
  7654  
  7655  	// The name of the core device. This is also the name of the IoT thing.
  7656  	//
  7657  	// CoreDeviceThingName is a required field
  7658  	CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"`
  7659  
  7660  	// The maximum number of results to be returned per paginated request.
  7661  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7662  
  7663  	// The token to be used for the next set of paginated results.
  7664  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7665  }
  7666  
  7667  // String returns the string representation.
  7668  //
  7669  // API parameter values that are decorated as "sensitive" in the API will not
  7670  // be included in the string output. The member name will be present, but the
  7671  // value will be replaced with "sensitive".
  7672  func (s ListInstalledComponentsInput) String() string {
  7673  	return awsutil.Prettify(s)
  7674  }
  7675  
  7676  // GoString returns the string representation.
  7677  //
  7678  // API parameter values that are decorated as "sensitive" in the API will not
  7679  // be included in the string output. The member name will be present, but the
  7680  // value will be replaced with "sensitive".
  7681  func (s ListInstalledComponentsInput) GoString() string {
  7682  	return s.String()
  7683  }
  7684  
  7685  // Validate inspects the fields of the type to determine if they are valid.
  7686  func (s *ListInstalledComponentsInput) Validate() error {
  7687  	invalidParams := request.ErrInvalidParams{Context: "ListInstalledComponentsInput"}
  7688  	if s.CoreDeviceThingName == nil {
  7689  		invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName"))
  7690  	}
  7691  	if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 {
  7692  		invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1))
  7693  	}
  7694  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7695  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7696  	}
  7697  
  7698  	if invalidParams.Len() > 0 {
  7699  		return invalidParams
  7700  	}
  7701  	return nil
  7702  }
  7703  
  7704  // SetCoreDeviceThingName sets the CoreDeviceThingName field's value.
  7705  func (s *ListInstalledComponentsInput) SetCoreDeviceThingName(v string) *ListInstalledComponentsInput {
  7706  	s.CoreDeviceThingName = &v
  7707  	return s
  7708  }
  7709  
  7710  // SetMaxResults sets the MaxResults field's value.
  7711  func (s *ListInstalledComponentsInput) SetMaxResults(v int64) *ListInstalledComponentsInput {
  7712  	s.MaxResults = &v
  7713  	return s
  7714  }
  7715  
  7716  // SetNextToken sets the NextToken field's value.
  7717  func (s *ListInstalledComponentsInput) SetNextToken(v string) *ListInstalledComponentsInput {
  7718  	s.NextToken = &v
  7719  	return s
  7720  }
  7721  
  7722  type ListInstalledComponentsOutput struct {
  7723  	_ struct{} `type:"structure"`
  7724  
  7725  	// A list that summarizes each component on the core device.
  7726  	InstalledComponents []*InstalledComponent `locationName:"installedComponents" type:"list"`
  7727  
  7728  	// The token for the next set of results, or null if there are no additional
  7729  	// results.
  7730  	NextToken *string `locationName:"nextToken" type:"string"`
  7731  }
  7732  
  7733  // String returns the string representation.
  7734  //
  7735  // API parameter values that are decorated as "sensitive" in the API will not
  7736  // be included in the string output. The member name will be present, but the
  7737  // value will be replaced with "sensitive".
  7738  func (s ListInstalledComponentsOutput) String() string {
  7739  	return awsutil.Prettify(s)
  7740  }
  7741  
  7742  // GoString returns the string representation.
  7743  //
  7744  // API parameter values that are decorated as "sensitive" in the API will not
  7745  // be included in the string output. The member name will be present, but the
  7746  // value will be replaced with "sensitive".
  7747  func (s ListInstalledComponentsOutput) GoString() string {
  7748  	return s.String()
  7749  }
  7750  
  7751  // SetInstalledComponents sets the InstalledComponents field's value.
  7752  func (s *ListInstalledComponentsOutput) SetInstalledComponents(v []*InstalledComponent) *ListInstalledComponentsOutput {
  7753  	s.InstalledComponents = v
  7754  	return s
  7755  }
  7756  
  7757  // SetNextToken sets the NextToken field's value.
  7758  func (s *ListInstalledComponentsOutput) SetNextToken(v string) *ListInstalledComponentsOutput {
  7759  	s.NextToken = &v
  7760  	return s
  7761  }
  7762  
  7763  type ListTagsForResourceInput struct {
  7764  	_ struct{} `type:"structure" nopayload:"true"`
  7765  
  7766  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  7767  	// of the resource.
  7768  	//
  7769  	// ResourceArn is a required field
  7770  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
  7771  }
  7772  
  7773  // String returns the string representation.
  7774  //
  7775  // API parameter values that are decorated as "sensitive" in the API will not
  7776  // be included in the string output. The member name will be present, but the
  7777  // value will be replaced with "sensitive".
  7778  func (s ListTagsForResourceInput) String() string {
  7779  	return awsutil.Prettify(s)
  7780  }
  7781  
  7782  // GoString returns the string representation.
  7783  //
  7784  // API parameter values that are decorated as "sensitive" in the API will not
  7785  // be included in the string output. The member name will be present, but the
  7786  // value will be replaced with "sensitive".
  7787  func (s ListTagsForResourceInput) GoString() string {
  7788  	return s.String()
  7789  }
  7790  
  7791  // Validate inspects the fields of the type to determine if they are valid.
  7792  func (s *ListTagsForResourceInput) Validate() error {
  7793  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  7794  	if s.ResourceArn == nil {
  7795  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  7796  	}
  7797  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  7798  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  7799  	}
  7800  
  7801  	if invalidParams.Len() > 0 {
  7802  		return invalidParams
  7803  	}
  7804  	return nil
  7805  }
  7806  
  7807  // SetResourceArn sets the ResourceArn field's value.
  7808  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
  7809  	s.ResourceArn = &v
  7810  	return s
  7811  }
  7812  
  7813  type ListTagsForResourceOutput struct {
  7814  	_ struct{} `type:"structure"`
  7815  
  7816  	// A list of key-value pairs that contain metadata for the resource. For more
  7817  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  7818  	// in the IoT Greengrass V2 Developer Guide.
  7819  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  7820  }
  7821  
  7822  // String returns the string representation.
  7823  //
  7824  // API parameter values that are decorated as "sensitive" in the API will not
  7825  // be included in the string output. The member name will be present, but the
  7826  // value will be replaced with "sensitive".
  7827  func (s ListTagsForResourceOutput) String() string {
  7828  	return awsutil.Prettify(s)
  7829  }
  7830  
  7831  // GoString returns the string representation.
  7832  //
  7833  // API parameter values that are decorated as "sensitive" in the API will not
  7834  // be included in the string output. The member name will be present, but the
  7835  // value will be replaced with "sensitive".
  7836  func (s ListTagsForResourceOutput) GoString() string {
  7837  	return s.String()
  7838  }
  7839  
  7840  // SetTags sets the Tags field's value.
  7841  func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
  7842  	s.Tags = v
  7843  	return s
  7844  }
  7845  
  7846  // The request is already in progress. This exception occurs when you use a
  7847  // client token for multiple requests while IoT Greengrass is still processing
  7848  // an earlier request that uses the same client token.
  7849  type RequestAlreadyInProgressException struct {
  7850  	_            struct{}                  `type:"structure"`
  7851  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7852  
  7853  	Message_ *string `locationName:"message" type:"string"`
  7854  }
  7855  
  7856  // String returns the string representation.
  7857  //
  7858  // API parameter values that are decorated as "sensitive" in the API will not
  7859  // be included in the string output. The member name will be present, but the
  7860  // value will be replaced with "sensitive".
  7861  func (s RequestAlreadyInProgressException) String() string {
  7862  	return awsutil.Prettify(s)
  7863  }
  7864  
  7865  // GoString returns the string representation.
  7866  //
  7867  // API parameter values that are decorated as "sensitive" in the API will not
  7868  // be included in the string output. The member name will be present, but the
  7869  // value will be replaced with "sensitive".
  7870  func (s RequestAlreadyInProgressException) GoString() string {
  7871  	return s.String()
  7872  }
  7873  
  7874  func newErrorRequestAlreadyInProgressException(v protocol.ResponseMetadata) error {
  7875  	return &RequestAlreadyInProgressException{
  7876  		RespMetadata: v,
  7877  	}
  7878  }
  7879  
  7880  // Code returns the exception type name.
  7881  func (s *RequestAlreadyInProgressException) Code() string {
  7882  	return "RequestAlreadyInProgressException"
  7883  }
  7884  
  7885  // Message returns the exception's message.
  7886  func (s *RequestAlreadyInProgressException) Message() string {
  7887  	if s.Message_ != nil {
  7888  		return *s.Message_
  7889  	}
  7890  	return ""
  7891  }
  7892  
  7893  // OrigErr always returns nil, satisfies awserr.Error interface.
  7894  func (s *RequestAlreadyInProgressException) OrigErr() error {
  7895  	return nil
  7896  }
  7897  
  7898  func (s *RequestAlreadyInProgressException) Error() string {
  7899  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7900  }
  7901  
  7902  // Status code returns the HTTP status code for the request's response error.
  7903  func (s *RequestAlreadyInProgressException) StatusCode() int {
  7904  	return s.RespMetadata.StatusCode
  7905  }
  7906  
  7907  // RequestID returns the service's response RequestID for request.
  7908  func (s *RequestAlreadyInProgressException) RequestID() string {
  7909  	return s.RespMetadata.RequestID
  7910  }
  7911  
  7912  type ResolveComponentCandidatesInput struct {
  7913  	_ struct{} `type:"structure"`
  7914  
  7915  	// The list of components to resolve.
  7916  	//
  7917  	// ComponentCandidates is a required field
  7918  	ComponentCandidates []*ComponentCandidate `locationName:"componentCandidates" type:"list" required:"true"`
  7919  
  7920  	// The platform to use to resolve compatible components.
  7921  	//
  7922  	// Platform is a required field
  7923  	Platform *ComponentPlatform `locationName:"platform" type:"structure" required:"true"`
  7924  }
  7925  
  7926  // String returns the string representation.
  7927  //
  7928  // API parameter values that are decorated as "sensitive" in the API will not
  7929  // be included in the string output. The member name will be present, but the
  7930  // value will be replaced with "sensitive".
  7931  func (s ResolveComponentCandidatesInput) String() string {
  7932  	return awsutil.Prettify(s)
  7933  }
  7934  
  7935  // GoString returns the string representation.
  7936  //
  7937  // API parameter values that are decorated as "sensitive" in the API will not
  7938  // be included in the string output. The member name will be present, but the
  7939  // value will be replaced with "sensitive".
  7940  func (s ResolveComponentCandidatesInput) GoString() string {
  7941  	return s.String()
  7942  }
  7943  
  7944  // Validate inspects the fields of the type to determine if they are valid.
  7945  func (s *ResolveComponentCandidatesInput) Validate() error {
  7946  	invalidParams := request.ErrInvalidParams{Context: "ResolveComponentCandidatesInput"}
  7947  	if s.ComponentCandidates == nil {
  7948  		invalidParams.Add(request.NewErrParamRequired("ComponentCandidates"))
  7949  	}
  7950  	if s.Platform == nil {
  7951  		invalidParams.Add(request.NewErrParamRequired("Platform"))
  7952  	}
  7953  	if s.ComponentCandidates != nil {
  7954  		for i, v := range s.ComponentCandidates {
  7955  			if v == nil {
  7956  				continue
  7957  			}
  7958  			if err := v.Validate(); err != nil {
  7959  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComponentCandidates", i), err.(request.ErrInvalidParams))
  7960  			}
  7961  		}
  7962  	}
  7963  	if s.Platform != nil {
  7964  		if err := s.Platform.Validate(); err != nil {
  7965  			invalidParams.AddNested("Platform", err.(request.ErrInvalidParams))
  7966  		}
  7967  	}
  7968  
  7969  	if invalidParams.Len() > 0 {
  7970  		return invalidParams
  7971  	}
  7972  	return nil
  7973  }
  7974  
  7975  // SetComponentCandidates sets the ComponentCandidates field's value.
  7976  func (s *ResolveComponentCandidatesInput) SetComponentCandidates(v []*ComponentCandidate) *ResolveComponentCandidatesInput {
  7977  	s.ComponentCandidates = v
  7978  	return s
  7979  }
  7980  
  7981  // SetPlatform sets the Platform field's value.
  7982  func (s *ResolveComponentCandidatesInput) SetPlatform(v *ComponentPlatform) *ResolveComponentCandidatesInput {
  7983  	s.Platform = v
  7984  	return s
  7985  }
  7986  
  7987  type ResolveComponentCandidatesOutput struct {
  7988  	_ struct{} `type:"structure"`
  7989  
  7990  	// A list of components that meet the requirements that you specify in the request.
  7991  	// This list includes each component's recipe that you can use to install the
  7992  	// component.
  7993  	ResolvedComponentVersions []*ResolvedComponentVersion `locationName:"resolvedComponentVersions" type:"list"`
  7994  }
  7995  
  7996  // String returns the string representation.
  7997  //
  7998  // API parameter values that are decorated as "sensitive" in the API will not
  7999  // be included in the string output. The member name will be present, but the
  8000  // value will be replaced with "sensitive".
  8001  func (s ResolveComponentCandidatesOutput) String() string {
  8002  	return awsutil.Prettify(s)
  8003  }
  8004  
  8005  // GoString returns the string representation.
  8006  //
  8007  // API parameter values that are decorated as "sensitive" in the API will not
  8008  // be included in the string output. The member name will be present, but the
  8009  // value will be replaced with "sensitive".
  8010  func (s ResolveComponentCandidatesOutput) GoString() string {
  8011  	return s.String()
  8012  }
  8013  
  8014  // SetResolvedComponentVersions sets the ResolvedComponentVersions field's value.
  8015  func (s *ResolveComponentCandidatesOutput) SetResolvedComponentVersions(v []*ResolvedComponentVersion) *ResolveComponentCandidatesOutput {
  8016  	s.ResolvedComponentVersions = v
  8017  	return s
  8018  }
  8019  
  8020  // Contains information about a component version that is compatible to run
  8021  // on a Greengrass core device.
  8022  type ResolvedComponentVersion struct {
  8023  	_ struct{} `type:"structure"`
  8024  
  8025  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8026  	// of the component version.
  8027  	Arn *string `locationName:"arn" type:"string"`
  8028  
  8029  	// The name of the component.
  8030  	ComponentName *string `locationName:"componentName" min:"1" type:"string"`
  8031  
  8032  	// The version of the component.
  8033  	ComponentVersion *string `locationName:"componentVersion" min:"1" type:"string"`
  8034  
  8035  	// The recipe of the component version.
  8036  	// Recipe is automatically base64 encoded/decoded by the SDK.
  8037  	Recipe []byte `locationName:"recipe" type:"blob"`
  8038  }
  8039  
  8040  // String returns the string representation.
  8041  //
  8042  // API parameter values that are decorated as "sensitive" in the API will not
  8043  // be included in the string output. The member name will be present, but the
  8044  // value will be replaced with "sensitive".
  8045  func (s ResolvedComponentVersion) String() string {
  8046  	return awsutil.Prettify(s)
  8047  }
  8048  
  8049  // GoString returns the string representation.
  8050  //
  8051  // API parameter values that are decorated as "sensitive" in the API will not
  8052  // be included in the string output. The member name will be present, but the
  8053  // value will be replaced with "sensitive".
  8054  func (s ResolvedComponentVersion) GoString() string {
  8055  	return s.String()
  8056  }
  8057  
  8058  // SetArn sets the Arn field's value.
  8059  func (s *ResolvedComponentVersion) SetArn(v string) *ResolvedComponentVersion {
  8060  	s.Arn = &v
  8061  	return s
  8062  }
  8063  
  8064  // SetComponentName sets the ComponentName field's value.
  8065  func (s *ResolvedComponentVersion) SetComponentName(v string) *ResolvedComponentVersion {
  8066  	s.ComponentName = &v
  8067  	return s
  8068  }
  8069  
  8070  // SetComponentVersion sets the ComponentVersion field's value.
  8071  func (s *ResolvedComponentVersion) SetComponentVersion(v string) *ResolvedComponentVersion {
  8072  	s.ComponentVersion = &v
  8073  	return s
  8074  }
  8075  
  8076  // SetRecipe sets the Recipe field's value.
  8077  func (s *ResolvedComponentVersion) SetRecipe(v []byte) *ResolvedComponentVersion {
  8078  	s.Recipe = v
  8079  	return s
  8080  }
  8081  
  8082  // The requested resource can't be found.
  8083  type ResourceNotFoundException struct {
  8084  	_            struct{}                  `type:"structure"`
  8085  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8086  
  8087  	Message_ *string `locationName:"message" type:"string"`
  8088  
  8089  	// The ID of the resource that isn't found.
  8090  	//
  8091  	// ResourceId is a required field
  8092  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  8093  
  8094  	// The type of the resource that isn't found.
  8095  	//
  8096  	// ResourceType is a required field
  8097  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  8098  }
  8099  
  8100  // String returns the string representation.
  8101  //
  8102  // API parameter values that are decorated as "sensitive" in the API will not
  8103  // be included in the string output. The member name will be present, but the
  8104  // value will be replaced with "sensitive".
  8105  func (s ResourceNotFoundException) String() string {
  8106  	return awsutil.Prettify(s)
  8107  }
  8108  
  8109  // GoString returns the string representation.
  8110  //
  8111  // API parameter values that are decorated as "sensitive" in the API will not
  8112  // be included in the string output. The member name will be present, but the
  8113  // value will be replaced with "sensitive".
  8114  func (s ResourceNotFoundException) GoString() string {
  8115  	return s.String()
  8116  }
  8117  
  8118  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  8119  	return &ResourceNotFoundException{
  8120  		RespMetadata: v,
  8121  	}
  8122  }
  8123  
  8124  // Code returns the exception type name.
  8125  func (s *ResourceNotFoundException) Code() string {
  8126  	return "ResourceNotFoundException"
  8127  }
  8128  
  8129  // Message returns the exception's message.
  8130  func (s *ResourceNotFoundException) Message() string {
  8131  	if s.Message_ != nil {
  8132  		return *s.Message_
  8133  	}
  8134  	return ""
  8135  }
  8136  
  8137  // OrigErr always returns nil, satisfies awserr.Error interface.
  8138  func (s *ResourceNotFoundException) OrigErr() error {
  8139  	return nil
  8140  }
  8141  
  8142  func (s *ResourceNotFoundException) Error() string {
  8143  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8144  }
  8145  
  8146  // Status code returns the HTTP status code for the request's response error.
  8147  func (s *ResourceNotFoundException) StatusCode() int {
  8148  	return s.RespMetadata.StatusCode
  8149  }
  8150  
  8151  // RequestID returns the service's response RequestID for request.
  8152  func (s *ResourceNotFoundException) RequestID() string {
  8153  	return s.RespMetadata.RequestID
  8154  }
  8155  
  8156  // Your request exceeds a service quota. For example, you might have the maximum
  8157  // number of components that you can create.
  8158  type ServiceQuotaExceededException struct {
  8159  	_            struct{}                  `type:"structure"`
  8160  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8161  
  8162  	Message_ *string `locationName:"message" type:"string"`
  8163  
  8164  	// The code for the quota in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html).
  8165  	//
  8166  	// QuotaCode is a required field
  8167  	QuotaCode *string `locationName:"quotaCode" type:"string" required:"true"`
  8168  
  8169  	// The ID of the resource that exceeds the service quota.
  8170  	ResourceId *string `locationName:"resourceId" type:"string"`
  8171  
  8172  	// The type of the resource that exceeds the service quota.
  8173  	ResourceType *string `locationName:"resourceType" type:"string"`
  8174  
  8175  	// The code for the service in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html).
  8176  	//
  8177  	// ServiceCode is a required field
  8178  	ServiceCode *string `locationName:"serviceCode" type:"string" required:"true"`
  8179  }
  8180  
  8181  // String returns the string representation.
  8182  //
  8183  // API parameter values that are decorated as "sensitive" in the API will not
  8184  // be included in the string output. The member name will be present, but the
  8185  // value will be replaced with "sensitive".
  8186  func (s ServiceQuotaExceededException) String() string {
  8187  	return awsutil.Prettify(s)
  8188  }
  8189  
  8190  // GoString returns the string representation.
  8191  //
  8192  // API parameter values that are decorated as "sensitive" in the API will not
  8193  // be included in the string output. The member name will be present, but the
  8194  // value will be replaced with "sensitive".
  8195  func (s ServiceQuotaExceededException) GoString() string {
  8196  	return s.String()
  8197  }
  8198  
  8199  func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
  8200  	return &ServiceQuotaExceededException{
  8201  		RespMetadata: v,
  8202  	}
  8203  }
  8204  
  8205  // Code returns the exception type name.
  8206  func (s *ServiceQuotaExceededException) Code() string {
  8207  	return "ServiceQuotaExceededException"
  8208  }
  8209  
  8210  // Message returns the exception's message.
  8211  func (s *ServiceQuotaExceededException) Message() string {
  8212  	if s.Message_ != nil {
  8213  		return *s.Message_
  8214  	}
  8215  	return ""
  8216  }
  8217  
  8218  // OrigErr always returns nil, satisfies awserr.Error interface.
  8219  func (s *ServiceQuotaExceededException) OrigErr() error {
  8220  	return nil
  8221  }
  8222  
  8223  func (s *ServiceQuotaExceededException) Error() string {
  8224  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8225  }
  8226  
  8227  // Status code returns the HTTP status code for the request's response error.
  8228  func (s *ServiceQuotaExceededException) StatusCode() int {
  8229  	return s.RespMetadata.StatusCode
  8230  }
  8231  
  8232  // RequestID returns the service's response RequestID for request.
  8233  func (s *ServiceQuotaExceededException) RequestID() string {
  8234  	return s.RespMetadata.RequestID
  8235  }
  8236  
  8237  // Contains information about system resource limits that the IoT Greengrass
  8238  // Core software applies to a component's processes. For more information, see
  8239  // Configure system resource limits for components (https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits).
  8240  type SystemResourceLimits struct {
  8241  	_ struct{} `type:"structure"`
  8242  
  8243  	// The maximum amount of CPU time that a component's processes can use on the
  8244  	// core device. A core device's total CPU time is equivalent to the device's
  8245  	// number of CPU cores. For example, on a core device with 4 CPU cores, you
  8246  	// can set this value to 2 to limit the component's processes to 50 percent
  8247  	// usage of each CPU core. On a device with 1 CPU core, you can set this value
  8248  	// to 0.25 to limit the component's processes to 25 percent usage of the CPU.
  8249  	// If you set this value to a number greater than the number of CPU cores, the
  8250  	// IoT Greengrass Core software doesn't limit the component's CPU usage.
  8251  	Cpus *float64 `locationName:"cpus" type:"double"`
  8252  
  8253  	// The maximum amount of RAM, expressed in kilobytes, that a component's processes
  8254  	// can use on the core device.
  8255  	Memory *int64 `locationName:"memory" type:"long"`
  8256  }
  8257  
  8258  // String returns the string representation.
  8259  //
  8260  // API parameter values that are decorated as "sensitive" in the API will not
  8261  // be included in the string output. The member name will be present, but the
  8262  // value will be replaced with "sensitive".
  8263  func (s SystemResourceLimits) String() string {
  8264  	return awsutil.Prettify(s)
  8265  }
  8266  
  8267  // GoString returns the string representation.
  8268  //
  8269  // API parameter values that are decorated as "sensitive" in the API will not
  8270  // be included in the string output. The member name will be present, but the
  8271  // value will be replaced with "sensitive".
  8272  func (s SystemResourceLimits) GoString() string {
  8273  	return s.String()
  8274  }
  8275  
  8276  // SetCpus sets the Cpus field's value.
  8277  func (s *SystemResourceLimits) SetCpus(v float64) *SystemResourceLimits {
  8278  	s.Cpus = &v
  8279  	return s
  8280  }
  8281  
  8282  // SetMemory sets the Memory field's value.
  8283  func (s *SystemResourceLimits) SetMemory(v int64) *SystemResourceLimits {
  8284  	s.Memory = &v
  8285  	return s
  8286  }
  8287  
  8288  type TagResourceInput struct {
  8289  	_ struct{} `type:"structure"`
  8290  
  8291  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8292  	// of the resource to tag.
  8293  	//
  8294  	// ResourceArn is a required field
  8295  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
  8296  
  8297  	// A list of key-value pairs that contain metadata for the resource. For more
  8298  	// information, see Tag your resources (https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html)
  8299  	// in the IoT Greengrass V2 Developer Guide.
  8300  	//
  8301  	// Tags is a required field
  8302  	Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"`
  8303  }
  8304  
  8305  // String returns the string representation.
  8306  //
  8307  // API parameter values that are decorated as "sensitive" in the API will not
  8308  // be included in the string output. The member name will be present, but the
  8309  // value will be replaced with "sensitive".
  8310  func (s TagResourceInput) String() string {
  8311  	return awsutil.Prettify(s)
  8312  }
  8313  
  8314  // GoString returns the string representation.
  8315  //
  8316  // API parameter values that are decorated as "sensitive" in the API will not
  8317  // be included in the string output. The member name will be present, but the
  8318  // value will be replaced with "sensitive".
  8319  func (s TagResourceInput) GoString() string {
  8320  	return s.String()
  8321  }
  8322  
  8323  // Validate inspects the fields of the type to determine if they are valid.
  8324  func (s *TagResourceInput) Validate() error {
  8325  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  8326  	if s.ResourceArn == nil {
  8327  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  8328  	}
  8329  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  8330  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  8331  	}
  8332  	if s.Tags == nil {
  8333  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  8334  	}
  8335  	if s.Tags != nil && len(s.Tags) < 1 {
  8336  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  8337  	}
  8338  
  8339  	if invalidParams.Len() > 0 {
  8340  		return invalidParams
  8341  	}
  8342  	return nil
  8343  }
  8344  
  8345  // SetResourceArn sets the ResourceArn field's value.
  8346  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
  8347  	s.ResourceArn = &v
  8348  	return s
  8349  }
  8350  
  8351  // SetTags sets the Tags field's value.
  8352  func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
  8353  	s.Tags = v
  8354  	return s
  8355  }
  8356  
  8357  type TagResourceOutput struct {
  8358  	_ struct{} `type:"structure" nopayload:"true"`
  8359  }
  8360  
  8361  // String returns the string representation.
  8362  //
  8363  // API parameter values that are decorated as "sensitive" in the API will not
  8364  // be included in the string output. The member name will be present, but the
  8365  // value will be replaced with "sensitive".
  8366  func (s TagResourceOutput) String() string {
  8367  	return awsutil.Prettify(s)
  8368  }
  8369  
  8370  // GoString returns the string representation.
  8371  //
  8372  // API parameter values that are decorated as "sensitive" in the API will not
  8373  // be included in the string output. The member name will be present, but the
  8374  // value will be replaced with "sensitive".
  8375  func (s TagResourceOutput) GoString() string {
  8376  	return s.String()
  8377  }
  8378  
  8379  // Your request exceeded a request rate quota. For example, you might have exceeded
  8380  // the amount of times that you can retrieve device or deployment status per
  8381  // second.
  8382  type ThrottlingException struct {
  8383  	_            struct{}                  `type:"structure"`
  8384  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8385  
  8386  	Message_ *string `locationName:"message" type:"string"`
  8387  
  8388  	// The code for the quota in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html).
  8389  	QuotaCode *string `locationName:"quotaCode" type:"string"`
  8390  
  8391  	// The amount of time to wait before you retry the request.
  8392  	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
  8393  
  8394  	// The code for the service in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html).
  8395  	ServiceCode *string `locationName:"serviceCode" type:"string"`
  8396  }
  8397  
  8398  // String returns the string representation.
  8399  //
  8400  // API parameter values that are decorated as "sensitive" in the API will not
  8401  // be included in the string output. The member name will be present, but the
  8402  // value will be replaced with "sensitive".
  8403  func (s ThrottlingException) String() string {
  8404  	return awsutil.Prettify(s)
  8405  }
  8406  
  8407  // GoString returns the string representation.
  8408  //
  8409  // API parameter values that are decorated as "sensitive" in the API will not
  8410  // be included in the string output. The member name will be present, but the
  8411  // value will be replaced with "sensitive".
  8412  func (s ThrottlingException) GoString() string {
  8413  	return s.String()
  8414  }
  8415  
  8416  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
  8417  	return &ThrottlingException{
  8418  		RespMetadata: v,
  8419  	}
  8420  }
  8421  
  8422  // Code returns the exception type name.
  8423  func (s *ThrottlingException) Code() string {
  8424  	return "ThrottlingException"
  8425  }
  8426  
  8427  // Message returns the exception's message.
  8428  func (s *ThrottlingException) Message() string {
  8429  	if s.Message_ != nil {
  8430  		return *s.Message_
  8431  	}
  8432  	return ""
  8433  }
  8434  
  8435  // OrigErr always returns nil, satisfies awserr.Error interface.
  8436  func (s *ThrottlingException) OrigErr() error {
  8437  	return nil
  8438  }
  8439  
  8440  func (s *ThrottlingException) Error() string {
  8441  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8442  }
  8443  
  8444  // Status code returns the HTTP status code for the request's response error.
  8445  func (s *ThrottlingException) StatusCode() int {
  8446  	return s.RespMetadata.StatusCode
  8447  }
  8448  
  8449  // RequestID returns the service's response RequestID for request.
  8450  func (s *ThrottlingException) RequestID() string {
  8451  	return s.RespMetadata.RequestID
  8452  }
  8453  
  8454  type UntagResourceInput struct {
  8455  	_ struct{} `type:"structure" nopayload:"true"`
  8456  
  8457  	// The ARN (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8458  	// of the resource to untag.
  8459  	//
  8460  	// ResourceArn is a required field
  8461  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
  8462  
  8463  	// A list of keys for tags to remove from the resource.
  8464  	//
  8465  	// TagKeys is a required field
  8466  	TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"`
  8467  }
  8468  
  8469  // String returns the string representation.
  8470  //
  8471  // API parameter values that are decorated as "sensitive" in the API will not
  8472  // be included in the string output. The member name will be present, but the
  8473  // value will be replaced with "sensitive".
  8474  func (s UntagResourceInput) String() string {
  8475  	return awsutil.Prettify(s)
  8476  }
  8477  
  8478  // GoString returns the string representation.
  8479  //
  8480  // API parameter values that are decorated as "sensitive" in the API will not
  8481  // be included in the string output. The member name will be present, but the
  8482  // value will be replaced with "sensitive".
  8483  func (s UntagResourceInput) GoString() string {
  8484  	return s.String()
  8485  }
  8486  
  8487  // Validate inspects the fields of the type to determine if they are valid.
  8488  func (s *UntagResourceInput) Validate() error {
  8489  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
  8490  	if s.ResourceArn == nil {
  8491  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  8492  	}
  8493  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  8494  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  8495  	}
  8496  	if s.TagKeys == nil {
  8497  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  8498  	}
  8499  	if s.TagKeys != nil && len(s.TagKeys) < 1 {
  8500  		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
  8501  	}
  8502  
  8503  	if invalidParams.Len() > 0 {
  8504  		return invalidParams
  8505  	}
  8506  	return nil
  8507  }
  8508  
  8509  // SetResourceArn sets the ResourceArn field's value.
  8510  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
  8511  	s.ResourceArn = &v
  8512  	return s
  8513  }
  8514  
  8515  // SetTagKeys sets the TagKeys field's value.
  8516  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  8517  	s.TagKeys = v
  8518  	return s
  8519  }
  8520  
  8521  type UntagResourceOutput struct {
  8522  	_ struct{} `type:"structure" nopayload:"true"`
  8523  }
  8524  
  8525  // String returns the string representation.
  8526  //
  8527  // API parameter values that are decorated as "sensitive" in the API will not
  8528  // be included in the string output. The member name will be present, but the
  8529  // value will be replaced with "sensitive".
  8530  func (s UntagResourceOutput) String() string {
  8531  	return awsutil.Prettify(s)
  8532  }
  8533  
  8534  // GoString returns the string representation.
  8535  //
  8536  // API parameter values that are decorated as "sensitive" in the API will not
  8537  // be included in the string output. The member name will be present, but the
  8538  // value will be replaced with "sensitive".
  8539  func (s UntagResourceOutput) GoString() string {
  8540  	return s.String()
  8541  }
  8542  
  8543  // The request isn't valid. This can occur if your request contains malformed
  8544  // JSON or unsupported characters.
  8545  type ValidationException struct {
  8546  	_            struct{}                  `type:"structure"`
  8547  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8548  
  8549  	// The list of fields that failed to validate.
  8550  	Fields []*ValidationExceptionField `locationName:"fields" type:"list"`
  8551  
  8552  	Message_ *string `locationName:"message" type:"string"`
  8553  
  8554  	// The reason for the validation exception.
  8555  	Reason *string `locationName:"reason" type:"string" enum:"ValidationExceptionReason"`
  8556  }
  8557  
  8558  // String returns the string representation.
  8559  //
  8560  // API parameter values that are decorated as "sensitive" in the API will not
  8561  // be included in the string output. The member name will be present, but the
  8562  // value will be replaced with "sensitive".
  8563  func (s ValidationException) String() string {
  8564  	return awsutil.Prettify(s)
  8565  }
  8566  
  8567  // GoString returns the string representation.
  8568  //
  8569  // API parameter values that are decorated as "sensitive" in the API will not
  8570  // be included in the string output. The member name will be present, but the
  8571  // value will be replaced with "sensitive".
  8572  func (s ValidationException) GoString() string {
  8573  	return s.String()
  8574  }
  8575  
  8576  func newErrorValidationException(v protocol.ResponseMetadata) error {
  8577  	return &ValidationException{
  8578  		RespMetadata: v,
  8579  	}
  8580  }
  8581  
  8582  // Code returns the exception type name.
  8583  func (s *ValidationException) Code() string {
  8584  	return "ValidationException"
  8585  }
  8586  
  8587  // Message returns the exception's message.
  8588  func (s *ValidationException) Message() string {
  8589  	if s.Message_ != nil {
  8590  		return *s.Message_
  8591  	}
  8592  	return ""
  8593  }
  8594  
  8595  // OrigErr always returns nil, satisfies awserr.Error interface.
  8596  func (s *ValidationException) OrigErr() error {
  8597  	return nil
  8598  }
  8599  
  8600  func (s *ValidationException) Error() string {
  8601  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8602  }
  8603  
  8604  // Status code returns the HTTP status code for the request's response error.
  8605  func (s *ValidationException) StatusCode() int {
  8606  	return s.RespMetadata.StatusCode
  8607  }
  8608  
  8609  // RequestID returns the service's response RequestID for request.
  8610  func (s *ValidationException) RequestID() string {
  8611  	return s.RespMetadata.RequestID
  8612  }
  8613  
  8614  // Contains information about a validation exception field.
  8615  type ValidationExceptionField struct {
  8616  	_ struct{} `type:"structure"`
  8617  
  8618  	// The message of the exception field.
  8619  	//
  8620  	// Message is a required field
  8621  	Message *string `locationName:"message" type:"string" required:"true"`
  8622  
  8623  	// The name of the exception field.
  8624  	//
  8625  	// Name is a required field
  8626  	Name *string `locationName:"name" type:"string" required:"true"`
  8627  }
  8628  
  8629  // String returns the string representation.
  8630  //
  8631  // API parameter values that are decorated as "sensitive" in the API will not
  8632  // be included in the string output. The member name will be present, but the
  8633  // value will be replaced with "sensitive".
  8634  func (s ValidationExceptionField) String() string {
  8635  	return awsutil.Prettify(s)
  8636  }
  8637  
  8638  // GoString returns the string representation.
  8639  //
  8640  // API parameter values that are decorated as "sensitive" in the API will not
  8641  // be included in the string output. The member name will be present, but the
  8642  // value will be replaced with "sensitive".
  8643  func (s ValidationExceptionField) GoString() string {
  8644  	return s.String()
  8645  }
  8646  
  8647  // SetMessage sets the Message field's value.
  8648  func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField {
  8649  	s.Message = &v
  8650  	return s
  8651  }
  8652  
  8653  // SetName sets the Name field's value.
  8654  func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField {
  8655  	s.Name = &v
  8656  	return s
  8657  }
  8658  
  8659  const (
  8660  	// CloudComponentStateRequested is a CloudComponentState enum value
  8661  	CloudComponentStateRequested = "REQUESTED"
  8662  
  8663  	// CloudComponentStateInitiated is a CloudComponentState enum value
  8664  	CloudComponentStateInitiated = "INITIATED"
  8665  
  8666  	// CloudComponentStateDeployable is a CloudComponentState enum value
  8667  	CloudComponentStateDeployable = "DEPLOYABLE"
  8668  
  8669  	// CloudComponentStateFailed is a CloudComponentState enum value
  8670  	CloudComponentStateFailed = "FAILED"
  8671  
  8672  	// CloudComponentStateDeprecated is a CloudComponentState enum value
  8673  	CloudComponentStateDeprecated = "DEPRECATED"
  8674  )
  8675  
  8676  // CloudComponentState_Values returns all elements of the CloudComponentState enum
  8677  func CloudComponentState_Values() []string {
  8678  	return []string{
  8679  		CloudComponentStateRequested,
  8680  		CloudComponentStateInitiated,
  8681  		CloudComponentStateDeployable,
  8682  		CloudComponentStateFailed,
  8683  		CloudComponentStateDeprecated,
  8684  	}
  8685  }
  8686  
  8687  const (
  8688  	// ComponentDependencyTypeHard is a ComponentDependencyType enum value
  8689  	ComponentDependencyTypeHard = "HARD"
  8690  
  8691  	// ComponentDependencyTypeSoft is a ComponentDependencyType enum value
  8692  	ComponentDependencyTypeSoft = "SOFT"
  8693  )
  8694  
  8695  // ComponentDependencyType_Values returns all elements of the ComponentDependencyType enum
  8696  func ComponentDependencyType_Values() []string {
  8697  	return []string{
  8698  		ComponentDependencyTypeHard,
  8699  		ComponentDependencyTypeSoft,
  8700  	}
  8701  }
  8702  
  8703  const (
  8704  	// ComponentVisibilityScopePrivate is a ComponentVisibilityScope enum value
  8705  	ComponentVisibilityScopePrivate = "PRIVATE"
  8706  
  8707  	// ComponentVisibilityScopePublic is a ComponentVisibilityScope enum value
  8708  	ComponentVisibilityScopePublic = "PUBLIC"
  8709  )
  8710  
  8711  // ComponentVisibilityScope_Values returns all elements of the ComponentVisibilityScope enum
  8712  func ComponentVisibilityScope_Values() []string {
  8713  	return []string{
  8714  		ComponentVisibilityScopePrivate,
  8715  		ComponentVisibilityScopePublic,
  8716  	}
  8717  }
  8718  
  8719  const (
  8720  	// CoreDeviceStatusHealthy is a CoreDeviceStatus enum value
  8721  	CoreDeviceStatusHealthy = "HEALTHY"
  8722  
  8723  	// CoreDeviceStatusUnhealthy is a CoreDeviceStatus enum value
  8724  	CoreDeviceStatusUnhealthy = "UNHEALTHY"
  8725  )
  8726  
  8727  // CoreDeviceStatus_Values returns all elements of the CoreDeviceStatus enum
  8728  func CoreDeviceStatus_Values() []string {
  8729  	return []string{
  8730  		CoreDeviceStatusHealthy,
  8731  		CoreDeviceStatusUnhealthy,
  8732  	}
  8733  }
  8734  
  8735  const (
  8736  	// DeploymentComponentUpdatePolicyActionNotifyComponents is a DeploymentComponentUpdatePolicyAction enum value
  8737  	DeploymentComponentUpdatePolicyActionNotifyComponents = "NOTIFY_COMPONENTS"
  8738  
  8739  	// DeploymentComponentUpdatePolicyActionSkipNotifyComponents is a DeploymentComponentUpdatePolicyAction enum value
  8740  	DeploymentComponentUpdatePolicyActionSkipNotifyComponents = "SKIP_NOTIFY_COMPONENTS"
  8741  )
  8742  
  8743  // DeploymentComponentUpdatePolicyAction_Values returns all elements of the DeploymentComponentUpdatePolicyAction enum
  8744  func DeploymentComponentUpdatePolicyAction_Values() []string {
  8745  	return []string{
  8746  		DeploymentComponentUpdatePolicyActionNotifyComponents,
  8747  		DeploymentComponentUpdatePolicyActionSkipNotifyComponents,
  8748  	}
  8749  }
  8750  
  8751  const (
  8752  	// DeploymentFailureHandlingPolicyRollback is a DeploymentFailureHandlingPolicy enum value
  8753  	DeploymentFailureHandlingPolicyRollback = "ROLLBACK"
  8754  
  8755  	// DeploymentFailureHandlingPolicyDoNothing is a DeploymentFailureHandlingPolicy enum value
  8756  	DeploymentFailureHandlingPolicyDoNothing = "DO_NOTHING"
  8757  )
  8758  
  8759  // DeploymentFailureHandlingPolicy_Values returns all elements of the DeploymentFailureHandlingPolicy enum
  8760  func DeploymentFailureHandlingPolicy_Values() []string {
  8761  	return []string{
  8762  		DeploymentFailureHandlingPolicyRollback,
  8763  		DeploymentFailureHandlingPolicyDoNothing,
  8764  	}
  8765  }
  8766  
  8767  const (
  8768  	// DeploymentHistoryFilterAll is a DeploymentHistoryFilter enum value
  8769  	DeploymentHistoryFilterAll = "ALL"
  8770  
  8771  	// DeploymentHistoryFilterLatestOnly is a DeploymentHistoryFilter enum value
  8772  	DeploymentHistoryFilterLatestOnly = "LATEST_ONLY"
  8773  )
  8774  
  8775  // DeploymentHistoryFilter_Values returns all elements of the DeploymentHistoryFilter enum
  8776  func DeploymentHistoryFilter_Values() []string {
  8777  	return []string{
  8778  		DeploymentHistoryFilterAll,
  8779  		DeploymentHistoryFilterLatestOnly,
  8780  	}
  8781  }
  8782  
  8783  const (
  8784  	// DeploymentStatusActive is a DeploymentStatus enum value
  8785  	DeploymentStatusActive = "ACTIVE"
  8786  
  8787  	// DeploymentStatusCompleted is a DeploymentStatus enum value
  8788  	DeploymentStatusCompleted = "COMPLETED"
  8789  
  8790  	// DeploymentStatusCanceled is a DeploymentStatus enum value
  8791  	DeploymentStatusCanceled = "CANCELED"
  8792  
  8793  	// DeploymentStatusFailed is a DeploymentStatus enum value
  8794  	DeploymentStatusFailed = "FAILED"
  8795  
  8796  	// DeploymentStatusInactive is a DeploymentStatus enum value
  8797  	DeploymentStatusInactive = "INACTIVE"
  8798  )
  8799  
  8800  // DeploymentStatus_Values returns all elements of the DeploymentStatus enum
  8801  func DeploymentStatus_Values() []string {
  8802  	return []string{
  8803  		DeploymentStatusActive,
  8804  		DeploymentStatusCompleted,
  8805  		DeploymentStatusCanceled,
  8806  		DeploymentStatusFailed,
  8807  		DeploymentStatusInactive,
  8808  	}
  8809  }
  8810  
  8811  const (
  8812  	// EffectiveDeploymentExecutionStatusInProgress is a EffectiveDeploymentExecutionStatus enum value
  8813  	EffectiveDeploymentExecutionStatusInProgress = "IN_PROGRESS"
  8814  
  8815  	// EffectiveDeploymentExecutionStatusQueued is a EffectiveDeploymentExecutionStatus enum value
  8816  	EffectiveDeploymentExecutionStatusQueued = "QUEUED"
  8817  
  8818  	// EffectiveDeploymentExecutionStatusFailed is a EffectiveDeploymentExecutionStatus enum value
  8819  	EffectiveDeploymentExecutionStatusFailed = "FAILED"
  8820  
  8821  	// EffectiveDeploymentExecutionStatusCompleted is a EffectiveDeploymentExecutionStatus enum value
  8822  	EffectiveDeploymentExecutionStatusCompleted = "COMPLETED"
  8823  
  8824  	// EffectiveDeploymentExecutionStatusTimedOut is a EffectiveDeploymentExecutionStatus enum value
  8825  	EffectiveDeploymentExecutionStatusTimedOut = "TIMED_OUT"
  8826  
  8827  	// EffectiveDeploymentExecutionStatusCanceled is a EffectiveDeploymentExecutionStatus enum value
  8828  	EffectiveDeploymentExecutionStatusCanceled = "CANCELED"
  8829  
  8830  	// EffectiveDeploymentExecutionStatusRejected is a EffectiveDeploymentExecutionStatus enum value
  8831  	EffectiveDeploymentExecutionStatusRejected = "REJECTED"
  8832  )
  8833  
  8834  // EffectiveDeploymentExecutionStatus_Values returns all elements of the EffectiveDeploymentExecutionStatus enum
  8835  func EffectiveDeploymentExecutionStatus_Values() []string {
  8836  	return []string{
  8837  		EffectiveDeploymentExecutionStatusInProgress,
  8838  		EffectiveDeploymentExecutionStatusQueued,
  8839  		EffectiveDeploymentExecutionStatusFailed,
  8840  		EffectiveDeploymentExecutionStatusCompleted,
  8841  		EffectiveDeploymentExecutionStatusTimedOut,
  8842  		EffectiveDeploymentExecutionStatusCanceled,
  8843  		EffectiveDeploymentExecutionStatusRejected,
  8844  	}
  8845  }
  8846  
  8847  const (
  8848  	// InstalledComponentLifecycleStateNew is a InstalledComponentLifecycleState enum value
  8849  	InstalledComponentLifecycleStateNew = "NEW"
  8850  
  8851  	// InstalledComponentLifecycleStateInstalled is a InstalledComponentLifecycleState enum value
  8852  	InstalledComponentLifecycleStateInstalled = "INSTALLED"
  8853  
  8854  	// InstalledComponentLifecycleStateStarting is a InstalledComponentLifecycleState enum value
  8855  	InstalledComponentLifecycleStateStarting = "STARTING"
  8856  
  8857  	// InstalledComponentLifecycleStateRunning is a InstalledComponentLifecycleState enum value
  8858  	InstalledComponentLifecycleStateRunning = "RUNNING"
  8859  
  8860  	// InstalledComponentLifecycleStateStopping is a InstalledComponentLifecycleState enum value
  8861  	InstalledComponentLifecycleStateStopping = "STOPPING"
  8862  
  8863  	// InstalledComponentLifecycleStateErrored is a InstalledComponentLifecycleState enum value
  8864  	InstalledComponentLifecycleStateErrored = "ERRORED"
  8865  
  8866  	// InstalledComponentLifecycleStateBroken is a InstalledComponentLifecycleState enum value
  8867  	InstalledComponentLifecycleStateBroken = "BROKEN"
  8868  
  8869  	// InstalledComponentLifecycleStateFinished is a InstalledComponentLifecycleState enum value
  8870  	InstalledComponentLifecycleStateFinished = "FINISHED"
  8871  )
  8872  
  8873  // InstalledComponentLifecycleState_Values returns all elements of the InstalledComponentLifecycleState enum
  8874  func InstalledComponentLifecycleState_Values() []string {
  8875  	return []string{
  8876  		InstalledComponentLifecycleStateNew,
  8877  		InstalledComponentLifecycleStateInstalled,
  8878  		InstalledComponentLifecycleStateStarting,
  8879  		InstalledComponentLifecycleStateRunning,
  8880  		InstalledComponentLifecycleStateStopping,
  8881  		InstalledComponentLifecycleStateErrored,
  8882  		InstalledComponentLifecycleStateBroken,
  8883  		InstalledComponentLifecycleStateFinished,
  8884  	}
  8885  }
  8886  
  8887  const (
  8888  	// IoTJobAbortActionCancel is a IoTJobAbortAction enum value
  8889  	IoTJobAbortActionCancel = "CANCEL"
  8890  )
  8891  
  8892  // IoTJobAbortAction_Values returns all elements of the IoTJobAbortAction enum
  8893  func IoTJobAbortAction_Values() []string {
  8894  	return []string{
  8895  		IoTJobAbortActionCancel,
  8896  	}
  8897  }
  8898  
  8899  const (
  8900  	// IoTJobExecutionFailureTypeFailed is a IoTJobExecutionFailureType enum value
  8901  	IoTJobExecutionFailureTypeFailed = "FAILED"
  8902  
  8903  	// IoTJobExecutionFailureTypeRejected is a IoTJobExecutionFailureType enum value
  8904  	IoTJobExecutionFailureTypeRejected = "REJECTED"
  8905  
  8906  	// IoTJobExecutionFailureTypeTimedOut is a IoTJobExecutionFailureType enum value
  8907  	IoTJobExecutionFailureTypeTimedOut = "TIMED_OUT"
  8908  
  8909  	// IoTJobExecutionFailureTypeAll is a IoTJobExecutionFailureType enum value
  8910  	IoTJobExecutionFailureTypeAll = "ALL"
  8911  )
  8912  
  8913  // IoTJobExecutionFailureType_Values returns all elements of the IoTJobExecutionFailureType enum
  8914  func IoTJobExecutionFailureType_Values() []string {
  8915  	return []string{
  8916  		IoTJobExecutionFailureTypeFailed,
  8917  		IoTJobExecutionFailureTypeRejected,
  8918  		IoTJobExecutionFailureTypeTimedOut,
  8919  		IoTJobExecutionFailureTypeAll,
  8920  	}
  8921  }
  8922  
  8923  const (
  8924  	// LambdaEventSourceTypePubSub is a LambdaEventSourceType enum value
  8925  	LambdaEventSourceTypePubSub = "PUB_SUB"
  8926  
  8927  	// LambdaEventSourceTypeIotCore is a LambdaEventSourceType enum value
  8928  	LambdaEventSourceTypeIotCore = "IOT_CORE"
  8929  )
  8930  
  8931  // LambdaEventSourceType_Values returns all elements of the LambdaEventSourceType enum
  8932  func LambdaEventSourceType_Values() []string {
  8933  	return []string{
  8934  		LambdaEventSourceTypePubSub,
  8935  		LambdaEventSourceTypeIotCore,
  8936  	}
  8937  }
  8938  
  8939  const (
  8940  	// LambdaFilesystemPermissionRo is a LambdaFilesystemPermission enum value
  8941  	LambdaFilesystemPermissionRo = "ro"
  8942  
  8943  	// LambdaFilesystemPermissionRw is a LambdaFilesystemPermission enum value
  8944  	LambdaFilesystemPermissionRw = "rw"
  8945  )
  8946  
  8947  // LambdaFilesystemPermission_Values returns all elements of the LambdaFilesystemPermission enum
  8948  func LambdaFilesystemPermission_Values() []string {
  8949  	return []string{
  8950  		LambdaFilesystemPermissionRo,
  8951  		LambdaFilesystemPermissionRw,
  8952  	}
  8953  }
  8954  
  8955  const (
  8956  	// LambdaInputPayloadEncodingTypeJson is a LambdaInputPayloadEncodingType enum value
  8957  	LambdaInputPayloadEncodingTypeJson = "json"
  8958  
  8959  	// LambdaInputPayloadEncodingTypeBinary is a LambdaInputPayloadEncodingType enum value
  8960  	LambdaInputPayloadEncodingTypeBinary = "binary"
  8961  )
  8962  
  8963  // LambdaInputPayloadEncodingType_Values returns all elements of the LambdaInputPayloadEncodingType enum
  8964  func LambdaInputPayloadEncodingType_Values() []string {
  8965  	return []string{
  8966  		LambdaInputPayloadEncodingTypeJson,
  8967  		LambdaInputPayloadEncodingTypeBinary,
  8968  	}
  8969  }
  8970  
  8971  const (
  8972  	// LambdaIsolationModeGreengrassContainer is a LambdaIsolationMode enum value
  8973  	LambdaIsolationModeGreengrassContainer = "GreengrassContainer"
  8974  
  8975  	// LambdaIsolationModeNoContainer is a LambdaIsolationMode enum value
  8976  	LambdaIsolationModeNoContainer = "NoContainer"
  8977  )
  8978  
  8979  // LambdaIsolationMode_Values returns all elements of the LambdaIsolationMode enum
  8980  func LambdaIsolationMode_Values() []string {
  8981  	return []string{
  8982  		LambdaIsolationModeGreengrassContainer,
  8983  		LambdaIsolationModeNoContainer,
  8984  	}
  8985  }
  8986  
  8987  const (
  8988  	// RecipeOutputFormatJson is a RecipeOutputFormat enum value
  8989  	RecipeOutputFormatJson = "JSON"
  8990  
  8991  	// RecipeOutputFormatYaml is a RecipeOutputFormat enum value
  8992  	RecipeOutputFormatYaml = "YAML"
  8993  )
  8994  
  8995  // RecipeOutputFormat_Values returns all elements of the RecipeOutputFormat enum
  8996  func RecipeOutputFormat_Values() []string {
  8997  	return []string{
  8998  		RecipeOutputFormatJson,
  8999  		RecipeOutputFormatYaml,
  9000  	}
  9001  }
  9002  
  9003  const (
  9004  	// ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value
  9005  	ValidationExceptionReasonUnknownOperation = "UNKNOWN_OPERATION"
  9006  
  9007  	// ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value
  9008  	ValidationExceptionReasonCannotParse = "CANNOT_PARSE"
  9009  
  9010  	// ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value
  9011  	ValidationExceptionReasonFieldValidationFailed = "FIELD_VALIDATION_FAILED"
  9012  
  9013  	// ValidationExceptionReasonOther is a ValidationExceptionReason enum value
  9014  	ValidationExceptionReasonOther = "OTHER"
  9015  )
  9016  
  9017  // ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum
  9018  func ValidationExceptionReason_Values() []string {
  9019  	return []string{
  9020  		ValidationExceptionReasonUnknownOperation,
  9021  		ValidationExceptionReasonCannotParse,
  9022  		ValidationExceptionReasonFieldValidationFailed,
  9023  		ValidationExceptionReasonOther,
  9024  	}
  9025  }