'2.0', 'metadata' => ['apiVersion' => '2018-05-14', 'endpointPrefix' => 'projects.iot1click', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'AWS IoT 1-Click Projects', 'serviceFullName' => 'AWS IoT 1-Click Projects Service', 'serviceId' => 'IoT 1Click Projects', 'signatureVersion' => 'v4', 'signingName' => 'iot1click', 'uid' => 'iot1click-projects-2018-05-14'], 'operations' => ['AssociateDeviceWithPlacement' => ['name' => 'AssociateDeviceWithPlacement', 'http' => ['method' => 'PUT', 'requestUri' => '/projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}'], 'input' => ['shape' => 'AssociateDeviceWithPlacementRequest'], 'output' => ['shape' => 'AssociateDeviceWithPlacementResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceConflictException'], ['shape' => 'ResourceNotFoundException']]], 'CreatePlacement' => ['name' => 'CreatePlacement', 'http' => ['method' => 'POST', 'requestUri' => '/projects/{projectName}/placements'], 'input' => ['shape' => 'CreatePlacementRequest'], 'output' => ['shape' => 'CreatePlacementResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceConflictException'], ['shape' => 'ResourceNotFoundException']]], 'CreateProject' => ['name' => 'CreateProject', 'http' => ['method' => 'POST', 'requestUri' => '/projects'], 'input' => ['shape' => 'CreateProjectRequest'], 'output' => ['shape' => 'CreateProjectResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceConflictException']]], 'DeletePlacement' => ['name' => 'DeletePlacement', 'http' => ['method' => 'DELETE', 'requestUri' => '/projects/{projectName}/placements/{placementName}'], 'input' => ['shape' => 'DeletePlacementRequest'], 'output' => ['shape' => 'DeletePlacementResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'TooManyRequestsException']]], 'DeleteProject' => ['name' => 'DeleteProject', 'http' => ['method' => 'DELETE', 'requestUri' => '/projects/{projectName}'], 'input' => ['shape' => 'DeleteProjectRequest'], 'output' => ['shape' => 'DeleteProjectResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'TooManyRequestsException']]], 'DescribePlacement' => ['name' => 'DescribePlacement', 'http' => ['method' => 'GET', 'requestUri' => '/projects/{projectName}/placements/{placementName}'], 'input' => ['shape' => 'DescribePlacementRequest'], 'output' => ['shape' => 'DescribePlacementResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException']]], 'DescribeProject' => ['name' => 'DescribeProject', 'http' => ['method' => 'GET', 'requestUri' => '/projects/{projectName}'], 'input' => ['shape' => 'DescribeProjectRequest'], 'output' => ['shape' => 'DescribeProjectResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException']]], 'DisassociateDeviceFromPlacement' => ['name' => 'DisassociateDeviceFromPlacement', 'http' => ['method' => 'DELETE', 'requestUri' => '/projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}'], 'input' => ['shape' => 'DisassociateDeviceFromPlacementRequest'], 'output' => ['shape' => 'DisassociateDeviceFromPlacementResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'TooManyRequestsException']]], 'GetDevicesInPlacement' => ['name' => 'GetDevicesInPlacement', 'http' => ['method' => 'GET', 'requestUri' => '/projects/{projectName}/placements/{placementName}/devices'], 'input' => ['shape' => 'GetDevicesInPlacementRequest'], 'output' => ['shape' => 'GetDevicesInPlacementResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException']]], 'ListPlacements' => ['name' => 'ListPlacements', 'http' => ['method' => 'GET', 'requestUri' => '/projects/{projectName}/placements'], 'input' => ['shape' => 'ListPlacementsRequest'], 'output' => ['shape' => 'ListPlacementsResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException']]], 'ListProjects' => ['name' => 'ListProjects', 'http' => ['method' => 'GET', 'requestUri' => '/projects'], 'input' => ['shape' => 'ListProjectsRequest'], 'output' => ['shape' => 'ListProjectsResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException']]], 'UpdatePlacement' => ['name' => 'UpdatePlacement', 'http' => ['method' => 'PUT', 'requestUri' => '/projects/{projectName}/placements/{placementName}'], 'input' => ['shape' => 'UpdatePlacementRequest'], 'output' => ['shape' => 'UpdatePlacementResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'TooManyRequestsException']]], 'UpdateProject' => ['name' => 'UpdateProject', 'http' => ['method' => 'PUT', 'requestUri' => '/projects/{projectName}'], 'input' => ['shape' => 'UpdateProjectRequest'], 'output' => ['shape' => 'UpdateProjectResponse'], 'errors' => [['shape' => 'InternalFailureException'], ['shape' => 'InvalidRequestException'], ['shape' => 'ResourceNotFoundException'], ['shape' => 'TooManyRequestsException']]]], 'shapes' => ['AssociateDeviceWithPlacementRequest' => ['type' => 'structure', 'required' => ['projectName', 'placementName', 'deviceId', 'deviceTemplateName'], 'members' => ['projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName'], 'placementName' => ['shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName'], 'deviceId' => ['shape' => 'DeviceId'], 'deviceTemplateName' => ['shape' => 'DeviceTemplateName', 'location' => 'uri', 'locationName' => 'deviceTemplateName']]], 'AssociateDeviceWithPlacementResponse' => ['type' => 'structure', 'members' => []], 'AttributeDefaultValue' => ['type' => 'string', 'max' => 800], 'AttributeName' => ['type' => 'string', 'max' => 128, 'min' => 1], 'AttributeValue' => ['type' => 'string', 'max' => 800], 'Code' => ['type' => 'string'], 'CreatePlacementRequest' => ['type' => 'structure', 'required' => ['placementName', 'projectName'], 'members' => ['placementName' => ['shape' => 'PlacementName'], 'projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName'], 'attributes' => ['shape' => 'PlacementAttributeMap']]], 'CreatePlacementResponse' => ['type' => 'structure', 'members' => []], 'CreateProjectRequest' => ['type' => 'structure', 'required' => ['projectName'], 'members' => ['projectName' => ['shape' => 'ProjectName'], 'description' => ['shape' => 'Description'], 'placementTemplate' => ['shape' => 'PlacementTemplate']]], 'CreateProjectResponse' => ['type' => 'structure', 'members' => []], 'DefaultPlacementAttributeMap' => ['type' => 'map', 'key' => ['shape' => 'AttributeName'], 'value' => ['shape' => 'AttributeDefaultValue']], 'DeletePlacementRequest' => ['type' => 'structure', 'required' => ['placementName', 'projectName'], 'members' => ['placementName' => ['shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName'], 'projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName']]], 'DeletePlacementResponse' => ['type' => 'structure', 'members' => []], 'DeleteProjectRequest' => ['type' => 'structure', 'required' => ['projectName'], 'members' => ['projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName']]], 'DeleteProjectResponse' => ['type' => 'structure', 'members' => []], 'DescribePlacementRequest' => ['type' => 'structure', 'required' => ['placementName', 'projectName'], 'members' => ['placementName' => ['shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName'], 'projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName']]], 'DescribePlacementResponse' => ['type' => 'structure', 'required' => ['placement'], 'members' => ['placement' => ['shape' => 'PlacementDescription']]], 'DescribeProjectRequest' => ['type' => 'structure', 'required' => ['projectName'], 'members' => ['projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName']]], 'DescribeProjectResponse' => ['type' => 'structure', 'required' => ['project'], 'members' => ['project' => ['shape' => 'ProjectDescription']]], 'Description' => ['type' => 'string', 'max' => 500, 'min' => 0], 'DeviceCallbackKey' => ['type' => 'string', 'max' => 128, 'min' => 1], 'DeviceCallbackOverrideMap' => ['type' => 'map', 'key' => ['shape' => 'DeviceCallbackKey'], 'value' => ['shape' => 'DeviceCallbackValue']], 'DeviceCallbackValue' => ['type' => 'string', 'max' => 200], 'DeviceId' => ['type' => 'string', 'max' => 32, 'min' => 1], 'DeviceMap' => ['type' => 'map', 'key' => ['shape' => 'DeviceTemplateName'], 'value' => ['shape' => 'DeviceId']], 'DeviceTemplate' => ['type' => 'structure', 'members' => ['deviceType' => ['shape' => 'DeviceType'], 'callbackOverrides' => ['shape' => 'DeviceCallbackOverrideMap']]], 'DeviceTemplateMap' => ['type' => 'map', 'key' => ['shape' => 'DeviceTemplateName'], 'value' => ['shape' => 'DeviceTemplate']], 'DeviceTemplateName' => ['type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_-]+$'], 'DeviceType' => ['type' => 'string', 'max' => 128], 'DisassociateDeviceFromPlacementRequest' => ['type' => 'structure', 'required' => ['projectName', 'placementName', 'deviceTemplateName'], 'members' => ['projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName'], 'placementName' => ['shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName'], 'deviceTemplateName' => ['shape' => 'DeviceTemplateName', 'location' => 'uri', 'locationName' => 'deviceTemplateName']]], 'DisassociateDeviceFromPlacementResponse' => ['type' => 'structure', 'members' => []], 'GetDevicesInPlacementRequest' => ['type' => 'structure', 'required' => ['projectName', 'placementName'], 'members' => ['projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName'], 'placementName' => ['shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName']]], 'GetDevicesInPlacementResponse' => ['type' => 'structure', 'required' => ['devices'], 'members' => ['devices' => ['shape' => 'DeviceMap']]], 'InternalFailureException' => ['type' => 'structure', 'required' => ['code', 'message'], 'members' => ['code' => ['shape' => 'Code'], 'message' => ['shape' => 'Message']], 'error' => ['httpStatusCode' => 500], 'exception' => \true], 'InvalidRequestException' => ['type' => 'structure', 'required' => ['code', 'message'], 'members' => ['code' => ['shape' => 'Code'], 'message' => ['shape' => 'Message']], 'error' => ['httpStatusCode' => 400], 'exception' => \true], 'ListPlacementsRequest' => ['type' => 'structure', 'required' => ['projectName'], 'members' => ['projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName'], 'nextToken' => ['shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken'], 'maxResults' => ['shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults']]], 'ListPlacementsResponse' => ['type' => 'structure', 'required' => ['placements'], 'members' => ['placements' => ['shape' => 'PlacementSummaryList'], 'nextToken' => ['shape' => 'NextToken']]], 'ListProjectsRequest' => ['type' => 'structure', 'members' => ['nextToken' => ['shape' => 'NextToken', 'location' => 'querystring', 'locationName' => 'nextToken'], 'maxResults' => ['shape' => 'MaxResults', 'location' => 'querystring', 'locationName' => 'maxResults']]], 'ListProjectsResponse' => ['type' => 'structure', 'required' => ['projects'], 'members' => ['projects' => ['shape' => 'ProjectSummaryList'], 'nextToken' => ['shape' => 'NextToken']]], 'MaxResults' => ['type' => 'integer', 'max' => 250, 'min' => 1], 'Message' => ['type' => 'string'], 'NextToken' => ['type' => 'string', 'max' => 1024, 'min' => 1], 'PlacementAttributeMap' => ['type' => 'map', 'key' => ['shape' => 'AttributeName'], 'value' => ['shape' => 'AttributeValue']], 'PlacementDescription' => ['type' => 'structure', 'required' => ['projectName', 'placementName', 'attributes', 'createdDate', 'updatedDate'], 'members' => ['projectName' => ['shape' => 'ProjectName'], 'placementName' => ['shape' => 'PlacementName'], 'attributes' => ['shape' => 'PlacementAttributeMap'], 'createdDate' => ['shape' => 'Time'], 'updatedDate' => ['shape' => 'Time']]], 'PlacementName' => ['type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9_-]+$'], 'PlacementSummary' => ['type' => 'structure', 'required' => ['projectName', 'placementName', 'createdDate', 'updatedDate'], 'members' => ['projectName' => ['shape' => 'ProjectName'], 'placementName' => ['shape' => 'PlacementName'], 'createdDate' => ['shape' => 'Time'], 'updatedDate' => ['shape' => 'Time']]], 'PlacementSummaryList' => ['type' => 'list', 'member' => ['shape' => 'PlacementSummary']], 'PlacementTemplate' => ['type' => 'structure', 'members' => ['defaultAttributes' => ['shape' => 'DefaultPlacementAttributeMap'], 'deviceTemplates' => ['shape' => 'DeviceTemplateMap']]], 'ProjectDescription' => ['type' => 'structure', 'required' => ['projectName', 'createdDate', 'updatedDate'], 'members' => ['projectName' => ['shape' => 'ProjectName'], 'description' => ['shape' => 'Description'], 'createdDate' => ['shape' => 'Time'], 'updatedDate' => ['shape' => 'Time'], 'placementTemplate' => ['shape' => 'PlacementTemplate']]], 'ProjectName' => ['type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[0-9A-Za-z_-]+$'], 'ProjectSummary' => ['type' => 'structure', 'required' => ['projectName', 'createdDate', 'updatedDate'], 'members' => ['projectName' => ['shape' => 'ProjectName'], 'createdDate' => ['shape' => 'Time'], 'updatedDate' => ['shape' => 'Time']]], 'ProjectSummaryList' => ['type' => 'list', 'member' => ['shape' => 'ProjectSummary']], 'ResourceConflictException' => ['type' => 'structure', 'required' => ['code', 'message'], 'members' => ['code' => ['shape' => 'Code'], 'message' => ['shape' => 'Message']], 'error' => ['httpStatusCode' => 409], 'exception' => \true], 'ResourceNotFoundException' => ['type' => 'structure', 'required' => ['code', 'message'], 'members' => ['code' => ['shape' => 'Code'], 'message' => ['shape' => 'Message']], 'error' => ['httpStatusCode' => 404], 'exception' => \true], 'Time' => ['type' => 'timestamp'], 'TooManyRequestsException' => ['type' => 'structure', 'required' => ['code', 'message'], 'members' => ['code' => ['shape' => 'Code'], 'message' => ['shape' => 'Message']], 'error' => ['httpStatusCode' => 429], 'exception' => \true], 'UpdatePlacementRequest' => ['type' => 'structure', 'required' => ['placementName', 'projectName'], 'members' => ['placementName' => ['shape' => 'PlacementName', 'location' => 'uri', 'locationName' => 'placementName'], 'projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName'], 'attributes' => ['shape' => 'PlacementAttributeMap']]], 'UpdatePlacementResponse' => ['type' => 'structure', 'members' => []], 'UpdateProjectRequest' => ['type' => 'structure', 'required' => ['projectName'], 'members' => ['projectName' => ['shape' => 'ProjectName', 'location' => 'uri', 'locationName' => 'projectName'], 'description' => ['shape' => 'Description'], 'placementTemplate' => ['shape' => 'PlacementTemplate']]], 'UpdateProjectResponse' => ['type' => 'structure', 'members' => []]]];