diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c897cf74c9..45ad4160b06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +Release v1.38.61 (2021-06-14) +=== + +### Service Client Updates +* `service/greengrassv2`: Updates service API, documentation, and paginators +* `service/iotanalytics`: Updates service API and documentation +* `service/lookoutmetrics`: Updates service API and documentation + Release v1.38.60 (2021-06-11) === diff --git a/aws/version.go b/aws/version.go index 938fdfd135a..ef8b3498c24 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.38.60" +const SDKVersion = "1.38.61" diff --git a/models/apis/greengrassv2/2020-11-30/api-2.json b/models/apis/greengrassv2/2020-11-30/api-2.json index af81ff060a0..5b1edf133a6 100644 --- a/models/apis/greengrassv2/2020-11-30/api-2.json +++ b/models/apis/greengrassv2/2020-11-30/api-2.json @@ -12,6 +12,40 @@ "uid":"greengrassv2-2020-11-30" }, "operations":{ + "BatchAssociateClientDeviceWithCoreDevice":{ + "name":"BatchAssociateClientDeviceWithCoreDevice", + "http":{ + "method":"POST", + "requestUri":"/greengrass/v2/coreDevices/{coreDeviceThingName}/associateClientDevices", + "responseCode":200 + }, + "input":{"shape":"BatchAssociateClientDeviceWithCoreDeviceRequest"}, + "output":{"shape":"BatchAssociateClientDeviceWithCoreDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, + "BatchDisassociateClientDeviceFromCoreDevice":{ + "name":"BatchDisassociateClientDeviceFromCoreDevice", + "http":{ + "method":"POST", + "requestUri":"/greengrass/v2/coreDevices/{coreDeviceThingName}/disassociateClientDevices", + "responseCode":200 + }, + "input":{"shape":"BatchDisassociateClientDeviceFromCoreDeviceRequest"}, + "output":{"shape":"BatchDisassociateClientDeviceFromCoreDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, "CancelDeployment":{ "name":"CancelDeployment", "http":{ @@ -178,6 +212,23 @@ {"shape":"ThrottlingException"} ] }, + "ListClientDevicesAssociatedWithCoreDevice":{ + "name":"ListClientDevicesAssociatedWithCoreDevice", + "http":{ + "method":"GET", + "requestUri":"/greengrass/v2/coreDevices/{coreDeviceThingName}/associatedClientDevices", + "responseCode":200 + }, + "input":{"shape":"ListClientDevicesAssociatedWithCoreDeviceRequest"}, + "output":{"shape":"ListClientDevicesAssociatedWithCoreDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ] + }, "ListComponentVersions":{ "name":"ListComponentVersions", "http":{ @@ -341,6 +392,82 @@ "error":{"httpStatusCode":403}, "exception":true }, + "AssociateClientDeviceWithCoreDeviceEntry":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{"shape":"IoTThingName"} + } + }, + "AssociateClientDeviceWithCoreDeviceEntryList":{ + "type":"list", + "member":{"shape":"AssociateClientDeviceWithCoreDeviceEntry"}, + "max":100, + "min":1 + }, + "AssociateClientDeviceWithCoreDeviceErrorEntry":{ + "type":"structure", + "members":{ + "thingName":{"shape":"IoTThingName"}, + "code":{"shape":"NonEmptyString"}, + "message":{"shape":"NonEmptyString"} + } + }, + "AssociateClientDeviceWithCoreDeviceErrorList":{ + "type":"list", + "member":{"shape":"AssociateClientDeviceWithCoreDeviceErrorEntry"}, + "max":100, + "min":1 + }, + "AssociatedClientDevice":{ + "type":"structure", + "members":{ + "thingName":{"shape":"IoTThingName"}, + "associationTimestamp":{"shape":"Timestamp"} + } + }, + "AssociatedClientDeviceList":{ + "type":"list", + "member":{"shape":"AssociatedClientDevice"}, + "max":100, + "min":1 + }, + "BatchAssociateClientDeviceWithCoreDeviceRequest":{ + "type":"structure", + "required":["coreDeviceThingName"], + "members":{ + "entries":{"shape":"AssociateClientDeviceWithCoreDeviceEntryList"}, + "coreDeviceThingName":{ + "shape":"IoTThingName", + "location":"uri", + "locationName":"coreDeviceThingName" + } + } + }, + "BatchAssociateClientDeviceWithCoreDeviceResponse":{ + "type":"structure", + "members":{ + "errorEntries":{"shape":"AssociateClientDeviceWithCoreDeviceErrorList"} + } + }, + "BatchDisassociateClientDeviceFromCoreDeviceRequest":{ + "type":"structure", + "required":["coreDeviceThingName"], + "members":{ + "entries":{"shape":"DisassociateClientDeviceFromCoreDeviceEntryList"}, + "coreDeviceThingName":{ + "shape":"IoTThingName", + "location":"uri", + "locationName":"coreDeviceThingName" + } + } + }, + "BatchDisassociateClientDeviceFromCoreDeviceResponse":{ + "type":"structure", + "members":{ + "errorEntries":{"shape":"DisassociateClientDeviceFromCoreDeviceErrorList"} + } + }, "CancelDeploymentRequest":{ "type":"structure", "required":["deploymentId"], @@ -760,6 +887,33 @@ "min":1 }, "DescriptionString":{"type":"string"}, + "DisassociateClientDeviceFromCoreDeviceEntry":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{"shape":"IoTThingName"} + } + }, + "DisassociateClientDeviceFromCoreDeviceEntryList":{ + "type":"list", + "member":{"shape":"DisassociateClientDeviceFromCoreDeviceEntry"}, + "max":100, + "min":1 + }, + "DisassociateClientDeviceFromCoreDeviceErrorEntry":{ + "type":"structure", + "members":{ + "thingName":{"shape":"IoTThingName"}, + "code":{"shape":"NonEmptyString"}, + "message":{"shape":"NonEmptyString"} + } + }, + "DisassociateClientDeviceFromCoreDeviceErrorList":{ + "type":"list", + "member":{"shape":"DisassociateClientDeviceFromCoreDeviceErrorEntry"}, + "max":100, + "min":1 + }, "EffectiveDeployment":{ "type":"structure", "required":[ @@ -1079,6 +1233,11 @@ } } }, + "IoTThingName":{ + "type":"string", + "max":128, + "min":1 + }, "IsLatestForTarget":{"type":"boolean"}, "IsRoot":{"type":"boolean"}, "LambdaContainerParams":{ @@ -1247,6 +1406,39 @@ "max":1000, "min":1 }, + "ListClientDevicesAssociatedWithCoreDeviceRequest":{ + "type":"structure", + "required":["coreDeviceThingName"], + "members":{ + "coreDeviceThingName":{ + "shape":"IoTThingName", + "location":"uri", + "locationName":"coreDeviceThingName" + }, + "maxResults":{ + "shape":"DefaultMaxResults", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextTokenString", + "box":true, + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListClientDevicesAssociatedWithCoreDeviceResponse":{ + "type":"structure", + "members":{ + "associatedClientDevices":{"shape":"AssociatedClientDeviceList"}, + "nextToken":{ + "shape":"NextTokenString", + "box":true + } + } + }, "ListComponentVersionsRequest":{ "type":"structure", "required":["arn"], diff --git a/models/apis/greengrassv2/2020-11-30/docs-2.json b/models/apis/greengrassv2/2020-11-30/docs-2.json index dd4c3fe5c3a..735e249074e 100644 --- a/models/apis/greengrassv2/2020-11-30/docs-2.json +++ b/models/apis/greengrassv2/2020-11-30/docs-2.json @@ -2,6 +2,8 @@ "version": "2.0", "service": "

AWS IoT Greengrass brings local compute, messaging, data management, sync, and ML inference capabilities to edge devices. This enables devices to collect and analyze data closer to the source of information, react autonomously to local events, and communicate securely with each other on local networks. Local devices can also communicate securely with AWS IoT Core and export IoT data to the AWS Cloud. AWS IoT Greengrass developers can use AWS Lambda functions and components to create and deploy applications to fleets of edge devices for local operation.

AWS IoT Greengrass Version 2 provides a new major version of the AWS IoT Greengrass Core software, new APIs, and a new console. Use this API reference to learn how to use the AWS IoT Greengrass V2 API operations to manage components, manage deployments, and core devices.

For more information, see What is AWS IoT Greengrass? in the AWS IoT Greengrass V2 Developer Guide.

", "operations": { + "BatchAssociateClientDeviceWithCoreDevice": "

Associate a list of client devices with a core device. Use this API operation to specify which client devices can discover a core device through cloud discovery. With cloud discovery, client devices connect to AWS IoT Greengrass to retrieve associated core devices' connectivity information and certificates. For more information, see Configure cloud discovery in the AWS IoT Greengrass V2 Developer Guide.

Client devices are local IoT devices that connect to and communicate with an AWS IoT Greengrass core device over MQTT. You can connect client devices to a core device to sync MQTT messages and data to AWS IoT Core and interact with client devices in AWS IoT Greengrass components. For more information, see Interact with local IoT devices in the AWS IoT Greengrass V2 Developer Guide.

", + "BatchDisassociateClientDeviceFromCoreDevice": "

Disassociate a list of client devices from a core device. After you disassociate a client device from a core device, the client device won't be able to use cloud discovery to retrieve the core device's connectivity information and certificates.

", "CancelDeployment": "

Cancels a deployment. This operation cancels the deployment for devices that haven't yet received it. If a device already received the deployment, this operation doesn't change anything for that device.

", "CreateComponentVersion": "

Creates a component. Components are software that run on AWS IoT Greengrass core devices. After you develop and test a component on your core device, you can use this operation to upload your component to AWS IoT Greengrass. Then, you can deploy the component to other core devices.

You can use this operation to do the following:

", "CreateDeployment": "

Creates a continuous deployment for a target, which is a AWS IoT Greengrass core device or group of core devices. When you add a new core device to a group of core devices that has a deployment, AWS IoT Greengrass deploys that group's deployment to the new device.

You can define one deployment for each target. When you create a new deployment for a target that has an existing deployment, you replace the previous deployment. AWS IoT Greengrass applies the new deployment to the target devices.

Every deployment has a revision number that indicates how many deployment revisions you define for a target. Use this operation to create a new revision of an existing deployment. This operation returns the revision number of the new deployment when you create it.

For more information, see the Create deployments in the AWS IoT Greengrass V2 Developer Guide.

", @@ -12,7 +14,8 @@ "GetComponentVersionArtifact": "

Gets the pre-signed URL to download a public component artifact. Core devices call this operation to identify the URL that they can use to download an artifact to install.

", "GetCoreDevice": "

Retrieves metadata for a AWS IoT Greengrass core device.

", "GetDeployment": "

Gets a deployment. Deployments define the components that run on AWS IoT Greengrass core devices.

", - "ListComponentVersions": "

Retrieves a paginated list of all versions for a component.

", + "ListClientDevicesAssociatedWithCoreDevice": "

Retrieves a paginated list of client devices that are associated with a core device.

", + "ListComponentVersions": "

Retrieves a paginated list of all versions for a component. Greater versions are listed first.

", "ListComponents": "

Retrieves a paginated list of component summaries. This list includes components that you have permission to view.

", "ListCoreDevices": "

Retrieves a paginated list of AWS IoT Greengrass core devices.

", "ListDeployments": "

Retrieves a paginated list of deployments.

", @@ -29,6 +32,62 @@ "refs": { } }, + "AssociateClientDeviceWithCoreDeviceEntry": { + "base": "

Contains a request to associate a client device with a core device. The BatchAssociateClientDeviceWithCoreDevice operation consumes a list of these requests.

", + "refs": { + "AssociateClientDeviceWithCoreDeviceEntryList$member": null + } + }, + "AssociateClientDeviceWithCoreDeviceEntryList": { + "base": null, + "refs": { + "BatchAssociateClientDeviceWithCoreDeviceRequest$entries": "

The list of client devices to associate.

" + } + }, + "AssociateClientDeviceWithCoreDeviceErrorEntry": { + "base": "

Contains an error that occurs from a request to associate a client device with a core device. The BatchAssociateClientDeviceWithCoreDevice operation returns a list of these errors.

", + "refs": { + "AssociateClientDeviceWithCoreDeviceErrorList$member": null + } + }, + "AssociateClientDeviceWithCoreDeviceErrorList": { + "base": null, + "refs": { + "BatchAssociateClientDeviceWithCoreDeviceResponse$errorEntries": "

The list of any errors for the entries in the request. Each error entry contains the name of the AWS IoT thing that failed to associate.

" + } + }, + "AssociatedClientDevice": { + "base": "

Contains information about a client device that is associated to a core device for cloud discovery.

", + "refs": { + "AssociatedClientDeviceList$member": null + } + }, + "AssociatedClientDeviceList": { + "base": null, + "refs": { + "ListClientDevicesAssociatedWithCoreDeviceResponse$associatedClientDevices": "

A list that describes the client devices that are associated with the core device.

" + } + }, + "BatchAssociateClientDeviceWithCoreDeviceRequest": { + "base": null, + "refs": { + } + }, + "BatchAssociateClientDeviceWithCoreDeviceResponse": { + "base": null, + "refs": { + } + }, + "BatchDisassociateClientDeviceFromCoreDeviceRequest": { + "base": null, + "refs": { + } + }, + "BatchDisassociateClientDeviceFromCoreDeviceResponse": { + "base": null, + "refs": { + } + }, "CancelDeploymentRequest": { "base": null, "refs": { @@ -300,6 +359,7 @@ "DefaultMaxResults": { "base": null, "refs": { + "ListClientDevicesAssociatedWithCoreDeviceRequest$maxResults": "

The maximum number of results to be returned per paginated request.

", "ListComponentVersionsRequest$maxResults": "

The maximum number of results to be returned per paginated request.

", "ListComponentsRequest$maxResults": "

The maximum number of results to be returned per paginated request.

", "ListCoreDevicesRequest$maxResults": "

The maximum number of results to be returned per paginated request.

", @@ -415,6 +475,30 @@ "DescribeComponentResponse$description": "

The description of the component version.

" } }, + "DisassociateClientDeviceFromCoreDeviceEntry": { + "base": "

Contains a request to disassociate a client device from a core device. The BatchDisassociateClientDeviceWithCoreDevice operation consumes a list of these requests.

", + "refs": { + "DisassociateClientDeviceFromCoreDeviceEntryList$member": null + } + }, + "DisassociateClientDeviceFromCoreDeviceEntryList": { + "base": null, + "refs": { + "BatchDisassociateClientDeviceFromCoreDeviceRequest$entries": "

The list of client devices to disassociate.

" + } + }, + "DisassociateClientDeviceFromCoreDeviceErrorEntry": { + "base": "

Contains an error that occurs from a request to disassociate a client device from a core device. The BatchDisassociateClientDeviceWithCoreDevice operation returns a list of these errors.

", + "refs": { + "DisassociateClientDeviceFromCoreDeviceErrorList$member": null + } + }, + "DisassociateClientDeviceFromCoreDeviceErrorList": { + "base": null, + "refs": { + "BatchDisassociateClientDeviceFromCoreDeviceResponse$errorEntries": "

The list of errors (if any) for the entries in the request. Each error entry contains the name of the AWS IoT thing that failed to disassociate.

" + } + }, "EffectiveDeployment": { "base": "

Contains information about a deployment job that AWS IoT Greengrass sends to a AWS IoT Greengrass core device.

", "refs": { @@ -629,6 +713,19 @@ "DeploymentIoTJobConfiguration$timeoutConfig": "

The timeout configuration for the job. This configuration defines the amount of time each device has to complete the job.

" } }, + "IoTThingName": { + "base": null, + "refs": { + "AssociateClientDeviceWithCoreDeviceEntry$thingName": "

The name of the AWS IoT thing that represents the client device to associate.

", + "AssociateClientDeviceWithCoreDeviceErrorEntry$thingName": "

The name of the AWS IoT thing whose associate request failed.

", + "AssociatedClientDevice$thingName": "

The name of the AWS IoT thing that represents the associated client device.

", + "BatchAssociateClientDeviceWithCoreDeviceRequest$coreDeviceThingName": "

The name of the core device. This is also the name of the AWS IoT thing.

", + "BatchDisassociateClientDeviceFromCoreDeviceRequest$coreDeviceThingName": "

The name of the core device. This is also the name of the AWS IoT thing.

", + "DisassociateClientDeviceFromCoreDeviceEntry$thingName": "

The name of the AWS IoT thing that represents the client device to disassociate.

", + "DisassociateClientDeviceFromCoreDeviceErrorEntry$thingName": "

The name of the AWS IoT thing whose disassociate request failed.

", + "ListClientDevicesAssociatedWithCoreDeviceRequest$coreDeviceThingName": "

The name of the core device. This is also the name of the AWS IoT thing.

" + } + }, "IsLatestForTarget": { "base": null, "refs": { @@ -757,6 +854,16 @@ "InstalledComponent$lifecycleStateDetails": "

The details about the lifecycle state of the component.

" } }, + "ListClientDevicesAssociatedWithCoreDeviceRequest": { + "base": null, + "refs": { + } + }, + "ListClientDevicesAssociatedWithCoreDeviceResponse": { + "base": null, + "refs": { + } + }, "ListComponentVersionsRequest": { "base": null, "refs": { @@ -830,6 +937,8 @@ "NextTokenString": { "base": null, "refs": { + "ListClientDevicesAssociatedWithCoreDeviceRequest$nextToken": "

The token to be used for the next set of paginated results.

", + "ListClientDevicesAssociatedWithCoreDeviceResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", "ListComponentVersionsRequest$nextToken": "

The token to be used for the next set of paginated results.

", "ListComponentVersionsResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", "ListComponentsRequest$nextToken": "

The token to be used for the next set of paginated results.

", @@ -847,6 +956,8 @@ "NonEmptyString": { "base": null, "refs": { + "AssociateClientDeviceWithCoreDeviceErrorEntry$code": "

The error code for the request.

", + "AssociateClientDeviceWithCoreDeviceErrorEntry$message": "

A message that provides additional information about the error.

", "CancelDeploymentRequest$deploymentId": "

The ID of the deployment.

", "CancelDeploymentResponse$message": "

A message that communicates if the cancel was successful.

", "CloudComponentStatus$message": "

A message that communicates details, such as errors, about the status of the component.

", @@ -866,6 +977,8 @@ "Deployment$revisionId": "

The revision number of the deployment.

", "Deployment$deploymentId": "

The ID of the deployment.

", "Deployment$deploymentName": "

The name of the deployment.

You can create deployments without names. If you create a deployment without a name, the AWS IoT Greengrass V2 console shows the deployment name as <targetType>:<targetName>, where targetType and targetName are the type and name of the deployment target.

", + "DisassociateClientDeviceFromCoreDeviceErrorEntry$code": "

The error code for the request.

", + "DisassociateClientDeviceFromCoreDeviceErrorEntry$message": "

A message that provides additional information about the error.

", "GetComponentVersionArtifactRequest$artifactName": "

The name of the artifact.

You can use the GetComponent operation to download the component recipe, which includes the URI of the artifact. The artifact name is the section of the URI after the scheme. For example, in the artifact URI greengrass:SomeArtifact.zip, the artifact name is SomeArtifact.zip.

", "GetComponentVersionArtifactResponse$preSignedUrl": "

The URL of the artifact.

", "GetDeploymentRequest$deploymentId": "

The ID of the deployment.

", @@ -1076,6 +1189,7 @@ "Timestamp": { "base": null, "refs": { + "AssociatedClientDevice$associationTimestamp": "

The time that the client device was associated, expressed in ISO 8601 format.

", "ComponentLatestVersion$creationTimestamp": "

The time at which the component was created, expressed in ISO 8601 format.

", "CoreDevice$lastStatusUpdateTimestamp": "

The time at which the core device's status last updated, expressed in ISO 8601 format.

", "CreateComponentVersionResponse$creationTimestamp": "

The time at which the component was created, expressed in ISO 8601 format.

", diff --git a/models/apis/greengrassv2/2020-11-30/paginators-1.json b/models/apis/greengrassv2/2020-11-30/paginators-1.json index 8f32216e19e..19a0e919ae3 100644 --- a/models/apis/greengrassv2/2020-11-30/paginators-1.json +++ b/models/apis/greengrassv2/2020-11-30/paginators-1.json @@ -1,5 +1,11 @@ { "pagination": { + "ListClientDevicesAssociatedWithCoreDevice": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "associatedClientDevices" + }, "ListComponentVersions": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/apis/iotanalytics/2017-11-27/api-2.json b/models/apis/iotanalytics/2017-11-27/api-2.json index 1792faab3d2..9da55063da4 100644 --- a/models/apis/iotanalytics/2017-11-27/api-2.json +++ b/models/apis/iotanalytics/2017-11-27/api-2.json @@ -865,7 +865,8 @@ "datastoreStorage":{"shape":"DatastoreStorage"}, "retentionPeriod":{"shape":"RetentionPeriod"}, "tags":{"shape":"TagList"}, - "fileFormatConfiguration":{"shape":"FileFormatConfiguration"} + "fileFormatConfiguration":{"shape":"FileFormatConfiguration"}, + "datastorePartitions":{"shape":"DatastorePartitions"} } }, "CreateDatastoreResponse":{ @@ -1118,7 +1119,8 @@ "creationTime":{"shape":"Timestamp"}, "lastUpdateTime":{"shape":"Timestamp"}, "lastMessageArrivalTime":{"shape":"Timestamp"}, - "fileFormatConfiguration":{"shape":"FileFormatConfiguration"} + "fileFormatConfiguration":{"shape":"FileFormatConfiguration"}, + "datastorePartitions":{"shape":"DatastorePartitions"} } }, "DatastoreActivity":{ @@ -1139,6 +1141,19 @@ "min":1, "pattern":"^[a-zA-Z0-9_]+$" }, + "DatastorePartition":{ + "type":"structure", + "members":{ + "attributePartition":{"shape":"Partition"}, + "timestampPartition":{"shape":"TimestampPartition"} + } + }, + "DatastorePartitions":{ + "type":"structure", + "members":{ + "partitions":{"shape":"Partitions"} + } + }, "DatastoreStatistics":{ "type":"structure", "members":{ @@ -1180,7 +1195,8 @@ "creationTime":{"shape":"Timestamp"}, "lastUpdateTime":{"shape":"Timestamp"}, "lastMessageArrivalTime":{"shape":"Timestamp"}, - "fileFormatType":{"shape":"FileFormatType"} + "fileFormatType":{"shape":"FileFormatType"}, + "datastorePartitions":{"shape":"DatastorePartitions"} } }, "DeleteChannelRequest":{ @@ -1782,7 +1798,8 @@ "MessageId":{ "type":"string", "max":128, - "min":1 + "min":1, + "pattern":"\\p{ASCII}*" }, "MessagePayload":{"type":"blob"}, "MessagePayloads":{ @@ -1814,6 +1831,25 @@ "schemaDefinition":{"shape":"SchemaDefinition"} } }, + "Partition":{ + "type":"structure", + "required":["attributeName"], + "members":{ + "attributeName":{"shape":"PartitionAttributeName"} + } + }, + "PartitionAttributeName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z0-9_]+$" + }, + "Partitions":{ + "type":"list", + "member":{"shape":"DatastorePartition"}, + "max":25, + "min":0 + }, "Pipeline":{ "type":"structure", "members":{ @@ -2211,6 +2247,20 @@ }, "TimeExpression":{"type":"string"}, "Timestamp":{"type":"timestamp"}, + "TimestampFormat":{ + "type":"string", + "max":50, + "min":1, + "pattern":"^[a-zA-Z0-9\\s\\[\\]_,.'/:-]*$" + }, + "TimestampPartition":{ + "type":"structure", + "required":["attributeName"], + "members":{ + "attributeName":{"shape":"PartitionAttributeName"}, + "timestampFormat":{"shape":"TimestampFormat"} + } + }, "TriggeringDataset":{ "type":"structure", "required":["name"], diff --git a/models/apis/iotanalytics/2017-11-27/docs-2.json b/models/apis/iotanalytics/2017-11-27/docs-2.json index 867d18f849b..79a5b922f54 100644 --- a/models/apis/iotanalytics/2017-11-27/docs-2.json +++ b/models/apis/iotanalytics/2017-11-27/docs-2.json @@ -7,7 +7,7 @@ "CreateChannel": "

Creates a channel. A channel collects data from an MQTT topic and archives the raw, unprocessed messages before publishing the data to a pipeline.

", "CreateDataset": "

Creates a dataset. A dataset stores data retrieved from a data store by applying a queryAction (a SQL query) or a containerAction (executing a containerized application). This operation creates the skeleton of a dataset. The dataset can be populated manually by calling CreateDatasetContent or automatically according to a trigger you specify.

", "CreateDatasetContent": "

Creates the content of a data set by applying a queryAction (a SQL query) or a containerAction (executing a containerized application).

", - "CreateDatastore": "

Creates a data store, which is a repository for messages.

", + "CreateDatastore": "

Creates a data store, which is a repository for messages. Only data stores that are used to save pipeline data can be configured with ParquetConfiguration.

", "CreatePipeline": "

Creates a pipeline. A pipeline consumes messages from a channel and allows you to process the messages before storing them in a data store. You must specify both a channel and a datastore activity and, optionally, as many as 23 additional activities in the pipelineActivities array.

", "DeleteChannel": "

Deletes the specified channel.

", "DeleteDataset": "

Deletes the specified dataset.

You do not have to delete the content of the dataset before you perform this operation.

", @@ -248,7 +248,7 @@ "Columns": { "base": null, "refs": { - "SchemaDefinition$columns": "

Specifies one or more columns that store your data.

Each schema can have up to 100 columns. Each column can have up to 100 nested types

" + "SchemaDefinition$columns": "

Specifies one or more columns that store your data.

Each schema can have up to 100 columns. Each column can have up to 100 nested types.

" } }, "ComputeType": { @@ -546,6 +546,20 @@ "UpdateDatastoreRequest$datastoreName": "

The name of the data store to be updated.

" } }, + "DatastorePartition": { + "base": "

A single partition in a data store.

", + "refs": { + "Partitions$member": null + } + }, + "DatastorePartitions": { + "base": "

Contains information about partitions in a data store.

", + "refs": { + "CreateDatastoreRequest$datastorePartitions": "

Contains information about the partitions in a data store.

", + "Datastore$datastorePartitions": "

Contains information about the partitions in a data store.

", + "DatastoreSummary$datastorePartitions": "

Contains information about the partitions in a data store.

" + } + }, "DatastoreStatistics": { "base": "

Statistical information about the data store.

", "refs": { @@ -1053,6 +1067,25 @@ "FileFormatConfiguration$parquetConfiguration": "

Contains the configuration information of the Parquet format.

" } }, + "Partition": { + "base": "

A single partition.

", + "refs": { + "DatastorePartition$attributePartition": "

A partition defined by an attributeName.

" + } + }, + "PartitionAttributeName": { + "base": null, + "refs": { + "Partition$attributeName": "

The attribute name of the partition.

", + "TimestampPartition$attributeName": "

The attribute name of the partition defined by a timestamp.

" + } + }, + "Partitions": { + "base": null, + "refs": { + "DatastorePartitions$partitions": "

A list of partitions in a data store.

" + } + }, "Pipeline": { "base": "

Contains information about a pipeline.

", "refs": { @@ -1265,7 +1298,7 @@ "S3PathChannelMessages": { "base": null, "refs": { - "ChannelMessages$s3Paths": "

Specifies one or more keys that identify the Amazon Simple Storage Service (Amazon S3) objects that save your channel messages.

" + "ChannelMessages$s3Paths": "

Specifies one or more keys that identify the Amazon Simple Storage Service (Amazon S3) objects that save your channel messages.

You must use the full path for the key.

Example path: channel/mychannel/__dt=2020-02-29 00:00:00/1582940490000_1582940520000_123456789012_mychannel_0_2118.0.json.gz

" } }, "SampleChannelDataRequest": { @@ -1468,6 +1501,18 @@ "ReprocessingSummary$creationTime": "

The time the pipeline reprocessing was created.

" } }, + "TimestampFormat": { + "base": null, + "refs": { + "TimestampPartition$timestampFormat": "

The timestamp format of a partition defined by a timestamp.

" + } + }, + "TimestampPartition": { + "base": "

A partition defined by a timestamp.

", + "refs": { + "DatastorePartition$timestampPartition": "

A partition defined by an attributeName and a timestamp format.

" + } + }, "TriggeringDataset": { "base": "

Information about the dataset whose content generation triggers the new dataset content generation.

", "refs": { diff --git a/models/apis/lookoutmetrics/2017-07-25/api-2.json b/models/apis/lookoutmetrics/2017-07-25/api-2.json index ea3e62eb613..6ed0dfa3f5f 100644 --- a/models/apis/lookoutmetrics/2017-07-25/api-2.json +++ b/models/apis/lookoutmetrics/2017-07-25/api-2.json @@ -561,6 +561,7 @@ "DELETING", "FAILED", "INACTIVE", + "LEARNING", "BACK_TEST_ACTIVATING", "BACK_TEST_ACTIVE", "BACK_TEST_COMPLETE" diff --git a/models/apis/lookoutmetrics/2017-07-25/docs-2.json b/models/apis/lookoutmetrics/2017-07-25/docs-2.json index 817e1d7b9d2..2b8d26b02b9 100644 --- a/models/apis/lookoutmetrics/2017-07-25/docs-2.json +++ b/models/apis/lookoutmetrics/2017-07-25/docs-2.json @@ -855,9 +855,9 @@ "Offset": { "base": null, "refs": { - "CreateMetricSetRequest$Offset": "

After an interval ends, the amount of time that the detector waits before importing data.

", - "DescribeMetricSetResponse$Offset": "

The offset for the dataset.

", - "UpdateMetricSetRequest$Offset": "

After an interval ends, the amount of time that the detector waits before importing data.

" + "CreateMetricSetRequest$Offset": "

After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3 and Redshift datasources.

", + "DescribeMetricSetResponse$Offset": "

The offset in seconds. Only supported for S3 and Redshift datasources.

", + "UpdateMetricSetRequest$Offset": "

After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3 and Redshift datasources.

" } }, "PoirotSecretManagerArn": { diff --git a/service/greengrassv2/api.go b/service/greengrassv2/api.go index 66cee211b28..df250d8e4b7 100644 --- a/service/greengrassv2/api.go +++ b/service/greengrassv2/api.go @@ -13,6 +13,209 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) +const opBatchAssociateClientDeviceWithCoreDevice = "BatchAssociateClientDeviceWithCoreDevice" + +// BatchAssociateClientDeviceWithCoreDeviceRequest generates a "aws/request.Request" representing the +// client's request for the BatchAssociateClientDeviceWithCoreDevice operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See BatchAssociateClientDeviceWithCoreDevice for more information on using the BatchAssociateClientDeviceWithCoreDevice +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the BatchAssociateClientDeviceWithCoreDeviceRequest method. +// req, resp := client.BatchAssociateClientDeviceWithCoreDeviceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchAssociateClientDeviceWithCoreDevice +func (c *GreengrassV2) BatchAssociateClientDeviceWithCoreDeviceRequest(input *BatchAssociateClientDeviceWithCoreDeviceInput) (req *request.Request, output *BatchAssociateClientDeviceWithCoreDeviceOutput) { + op := &request.Operation{ + Name: opBatchAssociateClientDeviceWithCoreDevice, + HTTPMethod: "POST", + HTTPPath: "/greengrass/v2/coreDevices/{coreDeviceThingName}/associateClientDevices", + } + + if input == nil { + input = &BatchAssociateClientDeviceWithCoreDeviceInput{} + } + + output = &BatchAssociateClientDeviceWithCoreDeviceOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchAssociateClientDeviceWithCoreDevice API operation for AWS IoT Greengrass V2. +// +// Associate a list of client devices with a core device. Use this API operation +// to specify which client devices can discover a core device through cloud +// discovery. With cloud discovery, client devices connect to AWS IoT Greengrass +// to retrieve associated core devices' connectivity information and certificates. +// For more information, see Configure cloud discovery (https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-cloud-discovery.html) +// in the AWS IoT Greengrass V2 Developer Guide. +// +// Client devices are local IoT devices that connect to and communicate with +// an AWS IoT Greengrass core device over MQTT. You can connect client devices +// to a core device to sync MQTT messages and data to AWS IoT Core and interact +// with client devices in AWS IoT Greengrass components. For more information, +// see Interact with local IoT devices (https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html) +// in the AWS IoT Greengrass V2 Developer Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS IoT Greengrass V2's +// API operation BatchAssociateClientDeviceWithCoreDevice for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The request isn't valid. This can occur if your request contains malformed +// JSON or unsupported characters. +// +// * ResourceNotFoundException +// The requested resource can't be found. +// +// * AccessDeniedException +// You don't have permission to perform the action. +// +// * InternalServerException +// AWS IoT Greengrass can't process your request right now. Try again later. +// +// * ThrottlingException +// Your request exceeded a request rate quota. For example, you might have exceeded +// the amount of times that you can retrieve device or deployment status per +// second. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchAssociateClientDeviceWithCoreDevice +func (c *GreengrassV2) BatchAssociateClientDeviceWithCoreDevice(input *BatchAssociateClientDeviceWithCoreDeviceInput) (*BatchAssociateClientDeviceWithCoreDeviceOutput, error) { + req, out := c.BatchAssociateClientDeviceWithCoreDeviceRequest(input) + return out, req.Send() +} + +// BatchAssociateClientDeviceWithCoreDeviceWithContext is the same as BatchAssociateClientDeviceWithCoreDevice with the addition of +// the ability to pass a context and additional request options. +// +// See BatchAssociateClientDeviceWithCoreDevice for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *GreengrassV2) BatchAssociateClientDeviceWithCoreDeviceWithContext(ctx aws.Context, input *BatchAssociateClientDeviceWithCoreDeviceInput, opts ...request.Option) (*BatchAssociateClientDeviceWithCoreDeviceOutput, error) { + req, out := c.BatchAssociateClientDeviceWithCoreDeviceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opBatchDisassociateClientDeviceFromCoreDevice = "BatchDisassociateClientDeviceFromCoreDevice" + +// BatchDisassociateClientDeviceFromCoreDeviceRequest generates a "aws/request.Request" representing the +// client's request for the BatchDisassociateClientDeviceFromCoreDevice operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See BatchDisassociateClientDeviceFromCoreDevice for more information on using the BatchDisassociateClientDeviceFromCoreDevice +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the BatchDisassociateClientDeviceFromCoreDeviceRequest method. +// req, resp := client.BatchDisassociateClientDeviceFromCoreDeviceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchDisassociateClientDeviceFromCoreDevice +func (c *GreengrassV2) BatchDisassociateClientDeviceFromCoreDeviceRequest(input *BatchDisassociateClientDeviceFromCoreDeviceInput) (req *request.Request, output *BatchDisassociateClientDeviceFromCoreDeviceOutput) { + op := &request.Operation{ + Name: opBatchDisassociateClientDeviceFromCoreDevice, + HTTPMethod: "POST", + HTTPPath: "/greengrass/v2/coreDevices/{coreDeviceThingName}/disassociateClientDevices", + } + + if input == nil { + input = &BatchDisassociateClientDeviceFromCoreDeviceInput{} + } + + output = &BatchDisassociateClientDeviceFromCoreDeviceOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchDisassociateClientDeviceFromCoreDevice API operation for AWS IoT Greengrass V2. +// +// Disassociate a list of client devices from a core device. After you disassociate +// a client device from a core device, the client device won't be able to use +// cloud discovery to retrieve the core device's connectivity information and +// certificates. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS IoT Greengrass V2's +// API operation BatchDisassociateClientDeviceFromCoreDevice for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The request isn't valid. This can occur if your request contains malformed +// JSON or unsupported characters. +// +// * ResourceNotFoundException +// The requested resource can't be found. +// +// * AccessDeniedException +// You don't have permission to perform the action. +// +// * InternalServerException +// AWS IoT Greengrass can't process your request right now. Try again later. +// +// * ThrottlingException +// Your request exceeded a request rate quota. For example, you might have exceeded +// the amount of times that you can retrieve device or deployment status per +// second. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/BatchDisassociateClientDeviceFromCoreDevice +func (c *GreengrassV2) BatchDisassociateClientDeviceFromCoreDevice(input *BatchDisassociateClientDeviceFromCoreDeviceInput) (*BatchDisassociateClientDeviceFromCoreDeviceOutput, error) { + req, out := c.BatchDisassociateClientDeviceFromCoreDeviceRequest(input) + return out, req.Send() +} + +// BatchDisassociateClientDeviceFromCoreDeviceWithContext is the same as BatchDisassociateClientDeviceFromCoreDevice with the addition of +// the ability to pass a context and additional request options. +// +// See BatchDisassociateClientDeviceFromCoreDevice for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *GreengrassV2) BatchDisassociateClientDeviceFromCoreDeviceWithContext(ctx aws.Context, input *BatchDisassociateClientDeviceFromCoreDeviceInput, opts ...request.Option) (*BatchDisassociateClientDeviceFromCoreDeviceOutput, error) { + req, out := c.BatchDisassociateClientDeviceFromCoreDeviceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCancelDeployment = "CancelDeployment" // CancelDeploymentRequest generates a "aws/request.Request" representing the @@ -1024,6 +1227,159 @@ func (c *GreengrassV2) GetDeploymentWithContext(ctx aws.Context, input *GetDeplo return out, req.Send() } +const opListClientDevicesAssociatedWithCoreDevice = "ListClientDevicesAssociatedWithCoreDevice" + +// ListClientDevicesAssociatedWithCoreDeviceRequest generates a "aws/request.Request" representing the +// client's request for the ListClientDevicesAssociatedWithCoreDevice operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListClientDevicesAssociatedWithCoreDevice for more information on using the ListClientDevicesAssociatedWithCoreDevice +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListClientDevicesAssociatedWithCoreDeviceRequest method. +// req, resp := client.ListClientDevicesAssociatedWithCoreDeviceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListClientDevicesAssociatedWithCoreDevice +func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDeviceRequest(input *ListClientDevicesAssociatedWithCoreDeviceInput) (req *request.Request, output *ListClientDevicesAssociatedWithCoreDeviceOutput) { + op := &request.Operation{ + Name: opListClientDevicesAssociatedWithCoreDevice, + HTTPMethod: "GET", + HTTPPath: "/greengrass/v2/coreDevices/{coreDeviceThingName}/associatedClientDevices", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListClientDevicesAssociatedWithCoreDeviceInput{} + } + + output = &ListClientDevicesAssociatedWithCoreDeviceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListClientDevicesAssociatedWithCoreDevice API operation for AWS IoT Greengrass V2. +// +// Retrieves a paginated list of client devices that are associated with a core +// device. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS IoT Greengrass V2's +// API operation ListClientDevicesAssociatedWithCoreDevice for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The request isn't valid. This can occur if your request contains malformed +// JSON or unsupported characters. +// +// * ResourceNotFoundException +// The requested resource can't be found. +// +// * AccessDeniedException +// You don't have permission to perform the action. +// +// * InternalServerException +// AWS IoT Greengrass can't process your request right now. Try again later. +// +// * ThrottlingException +// Your request exceeded a request rate quota. For example, you might have exceeded +// the amount of times that you can retrieve device or deployment status per +// second. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/ListClientDevicesAssociatedWithCoreDevice +func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDevice(input *ListClientDevicesAssociatedWithCoreDeviceInput) (*ListClientDevicesAssociatedWithCoreDeviceOutput, error) { + req, out := c.ListClientDevicesAssociatedWithCoreDeviceRequest(input) + return out, req.Send() +} + +// ListClientDevicesAssociatedWithCoreDeviceWithContext is the same as ListClientDevicesAssociatedWithCoreDevice with the addition of +// the ability to pass a context and additional request options. +// +// See ListClientDevicesAssociatedWithCoreDevice for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDeviceWithContext(ctx aws.Context, input *ListClientDevicesAssociatedWithCoreDeviceInput, opts ...request.Option) (*ListClientDevicesAssociatedWithCoreDeviceOutput, error) { + req, out := c.ListClientDevicesAssociatedWithCoreDeviceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListClientDevicesAssociatedWithCoreDevicePages iterates over the pages of a ListClientDevicesAssociatedWithCoreDevice operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListClientDevicesAssociatedWithCoreDevice method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListClientDevicesAssociatedWithCoreDevice operation. +// pageNum := 0 +// err := client.ListClientDevicesAssociatedWithCoreDevicePages(params, +// func(page *greengrassv2.ListClientDevicesAssociatedWithCoreDeviceOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDevicePages(input *ListClientDevicesAssociatedWithCoreDeviceInput, fn func(*ListClientDevicesAssociatedWithCoreDeviceOutput, bool) bool) error { + return c.ListClientDevicesAssociatedWithCoreDevicePagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListClientDevicesAssociatedWithCoreDevicePagesWithContext same as ListClientDevicesAssociatedWithCoreDevicePages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *GreengrassV2) ListClientDevicesAssociatedWithCoreDevicePagesWithContext(ctx aws.Context, input *ListClientDevicesAssociatedWithCoreDeviceInput, fn func(*ListClientDevicesAssociatedWithCoreDeviceOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListClientDevicesAssociatedWithCoreDeviceInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListClientDevicesAssociatedWithCoreDeviceRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListClientDevicesAssociatedWithCoreDeviceOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListComponentVersions = "ListComponentVersions" // ListComponentVersionsRequest generates a "aws/request.Request" representing the @@ -1074,7 +1430,8 @@ func (c *GreengrassV2) ListComponentVersionsRequest(input *ListComponentVersions // ListComponentVersions API operation for AWS IoT Greengrass V2. // -// Retrieves a paginated list of all versions for a component. +// Retrieves a paginated list of all versions for a component. Greater versions +// are listed first. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2252,114 +2609,410 @@ func (c *GreengrassV2) UntagResourceRequest(input *UntagResourceInput) (req *req HTTPPath: "/tags/{resourceArn}", } - if input == nil { - input = &UntagResourceInput{} - } + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for AWS IoT Greengrass V2. +// +// Removes a tag from an AWS IoT Greengrass resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS IoT Greengrass V2's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// AWS IoT Greengrass can't process your request right now. Try again later. +// +// * ValidationException +// The request isn't valid. This can occur if your request contains malformed +// JSON or unsupported characters. +// +// * ResourceNotFoundException +// The requested resource can't be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/UntagResource +func (c *GreengrassV2) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *GreengrassV2) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You don't have permission to perform the action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Contains a request to associate a client device with a core device. The BatchAssociateClientDeviceWithCoreDevice +// (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html) +// operation consumes a list of these requests. +type AssociateClientDeviceWithCoreDeviceEntry struct { + _ struct{} `type:"structure"` + + // The name of the AWS IoT thing that represents the client device to associate. + // + // ThingName is a required field + ThingName *string `locationName:"thingName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AssociateClientDeviceWithCoreDeviceEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociateClientDeviceWithCoreDeviceEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateClientDeviceWithCoreDeviceEntry) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateClientDeviceWithCoreDeviceEntry"} + if s.ThingName == nil { + invalidParams.Add(request.NewErrParamRequired("ThingName")) + } + if s.ThingName != nil && len(*s.ThingName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ThingName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetThingName sets the ThingName field's value. +func (s *AssociateClientDeviceWithCoreDeviceEntry) SetThingName(v string) *AssociateClientDeviceWithCoreDeviceEntry { + s.ThingName = &v + return s +} + +// Contains an error that occurs from a request to associate a client device +// with a core device. The BatchAssociateClientDeviceWithCoreDevice (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html) +// operation returns a list of these errors. +type AssociateClientDeviceWithCoreDeviceErrorEntry struct { + _ struct{} `type:"structure"` + + // The error code for the request. + Code *string `locationName:"code" min:"1" type:"string"` + + // A message that provides additional information about the error. + Message *string `locationName:"message" min:"1" type:"string"` + + // The name of the AWS IoT thing whose associate request failed. + ThingName *string `locationName:"thingName" min:"1" type:"string"` +} + +// String returns the string representation +func (s AssociateClientDeviceWithCoreDeviceErrorEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociateClientDeviceWithCoreDeviceErrorEntry) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *AssociateClientDeviceWithCoreDeviceErrorEntry) SetCode(v string) *AssociateClientDeviceWithCoreDeviceErrorEntry { + s.Code = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *AssociateClientDeviceWithCoreDeviceErrorEntry) SetMessage(v string) *AssociateClientDeviceWithCoreDeviceErrorEntry { + s.Message = &v + return s +} + +// SetThingName sets the ThingName field's value. +func (s *AssociateClientDeviceWithCoreDeviceErrorEntry) SetThingName(v string) *AssociateClientDeviceWithCoreDeviceErrorEntry { + s.ThingName = &v + return s +} + +// Contains information about a client device that is associated to a core device +// for cloud discovery. +type AssociatedClientDevice struct { + _ struct{} `type:"structure"` + + // The time that the client device was associated, expressed in ISO 8601 format. + AssociationTimestamp *time.Time `locationName:"associationTimestamp" type:"timestamp"` + + // The name of the AWS IoT thing that represents the associated client device. + ThingName *string `locationName:"thingName" min:"1" type:"string"` +} + +// String returns the string representation +func (s AssociatedClientDevice) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociatedClientDevice) GoString() string { + return s.String() +} + +// SetAssociationTimestamp sets the AssociationTimestamp field's value. +func (s *AssociatedClientDevice) SetAssociationTimestamp(v time.Time) *AssociatedClientDevice { + s.AssociationTimestamp = &v + return s +} + +// SetThingName sets the ThingName field's value. +func (s *AssociatedClientDevice) SetThingName(v string) *AssociatedClientDevice { + s.ThingName = &v + return s +} + +type BatchAssociateClientDeviceWithCoreDeviceInput struct { + _ struct{} `type:"structure"` + + // The name of the core device. This is also the name of the AWS IoT thing. + // + // CoreDeviceThingName is a required field + CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"` + + // The list of client devices to associate. + Entries []*AssociateClientDeviceWithCoreDeviceEntry `locationName:"entries" min:"1" type:"list"` +} + +// String returns the string representation +func (s BatchAssociateClientDeviceWithCoreDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BatchAssociateClientDeviceWithCoreDeviceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchAssociateClientDeviceWithCoreDeviceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchAssociateClientDeviceWithCoreDeviceInput"} + if s.CoreDeviceThingName == nil { + invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName")) + } + if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1)) + } + if s.Entries != nil && len(s.Entries) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Entries", 1)) + } + if s.Entries != nil { + for i, v := range s.Entries { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCoreDeviceThingName sets the CoreDeviceThingName field's value. +func (s *BatchAssociateClientDeviceWithCoreDeviceInput) SetCoreDeviceThingName(v string) *BatchAssociateClientDeviceWithCoreDeviceInput { + s.CoreDeviceThingName = &v + return s +} + +// SetEntries sets the Entries field's value. +func (s *BatchAssociateClientDeviceWithCoreDeviceInput) SetEntries(v []*AssociateClientDeviceWithCoreDeviceEntry) *BatchAssociateClientDeviceWithCoreDeviceInput { + s.Entries = v + return s +} - output = &UntagResourceOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return +type BatchAssociateClientDeviceWithCoreDeviceOutput struct { + _ struct{} `type:"structure"` + + // The list of any errors for the entries in the request. Each error entry contains + // the name of the AWS IoT thing that failed to associate. + ErrorEntries []*AssociateClientDeviceWithCoreDeviceErrorEntry `locationName:"errorEntries" min:"1" type:"list"` } -// UntagResource API operation for AWS IoT Greengrass V2. -// -// Removes a tag from an AWS IoT Greengrass resource. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS IoT Greengrass V2's -// API operation UntagResource for usage and error information. -// -// Returned Error Types: -// * InternalServerException -// AWS IoT Greengrass can't process your request right now. Try again later. -// -// * ValidationException -// The request isn't valid. This can occur if your request contains malformed -// JSON or unsupported characters. -// -// * ResourceNotFoundException -// The requested resource can't be found. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/UntagResource -func (c *GreengrassV2) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) - return out, req.Send() +// String returns the string representation +func (s BatchAssociateClientDeviceWithCoreDeviceOutput) String() string { + return awsutil.Prettify(s) } -// UntagResourceWithContext is the same as UntagResource with the addition of -// the ability to pass a context and additional request options. -// -// See UntagResource for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *GreengrassV2) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() +// GoString returns the string representation +func (s BatchAssociateClientDeviceWithCoreDeviceOutput) GoString() string { + return s.String() } -// You don't have permission to perform the action. -type AccessDeniedException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// SetErrorEntries sets the ErrorEntries field's value. +func (s *BatchAssociateClientDeviceWithCoreDeviceOutput) SetErrorEntries(v []*AssociateClientDeviceWithCoreDeviceErrorEntry) *BatchAssociateClientDeviceWithCoreDeviceOutput { + s.ErrorEntries = v + return s +} - Message_ *string `locationName:"message" type:"string"` +type BatchDisassociateClientDeviceFromCoreDeviceInput struct { + _ struct{} `type:"structure"` + + // The name of the core device. This is also the name of the AWS IoT thing. + // + // CoreDeviceThingName is a required field + CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"` + + // The list of client devices to disassociate. + Entries []*DisassociateClientDeviceFromCoreDeviceEntry `locationName:"entries" min:"1" type:"list"` } // String returns the string representation -func (s AccessDeniedException) String() string { +func (s BatchDisassociateClientDeviceFromCoreDeviceInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AccessDeniedException) GoString() string { +func (s BatchDisassociateClientDeviceFromCoreDeviceInput) GoString() string { return s.String() } -func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { - return &AccessDeniedException{ - RespMetadata: v, +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchDisassociateClientDeviceFromCoreDeviceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchDisassociateClientDeviceFromCoreDeviceInput"} + if s.CoreDeviceThingName == nil { + invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName")) + } + if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1)) + } + if s.Entries != nil && len(s.Entries) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Entries", 1)) + } + if s.Entries != nil { + for i, v := range s.Entries { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams } + return nil } -// Code returns the exception type name. -func (s *AccessDeniedException) Code() string { - return "AccessDeniedException" +// SetCoreDeviceThingName sets the CoreDeviceThingName field's value. +func (s *BatchDisassociateClientDeviceFromCoreDeviceInput) SetCoreDeviceThingName(v string) *BatchDisassociateClientDeviceFromCoreDeviceInput { + s.CoreDeviceThingName = &v + return s } -// Message returns the exception's message. -func (s *AccessDeniedException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetEntries sets the Entries field's value. +func (s *BatchDisassociateClientDeviceFromCoreDeviceInput) SetEntries(v []*DisassociateClientDeviceFromCoreDeviceEntry) *BatchDisassociateClientDeviceFromCoreDeviceInput { + s.Entries = v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AccessDeniedException) OrigErr() error { - return nil +type BatchDisassociateClientDeviceFromCoreDeviceOutput struct { + _ struct{} `type:"structure"` + + // The list of errors (if any) for the entries in the request. Each error entry + // contains the name of the AWS IoT thing that failed to disassociate. + ErrorEntries []*DisassociateClientDeviceFromCoreDeviceErrorEntry `locationName:"errorEntries" min:"1" type:"list"` } -func (s *AccessDeniedException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// String returns the string representation +func (s BatchDisassociateClientDeviceFromCoreDeviceOutput) String() string { + return awsutil.Prettify(s) } -// Status code returns the HTTP status code for the request's response error. -func (s *AccessDeniedException) StatusCode() int { - return s.RespMetadata.StatusCode +// GoString returns the string representation +func (s BatchDisassociateClientDeviceFromCoreDeviceOutput) GoString() string { + return s.String() } -// RequestID returns the service's response RequestID for request. -func (s *AccessDeniedException) RequestID() string { - return s.RespMetadata.RequestID +// SetErrorEntries sets the ErrorEntries field's value. +func (s *BatchDisassociateClientDeviceFromCoreDeviceOutput) SetErrorEntries(v []*DisassociateClientDeviceFromCoreDeviceErrorEntry) *BatchDisassociateClientDeviceFromCoreDeviceOutput { + s.ErrorEntries = v + return s } type CancelDeploymentInput struct { @@ -3933,6 +4586,94 @@ func (s *DescribeComponentOutput) SetTags(v map[string]*string) *DescribeCompone return s } +// Contains a request to disassociate a client device from a core device. The +// BatchDisassociateClientDeviceWithCoreDevice (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html) +// operation consumes a list of these requests. +type DisassociateClientDeviceFromCoreDeviceEntry struct { + _ struct{} `type:"structure"` + + // The name of the AWS IoT thing that represents the client device to disassociate. + // + // ThingName is a required field + ThingName *string `locationName:"thingName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DisassociateClientDeviceFromCoreDeviceEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DisassociateClientDeviceFromCoreDeviceEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateClientDeviceFromCoreDeviceEntry) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisassociateClientDeviceFromCoreDeviceEntry"} + if s.ThingName == nil { + invalidParams.Add(request.NewErrParamRequired("ThingName")) + } + if s.ThingName != nil && len(*s.ThingName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ThingName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetThingName sets the ThingName field's value. +func (s *DisassociateClientDeviceFromCoreDeviceEntry) SetThingName(v string) *DisassociateClientDeviceFromCoreDeviceEntry { + s.ThingName = &v + return s +} + +// Contains an error that occurs from a request to disassociate a client device +// from a core device. The BatchDisassociateClientDeviceWithCoreDevice (https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html) +// operation returns a list of these errors. +type DisassociateClientDeviceFromCoreDeviceErrorEntry struct { + _ struct{} `type:"structure"` + + // The error code for the request. + Code *string `locationName:"code" min:"1" type:"string"` + + // A message that provides additional information about the error. + Message *string `locationName:"message" min:"1" type:"string"` + + // The name of the AWS IoT thing whose disassociate request failed. + ThingName *string `locationName:"thingName" min:"1" type:"string"` +} + +// String returns the string representation +func (s DisassociateClientDeviceFromCoreDeviceErrorEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DisassociateClientDeviceFromCoreDeviceErrorEntry) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *DisassociateClientDeviceFromCoreDeviceErrorEntry) SetCode(v string) *DisassociateClientDeviceFromCoreDeviceErrorEntry { + s.Code = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *DisassociateClientDeviceFromCoreDeviceErrorEntry) SetMessage(v string) *DisassociateClientDeviceFromCoreDeviceErrorEntry { + s.Message = &v + return s +} + +// SetThingName sets the ThingName field's value. +func (s *DisassociateClientDeviceFromCoreDeviceErrorEntry) SetThingName(v string) *DisassociateClientDeviceFromCoreDeviceErrorEntry { + s.ThingName = &v + return s +} + // Contains information about a deployment job that AWS IoT Greengrass sends // to a AWS IoT Greengrass core device. type EffectiveDeployment struct { @@ -5676,6 +6417,102 @@ func (s *LambdaVolumeMount) SetSourcePath(v string) *LambdaVolumeMount { return s } +type ListClientDevicesAssociatedWithCoreDeviceInput struct { + _ struct{} `type:"structure"` + + // The name of the core device. This is also the name of the AWS IoT thing. + // + // CoreDeviceThingName is a required field + CoreDeviceThingName *string `location:"uri" locationName:"coreDeviceThingName" min:"1" type:"string" required:"true"` + + // The maximum number of results to be returned per paginated request. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token to be used for the next set of paginated results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListClientDevicesAssociatedWithCoreDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListClientDevicesAssociatedWithCoreDeviceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListClientDevicesAssociatedWithCoreDeviceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListClientDevicesAssociatedWithCoreDeviceInput"} + if s.CoreDeviceThingName == nil { + invalidParams.Add(request.NewErrParamRequired("CoreDeviceThingName")) + } + if s.CoreDeviceThingName != nil && len(*s.CoreDeviceThingName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CoreDeviceThingName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCoreDeviceThingName sets the CoreDeviceThingName field's value. +func (s *ListClientDevicesAssociatedWithCoreDeviceInput) SetCoreDeviceThingName(v string) *ListClientDevicesAssociatedWithCoreDeviceInput { + s.CoreDeviceThingName = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListClientDevicesAssociatedWithCoreDeviceInput) SetMaxResults(v int64) *ListClientDevicesAssociatedWithCoreDeviceInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListClientDevicesAssociatedWithCoreDeviceInput) SetNextToken(v string) *ListClientDevicesAssociatedWithCoreDeviceInput { + s.NextToken = &v + return s +} + +type ListClientDevicesAssociatedWithCoreDeviceOutput struct { + _ struct{} `type:"structure"` + + // A list that describes the client devices that are associated with the core + // device. + AssociatedClientDevices []*AssociatedClientDevice `locationName:"associatedClientDevices" min:"1" type:"list"` + + // The token for the next set of results, or null if there are no additional + // results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListClientDevicesAssociatedWithCoreDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListClientDevicesAssociatedWithCoreDeviceOutput) GoString() string { + return s.String() +} + +// SetAssociatedClientDevices sets the AssociatedClientDevices field's value. +func (s *ListClientDevicesAssociatedWithCoreDeviceOutput) SetAssociatedClientDevices(v []*AssociatedClientDevice) *ListClientDevicesAssociatedWithCoreDeviceOutput { + s.AssociatedClientDevices = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListClientDevicesAssociatedWithCoreDeviceOutput) SetNextToken(v string) *ListClientDevicesAssociatedWithCoreDeviceOutput { + s.NextToken = &v + return s +} + type ListComponentVersionsInput struct { _ struct{} `type:"structure"` diff --git a/service/greengrassv2/greengrassv2iface/interface.go b/service/greengrassv2/greengrassv2iface/interface.go index 461ed60a7d3..75a42f3a50a 100644 --- a/service/greengrassv2/greengrassv2iface/interface.go +++ b/service/greengrassv2/greengrassv2iface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS IoT Greengrass V2. // func myFunc(svc greengrassv2iface.GreengrassV2API) bool { -// // Make svc.CancelDeployment request +// // Make svc.BatchAssociateClientDeviceWithCoreDevice request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockGreengrassV2Client struct { // greengrassv2iface.GreengrassV2API // } -// func (m *mockGreengrassV2Client) CancelDeployment(input *greengrassv2.CancelDeploymentInput) (*greengrassv2.CancelDeploymentOutput, error) { +// func (m *mockGreengrassV2Client) BatchAssociateClientDeviceWithCoreDevice(input *greengrassv2.BatchAssociateClientDeviceWithCoreDeviceInput) (*greengrassv2.BatchAssociateClientDeviceWithCoreDeviceOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,14 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type GreengrassV2API interface { + BatchAssociateClientDeviceWithCoreDevice(*greengrassv2.BatchAssociateClientDeviceWithCoreDeviceInput) (*greengrassv2.BatchAssociateClientDeviceWithCoreDeviceOutput, error) + BatchAssociateClientDeviceWithCoreDeviceWithContext(aws.Context, *greengrassv2.BatchAssociateClientDeviceWithCoreDeviceInput, ...request.Option) (*greengrassv2.BatchAssociateClientDeviceWithCoreDeviceOutput, error) + BatchAssociateClientDeviceWithCoreDeviceRequest(*greengrassv2.BatchAssociateClientDeviceWithCoreDeviceInput) (*request.Request, *greengrassv2.BatchAssociateClientDeviceWithCoreDeviceOutput) + + BatchDisassociateClientDeviceFromCoreDevice(*greengrassv2.BatchDisassociateClientDeviceFromCoreDeviceInput) (*greengrassv2.BatchDisassociateClientDeviceFromCoreDeviceOutput, error) + BatchDisassociateClientDeviceFromCoreDeviceWithContext(aws.Context, *greengrassv2.BatchDisassociateClientDeviceFromCoreDeviceInput, ...request.Option) (*greengrassv2.BatchDisassociateClientDeviceFromCoreDeviceOutput, error) + BatchDisassociateClientDeviceFromCoreDeviceRequest(*greengrassv2.BatchDisassociateClientDeviceFromCoreDeviceInput) (*request.Request, *greengrassv2.BatchDisassociateClientDeviceFromCoreDeviceOutput) + CancelDeployment(*greengrassv2.CancelDeploymentInput) (*greengrassv2.CancelDeploymentOutput, error) CancelDeploymentWithContext(aws.Context, *greengrassv2.CancelDeploymentInput, ...request.Option) (*greengrassv2.CancelDeploymentOutput, error) CancelDeploymentRequest(*greengrassv2.CancelDeploymentInput) (*request.Request, *greengrassv2.CancelDeploymentOutput) @@ -100,6 +108,13 @@ type GreengrassV2API interface { GetDeploymentWithContext(aws.Context, *greengrassv2.GetDeploymentInput, ...request.Option) (*greengrassv2.GetDeploymentOutput, error) GetDeploymentRequest(*greengrassv2.GetDeploymentInput) (*request.Request, *greengrassv2.GetDeploymentOutput) + ListClientDevicesAssociatedWithCoreDevice(*greengrassv2.ListClientDevicesAssociatedWithCoreDeviceInput) (*greengrassv2.ListClientDevicesAssociatedWithCoreDeviceOutput, error) + ListClientDevicesAssociatedWithCoreDeviceWithContext(aws.Context, *greengrassv2.ListClientDevicesAssociatedWithCoreDeviceInput, ...request.Option) (*greengrassv2.ListClientDevicesAssociatedWithCoreDeviceOutput, error) + ListClientDevicesAssociatedWithCoreDeviceRequest(*greengrassv2.ListClientDevicesAssociatedWithCoreDeviceInput) (*request.Request, *greengrassv2.ListClientDevicesAssociatedWithCoreDeviceOutput) + + ListClientDevicesAssociatedWithCoreDevicePages(*greengrassv2.ListClientDevicesAssociatedWithCoreDeviceInput, func(*greengrassv2.ListClientDevicesAssociatedWithCoreDeviceOutput, bool) bool) error + ListClientDevicesAssociatedWithCoreDevicePagesWithContext(aws.Context, *greengrassv2.ListClientDevicesAssociatedWithCoreDeviceInput, func(*greengrassv2.ListClientDevicesAssociatedWithCoreDeviceOutput, bool) bool, ...request.Option) error + ListComponentVersions(*greengrassv2.ListComponentVersionsInput) (*greengrassv2.ListComponentVersionsOutput, error) ListComponentVersionsWithContext(aws.Context, *greengrassv2.ListComponentVersionsInput, ...request.Option) (*greengrassv2.ListComponentVersionsOutput, error) ListComponentVersionsRequest(*greengrassv2.ListComponentVersionsInput) (*request.Request, *greengrassv2.ListComponentVersionsOutput) diff --git a/service/iotanalytics/api.go b/service/iotanalytics/api.go index 1879a548bbc..f6e3a14c85b 100644 --- a/service/iotanalytics/api.go +++ b/service/iotanalytics/api.go @@ -525,7 +525,8 @@ func (c *IoTAnalytics) CreateDatastoreRequest(input *CreateDatastoreInput) (req // CreateDatastore API operation for AWS IoT Analytics. // -// Creates a data store, which is a repository for messages. +// Creates a data store, which is a repository for messages. Only data stores +// that are used to save pipeline data can be configured with ParquetConfiguration. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3912,6 +3913,10 @@ type ChannelMessages struct { // Specifies one or more keys that identify the Amazon Simple Storage Service // (Amazon S3) objects that save your channel messages. + // + // You must use the full path for the key. + // + // Example path: channel/mychannel/__dt=2020-02-29 00:00:00/1582940490000_1582940520000_123456789012_mychannel_0_2118.0.json.gz S3Paths []*string `locationName:"s3Paths" min:"1" type:"list"` } @@ -4751,6 +4756,9 @@ type CreateDatastoreInput struct { // DatastoreName is a required field DatastoreName *string `locationName:"datastoreName" min:"1" type:"string" required:"true"` + // Contains information about the partitions in a data store. + DatastorePartitions *DatastorePartitions `locationName:"datastorePartitions" type:"structure"` + // Where data store data is stored. You can choose one of serviceManagedS3 or // customerManagedS3 storage. If not specified, the default is serviceManagedS3. // You cannot change this storage option after the data store is created. @@ -4794,6 +4802,11 @@ func (s *CreateDatastoreInput) Validate() error { if s.Tags != nil && len(s.Tags) < 1 { invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } + if s.DatastorePartitions != nil { + if err := s.DatastorePartitions.Validate(); err != nil { + invalidParams.AddNested("DatastorePartitions", err.(request.ErrInvalidParams)) + } + } if s.DatastoreStorage != nil { if err := s.DatastoreStorage.Validate(); err != nil { invalidParams.AddNested("DatastoreStorage", err.(request.ErrInvalidParams)) @@ -4832,6 +4845,12 @@ func (s *CreateDatastoreInput) SetDatastoreName(v string) *CreateDatastoreInput return s } +// SetDatastorePartitions sets the DatastorePartitions field's value. +func (s *CreateDatastoreInput) SetDatastorePartitions(v *DatastorePartitions) *CreateDatastoreInput { + s.DatastorePartitions = v + return s +} + // SetDatastoreStorage sets the DatastoreStorage field's value. func (s *CreateDatastoreInput) SetDatastoreStorage(v *DatastoreStorage) *CreateDatastoreInput { s.DatastoreStorage = v @@ -5912,6 +5931,9 @@ type Datastore struct { // When the data store was created. CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + // Contains information about the partitions in a data store. + DatastorePartitions *DatastorePartitions `locationName:"datastorePartitions" type:"structure"` + // Contains the configuration information of file formats. AWS IoT Analytics // data stores support JSON and Parquet (https://parquet.apache.org/). // @@ -5982,6 +6004,12 @@ func (s *Datastore) SetCreationTime(v time.Time) *Datastore { return s } +// SetDatastorePartitions sets the DatastorePartitions field's value. +func (s *Datastore) SetDatastorePartitions(v *DatastorePartitions) *Datastore { + s.DatastorePartitions = v + return s +} + // SetFileFormatConfiguration sets the FileFormatConfiguration field's value. func (s *Datastore) SetFileFormatConfiguration(v *FileFormatConfiguration) *Datastore { s.FileFormatConfiguration = v @@ -6083,6 +6111,103 @@ func (s *DatastoreActivity) SetName(v string) *DatastoreActivity { return s } +// A single partition in a data store. +type DatastorePartition struct { + _ struct{} `type:"structure"` + + // A partition defined by an attributeName. + AttributePartition *Partition `locationName:"attributePartition" type:"structure"` + + // A partition defined by an attributeName and a timestamp format. + TimestampPartition *TimestampPartition `locationName:"timestampPartition" type:"structure"` +} + +// String returns the string representation +func (s DatastorePartition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DatastorePartition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DatastorePartition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DatastorePartition"} + if s.AttributePartition != nil { + if err := s.AttributePartition.Validate(); err != nil { + invalidParams.AddNested("AttributePartition", err.(request.ErrInvalidParams)) + } + } + if s.TimestampPartition != nil { + if err := s.TimestampPartition.Validate(); err != nil { + invalidParams.AddNested("TimestampPartition", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttributePartition sets the AttributePartition field's value. +func (s *DatastorePartition) SetAttributePartition(v *Partition) *DatastorePartition { + s.AttributePartition = v + return s +} + +// SetTimestampPartition sets the TimestampPartition field's value. +func (s *DatastorePartition) SetTimestampPartition(v *TimestampPartition) *DatastorePartition { + s.TimestampPartition = v + return s +} + +// Contains information about partitions in a data store. +type DatastorePartitions struct { + _ struct{} `type:"structure"` + + // A list of partitions in a data store. + Partitions []*DatastorePartition `locationName:"partitions" type:"list"` +} + +// String returns the string representation +func (s DatastorePartitions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DatastorePartitions) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DatastorePartitions) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DatastorePartitions"} + if s.Partitions != nil { + for i, v := range s.Partitions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Partitions", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPartitions sets the Partitions field's value. +func (s *DatastorePartitions) SetPartitions(v []*DatastorePartition) *DatastorePartitions { + s.Partitions = v + return s +} + // Statistical information about the data store. type DatastoreStatistics struct { _ struct{} `type:"structure"` @@ -6205,6 +6330,9 @@ type DatastoreSummary struct { // The name of the data store. DatastoreName *string `locationName:"datastoreName" min:"1" type:"string"` + // Contains information about the partitions in a data store. + DatastorePartitions *DatastorePartitions `locationName:"datastorePartitions" type:"structure"` + // Where data store data is stored. DatastoreStorage *DatastoreStorageSummary `locationName:"datastoreStorage" type:"structure"` @@ -6249,6 +6377,12 @@ func (s *DatastoreSummary) SetDatastoreName(v string) *DatastoreSummary { return s } +// SetDatastorePartitions sets the DatastorePartitions field's value. +func (s *DatastoreSummary) SetDatastorePartitions(v *DatastorePartitions) *DatastoreSummary { + s.DatastorePartitions = v + return s +} + // SetDatastoreStorage sets the DatastoreStorage field's value. func (s *DatastoreSummary) SetDatastoreStorage(v *DatastoreStorageSummary) *DatastoreSummary { s.DatastoreStorage = v @@ -8783,6 +8917,48 @@ func (s *ParquetConfiguration) SetSchemaDefinition(v *SchemaDefinition) *Parquet return s } +// A single partition. +type Partition struct { + _ struct{} `type:"structure"` + + // The attribute name of the partition. + // + // AttributeName is a required field + AttributeName *string `locationName:"attributeName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s Partition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Partition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Partition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Partition"} + if s.AttributeName == nil { + invalidParams.Add(request.NewErrParamRequired("AttributeName")) + } + if s.AttributeName != nil && len(*s.AttributeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttributeName sets the AttributeName field's value. +func (s *Partition) SetAttributeName(v string) *Partition { + s.AttributeName = &v + return s +} + // Contains information about a pipeline. type Pipeline struct { _ struct{} `type:"structure"` @@ -9843,7 +10019,7 @@ type SchemaDefinition struct { // Specifies one or more columns that store your data. // // Each schema can have up to 100 columns. Each column can have up to 100 nested - // types + // types. Columns []*Column `locationName:"columns" type:"list"` } @@ -10435,6 +10611,60 @@ func (s *ThrottlingException) RequestID() string { return s.RespMetadata.RequestID } +// A partition defined by a timestamp. +type TimestampPartition struct { + _ struct{} `type:"structure"` + + // The attribute name of the partition defined by a timestamp. + // + // AttributeName is a required field + AttributeName *string `locationName:"attributeName" min:"1" type:"string" required:"true"` + + // The timestamp format of a partition defined by a timestamp. + TimestampFormat *string `locationName:"timestampFormat" min:"1" type:"string"` +} + +// String returns the string representation +func (s TimestampPartition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TimestampPartition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TimestampPartition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TimestampPartition"} + if s.AttributeName == nil { + invalidParams.Add(request.NewErrParamRequired("AttributeName")) + } + if s.AttributeName != nil && len(*s.AttributeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1)) + } + if s.TimestampFormat != nil && len(*s.TimestampFormat) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TimestampFormat", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttributeName sets the AttributeName field's value. +func (s *TimestampPartition) SetAttributeName(v string) *TimestampPartition { + s.AttributeName = &v + return s +} + +// SetTimestampFormat sets the TimestampFormat field's value. +func (s *TimestampPartition) SetTimestampFormat(v string) *TimestampPartition { + s.TimestampFormat = &v + return s +} + // Information about the dataset whose content generation triggers the new dataset // content generation. type TriggeringDataset struct { diff --git a/service/lookoutmetrics/api.go b/service/lookoutmetrics/api.go index d40b373000d..42523297d10 100644 --- a/service/lookoutmetrics/api.go +++ b/service/lookoutmetrics/api.go @@ -4121,8 +4121,8 @@ type CreateMetricSetInput struct { // MetricSource is a required field MetricSource *MetricSource `type:"structure" required:"true"` - // After an interval ends, the amount of time that the detector waits before - // importing data. + // After an interval ends, the amount of seconds that the detector waits before + // importing data. Offset is only supported for S3 and Redshift datasources. Offset *int64 `type:"integer"` // A list of tags (https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html) @@ -4835,7 +4835,7 @@ type DescribeMetricSetOutput struct { // Contains information about the dataset's source data. MetricSource *MetricSource `type:"structure"` - // The offset for the dataset. + // The offset in seconds. Only supported for S3 and Redshift datasources. Offset *int64 `type:"integer"` // Contains information about the column used for tracking time in your source @@ -7605,8 +7605,8 @@ type UpdateMetricSetInput struct { // Contains information about source data used to generate a metric. MetricSource *MetricSource `type:"structure"` - // After an interval ends, the amount of time that the detector waits before - // importing data. + // After an interval ends, the amount of seconds that the detector waits before + // importing data. Offset is only supported for S3 and Redshift datasources. Offset *int64 `type:"integer"` // The timestamp column. @@ -7982,6 +7982,9 @@ const ( // AnomalyDetectorStatusInactive is a AnomalyDetectorStatus enum value AnomalyDetectorStatusInactive = "INACTIVE" + // AnomalyDetectorStatusLearning is a AnomalyDetectorStatus enum value + AnomalyDetectorStatusLearning = "LEARNING" + // AnomalyDetectorStatusBackTestActivating is a AnomalyDetectorStatus enum value AnomalyDetectorStatusBackTestActivating = "BACK_TEST_ACTIVATING" @@ -8000,6 +8003,7 @@ func AnomalyDetectorStatus_Values() []string { AnomalyDetectorStatusDeleting, AnomalyDetectorStatusFailed, AnomalyDetectorStatusInactive, + AnomalyDetectorStatusLearning, AnomalyDetectorStatusBackTestActivating, AnomalyDetectorStatusBackTestActive, AnomalyDetectorStatusBackTestComplete,