{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2025-03-03",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"api.iotmanagedintegrations",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Managed integrations for AWS IoT Device Management",
    "serviceId":"IoT Managed Integrations",
    "signatureVersion":"v4",
    "signingName":"iotmanagedintegrations",
    "uid":"iot-managed-integrations-2025-03-03"
  },
  "operations":{
    "CreateCredentialLocker":{
      "name":"CreateCredentialLocker",
      "http":{
        "method":"POST",
        "requestUri":"/credential-lockers",
        "responseCode":201
      },
      "input":{"shape":"CreateCredentialLockerRequest"},
      "output":{"shape":"CreateCredentialLockerResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Create a product credential locker. This operation will trigger the creation of all the manufacturing resources including the Wi-Fi setup key pair and device certificate.</p>"
    },
    "CreateDestination":{
      "name":"CreateDestination",
      "http":{
        "method":"POST",
        "requestUri":"/destinations",
        "responseCode":201
      },
      "input":{"shape":"CreateDestinationRequest"},
      "output":{"shape":"CreateDestinationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Create a destination. IoT managed integrations uses the destination to determine where to deliver notifications for a device. </p>"
    },
    "CreateEventLogConfiguration":{
      "name":"CreateEventLogConfiguration",
      "http":{
        "method":"POST",
        "requestUri":"/event-log-configurations",
        "responseCode":201
      },
      "input":{"shape":"CreateEventLogConfigurationRequest"},
      "output":{"shape":"CreateEventLogConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Set the event log configuration for the account, resource type, or specific resource.</p>"
    },
    "CreateManagedThing":{
      "name":"CreateManagedThing",
      "http":{
        "method":"POST",
        "requestUri":"/managed-things",
        "responseCode":201
      },
      "input":{"shape":"CreateManagedThingRequest"},
      "output":{"shape":"CreateManagedThingResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a managed thing. A managed thing contains the device identifier, protocol supported, and capabilities of the device in a protocol-specific format.</p>"
    },
    "CreateNotificationConfiguration":{
      "name":"CreateNotificationConfiguration",
      "http":{
        "method":"POST",
        "requestUri":"/notification-configurations",
        "responseCode":201
      },
      "input":{"shape":"CreateNotificationConfigurationRequest"},
      "output":{"shape":"CreateNotificationConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a notification configuration. A configuration is a connection between an event type and a destination that you have already created. </p>"
    },
    "CreateOtaTask":{
      "name":"CreateOtaTask",
      "http":{
        "method":"POST",
        "requestUri":"/ota-tasks",
        "responseCode":201
      },
      "input":{"shape":"CreateOtaTaskRequest"},
      "output":{"shape":"CreateOtaTaskResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Create an over-the-air (OTA) task to update a device.</p>"
    },
    "CreateOtaTaskConfiguration":{
      "name":"CreateOtaTaskConfiguration",
      "http":{
        "method":"POST",
        "requestUri":"/ota-task-configurations",
        "responseCode":201
      },
      "input":{"shape":"CreateOtaTaskConfigurationRequest"},
      "output":{"shape":"CreateOtaTaskConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Create a configuraiton for the over-the-air (OTA) task.</p>"
    },
    "CreateProvisioningProfile":{
      "name":"CreateProvisioningProfile",
      "http":{
        "method":"POST",
        "requestUri":"/provisioning-profiles",
        "responseCode":201
      },
      "input":{"shape":"CreateProvisioningProfileRequest"},
      "output":{"shape":"CreateProvisioningProfileResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Create a provisioning profile for a device to execute the provisioning flows using a provisioning template. The provisioning template is a document that defines the set of resources and policies applied to a device during the provisioning process.</p>"
    },
    "DeleteCredentialLocker":{
      "name":"DeleteCredentialLocker",
      "http":{
        "method":"DELETE",
        "requestUri":"/credential-lockers/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteCredentialLockerRequest"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete a credential locker. </p> <note> <p>This operation can't be undone and any existing device won't be able to use IoT managed integrations.</p> </note>",
      "idempotent":true
    },
    "DeleteDestination":{
      "name":"DeleteDestination",
      "http":{
        "method":"DELETE",
        "requestUri":"/destinations/{Name}",
        "responseCode":200
      },
      "input":{"shape":"DeleteDestinationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a customer-managed destination specified by id. </p>",
      "idempotent":true
    },
    "DeleteEventLogConfiguration":{
      "name":"DeleteEventLogConfiguration",
      "http":{
        "method":"DELETE",
        "requestUri":"/event-log-configurations/{Id}",
        "responseCode":200
      },
      "input":{"shape":"DeleteEventLogConfigurationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete an event log configuration.</p>",
      "idempotent":true
    },
    "DeleteManagedThing":{
      "name":"DeleteManagedThing",
      "http":{
        "method":"DELETE",
        "requestUri":"/managed-things/{Identifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteManagedThingRequest"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete a managed thing. If a controller is deleted, all of the devices connected to it will have their status changed to <code>PENDING</code>. It is not possible to remove a cloud device.</p>",
      "idempotent":true
    },
    "DeleteNotificationConfiguration":{
      "name":"DeleteNotificationConfiguration",
      "http":{
        "method":"DELETE",
        "requestUri":"/notification-configurations/{EventType}",
        "responseCode":200
      },
      "input":{"shape":"DeleteNotificationConfigurationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a notification configuration. </p>",
      "idempotent":true
    },
    "DeleteOtaTask":{
      "name":"DeleteOtaTask",
      "http":{
        "method":"DELETE",
        "requestUri":"/ota-tasks/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteOtaTaskRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete the over-the-air (OTA) task.</p>",
      "idempotent":true
    },
    "DeleteOtaTaskConfiguration":{
      "name":"DeleteOtaTaskConfiguration",
      "http":{
        "method":"DELETE",
        "requestUri":"/ota-task-configurations/{Identifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteOtaTaskConfigurationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete the over-the-air (OTA) task configuration.</p>",
      "idempotent":true
    },
    "DeleteProvisioningProfile":{
      "name":"DeleteProvisioningProfile",
      "http":{
        "method":"DELETE",
        "requestUri":"/provisioning-profiles/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteProvisioningProfileRequest"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Delete a provisioning profile.</p>",
      "idempotent":true
    },
    "GetCredentialLocker":{
      "name":"GetCredentialLocker",
      "http":{
        "method":"GET",
        "requestUri":"/credential-lockers/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCredentialLockerRequest"},
      "output":{"shape":"GetCredentialLockerResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get information on an existing credential locker</p>"
    },
    "GetCustomEndpoint":{
      "name":"GetCustomEndpoint",
      "http":{
        "method":"GET",
        "requestUri":"/custom-endpoint",
        "responseCode":200
      },
      "input":{"shape":"GetCustomEndpointRequest"},
      "output":{"shape":"GetCustomEndpointResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Returns the IoT managed integrations custom endpoint.</p>"
    },
    "GetDefaultEncryptionConfiguration":{
      "name":"GetDefaultEncryptionConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/configuration/account/encryption",
        "responseCode":200
      },
      "input":{"shape":"GetDefaultEncryptionConfigurationRequest"},
      "output":{"shape":"GetDefaultEncryptionConfigurationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalFailureException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Retrieves information about the default encryption configuration for the Amazon Web Services account in the default or specified region. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/key-management.html\">Key management</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
    },
    "GetDestination":{
      "name":"GetDestination",
      "http":{
        "method":"GET",
        "requestUri":"/destinations/{Name}",
        "responseCode":200
      },
      "input":{"shape":"GetDestinationRequest"},
      "output":{"shape":"GetDestinationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets a destination by ID. </p>"
    },
    "GetDeviceDiscovery":{
      "name":"GetDeviceDiscovery",
      "http":{
        "method":"GET",
        "requestUri":"/device-discoveries/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetDeviceDiscoveryRequest"},
      "output":{"shape":"GetDeviceDiscoveryResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Get the current state of a device discovery.</p>"
    },
    "GetEventLogConfiguration":{
      "name":"GetEventLogConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/event-log-configurations/{Id}",
        "responseCode":200
      },
      "input":{"shape":"GetEventLogConfigurationRequest"},
      "output":{"shape":"GetEventLogConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get an event log configuration.</p>"
    },
    "GetHubConfiguration":{
      "name":"GetHubConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/hub-configuration",
        "responseCode":200
      },
      "input":{"shape":"GetHubConfigurationRequest"},
      "output":{"shape":"GetHubConfigurationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get a hub configuration.</p>"
    },
    "GetManagedThing":{
      "name":"GetManagedThing",
      "http":{
        "method":"GET",
        "requestUri":"/managed-things/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetManagedThingRequest"},
      "output":{"shape":"GetManagedThingResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Get the attributes and capabilities associated with a managed thing.</p>"
    },
    "GetManagedThingCapabilities":{
      "name":"GetManagedThingCapabilities",
      "http":{
        "method":"GET",
        "requestUri":"/managed-things-capabilities/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetManagedThingCapabilitiesRequest"},
      "output":{"shape":"GetManagedThingCapabilitiesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the capabilities for a managed thing using the device ID.</p>"
    },
    "GetManagedThingConnectivityData":{
      "name":"GetManagedThingConnectivityData",
      "http":{
        "method":"POST",
        "requestUri":"/managed-things-connectivity-data/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetManagedThingConnectivityDataRequest"},
      "output":{"shape":"GetManagedThingConnectivityDataResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the connectivity status of a managed thing.</p>"
    },
    "GetManagedThingMetaData":{
      "name":"GetManagedThingMetaData",
      "http":{
        "method":"GET",
        "requestUri":"/managed-things-metadata/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetManagedThingMetaDataRequest"},
      "output":{"shape":"GetManagedThingMetaDataResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the metadata information for a managed thing.</p>"
    },
    "GetManagedThingState":{
      "name":"GetManagedThingState",
      "http":{
        "method":"GET",
        "requestUri":"/managed-thing-states/{ManagedThingId}",
        "responseCode":200
      },
      "input":{"shape":"GetManagedThingStateRequest"},
      "output":{"shape":"GetManagedThingStateResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalFailureException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Returns the managed thing state for the given device Id.</p>"
    },
    "GetNotificationConfiguration":{
      "name":"GetNotificationConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/notification-configurations/{EventType}",
        "responseCode":200
      },
      "input":{"shape":"GetNotificationConfigurationRequest"},
      "output":{"shape":"GetNotificationConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Get a notification configuration.</p>"
    },
    "GetOtaTask":{
      "name":"GetOtaTask",
      "http":{
        "method":"GET",
        "requestUri":"/ota-tasks/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetOtaTaskRequest"},
      "output":{"shape":"GetOtaTaskResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the over-the-air (OTA) task.</p>"
    },
    "GetOtaTaskConfiguration":{
      "name":"GetOtaTaskConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/ota-task-configurations/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetOtaTaskConfigurationRequest"},
      "output":{"shape":"GetOtaTaskConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get a configuraiton for the over-the-air (OTA) task.</p>"
    },
    "GetProvisioningProfile":{
      "name":"GetProvisioningProfile",
      "http":{
        "method":"GET",
        "requestUri":"/provisioning-profiles/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetProvisioningProfileRequest"},
      "output":{"shape":"GetProvisioningProfileResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get a provisioning profile by template name.</p>"
    },
    "GetRuntimeLogConfiguration":{
      "name":"GetRuntimeLogConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/runtime-log-configurations/{ManagedThingId}",
        "responseCode":200
      },
      "input":{"shape":"GetRuntimeLogConfigurationRequest"},
      "output":{"shape":"GetRuntimeLogConfigurationResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Get the runtime log configuration for a specific managed thing or for all managed things as a group.</p>"
    },
    "GetSchemaVersion":{
      "name":"GetSchemaVersion",
      "http":{
        "method":"GET",
        "requestUri":"/schema-versions/{Type}/{SchemaVersionedId}",
        "responseCode":200
      },
      "input":{"shape":"GetSchemaVersionRequest"},
      "output":{"shape":"GetSchemaVersionResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets a schema version with the provided information.</p>"
    },
    "ListCredentialLockers":{
      "name":"ListCredentialLockers",
      "http":{
        "method":"GET",
        "requestUri":"/credential-lockers",
        "responseCode":200
      },
      "input":{"shape":"ListCredentialLockersRequest"},
      "output":{"shape":"ListCredentialLockersResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List information on an existing credential locker.</p>"
    },
    "ListDestinations":{
      "name":"ListDestinations",
      "http":{
        "method":"GET",
        "requestUri":"/destinations",
        "responseCode":200
      },
      "input":{"shape":"ListDestinationsRequest"},
      "output":{"shape":"ListDestinationsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> List all destination names under one Amazon Web Services account.</p>"
    },
    "ListEventLogConfigurations":{
      "name":"ListEventLogConfigurations",
      "http":{
        "method":"GET",
        "requestUri":"/event-log-configurations",
        "responseCode":200
      },
      "input":{"shape":"ListEventLogConfigurationsRequest"},
      "output":{"shape":"ListEventLogConfigurationsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List all event log configurations for an account.</p>"
    },
    "ListManagedThingSchemas":{
      "name":"ListManagedThingSchemas",
      "http":{
        "method":"GET",
        "requestUri":"/managed-thing-schemas/{Identifier}",
        "responseCode":200
      },
      "input":{"shape":"ListManagedThingSchemasRequest"},
      "output":{"shape":"ListManagedThingSchemasResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List schemas associated with a managed thing.</p>"
    },
    "ListManagedThings":{
      "name":"ListManagedThings",
      "http":{
        "method":"GET",
        "requestUri":"/managed-things",
        "responseCode":200
      },
      "input":{"shape":"ListManagedThingsRequest"},
      "output":{"shape":"ListManagedThingsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List all of the associations and statuses for a managed thing by its owner.</p>"
    },
    "ListNotificationConfigurations":{
      "name":"ListNotificationConfigurations",
      "http":{
        "method":"GET",
        "requestUri":"/notification-configurations",
        "responseCode":200
      },
      "input":{"shape":"ListNotificationConfigurationsRequest"},
      "output":{"shape":"ListNotificationConfigurationsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> List all notification configurations.</p>"
    },
    "ListOtaTaskConfigurations":{
      "name":"ListOtaTaskConfigurations",
      "http":{
        "method":"GET",
        "requestUri":"/ota-task-configurations",
        "responseCode":200
      },
      "input":{"shape":"ListOtaTaskConfigurationsRequest"},
      "output":{"shape":"ListOtaTaskConfigurationsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List all of the over-the-air (OTA) task configurations.</p>"
    },
    "ListOtaTaskExecutions":{
      "name":"ListOtaTaskExecutions",
      "http":{
        "method":"GET",
        "requestUri":"/ota-tasks/{Identifier}/devices",
        "responseCode":200
      },
      "input":{"shape":"ListOtaTaskExecutionsRequest"},
      "output":{"shape":"ListOtaTaskExecutionsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List all of the over-the-air (OTA) task executions.</p>"
    },
    "ListOtaTasks":{
      "name":"ListOtaTasks",
      "http":{
        "method":"GET",
        "requestUri":"/ota-tasks",
        "responseCode":200
      },
      "input":{"shape":"ListOtaTasksRequest"},
      "output":{"shape":"ListOtaTasksResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List all of the over-the-air (OTA) tasks.</p>"
    },
    "ListProvisioningProfiles":{
      "name":"ListProvisioningProfiles",
      "http":{
        "method":"GET",
        "requestUri":"/provisioning-profiles",
        "responseCode":200
      },
      "input":{"shape":"ListProvisioningProfilesRequest"},
      "output":{"shape":"ListProvisioningProfilesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>List the provisioning profiles within the Amazon Web Services account.</p>"
    },
    "ListSchemaVersions":{
      "name":"ListSchemaVersions",
      "http":{
        "method":"GET",
        "requestUri":"/schema-versions/{Type}",
        "responseCode":200
      },
      "input":{"shape":"ListSchemaVersionsRequest"},
      "output":{"shape":"ListSchemaVersionsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists schema versions with the provided information.</p>"
    },
    "PutDefaultEncryptionConfiguration":{
      "name":"PutDefaultEncryptionConfiguration",
      "http":{
        "method":"POST",
        "requestUri":"/configuration/account/encryption",
        "responseCode":201
      },
      "input":{"shape":"PutDefaultEncryptionConfigurationRequest"},
      "output":{"shape":"PutDefaultEncryptionConfigurationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalFailureException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Sets the default encryption configuration for the Amazon Web Services account. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/key-management.html\">Key management</a> in the AWS IoT SiteWise User Guide.</p>"
    },
    "PutHubConfiguration":{
      "name":"PutHubConfiguration",
      "http":{
        "method":"PUT",
        "requestUri":"/hub-configuration",
        "responseCode":201
      },
      "input":{"shape":"PutHubConfigurationRequest"},
      "output":{"shape":"PutHubConfigurationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Update a hub configuration.</p>",
      "idempotent":true
    },
    "PutRuntimeLogConfiguration":{
      "name":"PutRuntimeLogConfiguration",
      "http":{
        "method":"PUT",
        "requestUri":"/runtime-log-configurations/{ManagedThingId}",
        "responseCode":200
      },
      "input":{"shape":"PutRuntimeLogConfigurationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Set the runtime log configuration for a specific managed thing or for all managed things as a group.</p>",
      "idempotent":true
    },
    "RegisterCustomEndpoint":{
      "name":"RegisterCustomEndpoint",
      "http":{
        "method":"POST",
        "requestUri":"/custom-endpoint",
        "responseCode":201
      },
      "input":{"shape":"RegisterCustomEndpointRequest"},
      "output":{"shape":"RegisterCustomEndpointResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Customers can request IoT managed integrations to manage the server trust for them or bring their own external server trusts for the custom domain. Returns an IoT managed integrations endpoint.</p>"
    },
    "ResetRuntimeLogConfiguration":{
      "name":"ResetRuntimeLogConfiguration",
      "http":{
        "method":"DELETE",
        "requestUri":"/runtime-log-configurations/{ManagedThingId}",
        "responseCode":200
      },
      "input":{"shape":"ResetRuntimeLogConfigurationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Reset a runtime log configuration for a specific managed thing or for all managed things as a group.</p>",
      "idempotent":true
    },
    "SendManagedThingCommand":{
      "name":"SendManagedThingCommand",
      "http":{
        "method":"POST",
        "requestUri":"/managed-things-command/{ManagedThingId}",
        "responseCode":202
      },
      "input":{"shape":"SendManagedThingCommandRequest"},
      "output":{"shape":"SendManagedThingCommandResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Send the command to the device represented by the managed thing. </p>"
    },
    "StartDeviceDiscovery":{
      "name":"StartDeviceDiscovery",
      "http":{
        "method":"POST",
        "requestUri":"/device-discoveries",
        "responseCode":201
      },
      "input":{"shape":"StartDeviceDiscoveryRequest"},
      "output":{"shape":"StartDeviceDiscoveryResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> During user-guided setup, this is used to start device discovery. The authentication material (install code) is passed as a message to the controller telling it to start the discovery.</p>"
    },
    "UpdateDestination":{
      "name":"UpdateDestination",
      "http":{
        "method":"PUT",
        "requestUri":"/destinations/{Name}",
        "responseCode":201
      },
      "input":{"shape":"UpdateDestinationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Update a destination specified by id. </p>",
      "idempotent":true
    },
    "UpdateEventLogConfiguration":{
      "name":"UpdateEventLogConfiguration",
      "http":{
        "method":"PATCH",
        "requestUri":"/event-log-configurations/{Id}",
        "responseCode":200
      },
      "input":{"shape":"UpdateEventLogConfigurationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Update an event log configuration by log configuration ID.</p>",
      "idempotent":true
    },
    "UpdateManagedThing":{
      "name":"UpdateManagedThing",
      "http":{
        "method":"PUT",
        "requestUri":"/managed-things/{Identifier}",
        "responseCode":204
      },
      "input":{"shape":"UpdateManagedThingRequest"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"UnauthorizedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Update the attributes and capabilities associated with a managed thing.</p>",
      "idempotent":true
    },
    "UpdateNotificationConfiguration":{
      "name":"UpdateNotificationConfiguration",
      "http":{
        "method":"PUT",
        "requestUri":"/notification-configurations/{EventType}",
        "responseCode":201
      },
      "input":{"shape":"UpdateNotificationConfigurationRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p> Update a notification configuration.</p>",
      "idempotent":true
    },
    "UpdateOtaTask":{
      "name":"UpdateOtaTask",
      "http":{
        "method":"PUT",
        "requestUri":"/ota-tasks/{Identifier}",
        "responseCode":204
      },
      "input":{"shape":"UpdateOtaTaskRequest"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Update an over-the-air (OTA) task.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AbortConfigCriteria":{
      "type":"structure",
      "members":{
        "Action":{
          "shape":"AbortCriteriaAction",
          "documentation":"<p>The action taken by the abort configuration.</p>"
        },
        "FailureType":{
          "shape":"AbortCriteriaFailureType",
          "documentation":"<p>Over-the-air (OTA) task abort criteria failure type.</p>"
        },
        "MinNumberOfExecutedThings":{
          "shape":"MinNumberOfExecutedThings",
          "documentation":"<p>The minimum number of things that must receive task execution notifications before the task can be aborted.</p>"
        },
        "ThresholdPercentage":{
          "shape":"ThresholdPercentage",
          "documentation":"<p>The minimum percentage of over-the-air (OTA) task execution failures that must occur to initiate the last abort.</p>"
        }
      },
      "documentation":"<p>Structure representing one abort config criteria.</p>"
    },
    "AbortConfigCriteriaList":{
      "type":"list",
      "member":{"shape":"AbortConfigCriteria"}
    },
    "AbortCriteriaAction":{
      "type":"string",
      "enum":["CANCEL"]
    },
    "AbortCriteriaFailureType":{
      "type":"string",
      "enum":[
        "FAILED",
        "REJECTED",
        "TIMED_OUT",
        "ALL"
      ]
    },
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>User is not authorized.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "ActionName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[/a-zA-Z0-9\\._ ]+"
    },
    "ActionReference":{
      "type":"string",
      "pattern":"[a-zA-Z.]+"
    },
    "ActionTraceId":{
      "type":"string",
      "max":20,
      "min":16,
      "pattern":"[a-zA-Z0-9]+=(?:_[0-9]+)?"
    },
    "AdvertisedProductId":{
      "type":"string",
      "max":5,
      "min":5,
      "pattern":"([A-Za-z0-9!#$%&()*\\+\\-;<=>?@^_`{|}~])+"
    },
    "AttributeName":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":".*[a-zA-Z0-9_.,@/:#-]+.*"
    },
    "AttributeValue":{
      "type":"string",
      "max":800,
      "min":0,
      "pattern":".*[a-zA-Z0-9_.,@/:#-]*.*"
    },
    "AuthMaterialString":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":"[0-9A-Za-z!#$%&()*\\+\\-;<=>?@^_`{|}~\\/: ]+",
      "sensitive":true
    },
    "AuthMaterialType":{
      "type":"string",
      "enum":[
        "WIFI_SETUP_QR_BAR_CODE",
        "ZWAVE_QR_BAR_CODE",
        "ZIGBEE_QR_BAR_CODE"
      ]
    },
    "BaseRatePerMinute":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "Brand":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9-_ ]+",
      "sensitive":true
    },
    "CaCertificate":{
      "type":"string",
      "pattern":"-----BEGIN CERTIFICATE-----.*(.|\\n)*-----END CERTIFICATE-----\\n?",
      "sensitive":true
    },
    "Capabilities":{
      "type":"string",
      "max":65535,
      "min":1,
      "pattern":"[a-zA-Z0-9\\s'\\x{0022},.:\\\\\\/{$}\\[\\]=_\\-\\+]+"
    },
    "CapabilityAction":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"CapabilityActionName",
          "documentation":"<p>Describe a capability action with a name.</p>"
        },
        "ref":{
          "shape":"ActionReference",
          "documentation":"<p>Describe a capability action with an reference.</p>"
        },
        "actionTraceId":{
          "shape":"ActionTraceId",
          "documentation":"<p>Describe a capability action with an <code>actionTraceId</code> for a response command.</p>"
        },
        "parameters":{
          "shape":"CapabilityProperties",
          "documentation":"<p>Describe a capability action with a capability property.</p>"
        }
      },
      "documentation":"<p>Action for an Amazon Web Services capability, containing the action parameters for control.</p>"
    },
    "CapabilityActionName":{
      "type":"string",
      "pattern":"[/a-zA-Z]+"
    },
    "CapabilityActions":{
      "type":"list",
      "member":{"shape":"CapabilityAction"},
      "max":5,
      "min":1
    },
    "CapabilityId":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9./]+(@\\d+\\.\\d+)?"
    },
    "CapabilityName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[/a-zA-Z0-9\\._ ]+"
    },
    "CapabilityProperties":{
      "type":"structure",
      "members":{
      },
      "document":true,
      "sensitive":true
    },
    "CapabilityReport":{
      "type":"structure",
      "required":[
        "version",
        "endpoints"
      ],
      "members":{
        "version":{
          "shape":"CapabilityReportVersion",
          "documentation":"<p>The version of the capability report.</p>"
        },
        "nodeId":{
          "shape":"NodeId",
          "documentation":"<p>The numeric identifier of the node.</p>"
        },
        "endpoints":{
          "shape":"CapabilityReportEndpoints",
          "documentation":"<p>The endpoints used in the capability report.</p>"
        }
      },
      "documentation":"<p>Report of all capabilities supported by the device.</p>"
    },
    "CapabilityReportActions":{
      "type":"list",
      "member":{"shape":"ActionName"},
      "max":100,
      "min":0
    },
    "CapabilityReportCapabilities":{
      "type":"list",
      "member":{"shape":"CapabilityReportCapability"},
      "max":50,
      "min":0
    },
    "CapabilityReportCapability":{
      "type":"structure",
      "required":[
        "id",
        "name",
        "version",
        "properties",
        "actions",
        "events"
      ],
      "members":{
        "id":{
          "shape":"SchemaVersionedId",
          "documentation":"<p>The id of the schema version.</p>"
        },
        "name":{
          "shape":"CapabilityName",
          "documentation":"<p>The name of the capability.</p>"
        },
        "version":{
          "shape":"CapabilityVersion",
          "documentation":"<p>The version of the capability.</p>"
        },
        "properties":{
          "shape":"CapabilityReportProperties",
          "documentation":"<p>The capability properties used in the capability report.</p>"
        },
        "actions":{
          "shape":"CapabilityReportActions",
          "documentation":"<p>The capability actions used in the capability report.</p>"
        },
        "events":{
          "shape":"CapabilityReportEvents",
          "documentation":"<p>The capability events used in the capability report.</p>"
        }
      },
      "documentation":"<p>The capability used in capability report.</p>"
    },
    "CapabilityReportEndpoint":{
      "type":"structure",
      "required":[
        "id",
        "deviceTypes",
        "capabilities"
      ],
      "members":{
        "id":{
          "shape":"EndpointId",
          "documentation":"<p>The id of the endpoint used in the capability report.</p>"
        },
        "deviceTypes":{
          "shape":"DeviceTypes",
          "documentation":"<p>The type of device.</p>"
        },
        "capabilities":{
          "shape":"CapabilityReportCapabilities",
          "documentation":"<p>The capabilities used in the capability report.</p>"
        }
      },
      "documentation":"<p>The endpoint used in the capability report.</p>"
    },
    "CapabilityReportEndpoints":{
      "type":"list",
      "member":{"shape":"CapabilityReportEndpoint"},
      "max":50,
      "min":0
    },
    "CapabilityReportEvents":{
      "type":"list",
      "member":{"shape":"EventName"},
      "max":100,
      "min":0
    },
    "CapabilityReportProperties":{
      "type":"list",
      "member":{"shape":"PropertyName"},
      "max":100,
      "min":0
    },
    "CapabilityReportVersion":{
      "type":"string",
      "max":10,
      "min":1,
      "pattern":"1\\.0\\.0"
    },
    "CapabilityVersion":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"(0|[1-9][0-9]*)"
    },
    "ClaimCertificate":{
      "type":"string",
      "sensitive":true
    },
    "ClaimCertificatePrivateKey":{
      "type":"string",
      "sensitive":true
    },
    "Classification":{
      "type":"string",
      "max":64,
      "min":1,
      "sensitive":true
    },
    "ClientToken":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9=_-]+"
    },
    "CommandCapabilities":{
      "type":"list",
      "member":{"shape":"CommandCapability"},
      "max":5,
      "min":1
    },
    "CommandCapability":{
      "type":"structure",
      "required":[
        "id",
        "name",
        "version",
        "actions"
      ],
      "members":{
        "id":{
          "shape":"SchemaVersionedId",
          "documentation":"<p>Describe the capability with an id.</p>"
        },
        "name":{
          "shape":"CapabilityName",
          "documentation":"<p>Describe the capability with an name.</p>"
        },
        "version":{
          "shape":"CapabilityVersion",
          "documentation":"<p>Describe the capability with a version.</p>"
        },
        "actions":{
          "shape":"CapabilityActions",
          "documentation":"<p>Describe the command capability with the actions it supports.</p>"
        }
      },
      "documentation":"<p>The command capabilities added for the managed thing</p>"
    },
    "CommandEndpoint":{
      "type":"structure",
      "required":[
        "endpointId",
        "capabilities"
      ],
      "members":{
        "endpointId":{
          "shape":"EndpointId",
          "documentation":"<p>The id of the endpoint for a managed thing.</p>"
        },
        "capabilities":{
          "shape":"CommandCapabilities",
          "documentation":"<p>Describe the endpoint with an id, a name, and the relevant capabilities for sending commands.</p>"
        }
      },
      "documentation":"<p>The endpoint for a managed thing when sending a command.</p>"
    },
    "CommandEndpoints":{
      "type":"list",
      "member":{"shape":"CommandEndpoint"},
      "max":5,
      "min":1
    },
    "ConfigurationError":{
      "type":"structure",
      "members":{
        "code":{
          "shape":"ConfigurationErrorCode",
          "documentation":"<p>The error code returned when the default encryption configuration update fails.</p>"
        },
        "message":{
          "shape":"ConfigurationErrorMessage",
          "documentation":"<p>The error message returned when the default encryption configuration update fails.</p>"
        }
      },
      "documentation":"<p>Provides the default encryption configuration error update details.</p>"
    },
    "ConfigurationErrorCode":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "ConfigurationErrorMessage":{
      "type":"string",
      "max":65535,
      "min":1,
      "pattern":"[a-zA-Z0-9\\-._,]+"
    },
    "ConfigurationState":{
      "type":"string",
      "enum":[
        "ENABLED",
        "UPDATE_IN_PROGRESS",
        "UPDATE_FAILED"
      ]
    },
    "ConfigurationStatus":{
      "type":"structure",
      "required":["state"],
      "members":{
        "error":{
          "shape":"ConfigurationError",
          "documentation":"<p>The error details describing a failed default encryption configuration update.</p>"
        },
        "state":{
          "shape":"ConfigurationState",
          "documentation":"<p>The status state describing the default encryption configuration update.</p>"
        }
      },
      "documentation":"<p>Provides the status of the default encryption configuration for an Amazon Web Services account.</p>"
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>There is a conflict with the request.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ConnectivityStatus":{
      "type":"boolean",
      "box":true
    },
    "ConnectivityTimestamp":{"type":"timestamp"},
    "ConnectorAssociationId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[0-9a-zA-Z]+"
    },
    "ConnectorDeviceId":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9_.,@-]+",
      "sensitive":true
    },
    "ConnectorPolicyId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z0-9-_]+"
    },
    "CreateCredentialLockerRequest":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"CredentialLockerName",
          "documentation":"<p>The name of the credential locker.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the credential locker.</p>"
        }
      }
    },
    "CreateCredentialLockerResponse":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential locker creation request.</p>"
        },
        "Arn":{
          "shape":"CredentialLockerArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the credential locker.</p>"
        },
        "CreatedAt":{
          "shape":"CredentialLockerCreatedAt",
          "documentation":"<p>The timestamp value of when the credential locker request occurred.</p>"
        }
      }
    },
    "CreateDestinationRequest":{
      "type":"structure",
      "required":[
        "DeliveryDestinationArn",
        "DeliveryDestinationType",
        "Name",
        "RoleArn"
      ],
      "members":{
        "DeliveryDestinationArn":{
          "shape":"DeliveryDestinationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer-managed destination.</p>"
        },
        "DeliveryDestinationType":{
          "shape":"DeliveryDestinationType",
          "documentation":"<p>The destination type for the customer-managed destination.</p>"
        },
        "Name":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the customer-managed destination.</p>"
        },
        "RoleArn":{
          "shape":"DeliveryDestinationRoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the delivery destination role.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        },
        "Description":{
          "shape":"DestinationDescription",
          "documentation":"<p>The description of the customer-managed destination.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the destination.</p>"
        }
      }
    },
    "CreateDestinationResponse":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the customer-managed destination.</p>"
        }
      }
    },
    "CreateEventLogConfigurationRequest":{
      "type":"structure",
      "required":[
        "ResourceType",
        "EventLogLevel"
      ],
      "members":{
        "ResourceType":{
          "shape":"SmartHomeResourceType",
          "documentation":"<p>The type of resource for the event log configuration.</p>"
        },
        "ResourceId":{
          "shape":"SmartHomeResourceId",
          "documentation":"<p>The identifier of the resource for the event log configuration.</p>"
        },
        "EventLogLevel":{
          "shape":"LogLevel",
          "documentation":"<p>The logging level for the event log configuration.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateEventLogConfigurationResponse":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"LogConfigurationId",
          "documentation":"<p>The identifier of the event log configuration request.</p>"
        }
      }
    },
    "CreateManagedThingRequest":{
      "type":"structure",
      "required":[
        "Role",
        "AuthenticationMaterial",
        "AuthenticationMaterialType"
      ],
      "members":{
        "Role":{
          "shape":"Role",
          "documentation":"<p>The type of device used. This will be the hub controller, cloud device, or AWS IoT device.</p>"
        },
        "Owner":{
          "shape":"Owner",
          "documentation":"<p>Owner of the device, usually an indication of whom the device belongs to. This value should not contain personal identifiable information.</p>"
        },
        "CredentialLockerId":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential for the managed thing.</p>"
        },
        "AuthenticationMaterial":{
          "shape":"AuthMaterialString",
          "documentation":"<p>The authentication material defining the device connectivity setup requests. The authentication materials used are the device bar code.</p>"
        },
        "AuthenticationMaterialType":{
          "shape":"AuthMaterialType",
          "documentation":"<p>The type of authentication material used for device connectivity setup requests.</p>"
        },
        "SerialNumber":{
          "shape":"SerialNumber",
          "documentation":"<p>The serial number of the device.</p>"
        },
        "Brand":{
          "shape":"Brand",
          "documentation":"<p>The brand of the device.</p>"
        },
        "Model":{
          "shape":"Model",
          "documentation":"<p>The model of the device.</p>"
        },
        "Name":{
          "shape":"Name",
          "documentation":"<p>The name of the managed thing representing the physical device.</p>"
        },
        "CapabilityReport":{
          "shape":"CapabilityReport",
          "documentation":"<p>A report of the capabilities for the managed thing.</p>"
        },
        "Capabilities":{
          "shape":"Capabilities",
          "documentation":"<p>The capabilities of the device such as light bulb.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        },
        "Classification":{
          "shape":"Classification",
          "documentation":"<p>The classification of the managed thing such as light bulb or thermostat.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the managed thing.</p>"
        },
        "MetaData":{
          "shape":"MetaData",
          "documentation":"<p>The metadata for the managed thing.</p>"
        }
      }
    },
    "CreateManagedThingResponse":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the managed thing.</p>"
        },
        "Arn":{
          "shape":"ManagedThingArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the managed thing.</p>"
        },
        "CreatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the device creation request occurred.</p>"
        }
      }
    },
    "CreateNotificationConfigurationRequest":{
      "type":"structure",
      "required":[
        "EventType",
        "DestinationName"
      ],
      "members":{
        "EventType":{
          "shape":"EventType",
          "documentation":"<p>The type of event triggering a device notification to the customer-managed destination.</p>"
        },
        "DestinationName":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the destination for the notification configuration.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the notification configuration.</p>"
        }
      }
    },
    "CreateNotificationConfigurationResponse":{
      "type":"structure",
      "members":{
        "EventType":{
          "shape":"EventType",
          "documentation":"<p>The type of event triggering a device notification to the customer-managed destination.</p>"
        }
      }
    },
    "CreateOtaTaskConfigurationRequest":{
      "type":"structure",
      "members":{
        "Description":{
          "shape":"OtaDescription",
          "documentation":"<p>A description of the over-the-air (OTA) task configuration.</p>"
        },
        "Name":{
          "shape":"OtaTaskConfigurationName",
          "documentation":"<p>The name of the over-the-air (OTA) task.</p>"
        },
        "PushConfig":{
          "shape":"PushConfig",
          "documentation":"<p>Describes the type of configuration used for the over-the-air (OTA) task.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateOtaTaskConfigurationResponse":{
      "type":"structure",
      "members":{
        "TaskConfigurationId":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The identifier of the over-the-air (OTA) task configuration.</p>"
        }
      }
    },
    "CreateOtaTaskRequest":{
      "type":"structure",
      "required":[
        "S3Url",
        "OtaType"
      ],
      "members":{
        "Description":{
          "shape":"OtaDescription",
          "documentation":"<p>The description of the over-the-air (OTA) task.</p>"
        },
        "S3Url":{
          "shape":"S3Url",
          "documentation":"<p>The URL to the Amazon S3 bucket where the over-the-air (OTA) task is stored.</p>"
        },
        "Protocol":{
          "shape":"OtaProtocol",
          "documentation":"<p>The connection protocol the over-the-air (OTA) task uses to update the device.</p>"
        },
        "Target":{
          "shape":"Target",
          "documentation":"<p>The device targeted for the over-the-air (OTA) task.</p>"
        },
        "TaskConfigurationId":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The identifier for the over-the-air (OTA) task configuration.</p>"
        },
        "OtaMechanism":{
          "shape":"OtaMechanism",
          "documentation":"<p>The deployment mechanism for the over-the-air (OTA) task.</p>"
        },
        "OtaType":{
          "shape":"OtaType",
          "documentation":"<p>The frequency type for the over-the-air (OTA) task.</p>"
        },
        "OtaTargetQueryString":{
          "shape":"OtaTargetQueryString",
          "documentation":"<p>The query string to add things to the thing group.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        },
        "OtaSchedulingConfig":{"shape":"OtaTaskSchedulingConfig"},
        "OtaTaskExecutionRetryConfig":{"shape":"OtaTaskExecutionRetryConfig"},
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the over-the-air (OTA) task.</p>"
        }
      }
    },
    "CreateOtaTaskResponse":{
      "type":"structure",
      "members":{
        "TaskId":{
          "shape":"OtaTaskId",
          "documentation":"<p>The identifier of the over-the-air (OTA) task.</p>"
        },
        "TaskArn":{
          "shape":"OtaTaskArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the over-the-air (OTA) task.</p>"
        },
        "Description":{
          "shape":"OtaDescription",
          "documentation":"<p>A description of the over-the-air (OTA) task.</p>"
        }
      }
    },
    "CreateProvisioningProfileRequest":{
      "type":"structure",
      "required":["ProvisioningType"],
      "members":{
        "ProvisioningType":{
          "shape":"ProvisioningType",
          "documentation":"<p>The type of provisioning workflow the device uses for onboarding to IoT managed integrations.</p>"
        },
        "CaCertificate":{
          "shape":"CaCertificate",
          "documentation":"<p>The id of the certificate authority (CA) certificate.</p>"
        },
        "Name":{
          "shape":"ProvisioningProfileName",
          "documentation":"<p>The name of the provisioning template.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>",
          "idempotencyToken":true
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the provisioning profile.</p>"
        }
      }
    },
    "CreateProvisioningProfileResponse":{
      "type":"structure",
      "members":{
        "Arn":{
          "shape":"ProvisioningProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the provisioning template used in the provisioning profile.</p>"
        },
        "Name":{
          "shape":"ProvisioningProfileName",
          "documentation":"<p>The name of the provisioning template.</p>"
        },
        "ProvisioningType":{
          "shape":"ProvisioningType",
          "documentation":"<p>The type of provisioning workflow the device uses for onboarding to IoT managed integrations.</p>"
        },
        "Id":{
          "shape":"ProvisioningProfileId",
          "documentation":"<p>The identifier of the provisioning profile.</p>"
        },
        "ClaimCertificate":{
          "shape":"ClaimCertificate",
          "documentation":"<p>The id of the claim certificate.</p>"
        },
        "ClaimCertificatePrivateKey":{
          "shape":"ClaimCertificatePrivateKey",
          "documentation":"<p>The private key of the claim certificate. This is stored securely on the device for validating the connection endpoint with IoT managed integrations using the public key.</p>"
        }
      }
    },
    "CreatedAt":{"type":"timestamp"},
    "CredentialLockerArn":{
      "type":"string",
      "max":1011,
      "min":32,
      "pattern":"arn:aws:iotmanagedintegrations:[0-9a-zA-Z-]+:[0-9]+:credential-locker/[0-9a-zA-Z]+"
    },
    "CredentialLockerCreatedAt":{"type":"timestamp"},
    "CredentialLockerId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9]*"
    },
    "CredentialLockerListDefinition":{
      "type":"list",
      "member":{"shape":"CredentialLockerSummary"}
    },
    "CredentialLockerName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9-_ ]+",
      "sensitive":true
    },
    "CredentialLockerSummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The id of the credential locker.</p>"
        },
        "Arn":{
          "shape":"CredentialLockerArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the credential locker.</p>"
        },
        "Name":{
          "shape":"CredentialLockerName",
          "documentation":"<p>The name of the credential locker.</p>"
        },
        "CreatedAt":{
          "shape":"CredentialLockerCreatedAt",
          "documentation":"<p>The timestampe value of when the credential locker was created at.</p>"
        }
      },
      "documentation":"<p>Structure describing one Credential Locker.</p>"
    },
    "DeleteCredentialLockerRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential locker.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "DeleteDestinationRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DestinationName",
          "documentation":"<p>The id of the customer-managed destination.</p>",
          "location":"uri",
          "locationName":"Name"
        }
      }
    },
    "DeleteEventLogConfigurationRequest":{
      "type":"structure",
      "required":["Id"],
      "members":{
        "Id":{
          "shape":"LogConfigurationId",
          "documentation":"<p>The identifier of the event log configuration.</p>",
          "location":"uri",
          "locationName":"Id"
        }
      }
    },
    "DeleteLocalStoreAfterUpload":{
      "type":"boolean",
      "box":true
    },
    "DeleteManagedThingRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the managed thing.</p>",
          "location":"uri",
          "locationName":"Identifier"
        },
        "Force":{
          "shape":"Boolean",
          "documentation":"<p>When set to <code>TRUE</code>, a forceful deteletion of the managed thing will occur. When set to <code>FALSE</code>, a non-forceful deletion of the managed thing will occur.</p>",
          "location":"querystring",
          "locationName":"Force"
        }
      }
    },
    "DeleteNotificationConfigurationRequest":{
      "type":"structure",
      "required":["EventType"],
      "members":{
        "EventType":{
          "shape":"EventType",
          "documentation":"<p>The type of event triggering a device notification to the customer-managed destination.</p>",
          "location":"uri",
          "locationName":"EventType"
        }
      }
    },
    "DeleteOtaTaskConfigurationRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The identifier of the over-the-air (OTA) task configuration.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "DeleteOtaTaskRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"OtaTaskId",
          "documentation":"<p>The identifier of the over-the-air (OTA) task.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "DeleteProvisioningProfileRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ProvisioningProfileId",
          "documentation":"<p>The name of the provisioning template.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "DeliveryDestinationArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:aws:[0-9a-zA-Z]+:[0-9a-zA-Z-]+:[0-9]+:[0-9a-zA-Z]+/[0-9a-zA-Z._-]+"
    },
    "DeliveryDestinationRoleArn":{"type":"string"},
    "DeliveryDestinationType":{
      "type":"string",
      "enum":["KINESIS"]
    },
    "DestinationCreatedAt":{"type":"timestamp"},
    "DestinationDescription":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[0-9A-Za-z_\\- ]+"
    },
    "DestinationListDefinition":{
      "type":"list",
      "member":{"shape":"DestinationSummary"}
    },
    "DestinationName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[\\p{L}\\p{N} ._-]+"
    },
    "DestinationSummary":{
      "type":"structure",
      "members":{
        "Description":{
          "shape":"DestinationDescription",
          "documentation":"<p>The description of the customer-managed destination.</p>"
        },
        "DeliveryDestinationArn":{
          "shape":"DeliveryDestinationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer-managed destination.</p>"
        },
        "DeliveryDestinationType":{
          "shape":"DeliveryDestinationType",
          "documentation":"<p>The destination type for the customer-managed destination.</p>"
        },
        "Name":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the customer-managed destination.</p>"
        },
        "RoleArn":{
          "shape":"DeliveryDestinationRoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the delivery destination.</p>"
        }
      },
      "documentation":"<p>Structure describing a destination for IoT managed integrations to deliver notifications for a device.</p>"
    },
    "DestinationUpdatedAt":{"type":"timestamp"},
    "DeviceDiscoveryArn":{
      "type":"string",
      "pattern":"arn:aws:iotmanagedintegrations:[0-9a-zA-Z-]+:[0-9]+:device-discovery/[0-9a-zA-Z]+"
    },
    "DeviceDiscoveryId":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"[A-Za-z0-9]+"
    },
    "DeviceDiscoveryStatus":{
      "type":"string",
      "enum":[
        "RUNNING",
        "SUCCEEDED",
        "FAILED",
        "TIMED_OUT"
      ]
    },
    "DeviceSpecificKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9=_.,@\\+\\-]+",
      "sensitive":true
    },
    "DeviceType":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"[a-zA-Z0-9=_. ,@\\+\\-/]+"
    },
    "DeviceTypes":{
      "type":"list",
      "member":{"shape":"DeviceType"},
      "max":50,
      "min":0
    },
    "DisconnectReasonValue":{
      "type":"string",
      "enum":[
        "AUTH_ERROR",
        "CLIENT_INITIATED_DISCONNECT",
        "CLIENT_ERROR",
        "CONNECTION_LOST",
        "DUPLICATE_CLIENTID",
        "FORBIDDEN_ACCESS",
        "MQTT_KEEP_ALIVE_TIMEOUT",
        "SERVER_ERROR",
        "SERVER_INITIATED_DISCONNECT",
        "THROTTLED",
        "WEBSOCKET_TTL_EXPIRATION",
        "CUSTOMAUTH_TTL_EXPIRATION",
        "UNKNOWN",
        "NONE"
      ]
    },
    "DiscoveryAuthMaterialString":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[0-9A-Za-z_\\-\\+=\\/:; ]+",
      "sensitive":true
    },
    "DiscoveryAuthMaterialType":{
      "type":"string",
      "enum":["ZWAVE_INSTALL_CODE"]
    },
    "DiscoveryFinishedAt":{"type":"timestamp"},
    "DiscoveryStartedAt":{"type":"timestamp"},
    "DiscoveryType":{
      "type":"string",
      "enum":[
        "ZWAVE",
        "ZIGBEE",
        "CLOUD"
      ]
    },
    "DurationInMinutes":{
      "type":"integer",
      "box":true,
      "max":1430,
      "min":1
    },
    "EncryptionType":{
      "type":"string",
      "enum":[
        "MANAGED_INTEGRATIONS_DEFAULT_ENCRYPTION",
        "CUSTOMER_KEY_ENCRYPTION"
      ]
    },
    "EndTime":{"type":"string"},
    "EndpointAddress":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[A-Za-z0-9._@-]+"
    },
    "EndpointId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[0-9a-zA-Z]+"
    },
    "ErrorMessage":{"type":"string"},
    "EventLogConfigurationListDefinition":{
      "type":"list",
      "member":{"shape":"EventLogConfigurationSummary"}
    },
    "EventLogConfigurationSummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"LogConfigurationId",
          "documentation":"<p>The identifier of the event log configuration.</p>"
        },
        "ResourceType":{
          "shape":"SmartHomeResourceType",
          "documentation":"<p>The type of resource for the event log configuration.</p>"
        },
        "ResourceId":{
          "shape":"SmartHomeResourceId",
          "documentation":"<p>The identifier of the resource for the event log configuration.</p>"
        },
        "EventLogLevel":{
          "shape":"LogLevel",
          "documentation":"<p>The logging level for the event log configuration.</p>"
        }
      },
      "documentation":"<p>List of event log configurations.</p>"
    },
    "EventName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[/a-zA-Z0-9\\._ ]+"
    },
    "EventType":{
      "type":"string",
      "enum":[
        "DEVICE_COMMAND",
        "DEVICE_COMMAND_REQUEST",
        "DEVICE_EVENT",
        "DEVICE_LIFE_CYCLE",
        "DEVICE_STATE",
        "DEVICE_OTA",
        "CONNECTOR_ASSOCIATION",
        "CONNECTOR_ERROR_REPORT"
      ]
    },
    "ExecutionNumber":{
      "type":"long",
      "box":true
    },
    "ExponentialRolloutRate":{
      "type":"structure",
      "members":{
        "BaseRatePerMinute":{
          "shape":"BaseRatePerMinute",
          "documentation":"<p>The base rate per minute for the rollout of an over-the-air (OTA) task.</p>"
        },
        "IncrementFactor":{
          "shape":"IncrementFactor",
          "documentation":"<p>The incremental factor for increasing the rollout rate of an over-the-air (OTA) task.</p>"
        },
        "RateIncreaseCriteria":{
          "shape":"RolloutRateIncreaseCriteria",
          "documentation":"<p>The criteria for increasing the rollout rate of an over-the-air (OTA) task.</p>"
        }
      },
      "documentation":"<p>Structure representing exponential rate of rollout for an over-the-air (OTA) task.</p>"
    },
    "GetCredentialLockerRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential locker.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetCredentialLockerResponse":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential locker.</p>"
        },
        "Arn":{
          "shape":"CredentialLockerArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the credential locker.</p>"
        },
        "Name":{
          "shape":"CredentialLockerName",
          "documentation":"<p>The name of the credential locker.</p>"
        },
        "CreatedAt":{
          "shape":"CredentialLockerCreatedAt",
          "documentation":"<p>The timestamp value of when the credential locker requset occurred.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the credential locker.</p>"
        }
      }
    },
    "GetCustomEndpointRequest":{
      "type":"structure",
      "members":{
      }
    },
    "GetCustomEndpointResponse":{
      "type":"structure",
      "required":["EndpointAddress"],
      "members":{
        "EndpointAddress":{
          "shape":"EndpointAddress",
          "documentation":"<p>The IoT managed integrations dedicated, custom endpoint for the device to route traffic through.</p>"
        }
      }
    },
    "GetDefaultEncryptionConfigurationRequest":{
      "type":"structure",
      "members":{
      }
    },
    "GetDefaultEncryptionConfigurationResponse":{
      "type":"structure",
      "required":[
        "configurationStatus",
        "encryptionType"
      ],
      "members":{
        "configurationStatus":{
          "shape":"ConfigurationStatus",
          "documentation":"<p>Provides the status of the default encryption configuration for an Amazon Web Services account.</p>"
        },
        "encryptionType":{
          "shape":"EncryptionType",
          "documentation":"<p>The type of encryption used for the encryption configuration.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Key Amazon Resource Name (ARN) of the AWS KMS key used for KMS encryption if you use <code>KMS_BASED_ENCRYPTION</code>.</p>"
        }
      }
    },
    "GetDestinationRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the customer-managed destination.</p>",
          "location":"uri",
          "locationName":"Name"
        }
      }
    },
    "GetDestinationResponse":{
      "type":"structure",
      "members":{
        "Description":{
          "shape":"DestinationDescription",
          "documentation":"<p>The description of the customer-managed destination.</p>"
        },
        "DeliveryDestinationArn":{
          "shape":"DeliveryDestinationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer-managed destination.</p>"
        },
        "DeliveryDestinationType":{
          "shape":"DeliveryDestinationType",
          "documentation":"<p>The destination type for the customer-managed destination.</p>"
        },
        "Name":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the customer-managed destination.</p>"
        },
        "RoleArn":{
          "shape":"DeliveryDestinationRoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the delivery destination role.</p>"
        },
        "CreatedAt":{
          "shape":"DestinationCreatedAt",
          "documentation":"<p>The timestamp value of when the destination creation requset occurred.</p>"
        },
        "UpdatedAt":{
          "shape":"DestinationUpdatedAt",
          "documentation":"<p>The timestamp value of when the destination update requset occurred.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the customer-managed destination.</p>"
        }
      }
    },
    "GetDeviceDiscoveryRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"DeviceDiscoveryId",
          "documentation":"<p>The id of the device discovery job request.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetDeviceDiscoveryResponse":{
      "type":"structure",
      "required":[
        "Id",
        "Arn",
        "DiscoveryType",
        "Status",
        "StartedAt"
      ],
      "members":{
        "Id":{
          "shape":"DeviceDiscoveryId",
          "documentation":"<p>The id of the device discovery job request.</p>"
        },
        "Arn":{
          "shape":"DeviceDiscoveryArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the device discovery job request.</p>"
        },
        "DiscoveryType":{
          "shape":"DiscoveryType",
          "documentation":"<p>The discovery type supporting the type of device to be discovered in the device discovery job request.</p>"
        },
        "Status":{
          "shape":"DeviceDiscoveryStatus",
          "documentation":"<p>The status of the device discovery job request.</p>"
        },
        "StartedAt":{
          "shape":"DiscoveryStartedAt",
          "documentation":"<p>The timestamp value for the start time of the device discovery.</p>"
        },
        "ControllerId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the end-user's IoT hub.</p>"
        },
        "ConnectorAssociationId":{
          "shape":"ConnectorAssociationId",
          "documentation":"<p>The ID tracking the current discovery process for one connector association.</p>"
        },
        "FinishedAt":{
          "shape":"DiscoveryFinishedAt",
          "documentation":"<p>The timestamp value for the completion time of the device discovery.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the device discovery request.</p>"
        }
      }
    },
    "GetEventLogConfigurationRequest":{
      "type":"structure",
      "required":["Id"],
      "members":{
        "Id":{
          "shape":"LogConfigurationId",
          "documentation":"<p>The identifier of the event log configuration.</p>",
          "location":"uri",
          "locationName":"Id"
        }
      }
    },
    "GetEventLogConfigurationResponse":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"LogConfigurationId",
          "documentation":"<p>The identifier of the event log configuration.</p>"
        },
        "ResourceType":{
          "shape":"SmartHomeResourceType",
          "documentation":"<p>The type of resource for the event log configuration.</p>"
        },
        "ResourceId":{
          "shape":"SmartHomeResourceId",
          "documentation":"<p>The identifier of the resource for the event log configuration.</p>"
        },
        "EventLogLevel":{
          "shape":"LogLevel",
          "documentation":"<p>The logging level for the event log configuration.</p>"
        }
      }
    },
    "GetHubConfigurationRequest":{
      "type":"structure",
      "members":{
      }
    },
    "GetHubConfigurationResponse":{
      "type":"structure",
      "members":{
        "HubTokenTimerExpirySettingInSeconds":{
          "shape":"HubTokenTimerExpirySettingInSeconds",
          "documentation":"<p>A user-defined integer value that represents the hub token timer expiry setting in seconds.</p>"
        },
        "UpdatedAt":{
          "shape":"HubConfigurationUpdatedAt",
          "documentation":"<p>The timestamp value of when the hub configuration was updated.</p>"
        }
      }
    },
    "GetManagedThingCapabilitiesRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the device.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetManagedThingCapabilitiesResponse":{
      "type":"structure",
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the device.</p>"
        },
        "Capabilities":{
          "shape":"Capabilities",
          "documentation":"<p>The capabilities of the device such as light bulb.</p>"
        },
        "CapabilityReport":{
          "shape":"CapabilityReport",
          "documentation":"<p>A report of the capabilities for the managed thing.</p>"
        }
      }
    },
    "GetManagedThingConnectivityDataRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The identifier of a managed thing.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetManagedThingConnectivityDataResponse":{
      "type":"structure",
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of a managed thing.</p>"
        },
        "Connected":{
          "shape":"ConnectivityStatus",
          "documentation":"<p>The connectivity status for a managed thing.</p>"
        },
        "Timestamp":{
          "shape":"ConnectivityTimestamp",
          "documentation":"<p>The timestamp value of when the connectivity status for a managed thing was last taken.</p>"
        },
        "DisconnectReason":{
          "shape":"DisconnectReasonValue",
          "documentation":"<p>The reason for the connectivity disconnect with the managed thing.</p>"
        }
      }
    },
    "GetManagedThingMetaDataRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The managed thing id.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetManagedThingMetaDataResponse":{
      "type":"structure",
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The managed thing id.</p>"
        },
        "MetaData":{
          "shape":"MetaData",
          "documentation":"<p>The metadata for the managed thing.</p>"
        }
      }
    },
    "GetManagedThingRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the managed thing.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetManagedThingResponse":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the managed thing.</p>"
        },
        "Arn":{
          "shape":"ManagedThingArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the managed thing.</p>"
        },
        "Owner":{
          "shape":"Owner",
          "documentation":"<p>Owner of the device, usually an indication of whom the device belongs to. This value should not contain personal identifiable information.</p>"
        },
        "CredentialLockerId":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential locker for the managed thing.</p>"
        },
        "AdvertisedProductId":{
          "shape":"AdvertisedProductId",
          "documentation":"<p>The id of the advertised product.</p>"
        },
        "Role":{
          "shape":"Role",
          "documentation":"<p>The type of device used. This will be the Amazon Web Services hub controller, cloud device, or IoT device.</p>"
        },
        "ProvisioningStatus":{
          "shape":"ProvisioningStatus",
          "documentation":"<p>The provisioning status of the device in the provisioning workflow for onboarding to IoT managed integrations.</p>"
        },
        "Name":{
          "shape":"Name",
          "documentation":"<p>The name of the managed thing representing the physical device.</p>"
        },
        "Model":{
          "shape":"Model",
          "documentation":"<p>The model of the device.</p>"
        },
        "Brand":{
          "shape":"Brand",
          "documentation":"<p>The brand of the device.</p>"
        },
        "SerialNumber":{
          "shape":"SerialNumber",
          "documentation":"<p>The serial number of the device.</p>"
        },
        "UniversalProductCode":{
          "shape":"UniversalProductCode",
          "documentation":"<p>The universal product code (UPC) of the device model. The UPC is typically used in the United States of America and Canada.</p>"
        },
        "InternationalArticleNumber":{
          "shape":"InternationalArticleNumber",
          "documentation":"<p>The unique 13 digit number that identifies the managed thing.</p>"
        },
        "ConnectorPolicyId":{
          "shape":"ConnectorPolicyId",
          "documentation":"<p>The id of the connector policy.</p> <note> <p>This parameter is used for cloud-to-cloud devices only.</p> </note>"
        },
        "ConnectorDeviceId":{
          "shape":"ConnectorDeviceId",
          "documentation":"<p>The third-party device id as defined by the connector. This device id must not contain personal identifiable information (PII).</p> <note> <p>This parameter is used for cloud-to-cloud devices only.</p> </note>"
        },
        "DeviceSpecificKey":{
          "shape":"DeviceSpecificKey",
          "documentation":"<p>A Zwave device-specific key used during device activation.</p> <note> <p>This parameter is used for Zwave devices only.</p> </note>"
        },
        "MacAddress":{
          "shape":"MacAddress",
          "documentation":"<p>The media access control (MAC) address for the device represented by the managed thing.</p> <note> <p>This parameter is used for Zigbee devices only.</p> </note>"
        },
        "ParentControllerId":{
          "shape":"ParentControllerId",
          "documentation":"<p>Id of the controller device used for the discovery job.</p>"
        },
        "Classification":{
          "shape":"Classification",
          "documentation":"<p>The classification of the managed thing such as light bulb or thermostat.</p>"
        },
        "CreatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the device creation request occurred.</p>"
        },
        "UpdatedAt":{
          "shape":"UpdatedAt",
          "documentation":"<p>The timestamp value of when the managed thing was last updated at.</p>"
        },
        "ActivatedAt":{
          "shape":"SetupAt",
          "documentation":"<p>The timestampe value of when the device was activated.</p>"
        },
        "HubNetworkMode":{
          "shape":"HubNetworkMode",
          "documentation":"<p>The network mode for the hub-connected device.</p>"
        },
        "MetaData":{
          "shape":"MetaData",
          "documentation":"<p>The metadata for the managed thing.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the managed thing.</p>"
        }
      }
    },
    "GetManagedThingStateRequest":{
      "type":"structure",
      "required":["ManagedThingId"],
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the device.</p>",
          "location":"uri",
          "locationName":"ManagedThingId"
        }
      }
    },
    "GetManagedThingStateResponse":{
      "type":"structure",
      "required":["Endpoints"],
      "members":{
        "Endpoints":{
          "shape":"StateEndpoints",
          "documentation":"<p>The device endpoint.</p>"
        }
      }
    },
    "GetNotificationConfigurationRequest":{
      "type":"structure",
      "required":["EventType"],
      "members":{
        "EventType":{
          "shape":"EventType",
          "documentation":"<p>The type of event triggering a device notification to the customer-managed destination.</p>",
          "location":"uri",
          "locationName":"EventType"
        }
      }
    },
    "GetNotificationConfigurationResponse":{
      "type":"structure",
      "members":{
        "EventType":{
          "shape":"EventType",
          "documentation":"<p>The type of event triggering a device notification to the customer-managed destination.</p>"
        },
        "DestinationName":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the destination for the notification configuration.</p>"
        },
        "CreatedAt":{
          "shape":"NotificationConfigurationCreatedAt",
          "documentation":"<p>The timestamp value of when the notification configuration was created.</p>"
        },
        "UpdatedAt":{
          "shape":"NotificationConfigurationUpdatedAt",
          "documentation":"<p>The timestamp value of when the notification configuration was last updated.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the notification configuration.</p>"
        }
      }
    },
    "GetOtaTaskConfigurationRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The over-the-air (OTA) task configuration id.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetOtaTaskConfigurationResponse":{
      "type":"structure",
      "members":{
        "TaskConfigurationId":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The over-the-air (OTA) task configuration id.</p>"
        },
        "Name":{
          "shape":"OtaTaskConfigurationName",
          "documentation":"<p>The name of the over-the-air (OTA) task configuration.</p>"
        },
        "PushConfig":{
          "shape":"PushConfig",
          "documentation":"<p>Describes the type of configuration used for the over-the-air (OTA) task.</p>"
        },
        "Description":{
          "shape":"OtaDescription",
          "documentation":"<p>A description of the over-the-air (OTA) task configuration.</p>"
        },
        "CreatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task configuration was created at.</p>"
        }
      }
    },
    "GetOtaTaskRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"OtaTaskId",
          "documentation":"<p>The over-the-air (OTA) task id.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetOtaTaskResponse":{
      "type":"structure",
      "members":{
        "TaskId":{
          "shape":"OtaTaskId",
          "documentation":"<p>The id of the over-the-air (OTA) task.</p>"
        },
        "TaskArn":{
          "shape":"OtaTaskArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the over-the-air (OTA) task</p>"
        },
        "Description":{
          "shape":"OtaDescription",
          "documentation":"<p>The description of the over-the-air (OTA) task.</p>"
        },
        "S3Url":{
          "shape":"S3Url",
          "documentation":"<p>The URL to the Amazon S3 bucket where the over-the-air (OTA) task is stored.</p>"
        },
        "Protocol":{
          "shape":"OtaProtocol",
          "documentation":"<p>The connection protocol the over-the-air (OTA) task uses to update the device.</p>"
        },
        "OtaType":{
          "shape":"OtaType",
          "documentation":"<p>The frequency type for the over-the-air (OTA) task.</p>"
        },
        "OtaTargetQueryString":{
          "shape":"OtaTargetQueryString",
          "documentation":"<p>The query string to add things to the thing group.</p>"
        },
        "OtaMechanism":{
          "shape":"OtaMechanism",
          "documentation":"<p>The deployment mechanism for the over-the-air (OTA) task.</p>"
        },
        "Target":{
          "shape":"Target",
          "documentation":"<p>The device targeted for the over-the-air (OTA) task.</p>"
        },
        "CreatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task was created.</p>"
        },
        "LastUpdatedAt":{
          "shape":"LastUpdatedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task was last updated at.</p>"
        },
        "TaskConfigurationId":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The identifier for the over-the-air (OTA) task configuration.</p>"
        },
        "TaskProcessingDetails":{
          "shape":"TaskProcessingDetails",
          "documentation":"<p>The processing details of all over-the-air (OTA) tasks.</p>"
        },
        "OtaSchedulingConfig":{"shape":"OtaTaskSchedulingConfig"},
        "OtaTaskExecutionRetryConfig":{"shape":"OtaTaskExecutionRetryConfig"},
        "Status":{
          "shape":"OtaStatus",
          "documentation":"<p>The status of the over-the-air (OTA) task.</p>"
        }
      }
    },
    "GetProvisioningProfileRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ProvisioningProfileId",
          "documentation":"<p>The provisioning template the device uses for the provisioning process.</p>",
          "location":"uri",
          "locationName":"Identifier"
        }
      }
    },
    "GetProvisioningProfileResponse":{
      "type":"structure",
      "members":{
        "Arn":{
          "shape":"ProvisioningProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the provisioning template used in the provisioning profile.</p>"
        },
        "Name":{
          "shape":"ProvisioningProfileName",
          "documentation":"<p>The name of the provisioning template.</p>"
        },
        "ProvisioningType":{
          "shape":"ProvisioningType",
          "documentation":"<p>The type of provisioning workflow the device uses for onboarding to IoT managed integrations.</p>"
        },
        "Id":{
          "shape":"ProvisioningProfileId",
          "documentation":"<p>The provisioning profile id..</p>"
        },
        "ClaimCertificate":{
          "shape":"ClaimCertificate",
          "documentation":"<p>The id of the claim certificate.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the provisioning profile.</p>"
        }
      }
    },
    "GetRuntimeLogConfigurationRequest":{
      "type":"structure",
      "required":["ManagedThingId"],
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id for a managed thing.</p>",
          "location":"uri",
          "locationName":"ManagedThingId"
        }
      }
    },
    "GetRuntimeLogConfigurationResponse":{
      "type":"structure",
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id for a managed thing.</p>"
        },
        "RuntimeLogConfigurations":{
          "shape":"RuntimeLogConfigurations",
          "documentation":"<p>The runtime log configuration for a managed thing.</p>"
        }
      }
    },
    "GetSchemaVersionRequest":{
      "type":"structure",
      "required":[
        "Type",
        "SchemaVersionedId"
      ],
      "members":{
        "Type":{
          "shape":"SchemaVersionType",
          "documentation":"<p>The type of schema version.</p>",
          "location":"uri",
          "locationName":"Type"
        },
        "SchemaVersionedId":{
          "shape":"SchemaVersionedId",
          "documentation":"<p>Schema id with a version specified. If the version is missing, it defaults to latest version.</p>",
          "location":"uri",
          "locationName":"SchemaVersionedId"
        },
        "Format":{
          "shape":"SchemaVersionFormat",
          "documentation":"<p>The format of the schema version.</p>",
          "location":"querystring",
          "locationName":"Format"
        }
      }
    },
    "GetSchemaVersionResponse":{
      "type":"structure",
      "members":{
        "SchemaId":{
          "shape":"SchemaId",
          "documentation":"<p>The id of the schema version.</p>"
        },
        "Type":{
          "shape":"SchemaVersionType",
          "documentation":"<p>The type of schema version.</p>"
        },
        "Description":{
          "shape":"SchemaVersionDescription",
          "documentation":"<p>The description of the schema version.</p>"
        },
        "Namespace":{
          "shape":"SchemaVersionNamespaceName",
          "documentation":"<p>The name of the schema version.</p>"
        },
        "SemanticVersion":{
          "shape":"SchemaVersionVersion",
          "documentation":"<p>The schema version. If this is left blank, it defaults to the latest version.</p>"
        },
        "Visibility":{
          "shape":"SchemaVersionVisibility",
          "documentation":"<p>The visibility of the schema version.</p>"
        },
        "Schema":{
          "shape":"SchemaVersionSchema",
          "documentation":"<p>The schema of the schema version.</p>"
        }
      }
    },
    "HubConfigurationUpdatedAt":{"type":"timestamp"},
    "HubNetworkMode":{
      "type":"string",
      "enum":[
        "STANDARD",
        "NETWORK_WIDE_EXCLUSION"
      ]
    },
    "HubTokenTimerExpirySettingInSeconds":{
      "type":"long",
      "box":true,
      "min":1
    },
    "InProgressTimeoutInMinutes":{
      "type":"long",
      "box":true,
      "max":10080,
      "min":1
    },
    "IncrementFactor":{
      "type":"double",
      "box":true,
      "max":5,
      "min":1.1
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalFailureException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>An unexpected error has occurred.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>Internal error from the service that indicates an unexpected error or that the service is unavailable.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InternationalArticleNumber":{
      "type":"string",
      "max":13,
      "min":8,
      "pattern":"[0-9]+",
      "sensitive":true
    },
    "KmsKeyArn":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"arn:aws:kms:[0-9a-zA-Z-]+:[0-9]+:key/[0-9a-zA-Z-]+"
    },
    "LastUpdatedAt":{"type":"timestamp"},
    "ListCredentialLockersRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListCredentialLockersResponse":{
      "type":"structure",
      "members":{
        "Items":{
          "shape":"CredentialLockerListDefinition",
          "documentation":"<p>The list of credential lockers.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListDestinationsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListDestinationsResponse":{
      "type":"structure",
      "members":{
        "DestinationList":{
          "shape":"DestinationListDefinition",
          "documentation":"<p>The list of destinations.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListEventLogConfigurationsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListEventLogConfigurationsResponse":{
      "type":"structure",
      "members":{
        "EventLogConfigurationList":{
          "shape":"EventLogConfigurationListDefinition",
          "documentation":"<p>A list of each event log configuration and pertinent information.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListManagedThingSchemasRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The managed thing id.</p>",
          "location":"uri",
          "locationName":"Identifier"
        },
        "EndpointIdFilter":{
          "shape":"EndpointId",
          "documentation":"<p>Filter on an endpoint id.</p>",
          "location":"querystring",
          "locationName":"EndpointIdFilter"
        },
        "CapabilityIdFilter":{
          "shape":"CapabilityId",
          "documentation":"<p>Filter on a capability id.</p>",
          "location":"querystring",
          "locationName":"CapabilityIdFilter"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListManagedThingSchemasResponse":{
      "type":"structure",
      "members":{
        "Items":{
          "shape":"ManagedThingSchemaListDefinition",
          "documentation":"<p>The list of managed thing schemas.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListManagedThingsRequest":{
      "type":"structure",
      "members":{
        "OwnerFilter":{
          "shape":"Owner",
          "documentation":"<p>Filter on device owners when listing managed things.</p>",
          "location":"querystring",
          "locationName":"OwnerFilter"
        },
        "CredentialLockerFilter":{
          "shape":"CredentialLockerId",
          "documentation":"<p>Filter on a credential locker for a managed thing.</p>",
          "location":"querystring",
          "locationName":"CredentialLockerFilter"
        },
        "RoleFilter":{
          "shape":"Role",
          "documentation":"<p>Filter on the type of device used. This will be the Amazon Web Services hub controller, cloud device, or IoT device.</p>",
          "location":"querystring",
          "locationName":"RoleFilter"
        },
        "ParentControllerIdentifierFilter":{
          "shape":"ParentControllerId",
          "documentation":"<p>Filter on a parent controller id for a managed thing.</p>",
          "location":"querystring",
          "locationName":"ParentControllerIdentifierFilter"
        },
        "ConnectorPolicyIdFilter":{
          "shape":"ConnectorPolicyId",
          "documentation":"<p>Filter on a connector policy id for a managed thing.</p>",
          "location":"querystring",
          "locationName":"ConnectorPolicyIdFilter"
        },
        "SerialNumberFilter":{
          "shape":"SerialNumber",
          "documentation":"<p>Filter on the serial number of the device.</p>",
          "location":"querystring",
          "locationName":"SerialNumberFilter"
        },
        "ProvisioningStatusFilter":{
          "shape":"ProvisioningStatus",
          "documentation":"<p>Filter on the status of the device.</p>",
          "location":"querystring",
          "locationName":"ProvisioningStatusFilter"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListManagedThingsResponse":{
      "type":"structure",
      "members":{
        "Items":{
          "shape":"ManagedThingListDefinition",
          "documentation":"<p>The list of managed things.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListNotificationConfigurationsRequest":{
      "type":"structure",
      "members":{
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        }
      }
    },
    "ListNotificationConfigurationsResponse":{
      "type":"structure",
      "members":{
        "NotificationConfigurationList":{
          "shape":"NotificationConfigurationListDefinition",
          "documentation":"<p>The list of notification configurations.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListOtaTaskConfigurationsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListOtaTaskConfigurationsResponse":{
      "type":"structure",
      "members":{
        "Items":{
          "shape":"OtaTaskConfigurationListDefinition",
          "documentation":"<p>The list of the over-the-air (OTA) task configurations.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListOtaTaskExecutionsRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"OtaTaskId",
          "documentation":"<p>The over-the-air (OTA) task id.</p>",
          "location":"uri",
          "locationName":"Identifier"
        },
        "NextToken":{
          "shape":"OtaNextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListOtaTaskExecutionsResponse":{
      "type":"structure",
      "members":{
        "ExecutionSummaries":{
          "shape":"OtaTaskExecutionSummariesListDefinition",
          "documentation":"<p>A list of all of the over-the-air (OTA) task executions.</p>"
        },
        "NextToken":{
          "shape":"OtaNextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListOtaTasksRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"OtaNextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListOtaTasksResponse":{
      "type":"structure",
      "members":{
        "Tasks":{
          "shape":"OtaTaskListDefinition",
          "documentation":"<p>A list of all of the over-the-air (OTA) tasks.</p>"
        },
        "NextToken":{
          "shape":"OtaNextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListProvisioningProfilesRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListProvisioningProfilesResponse":{
      "type":"structure",
      "members":{
        "Items":{
          "shape":"ProvisioningProfileListDefinition",
          "documentation":"<p>The list of provisioning profiles.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "ListSchemaVersionsRequest":{
      "type":"structure",
      "required":["Type"],
      "members":{
        "Type":{
          "shape":"SchemaVersionType",
          "documentation":"<p>Filter on the type of schema version.</p>",
          "location":"uri",
          "locationName":"Type"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return at one time.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "SchemaId":{
          "shape":"SchemaId",
          "documentation":"<p>Filter on the id of the schema version.</p>",
          "location":"querystring",
          "locationName":"SchemaIdFilter"
        },
        "Namespace":{
          "shape":"SchemaVersionNamespaceName",
          "documentation":"<p>Filter on the name of the schema version.</p>",
          "location":"querystring",
          "locationName":"NamespaceFilter"
        },
        "Visibility":{
          "shape":"SchemaVersionVisibility",
          "documentation":"<p>The visibility of the schema version.</p>",
          "location":"querystring",
          "locationName":"VisibilityFilter"
        },
        "SemanticVersion":{
          "shape":"SchemaVersionVersion",
          "documentation":"<p>The schema version. If this is left blank, it defaults to the latest version.</p>",
          "location":"querystring",
          "locationName":"SemanticVersionFilter"
        }
      }
    },
    "ListSchemaVersionsResponse":{
      "type":"structure",
      "members":{
        "Items":{
          "shape":"SchemaVersionList",
          "documentation":"<p>The list of schema versions.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that can be used to retrieve the next set of results.</p>"
        }
      }
    },
    "LocalStoreFileRotationMaxBytes":{
      "type":"integer",
      "box":true
    },
    "LocalStoreFileRotationMaxFiles":{
      "type":"integer",
      "box":true
    },
    "LocalStoreLocation":{"type":"string"},
    "LogConfigurationId":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"[A-Za-z0-9]+"
    },
    "LogLevel":{
      "type":"string",
      "enum":[
        "DEBUG",
        "ERROR",
        "INFO",
        "WARN"
      ]
    },
    "MacAddress":{
      "type":"string",
      "max":128,
      "min":1,
      "sensitive":true
    },
    "ManagedThingArn":{
      "type":"string",
      "max":1011,
      "min":32,
      "pattern":"arn:aws:iotmanagedintegrations:[0-9a-zA-Z-]+:[0-9]+:managed-thing/([0-9a-zA-Z:_-])+"
    },
    "ManagedThingId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9:_-]*"
    },
    "ManagedThingListDefinition":{
      "type":"list",
      "member":{"shape":"ManagedThingSummary"}
    },
    "ManagedThingSchemaListDefinition":{
      "type":"list",
      "member":{"shape":"ManagedThingSchemaListItem"}
    },
    "ManagedThingSchemaListItem":{
      "type":"structure",
      "members":{
        "EndpointId":{
          "shape":"EndpointId",
          "documentation":"<p>The id of the endpoint for a managed thing.</p>"
        },
        "CapabilityId":{
          "shape":"CapabilityId",
          "documentation":"<p>The id of the capability for a managed thing.</p>"
        },
        "Schema":{
          "shape":"ValidationSchema",
          "documentation":"<p>The validation schema for one schema item associated with a managed thing.</p>"
        }
      },
      "documentation":"<p>Structure representing one schema item associated with a managed thing.</p>"
    },
    "ManagedThingSummary":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the device.</p>"
        },
        "Arn":{
          "shape":"ManagedThingArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the managed thing.</p>"
        },
        "AdvertisedProductId":{
          "shape":"AdvertisedProductId",
          "documentation":"<p>The id of the advertised product.</p>"
        },
        "Brand":{
          "shape":"Brand",
          "documentation":"<p>The brand of the device.</p>"
        },
        "Classification":{
          "shape":"Classification",
          "documentation":"<p>The classification of the managed thing such as light bulb or thermostat.</p>"
        },
        "ConnectorDeviceId":{
          "shape":"ConnectorDeviceId",
          "documentation":"<p>The third-party device id as defined by the connector. This device id must not contain personal identifiable information (PII).</p> <note> <p>This parameter is used for cloud-to-cloud devices only.</p> </note>"
        },
        "ConnectorPolicyId":{
          "shape":"ConnectorPolicyId",
          "documentation":"<p>The id of the connector policy.</p> <note> <p>This parameter is used for cloud-to-cloud devices only.</p> </note>"
        },
        "Model":{
          "shape":"Model",
          "documentation":"<p>The model of the device.</p>"
        },
        "Name":{
          "shape":"Name",
          "documentation":"<p>The name of the managed thing representing the physical device.</p>"
        },
        "Owner":{
          "shape":"Owner",
          "documentation":"<p>Owner of the device, usually an indication of whom the device belongs to. This value should not contain personal identifiable information.</p>"
        },
        "CredentialLockerId":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential locker for the managed thing.</p>"
        },
        "ParentControllerId":{
          "shape":"ParentControllerId",
          "documentation":"<p>Id of the controller device used for the discovery job.</p>"
        },
        "ProvisioningStatus":{
          "shape":"ProvisioningStatus",
          "documentation":"<p>The provisioning status of the device in the provisioning workflow for onboarding to IoT managed integrations.</p>"
        },
        "Role":{
          "shape":"Role",
          "documentation":"<p>The type of device used. This will be the Amazon Web Services hub controller, cloud device, or IoT device.</p>"
        },
        "SerialNumber":{
          "shape":"SerialNumber",
          "documentation":"<p>The serial number of the device.</p>"
        },
        "CreatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the device creation request occurred.</p>"
        },
        "UpdatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the managed thing was last updated at.</p>"
        },
        "ActivatedAt":{
          "shape":"SetupAt",
          "documentation":"<p>The timestampe value of when the managed thing was activated at.</p>"
        }
      },
      "documentation":"<p>Structure representing one managed thing.</p>"
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "MaximumPerMinute":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "MetaData":{
      "type":"map",
      "key":{"shape":"AttributeName"},
      "value":{"shape":"AttributeValue"},
      "max":50,
      "min":1
    },
    "MinNumberOfExecutedThings":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "MinNumberOfRetries":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":0
    },
    "Model":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9-_ ]+",
      "sensitive":true
    },
    "Name":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[\\p{L}\\p{N} ._-]+"
    },
    "NextToken":{
      "type":"string",
      "max":65535,
      "min":1,
      "pattern":"[a-zA-Z0-9=_-]+"
    },
    "NodeId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9=_.,@\\+\\-/]+"
    },
    "NotificationConfigurationCreatedAt":{"type":"timestamp"},
    "NotificationConfigurationListDefinition":{
      "type":"list",
      "member":{"shape":"NotificationConfigurationSummary"}
    },
    "NotificationConfigurationSummary":{
      "type":"structure",
      "members":{
        "EventType":{
          "shape":"EventType",
          "documentation":"<p>The type of event triggering a device notification to the customer-managed destination.</p>"
        },
        "DestinationName":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the destination for the notification configuration.</p>"
        }
      },
      "documentation":"<p>Structure describing a notification configuration.</p>"
    },
    "NotificationConfigurationUpdatedAt":{"type":"timestamp"},
    "NumberOfNotifiedThings":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "NumberOfSucceededThings":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "OtaDescription":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[0-9A-Za-z_\\- ]+"
    },
    "OtaMechanism":{
      "type":"string",
      "enum":["PUSH"]
    },
    "OtaNextToken":{
      "type":"string",
      "max":65535,
      "min":1,
      "pattern":"[a-zA-Z0-9=_+/-]+"
    },
    "OtaProtocol":{
      "type":"string",
      "enum":["HTTP"]
    },
    "OtaStatus":{
      "type":"string",
      "enum":[
        "IN_PROGRESS",
        "CANCELED",
        "COMPLETED",
        "DELETION_IN_PROGRESS",
        "SCHEDULED"
      ]
    },
    "OtaTargetQueryString":{"type":"string"},
    "OtaTaskAbortConfig":{
      "type":"structure",
      "members":{
        "AbortConfigCriteriaList":{
          "shape":"AbortConfigCriteriaList",
          "documentation":"<p>The list of criteria for the abort config.</p>"
        }
      },
      "documentation":"<p>Over-the-air (OTA) task abort config.</p>"
    },
    "OtaTaskArn":{
      "type":"string",
      "max":1011,
      "min":0,
      "pattern":"arn:aws:iotmanagedintegrations:[0-9a-zA-Z-]+:[0-9]+:ota-task/[0-9a-zA-Z]+"
    },
    "OtaTaskConfigurationId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9]*"
    },
    "OtaTaskConfigurationListDefinition":{
      "type":"list",
      "member":{"shape":"OtaTaskConfigurationSummary"}
    },
    "OtaTaskConfigurationName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9-_ ]+",
      "sensitive":true
    },
    "OtaTaskConfigurationSummary":{
      "type":"structure",
      "members":{
        "TaskConfigurationId":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The id of the over-the-air (OTA) task configuration</p>"
        },
        "Name":{
          "shape":"OtaTaskConfigurationName",
          "documentation":"<p>The name of the over-the-air (OTA) task configuration.</p>"
        },
        "CreatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task configuration was created at.</p>"
        }
      },
      "documentation":"<p>Structure representing one over-the-air (OTA) task configuration.</p>"
    },
    "OtaTaskExecutionRetryConfig":{
      "type":"structure",
      "members":{
        "RetryConfigCriteria":{
          "shape":"RetryConfigCriteriaList",
          "documentation":"<p>The list of retry config criteria.</p>"
        }
      },
      "documentation":"<p>Over-the-air (OTA) task retry config.</p>"
    },
    "OtaTaskExecutionRolloutConfig":{
      "type":"structure",
      "members":{
        "ExponentialRolloutRate":{
          "shape":"ExponentialRolloutRate",
          "documentation":"<p>Structure representing exponential rate of rollout for an over-the-air (OTA) task.</p>"
        },
        "MaximumPerMinute":{
          "shape":"MaximumPerMinute",
          "documentation":"<p>The maximum number of things that will be notified of a pending task, per minute.</p>"
        }
      },
      "documentation":"<p>Over-the-air (OTA) task rollout config.</p>"
    },
    "OtaTaskExecutionStatus":{
      "type":"string",
      "enum":[
        "QUEUED",
        "IN_PROGRESS",
        "SUCCEEDED",
        "FAILED",
        "TIMED_OUT",
        "REJECTED",
        "REMOVED",
        "CANCELED"
      ]
    },
    "OtaTaskExecutionSummaries":{
      "type":"structure",
      "members":{
        "TaskExecutionSummary":{
          "shape":"OtaTaskExecutionSummary",
          "documentation":"<p>Structure representing one over-the-air (OTA) task execution summary</p>"
        },
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of a managed thing.</p>"
        }
      },
      "documentation":"<p>Structure representing one execution summary.</p>"
    },
    "OtaTaskExecutionSummariesListDefinition":{
      "type":"list",
      "member":{"shape":"OtaTaskExecutionSummaries"}
    },
    "OtaTaskExecutionSummary":{
      "type":"structure",
      "members":{
        "ExecutionNumber":{
          "shape":"ExecutionNumber",
          "documentation":"<p>The execution number of the over-the-air (OTA) task execution summary.</p>"
        },
        "LastUpdatedAt":{
          "shape":"LastUpdatedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task execution summary was last updated.</p>"
        },
        "QueuedAt":{
          "shape":"QueuedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task execution summary is targeted to start.</p>"
        },
        "RetryAttempt":{
          "shape":"RetryAttempt",
          "documentation":"<p>The number of retry attempts for starting the over-the-air (OTA) task execution summary after a failed attempt.</p>"
        },
        "StartedAt":{
          "shape":"StartedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task execution summary started.</p>"
        },
        "Status":{
          "shape":"OtaTaskExecutionStatus",
          "documentation":"<p>The status of the over-the-air (OTA) task execution summary.</p>"
        }
      },
      "documentation":"<p>Structure representing one over-the-air (OTA) task execution summary.</p>"
    },
    "OtaTaskId":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"[A-Za-z0-9]+"
    },
    "OtaTaskListDefinition":{
      "type":"list",
      "member":{"shape":"OtaTaskSummary"}
    },
    "OtaTaskSchedulingConfig":{
      "type":"structure",
      "members":{
        "EndBehavior":{
          "shape":"SchedulingConfigEndBehavior",
          "documentation":"<p>Specifies the end behavior for all task executions after a task reaches the selected <code>endTime</code>. If <code>endTime</code> is not selected when creating the task, then <code>endBehavior</code> does not apply.</p>"
        },
        "EndTime":{
          "shape":"EndTime",
          "documentation":"<p>The time an over-the-air (OTA) task will stop.</p>"
        },
        "MaintenanceWindows":{
          "shape":"ScheduleMaintenanceWindowList",
          "documentation":"<p>Maintenance window list for over-the-air (OTA) task scheduling config.</p>"
        },
        "StartTime":{
          "shape":"ScheduleStartTime",
          "documentation":"<p>The time an over-the-air (OTA) task will start.</p>"
        }
      },
      "documentation":"<p>Over-the-air (OTA) task scheduling config.</p>"
    },
    "OtaTaskSummary":{
      "type":"structure",
      "members":{
        "TaskId":{
          "shape":"OtaTaskId",
          "documentation":"<p>The id of the over-the-air (OTA) task.</p>"
        },
        "TaskArn":{
          "shape":"OtaTaskArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the over-the-air (OTA) task.</p>"
        },
        "CreatedAt":{
          "shape":"CreatedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task was created at.</p>"
        },
        "LastUpdatedAt":{
          "shape":"LastUpdatedAt",
          "documentation":"<p>The timestamp value of when the over-the-air (OTA) task was last updated at.</p>"
        },
        "TaskConfigurationId":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The identifier for the over-the-air (OTA) task configuration.</p>"
        },
        "Status":{
          "shape":"OtaStatus",
          "documentation":"<p>The status of the over-the-air (OTA) task summary.</p>"
        }
      },
      "documentation":"<p>Structure representing one over-the-air (OTA) task.</p>"
    },
    "OtaTaskTimeoutConfig":{
      "type":"structure",
      "members":{
        "InProgressTimeoutInMinutes":{
          "shape":"InProgressTimeoutInMinutes",
          "documentation":"<p>Specifies the amount of time the device has to finish execution of this task. The timeout interval can be anywhere between 1 minute and 7 days.</p>"
        }
      },
      "documentation":"<p>Over-the-air (OTA) task timeout config.</p>"
    },
    "OtaType":{
      "type":"string",
      "enum":[
        "ONE_TIME",
        "CONTINUOUS"
      ]
    },
    "Owner":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9_.,@-]+",
      "sensitive":true
    },
    "ParentControllerId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z0-9]+"
    },
    "PropertyName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[/a-zA-Z0-9\\._ ]+"
    },
    "ProvisioningProfileArn":{
      "type":"string",
      "max":64,
      "min":32,
      "pattern":"arn:aws:iotmanagedintegrations:[0-9a-zA-Z-]+:[0-9]+:provisioning-profile/[0-9a-zA-Z]+"
    },
    "ProvisioningProfileId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z0-9-_]+"
    },
    "ProvisioningProfileListDefinition":{
      "type":"list",
      "member":{"shape":"ProvisioningProfileSummary"}
    },
    "ProvisioningProfileName":{
      "type":"string",
      "max":36,
      "min":1,
      "pattern":"[0-9A-Za-z_-]+"
    },
    "ProvisioningProfileSummary":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"ProvisioningProfileName",
          "documentation":"<p>The name of the provisioning template.</p>"
        },
        "Id":{
          "shape":"ProvisioningProfileId",
          "documentation":"<p>The identifier of the provisioning profile.</p>"
        },
        "Arn":{
          "shape":"ProvisioningProfileArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the provisioning template used in the provisioning profile.</p>"
        },
        "ProvisioningType":{
          "shape":"ProvisioningType",
          "documentation":"<p>The type of provisioning workflow the device uses for onboarding to IoT managed integrations.</p>"
        }
      },
      "documentation":"<p>Structure describing a provisioning profile. </p>"
    },
    "ProvisioningStatus":{
      "type":"string",
      "enum":[
        "UNASSOCIATED",
        "PRE_ASSOCIATED",
        "DISCOVERED",
        "ACTIVATED",
        "DELETION_FAILED",
        "DELETE_IN_PROGRESS",
        "ISOLATED",
        "DELETED"
      ]
    },
    "ProvisioningType":{
      "type":"string",
      "enum":[
        "FLEET_PROVISIONING",
        "JITR"
      ]
    },
    "PushConfig":{
      "type":"structure",
      "members":{
        "AbortConfig":{
          "shape":"OtaTaskAbortConfig",
          "documentation":"<p>Structure representing one abort config.</p>"
        },
        "RolloutConfig":{
          "shape":"OtaTaskExecutionRolloutConfig",
          "documentation":"<p>Structure representing one rollout config.</p>"
        },
        "TimeoutConfig":{
          "shape":"OtaTaskTimeoutConfig",
          "documentation":"<p>Structure representing one timeout config.</p>"
        }
      },
      "documentation":"<p>Structure representing a push config.</p>"
    },
    "PutDefaultEncryptionConfigurationRequest":{
      "type":"structure",
      "required":["encryptionType"],
      "members":{
        "encryptionType":{
          "shape":"EncryptionType",
          "documentation":"<p>The type of encryption used for the encryption configuration.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Key Amazon Resource Name (ARN) of the AWS KMS key used for KMS encryption if you use <code>KMS_BASED_ENCRYPTION</code>.</p>"
        }
      }
    },
    "PutDefaultEncryptionConfigurationResponse":{
      "type":"structure",
      "required":[
        "configurationStatus",
        "encryptionType"
      ],
      "members":{
        "configurationStatus":{
          "shape":"ConfigurationStatus",
          "documentation":"<p>Provides the status of the default encryption configuration for an Amazon Web Services account.</p>"
        },
        "encryptionType":{
          "shape":"EncryptionType",
          "documentation":"<p>The type of encryption used for the encryption configuration.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Key Amazon Resource Name (ARN) of the AWS KMS key used for KMS encryption if you use <code>KMS_BASED_ENCRYPTION</code>.</p>"
        }
      }
    },
    "PutHubConfigurationRequest":{
      "type":"structure",
      "required":["HubTokenTimerExpirySettingInSeconds"],
      "members":{
        "HubTokenTimerExpirySettingInSeconds":{
          "shape":"HubTokenTimerExpirySettingInSeconds",
          "documentation":"<p>A user-defined integer value that represents the hub token timer expiry setting in seconds.</p>"
        }
      }
    },
    "PutHubConfigurationResponse":{
      "type":"structure",
      "members":{
        "HubTokenTimerExpirySettingInSeconds":{
          "shape":"HubTokenTimerExpirySettingInSeconds",
          "documentation":"<p>A user-defined integer value that represents the hub token timer expiry setting in seconds.</p>"
        }
      }
    },
    "PutRuntimeLogConfigurationRequest":{
      "type":"structure",
      "required":[
        "ManagedThingId",
        "RuntimeLogConfigurations"
      ],
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id for a managed thing.</p>",
          "location":"uri",
          "locationName":"ManagedThingId"
        },
        "RuntimeLogConfigurations":{
          "shape":"RuntimeLogConfigurations",
          "documentation":"<p>The runtime log configuration for a managed thing.</p>"
        }
      }
    },
    "QueuedAt":{"type":"timestamp"},
    "RegisterCustomEndpointRequest":{
      "type":"structure",
      "members":{
      }
    },
    "RegisterCustomEndpointResponse":{
      "type":"structure",
      "required":["EndpointAddress"],
      "members":{
        "EndpointAddress":{
          "shape":"EndpointAddress",
          "documentation":"<p>The IoT managed integrations dedicated, custom endpoint for the device to route traffic through.</p>"
        }
      }
    },
    "ResetRuntimeLogConfigurationRequest":{
      "type":"structure",
      "required":["ManagedThingId"],
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of a managed thing.</p>",
          "location":"uri",
          "locationName":"ManagedThingId"
        }
      }
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>The specified resource does not exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "RetryAttempt":{
      "type":"integer",
      "box":true
    },
    "RetryConfigCriteria":{
      "type":"structure",
      "members":{
        "FailureType":{
          "shape":"RetryCriteriaFailureType",
          "documentation":"<p>Over-the-air (OTA) retry criteria failure type.</p>"
        },
        "MinNumberOfRetries":{
          "shape":"MinNumberOfRetries",
          "documentation":"<p>The number of retries allowed for a failure type for the over-the-air (OTA) task.</p>"
        }
      },
      "documentation":"<p>Structure representing one retry config criteria.</p>"
    },
    "RetryConfigCriteriaList":{
      "type":"list",
      "member":{"shape":"RetryConfigCriteria"}
    },
    "RetryCriteriaFailureType":{
      "type":"string",
      "enum":[
        "FAILED",
        "TIMED_OUT",
        "ALL"
      ]
    },
    "Role":{
      "type":"string",
      "enum":[
        "CONTROLLER",
        "DEVICE"
      ]
    },
    "RolloutRateIncreaseCriteria":{
      "type":"structure",
      "members":{
        "numberOfNotifiedThings":{
          "shape":"NumberOfNotifiedThings",
          "documentation":"<p>The threshold for number of notified things that will initiate the increase in rate of rollout.</p>"
        },
        "numberOfSucceededThings":{
          "shape":"NumberOfSucceededThings",
          "documentation":"<p>The threshold for number of succeeded things that will initiate the increase in rate of rollout.</p>"
        }
      },
      "documentation":"<p>Structure representing rollout config criteria.</p>"
    },
    "RuntimeLogConfigurations":{
      "type":"structure",
      "members":{
        "LogLevel":{
          "shape":"LogLevel",
          "documentation":"<p>The different log levels available for configuration.</p>"
        },
        "LogFlushLevel":{
          "shape":"LogLevel",
          "documentation":"<p>The different log levels available for configuration.</p>"
        },
        "LocalStoreLocation":{
          "shape":"LocalStoreLocation",
          "documentation":"<p>Configuration of where to store runtime logs in the device.</p>"
        },
        "LocalStoreFileRotationMaxFiles":{
          "shape":"LocalStoreFileRotationMaxFiles",
          "documentation":"<p>Configuration to set the maximum number of runtime log files that can be stored on the device before the oldest files are deleted or overwritten.</p>"
        },
        "LocalStoreFileRotationMaxBytes":{
          "shape":"LocalStoreFileRotationMaxBytes",
          "documentation":"<p>Configuration to set the maximum bytes of runtime logs that can be stored on the device before the oldest logs are deleted or overwritten.</p>"
        },
        "UploadLog":{
          "shape":"UploadLog",
          "documentation":"<p>Configuration to enable or disable uploading of runtime logs to the cloud.</p>"
        },
        "UploadPeriodMinutes":{
          "shape":"UploadPeriodMinutes",
          "documentation":"<p>Configuration to set the time interval in minutes between each batch of runtime logs that the device uploads to the cloud.</p>"
        },
        "DeleteLocalStoreAfterUpload":{
          "shape":"DeleteLocalStoreAfterUpload",
          "documentation":"<p>Configuration to enable or disable deleting of runtime logs in the device once uploaded to the cloud.</p>"
        }
      },
      "documentation":"<p>The different configurations for runtime logs.</p>"
    },
    "S3Url":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "ScheduleMaintenanceWindow":{
      "type":"structure",
      "members":{
        "DurationInMinutes":{
          "shape":"DurationInMinutes",
          "documentation":"<p>Displays the duration of the next maintenance window.</p>"
        },
        "StartTime":{
          "shape":"StartTime",
          "documentation":"<p>Displays the start time of the next maintenance window.</p>"
        }
      },
      "documentation":"<p>Structure representing scheduling maintenance window.</p>"
    },
    "ScheduleMaintenanceWindowList":{
      "type":"list",
      "member":{"shape":"ScheduleMaintenanceWindow"}
    },
    "ScheduleStartTime":{"type":"string"},
    "SchedulingConfigEndBehavior":{
      "type":"string",
      "enum":[
        "STOP_ROLLOUT",
        "CANCEL",
        "FORCE_CANCEL"
      ]
    },
    "SchemaId":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9./]+"
    },
    "SchemaVersionDescription":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9., ]+"
    },
    "SchemaVersionFormat":{
      "type":"string",
      "enum":[
        "AWS",
        "ZCL",
        "CONNECTOR"
      ]
    },
    "SchemaVersionList":{
      "type":"list",
      "member":{"shape":"SchemaVersionListItem"}
    },
    "SchemaVersionListItem":{
      "type":"structure",
      "members":{
        "SchemaId":{
          "shape":"SchemaId",
          "documentation":"<p>The identifier of the schema version.</p>"
        },
        "Type":{
          "shape":"SchemaVersionType",
          "documentation":"<p>The type of schema version.</p>"
        },
        "Description":{
          "shape":"SchemaVersionDescription",
          "documentation":"<p>A description of the schema version.</p>"
        },
        "Namespace":{
          "shape":"SchemaVersionNamespaceName",
          "documentation":"<p>The name of the schema version.</p>"
        },
        "SemanticVersion":{
          "shape":"SchemaVersionVersion",
          "documentation":"<p>The schema version. If this is left blank, it defaults to the latest version.</p>"
        },
        "Visibility":{
          "shape":"SchemaVersionVisibility",
          "documentation":"<p>The visibility of the schema version.</p>"
        }
      },
      "documentation":"<p>List item describing a schema version.</p>"
    },
    "SchemaVersionNamespaceName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-z]+"
    },
    "SchemaVersionSchema":{
      "type":"structure",
      "members":{
      },
      "document":true
    },
    "SchemaVersionType":{
      "type":"string",
      "enum":[
        "capability",
        "definition"
      ]
    },
    "SchemaVersionVersion":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"(\\d+\\.\\d+|\\$latest)"
    },
    "SchemaVersionVisibility":{
      "type":"string",
      "enum":[
        "PUBLIC",
        "PRIVATE"
      ]
    },
    "SchemaVersionedId":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9.\\/]+(@(\\d+\\.\\d+|\\$latest))?"
    },
    "SendManagedThingCommandRequest":{
      "type":"structure",
      "required":[
        "ManagedThingId",
        "Endpoints"
      ],
      "members":{
        "ManagedThingId":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the device.</p>",
          "location":"uri",
          "locationName":"ManagedThingId"
        },
        "Endpoints":{
          "shape":"CommandEndpoints",
          "documentation":"<p>The device endpoint.</p>"
        },
        "ConnectorAssociationId":{
          "shape":"ConnectorAssociationId",
          "documentation":"<p>The ID tracking the current discovery process for one connector association.</p>"
        }
      }
    },
    "SendManagedThingCommandResponse":{
      "type":"structure",
      "members":{
        "TraceId":{
          "shape":"TraceId",
          "documentation":"<p>The trace request identifier. This is specified by the device owner, but will be generated by IoT managed integrations if not provided by the device owner.</p>"
        }
      }
    },
    "SerialNumber":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9-_ ]+",
      "sensitive":true
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>The service quota has been exceeded for this request.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "ServiceUnavailableException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>The service is temporarily unavailable.</p>",
      "error":{"httpStatusCode":503},
      "exception":true,
      "fault":true
    },
    "SetupAt":{"type":"timestamp"},
    "SmartHomeResourceId":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"[a-zA-Z0-9+*]*"
    },
    "SmartHomeResourceType":{
      "type":"string",
      "pattern":"[*]$|^(managed-thing|credential-locker|provisioning-profile|ota-task)"
    },
    "StartDeviceDiscoveryRequest":{
      "type":"structure",
      "required":["DiscoveryType"],
      "members":{
        "DiscoveryType":{
          "shape":"DiscoveryType",
          "documentation":"<p>The discovery type supporting the type of device to be discovered in the device discovery job request.</p>"
        },
        "ControllerIdentifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the end-user's IoT hub.</p>"
        },
        "ConnectorAssociationIdentifier":{
          "shape":"ConnectorAssociationId",
          "documentation":"<p>The id of the connector association.</p>"
        },
        "AuthenticationMaterial":{
          "shape":"DiscoveryAuthMaterialString",
          "documentation":"<p>The authentication material required to start the local device discovery job request.</p>"
        },
        "AuthenticationMaterialType":{
          "shape":"DiscoveryAuthMaterialType",
          "documentation":"<p>The type of authentication material used for device discovery jobs.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.</p>"
        },
        "Tags":{
          "shape":"TagsMap",
          "documentation":"<p>A set of key/value pairs that are used to manage the device discovery request.</p>"
        }
      }
    },
    "StartDeviceDiscoveryResponse":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"DeviceDiscoveryId",
          "documentation":"<p>The id of the device discovery job request.</p>"
        },
        "StartedAt":{
          "shape":"DiscoveryStartedAt",
          "documentation":"<p>The timestamp value for the start time of the device discovery.</p>"
        }
      }
    },
    "StartTime":{"type":"string"},
    "StartedAt":{"type":"timestamp"},
    "StateCapabilities":{
      "type":"list",
      "member":{"shape":"StateCapability"},
      "max":5,
      "min":1
    },
    "StateCapability":{
      "type":"structure",
      "required":[
        "id",
        "name",
        "version"
      ],
      "members":{
        "id":{
          "shape":"SchemaVersionedId",
          "documentation":"<p>The id of the managed thing in the capability report.</p>"
        },
        "name":{
          "shape":"CapabilityName",
          "documentation":"<p>Name for the Amazon Web Services capability.</p>"
        },
        "version":{
          "shape":"CapabilityVersion",
          "documentation":"<p>Version for the Amazon Web Services capability.</p>"
        },
        "properties":{
          "shape":"CapabilityProperties",
          "documentation":"<p>Describe the command capability with the properties it supports.</p>"
        }
      },
      "documentation":"<p>State capabilities added for the managed thing.</p>"
    },
    "StateEndpoint":{
      "type":"structure",
      "required":[
        "endpointId",
        "capabilities"
      ],
      "members":{
        "endpointId":{
          "shape":"EndpointId",
          "documentation":"<p>Numeric identifier of the endpoint</p>"
        },
        "capabilities":{
          "shape":"StateCapabilities",
          "documentation":"<p>Describe the endpoint with an id, a name, and the relevant capabilities for the reporting state.</p>"
        }
      },
      "documentation":"<p>Describe the endpoint with an Id, a name, and the relevant capabilities for reporting state</p>"
    },
    "StateEndpoints":{
      "type":"list",
      "member":{"shape":"StateEndpoint"},
      "max":5,
      "min":0
    },
    "String":{"type":"string"},
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "TagsMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "max":50,
      "min":1,
      "sensitive":true
    },
    "Target":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "TaskProcessingDetails":{
      "type":"structure",
      "members":{
        "NumberOfCanceledThings":{
          "shape":"Integer",
          "documentation":"<p>The number of canceled things in an over-the-air (OTA) task.</p>"
        },
        "NumberOfFailedThings":{
          "shape":"Integer",
          "documentation":"<p>The number of failed things in an over-the-air (OTA) task.</p>"
        },
        "NumberOfInProgressThings":{
          "shape":"Integer",
          "documentation":"<p>The number of in progress things in an over-the-air (OTA) task.</p>"
        },
        "numberOfQueuedThings":{
          "shape":"Integer",
          "documentation":"<p>The number of queued things in an over-the-air (OTA) task.</p>"
        },
        "numberOfRejectedThings":{
          "shape":"Integer",
          "documentation":"<p>The number of rejected things in an over-the-air (OTA) task.</p>"
        },
        "numberOfRemovedThings":{
          "shape":"Integer",
          "documentation":"<p>The number of removed things in an over-the-air (OTA) task.</p>"
        },
        "numberOfSucceededThings":{
          "shape":"Integer",
          "documentation":"<p>The number of succeeded things in an over-the-air (OTA) task.</p>"
        },
        "numberOfTimedOutThings":{
          "shape":"Integer",
          "documentation":"<p>The number of timed out things in an over-the-air (OTA) task.</p>"
        },
        "processingTargets":{
          "shape":"Target",
          "documentation":"<p>The targets of the over-the-air (OTA) task.</p>"
        }
      },
      "documentation":"<p>Details about the over-the-air (OTA) task process.</p>"
    },
    "ThresholdPercentage":{
      "type":"double",
      "box":true,
      "max":100
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>The rate exceeds the limit.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "TraceId":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9:=_-]+"
    },
    "UnauthorizedException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>You are not authorized to perform this operation.</p>",
      "error":{
        "httpStatusCode":401,
        "senderFault":true
      },
      "exception":true
    },
    "UniversalProductCode":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"[0-9]+",
      "sensitive":true
    },
    "UpdateDestinationRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the customer-managed destination.</p>",
          "location":"uri",
          "locationName":"Name"
        },
        "DeliveryDestinationArn":{
          "shape":"DeliveryDestinationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer-managed destination.</p>"
        },
        "DeliveryDestinationType":{
          "shape":"DeliveryDestinationType",
          "documentation":"<p>The destination type for the customer-managed destination.</p>"
        },
        "RoleArn":{
          "shape":"DeliveryDestinationRoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the delivery destination role.</p>"
        },
        "Description":{
          "shape":"DestinationDescription",
          "documentation":"<p>The description of the customer-managed destination.</p>"
        }
      }
    },
    "UpdateEventLogConfigurationRequest":{
      "type":"structure",
      "required":[
        "Id",
        "EventLogLevel"
      ],
      "members":{
        "Id":{
          "shape":"LogConfigurationId",
          "documentation":"<p>The log configuration id.</p>",
          "location":"uri",
          "locationName":"Id"
        },
        "EventLogLevel":{
          "shape":"LogLevel",
          "documentation":"<p>The log level for the event in terms of severity.</p>"
        }
      }
    },
    "UpdateManagedThingRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"ManagedThingId",
          "documentation":"<p>The id of the managed thing.</p>",
          "location":"uri",
          "locationName":"Identifier"
        },
        "Owner":{
          "shape":"Owner",
          "documentation":"<p>Owner of the device, usually an indication of whom the device belongs to. This value should not contain personal identifiable information.</p>"
        },
        "CredentialLockerId":{
          "shape":"CredentialLockerId",
          "documentation":"<p>The identifier of the credential for the managed thing.</p>"
        },
        "SerialNumber":{
          "shape":"SerialNumber",
          "documentation":"<p>The serial number of the device.</p>"
        },
        "Brand":{
          "shape":"Brand",
          "documentation":"<p>The brand of the device.</p>"
        },
        "Model":{
          "shape":"Model",
          "documentation":"<p>The model of the device.</p>"
        },
        "Name":{
          "shape":"Name",
          "documentation":"<p>The name of the managed thing representing the physical device.</p>"
        },
        "CapabilityReport":{
          "shape":"CapabilityReport",
          "documentation":"<p>A report of the capabilities for the managed thing.</p>"
        },
        "Capabilities":{
          "shape":"Capabilities",
          "documentation":"<p>The capabilities of the device such as light bulb.</p>"
        },
        "Classification":{
          "shape":"Classification",
          "documentation":"<p>The classification of the managed thing such as light bulb or thermostat.</p>"
        },
        "HubNetworkMode":{
          "shape":"HubNetworkMode",
          "documentation":"<p>The network mode for the hub-connected device.</p>"
        },
        "MetaData":{
          "shape":"MetaData",
          "documentation":"<p>The metadata for the managed thing.</p>"
        }
      }
    },
    "UpdateNotificationConfigurationRequest":{
      "type":"structure",
      "required":[
        "EventType",
        "DestinationName"
      ],
      "members":{
        "EventType":{
          "shape":"EventType",
          "documentation":"<p>The type of event triggering a device notification to the customer-managed destination.</p>",
          "location":"uri",
          "locationName":"EventType"
        },
        "DestinationName":{
          "shape":"DestinationName",
          "documentation":"<p>The name of the destination for the notification configuration.</p>"
        }
      }
    },
    "UpdateOtaTaskRequest":{
      "type":"structure",
      "required":["Identifier"],
      "members":{
        "Identifier":{
          "shape":"OtaTaskId",
          "documentation":"<p>The over-the-air (OTA) task id.</p>",
          "location":"uri",
          "locationName":"Identifier"
        },
        "Description":{
          "shape":"OtaDescription",
          "documentation":"<p>The description of the over-the-air (OTA) task.</p>"
        },
        "TaskConfigurationId":{
          "shape":"OtaTaskConfigurationId",
          "documentation":"<p>The identifier for the over-the-air (OTA) task configuration.</p>"
        }
      }
    },
    "UpdatedAt":{"type":"timestamp"},
    "UploadLog":{
      "type":"boolean",
      "box":true
    },
    "UploadPeriodMinutes":{
      "type":"integer",
      "box":true
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p>A validation error occurred when performing the API request.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationSchema":{
      "type":"structure",
      "members":{
      },
      "document":true
    }
  },
  "documentation":"<p>Managed integrations is a feature of AWS IoT Device Management that enables developers to quickly build innovative IoT solutions. Customers can use managed integrations to automate device setup workflows and support interoperability across many devices, regardless of device vendor or connectivity protocol. This allows developers to use a single user-interface to control, manage, and operate a range of devices.</p>"
}
