'2.0', 'metadata' => [ 'apiVersion' => '2020-11-30', 'endpointPrefix' => 'greengrass', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'AWS GreengrassV2', 'serviceFullName' => 'AWS IoT Greengrass V2', 'serviceId' => 'GreengrassV2', 'signatureVersion' => 'v4', 'uid' => 'greengrassv2-2020-11-30', ], 'operations' => [ 'CancelDeployment' => [ 'name' => 'CancelDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/v2/deployments/{deploymentId}/cancel', ], 'input' => [ 'shape' => 'CancelDeploymentRequest', ], 'output' => [ 'shape' => 'CancelDeploymentResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'CreateComponentVersion' => [ 'name' => 'CreateComponentVersion', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/v2/createComponentVersion', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateComponentVersionRequest', ], 'output' => [ 'shape' => 'CreateComponentVersionResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ServiceQuotaExceededException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'CreateDeployment' => [ 'name' => 'CreateDeployment', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/v2/deployments', 'responseCode' => 201, ], 'input' => [ 'shape' => 'CreateDeploymentRequest', ], 'output' => [ 'shape' => 'CreateDeploymentResponse', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteComponent' => [ 'name' => 'DeleteComponent', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/v2/components/{arn}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteComponentRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ConflictException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'DeleteCoreDevice' => [ 'name' => 'DeleteCoreDevice', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/greengrass/v2/coreDevices/{coreDeviceThingName}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteCoreDeviceRequest', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'ConflictException', ], ], ], 'DescribeComponent' => [ 'name' => 'DescribeComponent', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/components/{arn}/metadata', ], 'input' => [ 'shape' => 'DescribeComponentRequest', ], 'output' => [ 'shape' => 'DescribeComponentResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetComponent' => [ 'name' => 'GetComponent', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/components/{arn}', ], 'input' => [ 'shape' => 'GetComponentRequest', ], 'output' => [ 'shape' => 'GetComponentResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetComponentVersionArtifact' => [ 'name' => 'GetComponentVersionArtifact', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/components/{arn}/artifacts/{artifactName+}', ], 'input' => [ 'shape' => 'GetComponentVersionArtifactRequest', ], 'output' => [ 'shape' => 'GetComponentVersionArtifactResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'GetCoreDevice' => [ 'name' => 'GetCoreDevice', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/coreDevices/{coreDeviceThingName}', ], 'input' => [ 'shape' => 'GetCoreDeviceRequest', ], 'output' => [ 'shape' => 'GetCoreDeviceResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'GetDeployment' => [ 'name' => 'GetDeployment', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/deployments/{deploymentId}', ], 'input' => [ 'shape' => 'GetDeploymentRequest', ], 'output' => [ 'shape' => 'GetDeploymentResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListComponentVersions' => [ 'name' => 'ListComponentVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/components/{arn}/versions', ], 'input' => [ 'shape' => 'ListComponentVersionsRequest', ], 'output' => [ 'shape' => 'ListComponentVersionsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListComponents' => [ 'name' => 'ListComponents', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/components', ], 'input' => [ 'shape' => 'ListComponentsRequest', ], 'output' => [ 'shape' => 'ListComponentsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], ], ], 'ListCoreDevices' => [ 'name' => 'ListCoreDevices', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/coreDevices', ], 'input' => [ 'shape' => 'ListCoreDevicesRequest', ], 'output' => [ 'shape' => 'ListCoreDevicesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListDeployments' => [ 'name' => 'ListDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/deployments', ], 'input' => [ 'shape' => 'ListDeploymentsRequest', ], 'output' => [ 'shape' => 'ListDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListEffectiveDeployments' => [ 'name' => 'ListEffectiveDeployments', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/coreDevices/{coreDeviceThingName}/effectiveDeployments', ], 'input' => [ 'shape' => 'ListEffectiveDeploymentsRequest', ], 'output' => [ 'shape' => 'ListEffectiveDeploymentsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListInstalledComponents' => [ 'name' => 'ListInstalledComponents', 'http' => [ 'method' => 'GET', 'requestUri' => '/greengrass/v2/coreDevices/{coreDeviceThingName}/installedComponents', ], 'input' => [ 'shape' => 'ListInstalledComponentsRequest', ], 'output' => [ 'shape' => 'ListInstalledComponentsResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ThrottlingException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'GET', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ResolveComponentCandidates' => [ 'name' => 'ResolveComponentCandidates', 'http' => [ 'method' => 'POST', 'requestUri' => '/greengrass/v2/resolveComponentCandidates', ], 'input' => [ 'shape' => 'ResolveComponentCandidatesRequest', ], 'output' => [ 'shape' => 'ResolveComponentCandidatesResponse', ], 'errors' => [ [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ConflictException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/tags/{resourceArn}', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'CancelDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'deploymentId', ], 'members' => [ 'deploymentId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'deploymentId', ], ], ], 'CancelDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'NonEmptyString', ], ], ], 'CloudComponentState' => [ 'type' => 'string', 'enum' => [ 'REQUESTED', 'INITIATED', 'DEPLOYABLE', 'FAILED', 'DEPRECATED', ], ], 'CloudComponentStatus' => [ 'type' => 'structure', 'members' => [ 'componentState' => [ 'shape' => 'CloudComponentState', ], 'message' => [ 'shape' => 'NonEmptyString', ], 'errors' => [ 'shape' => 'StringMap', ], ], ], 'Component' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'ComponentARN', ], 'componentName' => [ 'shape' => 'ComponentNameString', ], 'latestVersion' => [ 'shape' => 'ComponentLatestVersion', ], ], ], 'ComponentARN' => [ 'type' => 'string', 'pattern' => 'arn:aws(-cn|-us-gov)?:greengrass:[^:]+:(aws|[0-9]+):components:[^:]+', ], 'ComponentCandidate' => [ 'type' => 'structure', 'members' => [ 'componentName' => [ 'shape' => 'ComponentNameString', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'versionRequirements' => [ 'shape' => 'ComponentVersionRequirementMap', ], ], ], 'ComponentCandidateList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComponentCandidate', ], ], 'ComponentConfigurationPath' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'ComponentConfigurationPathList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComponentConfigurationPath', ], ], 'ComponentConfigurationString' => [ 'type' => 'string', 'max' => 65536, 'min' => 1, ], 'ComponentConfigurationUpdate' => [ 'type' => 'structure', 'members' => [ 'merge' => [ 'shape' => 'ComponentConfigurationString', ], 'reset' => [ 'shape' => 'ComponentConfigurationPathList', ], ], ], 'ComponentDependencyMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'ComponentDependencyRequirement', ], ], 'ComponentDependencyRequirement' => [ 'type' => 'structure', 'members' => [ 'versionRequirement' => [ 'shape' => 'NonEmptyString', ], 'dependencyType' => [ 'shape' => 'ComponentDependencyType', ], ], ], 'ComponentDependencyType' => [ 'type' => 'string', 'enum' => [ 'HARD', 'SOFT', ], ], 'ComponentDeploymentSpecification' => [ 'type' => 'structure', 'members' => [ 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'configurationUpdate' => [ 'shape' => 'ComponentConfigurationUpdate', ], 'runWith' => [ 'shape' => 'ComponentRunWith', ], ], ], 'ComponentDeploymentSpecifications' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'ComponentDeploymentSpecification', ], ], 'ComponentLatestVersion' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'ComponentVersionARN', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'creationTimestamp' => [ 'shape' => 'Timestamp', ], 'description' => [ 'shape' => 'NonEmptyString', ], 'publisher' => [ 'shape' => 'NonEmptyString', ], 'platforms' => [ 'shape' => 'ComponentPlatformList', ], ], ], 'ComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Component', ], ], 'ComponentNameString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[a-zA-Z0-9-_.]+', ], 'ComponentPlatform' => [ 'type' => 'structure', 'members' => [ 'name' => [ 'shape' => 'NonEmptyString', ], 'attributes' => [ 'shape' => 'PlatformAttributesMap', ], ], ], 'ComponentPlatformList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComponentPlatform', ], ], 'ComponentRunWith' => [ 'type' => 'structure', 'members' => [ 'posixUser' => [ 'shape' => 'NonEmptyString', ], ], ], 'ComponentVersionARN' => [ 'type' => 'string', 'pattern' => 'arn:aws(-cn|-us-gov)?:greengrass:[^:]+:(aws|[0-9]+):components:[^:]+:versions:[^:]+', ], 'ComponentVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ComponentVersionListItem', ], ], 'ComponentVersionListItem' => [ 'type' => 'structure', 'members' => [ 'componentName' => [ 'shape' => 'ComponentNameString', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'arn' => [ 'shape' => 'NonEmptyString', ], ], ], 'ComponentVersionRequirementMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'NonEmptyString', ], ], 'ComponentVersionString' => [ 'type' => 'string', 'max' => 64, 'min' => 1, 'pattern' => '[0-9a-zA-Z-.+]+', ], 'ComponentVisibilityScope' => [ 'type' => 'string', 'enum' => [ 'PRIVATE', 'PUBLIC', ], ], 'ConflictException' => [ 'type' => 'structure', 'required' => [ 'message', 'resourceId', 'resourceType', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'resourceId' => [ 'shape' => 'String', ], 'resourceType' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'CoreDevice' => [ 'type' => 'structure', 'members' => [ 'coreDeviceThingName' => [ 'shape' => 'CoreDeviceThingName', ], 'status' => [ 'shape' => 'CoreDeviceStatus', ], 'lastStatusUpdateTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'CoreDeviceArchitectureString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'CoreDevicePlatformString' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'CoreDeviceStatus' => [ 'type' => 'string', 'enum' => [ 'HEALTHY', 'UNHEALTHY', ], ], 'CoreDeviceThingName' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'CoreDevicesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CoreDevice', ], ], 'CreateComponentVersionRequest' => [ 'type' => 'structure', 'members' => [ 'inlineRecipe' => [ 'shape' => 'RecipeBlob', ], 'lambdaFunction' => [ 'shape' => 'LambdaFunctionRecipeSource', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateComponentVersionResponse' => [ 'type' => 'structure', 'required' => [ 'componentName', 'componentVersion', 'creationTimestamp', 'status', ], 'members' => [ 'arn' => [ 'shape' => 'ComponentVersionARN', ], 'componentName' => [ 'shape' => 'ComponentNameString', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'creationTimestamp' => [ 'shape' => 'Timestamp', ], 'status' => [ 'shape' => 'CloudComponentStatus', ], ], ], 'CreateDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'targetArn', ], 'members' => [ 'targetArn' => [ 'shape' => 'TargetARN', ], 'deploymentName' => [ 'shape' => 'NonEmptyString', ], 'components' => [ 'shape' => 'ComponentDeploymentSpecifications', ], 'iotJobConfiguration' => [ 'shape' => 'DeploymentIoTJobConfiguration', ], 'deploymentPolicies' => [ 'shape' => 'DeploymentPolicies', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'CreateDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'deploymentId' => [ 'shape' => 'NonEmptyString', ], 'iotJobId' => [ 'shape' => 'NonEmptyString', ], 'iotJobArn' => [ 'shape' => 'IoTJobARN', ], ], ], 'DefaultMaxResults' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'DeleteComponentRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'ComponentVersionARN', 'location' => 'uri', 'locationName' => 'arn', ], ], ], 'DeleteCoreDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'coreDeviceThingName', ], 'members' => [ 'coreDeviceThingName' => [ 'shape' => 'CoreDeviceThingName', 'location' => 'uri', 'locationName' => 'coreDeviceThingName', ], ], ], 'Deployment' => [ 'type' => 'structure', 'members' => [ 'targetArn' => [ 'shape' => 'TargetARN', ], 'revisionId' => [ 'shape' => 'NonEmptyString', ], 'deploymentId' => [ 'shape' => 'NonEmptyString', ], 'deploymentName' => [ 'shape' => 'NonEmptyString', ], 'creationTimestamp' => [ 'shape' => 'Timestamp', ], 'deploymentStatus' => [ 'shape' => 'DeploymentStatus', ], 'isLatestForTarget' => [ 'shape' => 'IsLatestForTarget', ], ], ], 'DeploymentComponentUpdatePolicy' => [ 'type' => 'structure', 'members' => [ 'timeoutInSeconds' => [ 'shape' => 'OptionalInteger', 'box' => true, ], 'action' => [ 'shape' => 'DeploymentComponentUpdatePolicyAction', ], ], ], 'DeploymentComponentUpdatePolicyAction' => [ 'type' => 'string', 'enum' => [ 'NOTIFY_COMPONENTS', 'SKIP_NOTIFY_COMPONENTS', ], ], 'DeploymentConfigurationValidationPolicy' => [ 'type' => 'structure', 'members' => [ 'timeoutInSeconds' => [ 'shape' => 'OptionalInteger', 'box' => true, ], ], ], 'DeploymentFailureHandlingPolicy' => [ 'type' => 'string', 'enum' => [ 'ROLLBACK', 'DO_NOTHING', ], ], 'DeploymentHistoryFilter' => [ 'type' => 'string', 'enum' => [ 'ALL', 'LATEST_ONLY', ], ], 'DeploymentID' => [ 'type' => 'string', ], 'DeploymentIoTJobConfiguration' => [ 'type' => 'structure', 'members' => [ 'jobExecutionsRolloutConfig' => [ 'shape' => 'IoTJobExecutionsRolloutConfig', ], 'abortConfig' => [ 'shape' => 'IoTJobAbortConfig', ], 'timeoutConfig' => [ 'shape' => 'IoTJobTimeoutConfig', ], ], ], 'DeploymentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Deployment', ], ], 'DeploymentName' => [ 'type' => 'string', ], 'DeploymentPolicies' => [ 'type' => 'structure', 'members' => [ 'failureHandlingPolicy' => [ 'shape' => 'DeploymentFailureHandlingPolicy', ], 'componentUpdatePolicy' => [ 'shape' => 'DeploymentComponentUpdatePolicy', ], 'configurationValidationPolicy' => [ 'shape' => 'DeploymentConfigurationValidationPolicy', ], ], ], 'DeploymentStatus' => [ 'type' => 'string', 'enum' => [ 'ACTIVE', 'COMPLETED', 'CANCELED', 'FAILED', 'INACTIVE', ], ], 'DescribeComponentRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'ComponentVersionARN', 'location' => 'uri', 'locationName' => 'arn', ], ], ], 'DescribeComponentResponse' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'ComponentVersionARN', ], 'componentName' => [ 'shape' => 'ComponentNameString', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'creationTimestamp' => [ 'shape' => 'Timestamp', ], 'publisher' => [ 'shape' => 'PublisherString', ], 'description' => [ 'shape' => 'DescriptionString', ], 'status' => [ 'shape' => 'CloudComponentStatus', ], 'platforms' => [ 'shape' => 'ComponentPlatformList', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 500, 'min' => 1, ], 'DescriptionString' => [ 'type' => 'string', ], 'EffectiveDeployment' => [ 'type' => 'structure', 'required' => [ 'deploymentId', 'deploymentName', 'targetArn', 'coreDeviceExecutionStatus', 'creationTimestamp', 'modifiedTimestamp', ], 'members' => [ 'deploymentId' => [ 'shape' => 'DeploymentID', ], 'deploymentName' => [ 'shape' => 'DeploymentName', ], 'iotJobId' => [ 'shape' => 'IoTJobId', ], 'iotJobArn' => [ 'shape' => 'IoTJobARN', ], 'description' => [ 'shape' => 'Description', ], 'targetArn' => [ 'shape' => 'TargetARN', ], 'coreDeviceExecutionStatus' => [ 'shape' => 'EffectiveDeploymentExecutionStatus', ], 'reason' => [ 'shape' => 'Reason', ], 'creationTimestamp' => [ 'shape' => 'Timestamp', ], 'modifiedTimestamp' => [ 'shape' => 'Timestamp', ], ], ], 'EffectiveDeploymentExecutionStatus' => [ 'type' => 'string', 'enum' => [ 'IN_PROGRESS', 'QUEUED', 'FAILED', 'COMPLETED', 'TIMED_OUT', 'CANCELED', 'REJECTED', ], ], 'EffectiveDeploymentsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EffectiveDeployment', ], ], 'FileSystemPath' => [ 'type' => 'string', ], 'GGCVersion' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'GenericV2ARN' => [ 'type' => 'string', 'pattern' => 'arn:aws(-cn|-us-gov)?:greengrass:[^:]+:(aws|[0-9]+):(components|deployments|coreDevices):.+', ], 'GetComponentRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'recipeOutputFormat' => [ 'shape' => 'RecipeOutputFormat', 'location' => 'querystring', 'locationName' => 'recipeOutputFormat', ], 'arn' => [ 'shape' => 'ComponentVersionARN', 'location' => 'uri', 'locationName' => 'arn', ], ], ], 'GetComponentResponse' => [ 'type' => 'structure', 'required' => [ 'recipeOutputFormat', 'recipe', ], 'members' => [ 'recipeOutputFormat' => [ 'shape' => 'RecipeOutputFormat', ], 'recipe' => [ 'shape' => 'RecipeBlob', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'GetComponentVersionArtifactRequest' => [ 'type' => 'structure', 'required' => [ 'arn', 'artifactName', ], 'members' => [ 'arn' => [ 'shape' => 'ComponentVersionARN', 'location' => 'uri', 'locationName' => 'arn', ], 'artifactName' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'artifactName', ], ], ], 'GetComponentVersionArtifactResponse' => [ 'type' => 'structure', 'required' => [ 'preSignedUrl', ], 'members' => [ 'preSignedUrl' => [ 'shape' => 'NonEmptyString', ], ], ], 'GetCoreDeviceRequest' => [ 'type' => 'structure', 'required' => [ 'coreDeviceThingName', ], 'members' => [ 'coreDeviceThingName' => [ 'shape' => 'CoreDeviceThingName', 'location' => 'uri', 'locationName' => 'coreDeviceThingName', ], ], ], 'GetCoreDeviceResponse' => [ 'type' => 'structure', 'members' => [ 'coreDeviceThingName' => [ 'shape' => 'CoreDeviceThingName', ], 'coreVersion' => [ 'shape' => 'GGCVersion', ], 'platform' => [ 'shape' => 'CoreDevicePlatformString', ], 'architecture' => [ 'shape' => 'CoreDeviceArchitectureString', ], 'status' => [ 'shape' => 'CoreDeviceStatus', ], 'lastStatusUpdateTimestamp' => [ 'shape' => 'Timestamp', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'GetDeploymentRequest' => [ 'type' => 'structure', 'required' => [ 'deploymentId', ], 'members' => [ 'deploymentId' => [ 'shape' => 'NonEmptyString', 'location' => 'uri', 'locationName' => 'deploymentId', ], ], ], 'GetDeploymentResponse' => [ 'type' => 'structure', 'members' => [ 'targetArn' => [ 'shape' => 'TargetARN', ], 'revisionId' => [ 'shape' => 'NonEmptyString', ], 'deploymentId' => [ 'shape' => 'NonEmptyString', ], 'deploymentName' => [ 'shape' => 'NullableString', ], 'deploymentStatus' => [ 'shape' => 'DeploymentStatus', ], 'iotJobId' => [ 'shape' => 'NullableString', ], 'iotJobArn' => [ 'shape' => 'IoTJobARN', ], 'components' => [ 'shape' => 'ComponentDeploymentSpecifications', ], 'deploymentPolicies' => [ 'shape' => 'DeploymentPolicies', ], 'iotJobConfiguration' => [ 'shape' => 'DeploymentIoTJobConfiguration', ], 'creationTimestamp' => [ 'shape' => 'Timestamp', ], 'isLatestForTarget' => [ 'shape' => 'IsLatestForTarget', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'InstalledComponent' => [ 'type' => 'structure', 'members' => [ 'componentName' => [ 'shape' => 'ComponentNameString', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'lifecycleState' => [ 'shape' => 'InstalledComponentLifecycleState', ], 'lifecycleStateDetails' => [ 'shape' => 'LifecycleStateDetails', ], 'isRoot' => [ 'shape' => 'IsRoot', ], ], ], 'InstalledComponentLifecycleState' => [ 'type' => 'string', 'enum' => [ 'NEW', 'INSTALLED', 'STARTING', 'RUNNING', 'STOPPING', 'ERRORED', 'BROKEN', 'FINISHED', ], ], 'InstalledComponentList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InstalledComponent', ], ], 'InternalServerException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'retryAfterSeconds' => [ 'shape' => 'RetryAfterSeconds', 'location' => 'header', 'locationName' => 'Retry-After', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'IoTJobARN' => [ 'type' => 'string', 'pattern' => 'arn:aws(-cn|-us-gov)?:iot:[^:]+:[0-9]+:job/.+', ], 'IoTJobAbortAction' => [ 'type' => 'string', 'enum' => [ 'CANCEL', ], ], 'IoTJobAbortConfig' => [ 'type' => 'structure', 'required' => [ 'criteriaList', ], 'members' => [ 'criteriaList' => [ 'shape' => 'IoTJobAbortCriteriaList', ], ], ], 'IoTJobAbortCriteria' => [ 'type' => 'structure', 'required' => [ 'failureType', 'action', 'thresholdPercentage', 'minNumberOfExecutedThings', ], 'members' => [ 'failureType' => [ 'shape' => 'IoTJobExecutionFailureType', ], 'action' => [ 'shape' => 'IoTJobAbortAction', ], 'thresholdPercentage' => [ 'shape' => 'IoTJobAbortThresholdPercentage', ], 'minNumberOfExecutedThings' => [ 'shape' => 'IoTJobMinimumNumberOfExecutedThings', ], ], ], 'IoTJobAbortCriteriaList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IoTJobAbortCriteria', ], 'min' => 1, ], 'IoTJobAbortThresholdPercentage' => [ 'type' => 'double', 'max' => 100, ], 'IoTJobExecutionFailureType' => [ 'type' => 'string', 'enum' => [ 'FAILED', 'REJECTED', 'TIMED_OUT', 'ALL', ], ], 'IoTJobExecutionsRolloutConfig' => [ 'type' => 'structure', 'members' => [ 'exponentialRate' => [ 'shape' => 'IoTJobExponentialRolloutRate', ], 'maximumPerMinute' => [ 'shape' => 'IoTJobMaxExecutionsPerMin', 'box' => true, ], ], ], 'IoTJobExponentialRolloutRate' => [ 'type' => 'structure', 'required' => [ 'baseRatePerMinute', 'incrementFactor', 'rateIncreaseCriteria', ], 'members' => [ 'baseRatePerMinute' => [ 'shape' => 'IoTJobRolloutBaseRatePerMinute', ], 'incrementFactor' => [ 'shape' => 'IoTJobRolloutIncrementFactor', ], 'rateIncreaseCriteria' => [ 'shape' => 'IoTJobRateIncreaseCriteria', ], ], ], 'IoTJobId' => [ 'type' => 'string', 'max' => 255, 'min' => 1, ], 'IoTJobInProgressTimeoutInMinutes' => [ 'type' => 'long', ], 'IoTJobMaxExecutionsPerMin' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'IoTJobMinimumNumberOfExecutedThings' => [ 'type' => 'integer', 'min' => 1, ], 'IoTJobNumberOfThings' => [ 'type' => 'integer', 'min' => 1, ], 'IoTJobRateIncreaseCriteria' => [ 'type' => 'structure', 'members' => [ 'numberOfNotifiedThings' => [ 'shape' => 'IoTJobNumberOfThings', 'box' => true, ], 'numberOfSucceededThings' => [ 'shape' => 'IoTJobNumberOfThings', 'box' => true, ], ], ], 'IoTJobRolloutBaseRatePerMinute' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'IoTJobRolloutIncrementFactor' => [ 'type' => 'double', 'max' => 5, 'min' => 1, ], 'IoTJobTimeoutConfig' => [ 'type' => 'structure', 'members' => [ 'inProgressTimeoutInMinutes' => [ 'shape' => 'IoTJobInProgressTimeoutInMinutes', 'box' => true, ], ], ], 'IsLatestForTarget' => [ 'type' => 'boolean', ], 'IsRoot' => [ 'type' => 'boolean', ], 'LambdaContainerParams' => [ 'type' => 'structure', 'members' => [ 'memorySizeInKB' => [ 'shape' => 'OptionalInteger', 'box' => true, ], 'mountROSysfs' => [ 'shape' => 'OptionalBoolean', 'box' => true, ], 'volumes' => [ 'shape' => 'LambdaVolumeList', ], 'devices' => [ 'shape' => 'LambdaDeviceList', ], ], ], 'LambdaDeviceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaDeviceMount', ], ], 'LambdaDeviceMount' => [ 'type' => 'structure', 'required' => [ 'path', ], 'members' => [ 'path' => [ 'shape' => 'FileSystemPath', ], 'permission' => [ 'shape' => 'LambdaFilesystemPermission', ], 'addGroupOwner' => [ 'shape' => 'OptionalBoolean', 'box' => true, ], ], ], 'LambdaEnvironmentVariables' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'String', ], ], 'LambdaEventSource' => [ 'type' => 'structure', 'required' => [ 'topic', 'type', ], 'members' => [ 'topic' => [ 'shape' => 'TopicString', ], 'type' => [ 'shape' => 'LambdaEventSourceType', ], ], ], 'LambdaEventSourceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaEventSource', ], ], 'LambdaEventSourceType' => [ 'type' => 'string', 'enum' => [ 'PUB_SUB', 'IOT_CORE', ], ], 'LambdaExecArg' => [ 'type' => 'string', ], 'LambdaExecArgsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaExecArg', ], ], 'LambdaExecutionParameters' => [ 'type' => 'structure', 'members' => [ 'eventSources' => [ 'shape' => 'LambdaEventSourceList', ], 'maxQueueSize' => [ 'shape' => 'OptionalInteger', 'box' => true, ], 'maxInstancesCount' => [ 'shape' => 'OptionalInteger', 'box' => true, ], 'maxIdleTimeInSeconds' => [ 'shape' => 'OptionalInteger', 'box' => true, ], 'timeoutInSeconds' => [ 'shape' => 'OptionalInteger', 'box' => true, ], 'statusTimeoutInSeconds' => [ 'shape' => 'OptionalInteger', 'box' => true, ], 'pinned' => [ 'shape' => 'OptionalBoolean', 'box' => true, ], 'inputPayloadEncodingType' => [ 'shape' => 'LambdaInputPayloadEncodingType', ], 'execArgs' => [ 'shape' => 'LambdaExecArgsList', ], 'environmentVariables' => [ 'shape' => 'LambdaEnvironmentVariables', ], 'linuxProcessParams' => [ 'shape' => 'LambdaLinuxProcessParams', ], ], ], 'LambdaFilesystemPermission' => [ 'type' => 'string', 'enum' => [ 'ro', 'rw', ], ], 'LambdaFunctionARNWithVersionNumber' => [ 'type' => 'string', 'pattern' => 'arn:aws(-cn|-us-gov)?:lambda:[^:]+:[0-9]+:function:[a-zA-Z0-9-_]+:[0-9]+', ], 'LambdaFunctionRecipeSource' => [ 'type' => 'structure', 'required' => [ 'lambdaArn', ], 'members' => [ 'lambdaArn' => [ 'shape' => 'LambdaFunctionARNWithVersionNumber', ], 'componentName' => [ 'shape' => 'ComponentNameString', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'componentPlatforms' => [ 'shape' => 'ComponentPlatformList', ], 'componentDependencies' => [ 'shape' => 'ComponentDependencyMap', ], 'componentLambdaParameters' => [ 'shape' => 'LambdaExecutionParameters', ], ], ], 'LambdaInputPayloadEncodingType' => [ 'type' => 'string', 'enum' => [ 'json', 'binary', ], ], 'LambdaIsolationMode' => [ 'type' => 'string', 'enum' => [ 'GreengrassContainer', 'NoContainer', ], ], 'LambdaLinuxProcessParams' => [ 'type' => 'structure', 'members' => [ 'isolationMode' => [ 'shape' => 'LambdaIsolationMode', ], 'containerParams' => [ 'shape' => 'LambdaContainerParams', ], ], ], 'LambdaVolumeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaVolumeMount', ], ], 'LambdaVolumeMount' => [ 'type' => 'structure', 'required' => [ 'sourcePath', 'destinationPath', ], 'members' => [ 'sourcePath' => [ 'shape' => 'FileSystemPath', ], 'destinationPath' => [ 'shape' => 'FileSystemPath', ], 'permission' => [ 'shape' => 'LambdaFilesystemPermission', ], 'addGroupOwner' => [ 'shape' => 'OptionalBoolean', 'box' => true, ], ], ], 'LifecycleStateDetails' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'ListComponentVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'ComponentARN', 'location' => 'uri', 'locationName' => 'arn', ], 'maxResults' => [ 'shape' => 'DefaultMaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextTokenString', 'box' => true, 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListComponentVersionsResponse' => [ 'type' => 'structure', 'members' => [ 'componentVersions' => [ 'shape' => 'ComponentVersionList', ], 'nextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'ListComponentsRequest' => [ 'type' => 'structure', 'members' => [ 'scope' => [ 'shape' => 'ComponentVisibilityScope', 'location' => 'querystring', 'locationName' => 'scope', ], 'maxResults' => [ 'shape' => 'DefaultMaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextTokenString', 'box' => true, 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListComponentsResponse' => [ 'type' => 'structure', 'members' => [ 'components' => [ 'shape' => 'ComponentList', ], 'nextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'ListCoreDevicesRequest' => [ 'type' => 'structure', 'members' => [ 'thingGroupArn' => [ 'shape' => 'ThingGroupARN', 'location' => 'querystring', 'locationName' => 'thingGroupArn', ], 'status' => [ 'shape' => 'CoreDeviceStatus', 'location' => 'querystring', 'locationName' => 'status', ], 'maxResults' => [ 'shape' => 'DefaultMaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextTokenString', 'box' => true, 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListCoreDevicesResponse' => [ 'type' => 'structure', 'members' => [ 'coreDevices' => [ 'shape' => 'CoreDevicesList', ], 'nextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'ListDeploymentsRequest' => [ 'type' => 'structure', 'members' => [ 'targetArn' => [ 'shape' => 'TargetARN', 'location' => 'querystring', 'locationName' => 'targetArn', ], 'historyFilter' => [ 'shape' => 'DeploymentHistoryFilter', 'location' => 'querystring', 'locationName' => 'historyFilter', ], 'maxResults' => [ 'shape' => 'DefaultMaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextTokenString', 'box' => true, 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'deployments' => [ 'shape' => 'DeploymentList', ], 'nextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'ListEffectiveDeploymentsRequest' => [ 'type' => 'structure', 'required' => [ 'coreDeviceThingName', ], 'members' => [ 'coreDeviceThingName' => [ 'shape' => 'CoreDeviceThingName', 'location' => 'uri', 'locationName' => 'coreDeviceThingName', ], 'maxResults' => [ 'shape' => 'DefaultMaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextTokenString', 'box' => true, 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListEffectiveDeploymentsResponse' => [ 'type' => 'structure', 'members' => [ 'effectiveDeployments' => [ 'shape' => 'EffectiveDeploymentsList', ], 'nextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'ListInstalledComponentsRequest' => [ 'type' => 'structure', 'required' => [ 'coreDeviceThingName', ], 'members' => [ 'coreDeviceThingName' => [ 'shape' => 'CoreDeviceThingName', 'location' => 'uri', 'locationName' => 'coreDeviceThingName', ], 'maxResults' => [ 'shape' => 'DefaultMaxResults', 'box' => true, 'location' => 'querystring', 'locationName' => 'maxResults', ], 'nextToken' => [ 'shape' => 'NextTokenString', 'box' => true, 'location' => 'querystring', 'locationName' => 'nextToken', ], ], ], 'ListInstalledComponentsResponse' => [ 'type' => 'structure', 'members' => [ 'installedComponents' => [ 'shape' => 'InstalledComponentList', ], 'nextToken' => [ 'shape' => 'NextTokenString', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'GenericV2ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'tags' => [ 'shape' => 'TagMap', ], ], ], 'NextTokenString' => [ 'type' => 'string', ], 'NonEmptyString' => [ 'type' => 'string', 'min' => 1, ], 'NullableString' => [ 'type' => 'string', ], 'OptionalBoolean' => [ 'type' => 'boolean', ], 'OptionalInteger' => [ 'type' => 'integer', ], 'PlatformAttributesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'NonEmptyString', ], ], 'PublisherString' => [ 'type' => 'string', ], 'Reason' => [ 'type' => 'string', ], 'RecipeBlob' => [ 'type' => 'blob', ], 'RecipeOutputFormat' => [ 'type' => 'string', 'enum' => [ 'JSON', 'YAML', ], ], 'ResolveComponentCandidatesRequest' => [ 'type' => 'structure', 'required' => [ 'platform', 'componentCandidates', ], 'members' => [ 'platform' => [ 'shape' => 'ComponentPlatform', ], 'componentCandidates' => [ 'shape' => 'ComponentCandidateList', ], ], ], 'ResolveComponentCandidatesResponse' => [ 'type' => 'structure', 'members' => [ 'resolvedComponentVersions' => [ 'shape' => 'ResolvedComponentVersionsList', ], ], ], 'ResolvedComponentVersion' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'ComponentVersionARN', ], 'componentName' => [ 'shape' => 'ComponentNameString', ], 'componentVersion' => [ 'shape' => 'ComponentVersionString', ], 'recipe' => [ 'shape' => 'RecipeBlob', ], ], ], 'ResolvedComponentVersionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResolvedComponentVersion', ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'required' => [ 'message', 'resourceId', 'resourceType', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'resourceId' => [ 'shape' => 'String', ], 'resourceType' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RetryAfterSeconds' => [ 'type' => 'integer', ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'required' => [ 'message', 'quotaCode', 'serviceCode', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'resourceId' => [ 'shape' => 'String', ], 'resourceType' => [ 'shape' => 'String', ], 'quotaCode' => [ 'shape' => 'String', ], 'serviceCode' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 402, ], 'exception' => true, ], 'String' => [ 'type' => 'string', ], 'StringMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'NonEmptyString', ], 'value' => [ 'shape' => 'NonEmptyString', ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^(?!aws:)[a-zA-Z+-=._:/]+$', ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], 'max' => 50, 'min' => 1, ], 'TagMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'TagKey', ], 'value' => [ 'shape' => 'TagValue', ], 'max' => 50, 'min' => 1, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'GenericV2ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tags' => [ 'shape' => 'TagMap', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, ], 'TargetARN' => [ 'type' => 'string', 'pattern' => 'arn:aws(-cn|-us-gov)?:iot:[^:]+:[0-9]+:(thing|thinggroup)/.+', ], 'ThingGroupARN' => [ 'type' => 'string', 'pattern' => 'arn:aws(-cn|-us-gov)?:iot:[^:]+:[0-9]+:thinggroup/.+', ], 'ThrottlingException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'quotaCode' => [ 'shape' => 'String', ], 'serviceCode' => [ 'shape' => 'String', ], 'retryAfterSeconds' => [ 'shape' => 'RetryAfterSeconds', 'location' => 'header', 'locationName' => 'Retry-After', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TopicString' => [ 'type' => 'string', ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'tagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'GenericV2ARN', 'location' => 'uri', 'locationName' => 'resourceArn', ], 'tagKeys' => [ 'shape' => 'TagKeyList', 'location' => 'querystring', 'locationName' => 'tagKeys', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'String', ], 'reason' => [ 'shape' => 'ValidationExceptionReason', ], 'fields' => [ 'shape' => 'ValidationExceptionFieldList', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ValidationExceptionField' => [ 'type' => 'structure', 'required' => [ 'name', 'message', ], 'members' => [ 'name' => [ 'shape' => 'String', ], 'message' => [ 'shape' => 'String', ], ], ], 'ValidationExceptionFieldList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ValidationExceptionField', ], ], 'ValidationExceptionReason' => [ 'type' => 'string', 'enum' => [ 'UNKNOWN_OPERATION', 'CANNOT_PARSE', 'FIELD_VALIDATION_FAILED', 'OTHER', ], ], ],];