{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2019-09-01",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"braket",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Braket",
    "serviceId":"Braket",
    "signatureVersion":"v4",
    "signingName":"braket",
    "uid":"braket-2019-09-01"
  },
  "operations":{
    "CancelJob":{
      "name":"CancelJob",
      "http":{
        "method":"PUT",
        "requestUri":"/job/{jobArn}/cancel",
        "responseCode":200
      },
      "input":{"shape":"CancelJobRequest"},
      "output":{"shape":"CancelJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Cancels an Amazon Braket hybrid job.</p>",
      "idempotent":true
    },
    "CancelQuantumTask":{
      "name":"CancelQuantumTask",
      "http":{
        "method":"PUT",
        "requestUri":"/quantum-task/{quantumTaskArn}/cancel",
        "responseCode":200
      },
      "input":{"shape":"CancelQuantumTaskRequest"},
      "output":{"shape":"CancelQuantumTaskResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Cancels the specified task.</p>",
      "idempotent":true
    },
    "CreateJob":{
      "name":"CreateJob",
      "http":{
        "method":"POST",
        "requestUri":"/job",
        "responseCode":201
      },
      "input":{"shape":"CreateJobRequest"},
      "output":{"shape":"CreateJobResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"DeviceOfflineException"},
        {"shape":"DeviceRetiredException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates an Amazon Braket hybrid job.</p>"
    },
    "CreateQuantumTask":{
      "name":"CreateQuantumTask",
      "http":{
        "method":"POST",
        "requestUri":"/quantum-task",
        "responseCode":201
      },
      "input":{"shape":"CreateQuantumTaskRequest"},
      "output":{"shape":"CreateQuantumTaskResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"DeviceOfflineException"},
        {"shape":"ThrottlingException"},
        {"shape":"DeviceRetiredException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates a quantum task.</p>"
    },
    "GetDevice":{
      "name":"GetDevice",
      "http":{
        "method":"GET",
        "requestUri":"/device/{deviceArn}",
        "responseCode":200
      },
      "input":{"shape":"GetDeviceRequest"},
      "output":{"shape":"GetDeviceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves the devices available in Amazon Braket.</p> <note> <p>For backwards compatibility with older versions of BraketSchemas, OpenQASM information is omitted from GetDevice API calls. To get this information the user-agent needs to present a recent version of the BraketSchemas (1.8.0 or later). The Braket SDK automatically reports this for you. If you do not see OpenQASM results in the GetDevice response when using a Braket SDK, you may need to set AWS_EXECUTION_ENV environment variable to configure user-agent. See the code examples provided below for how to do this for the AWS CLI, Boto3, and the Go, Java, and JavaScript/TypeScript SDKs.</p> </note>"
    },
    "GetJob":{
      "name":"GetJob",
      "http":{
        "method":"GET",
        "requestUri":"/job/{jobArn}",
        "responseCode":200
      },
      "input":{"shape":"GetJobRequest"},
      "output":{"shape":"GetJobResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves the specified Amazon Braket hybrid job.</p>"
    },
    "GetQuantumTask":{
      "name":"GetQuantumTask",
      "http":{
        "method":"GET",
        "requestUri":"/quantum-task/{quantumTaskArn}",
        "responseCode":200
      },
      "input":{"shape":"GetQuantumTaskRequest"},
      "output":{"shape":"GetQuantumTaskResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves the specified quantum task.</p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Shows the tags associated with this resource.</p>"
    },
    "SearchDevices":{
      "name":"SearchDevices",
      "http":{
        "method":"POST",
        "requestUri":"/devices",
        "responseCode":200
      },
      "input":{"shape":"SearchDevicesRequest"},
      "output":{"shape":"SearchDevicesResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Searches for devices using the specified filters.</p>"
    },
    "SearchJobs":{
      "name":"SearchJobs",
      "http":{
        "method":"POST",
        "requestUri":"/jobs",
        "responseCode":200
      },
      "input":{"shape":"SearchJobsRequest"},
      "output":{"shape":"SearchJobsResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Searches for Amazon Braket hybrid jobs that match the specified filter values.</p>"
    },
    "SearchQuantumTasks":{
      "name":"SearchQuantumTasks",
      "http":{
        "method":"POST",
        "requestUri":"/quantum-tasks",
        "responseCode":200
      },
      "input":{"shape":"SearchQuantumTasksRequest"},
      "output":{"shape":"SearchQuantumTasksResponse"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Searches for tasks that match the specified filter values.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Add a tag to the specified resource.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Remove tags from a resource.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You do not have sufficient permissions to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "ActionMetadata":{
      "type":"structure",
      "required":["actionType"],
      "members":{
        "actionType":{
          "shape":"String",
          "documentation":"<p>The type of action associated with the quantum task.</p>"
        },
        "programCount":{
          "shape":"Long",
          "documentation":"<p>The number of programs in a program set. This is only available for a Program Set.</p>"
        },
        "executableCount":{
          "shape":"Long",
          "documentation":"<p>The number of executables in a program set. This is only available for a Program Set.</p>"
        }
      },
      "documentation":"<p>Contains metadata about the quantum task action, including the action type and program statistics.</p>"
    },
    "AlgorithmSpecification":{
      "type":"structure",
      "members":{
        "scriptModeConfig":{
          "shape":"ScriptModeConfig",
          "documentation":"<p>Configures the paths to the Python scripts used for entry and training.</p>"
        },
        "containerImage":{
          "shape":"ContainerImage",
          "documentation":"<p>The container image used to create an Amazon Braket hybrid job.</p>"
        }
      },
      "documentation":"<p>Defines the Amazon Braket hybrid job to be created. Specifies the container image the job uses and the paths to the Python scripts used for entry and training.</p>"
    },
    "Association":{
      "type":"structure",
      "required":[
        "arn",
        "type"
      ],
      "members":{
        "arn":{
          "shape":"BraketResourceArn",
          "documentation":"<p>The Amazon Braket resource arn.</p>"
        },
        "type":{
          "shape":"AssociationType",
          "documentation":"<p>The association type for the specified Amazon Braket resource arn.</p>"
        }
      },
      "documentation":"<p>The Amazon Braket resource and the association type.</p>"
    },
    "AssociationType":{
      "type":"string",
      "enum":["RESERVATION_TIME_WINDOW_ARN"]
    },
    "Associations":{
      "type":"list",
      "member":{"shape":"Association"}
    },
    "BraketResourceArn":{
      "type":"string",
      "pattern":"arn:aws[a-z\\-]*:braket:[a-z0-9\\-]*:[0-9]{12}:.*"
    },
    "CancelJobRequest":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p>The ARN of the Amazon Braket hybrid job to cancel.</p>",
          "location":"uri",
          "locationName":"jobArn"
        }
      }
    },
    "CancelJobResponse":{
      "type":"structure",
      "required":[
        "jobArn",
        "cancellationStatus"
      ],
      "members":{
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p>The ARN of the Amazon Braket job.</p>"
        },
        "cancellationStatus":{
          "shape":"CancellationStatus",
          "documentation":"<p>The status of the hybrid job.</p>"
        }
      }
    },
    "CancelQuantumTaskRequest":{
      "type":"structure",
      "required":[
        "quantumTaskArn",
        "clientToken"
      ],
      "members":{
        "quantumTaskArn":{
          "shape":"QuantumTaskArn",
          "documentation":"<p>The ARN of the quantum task to cancel.</p>",
          "location":"uri",
          "locationName":"quantumTaskArn"
        },
        "clientToken":{
          "shape":"String64",
          "documentation":"<p>The client token associated with the cancellation request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CancelQuantumTaskResponse":{
      "type":"structure",
      "required":[
        "quantumTaskArn",
        "cancellationStatus"
      ],
      "members":{
        "quantumTaskArn":{
          "shape":"QuantumTaskArn",
          "documentation":"<p>The ARN of the quantum task.</p>"
        },
        "cancellationStatus":{
          "shape":"CancellationStatus",
          "documentation":"<p>The status of the quantum task.</p>"
        }
      }
    },
    "CancellationStatus":{
      "type":"string",
      "enum":[
        "CANCELLING",
        "CANCELLED"
      ]
    },
    "CompressionType":{
      "type":"string",
      "enum":[
        "NONE",
        "GZIP"
      ]
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>An error occurred due to a conflict.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ContainerImage":{
      "type":"structure",
      "required":["uri"],
      "members":{
        "uri":{
          "shape":"Uri",
          "documentation":"<p>The URI locating the container image.</p>"
        }
      },
      "documentation":"<p>The container image used to create an Amazon Braket hybrid job.</p>"
    },
    "CreateJobRequest":{
      "type":"structure",
      "required":[
        "clientToken",
        "algorithmSpecification",
        "outputDataConfig",
        "jobName",
        "roleArn",
        "instanceConfig",
        "deviceConfig"
      ],
      "members":{
        "clientToken":{
          "shape":"String64",
          "documentation":"<p>The client token associated with this request that guarantees that the request is idempotent.</p>",
          "idempotencyToken":true
        },
        "algorithmSpecification":{
          "shape":"AlgorithmSpecification",
          "documentation":"<p>Definition of the Amazon Braket job to be created. Specifies the container image the job uses and information about the Python scripts used for entry and training.</p>"
        },
        "inputDataConfig":{
          "shape":"CreateJobRequestInputDataConfigList",
          "documentation":"<p>A list of parameters that specify the name and type of input data and where it is located.</p>"
        },
        "outputDataConfig":{
          "shape":"JobOutputDataConfig",
          "documentation":"<p>The path to the S3 location where you want to store hybrid job artifacts and the encryption key used to store them.</p>"
        },
        "checkpointConfig":{
          "shape":"JobCheckpointConfig",
          "documentation":"<p>Information about the output locations for hybrid job checkpoint data.</p>"
        },
        "jobName":{
          "shape":"CreateJobRequestJobNameString",
          "documentation":"<p>The name of the Amazon Braket hybrid job.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, and output results and hybrid job details to the users' s3 buckets.</p>"
        },
        "stoppingCondition":{
          "shape":"JobStoppingCondition",
          "documentation":"<p> The user-defined criteria that specifies when a hybrid job stops running.</p>"
        },
        "instanceConfig":{
          "shape":"InstanceConfig",
          "documentation":"<p>Configuration of the resource instances to use while running the hybrid job on Amazon Braket.</p>"
        },
        "hyperParameters":{
          "shape":"HyperParameters",
          "documentation":"<p>Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the training job. The values are set with a map of JSON key:value pairs, where the key is the name of the hyperparameter and the value is the value of the hyperparameter.</p> <important> <p>Do not include any security-sensitive information including account access IDs, secrets, or tokens in any hyperparameter fields. As part of the shared responsibility model, you are responsible for any potential exposure, unauthorized access, or compromise of your sensitive data if caused by security-sensitive information included in the request hyperparameter variable or plain text fields.</p> </important>"
        },
        "deviceConfig":{
          "shape":"DeviceConfig",
          "documentation":"<p>The quantum processing unit (QPU) or simulator used to create an Amazon Braket hybrid job.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags to be added to the hybrid job you're creating.</p>"
        },
        "associations":{
          "shape":"CreateJobRequestAssociationsList",
          "documentation":"<p>The list of Amazon Braket resources associated with the hybrid job.</p>"
        }
      }
    },
    "CreateJobRequestAssociationsList":{
      "type":"list",
      "member":{"shape":"Association"},
      "max":1,
      "min":0
    },
    "CreateJobRequestInputDataConfigList":{
      "type":"list",
      "member":{"shape":"InputFileConfig"},
      "max":20,
      "min":0
    },
    "CreateJobRequestJobNameString":{
      "type":"string",
      "max":50,
      "min":1,
      "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9]){0,50}"
    },
    "CreateJobResponse":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p>The ARN of the Amazon Braket hybrid job created.</p>"
        }
      }
    },
    "CreateQuantumTaskRequest":{
      "type":"structure",
      "required":[
        "clientToken",
        "deviceArn",
        "shots",
        "outputS3Bucket",
        "outputS3KeyPrefix",
        "action"
      ],
      "members":{
        "clientToken":{
          "shape":"String64",
          "documentation":"<p>The client token associated with the request.</p>",
          "idempotencyToken":true
        },
        "deviceArn":{
          "shape":"DeviceArn",
          "documentation":"<p>The ARN of the device to run the quantum task on.</p>"
        },
        "deviceParameters":{
          "shape":"CreateQuantumTaskRequestDeviceParametersString",
          "documentation":"<p>The parameters for the device to run the quantum task on.</p>",
          "jsonvalue":true
        },
        "shots":{
          "shape":"CreateQuantumTaskRequestShotsLong",
          "documentation":"<p>The number of shots to use for the quantum task.</p>"
        },
        "outputS3Bucket":{
          "shape":"CreateQuantumTaskRequestOutputS3BucketString",
          "documentation":"<p>The S3 bucket to store quantum task result files in.</p>"
        },
        "outputS3KeyPrefix":{
          "shape":"CreateQuantumTaskRequestOutputS3KeyPrefixString",
          "documentation":"<p>The key prefix for the location in the S3 bucket to store quantum task results in.</p>"
        },
        "action":{
          "shape":"JsonValue",
          "documentation":"<p>The action associated with the quantum task.</p>",
          "jsonvalue":true
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags to be added to the quantum task you're creating.</p>"
        },
        "jobToken":{
          "shape":"JobToken",
          "documentation":"<p>The token for an Amazon Braket hybrid job that associates it with the quantum task.</p>"
        },
        "associations":{
          "shape":"CreateQuantumTaskRequestAssociationsList",
          "documentation":"<p>The list of Amazon Braket resources associated with the quantum task.</p>"
        }
      }
    },
    "CreateQuantumTaskRequestAssociationsList":{
      "type":"list",
      "member":{"shape":"Association"},
      "max":1,
      "min":0
    },
    "CreateQuantumTaskRequestDeviceParametersString":{
      "type":"string",
      "max":48000,
      "min":1
    },
    "CreateQuantumTaskRequestOutputS3BucketString":{
      "type":"string",
      "max":63,
      "min":3
    },
    "CreateQuantumTaskRequestOutputS3KeyPrefixString":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "CreateQuantumTaskRequestShotsLong":{
      "type":"long",
      "box":true,
      "min":0
    },
    "CreateQuantumTaskResponse":{
      "type":"structure",
      "required":["quantumTaskArn"],
      "members":{
        "quantumTaskArn":{
          "shape":"QuantumTaskArn",
          "documentation":"<p>The ARN of the quantum task created by the request.</p>"
        }
      }
    },
    "DataSource":{
      "type":"structure",
      "required":["s3DataSource"],
      "members":{
        "s3DataSource":{
          "shape":"S3DataSource",
          "documentation":"<p>Amazon S3 path of the input data used by the hybrid job.</p>"
        }
      },
      "documentation":"<p>Information about the source of the input data used by the Amazon Braket hybrid job.</p>"
    },
    "DeviceArn":{
      "type":"string",
      "max":256,
      "min":1
    },
    "DeviceConfig":{
      "type":"structure",
      "required":["device"],
      "members":{
        "device":{
          "shape":"String256",
          "documentation":"<p>The primary device ARN used to create and run an Amazon Braket hybrid job.</p>"
        }
      },
      "documentation":"<p>Configures the primary device used to create and run an Amazon Braket hybrid job.</p>"
    },
    "DeviceOfflineException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified device is currently offline.</p>",
      "error":{
        "httpStatusCode":424,
        "senderFault":true
      },
      "exception":true
    },
    "DeviceQueueInfo":{
      "type":"structure",
      "required":[
        "queue",
        "queueSize"
      ],
      "members":{
        "queue":{
          "shape":"QueueName",
          "documentation":"<p>The name of the queue. </p>"
        },
        "queueSize":{
          "shape":"String",
          "documentation":"<p>The number of hybrid jobs or quantum tasks in the queue for a given device. </p>"
        },
        "queuePriority":{
          "shape":"QueuePriority",
          "documentation":"<p>Optional. Specifies the priority of the queue. Quantum tasks in a priority queue are processed before the quantum tasks in a normal queue.</p>"
        }
      },
      "documentation":"<p>Information about quantum tasks and hybrid jobs queued on a device.</p>"
    },
    "DeviceQueueInfoList":{
      "type":"list",
      "member":{"shape":"DeviceQueueInfo"}
    },
    "DeviceRetiredException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified device has been retired.</p>",
      "error":{
        "httpStatusCode":410,
        "senderFault":true
      },
      "exception":true
    },
    "DeviceStatus":{
      "type":"string",
      "enum":[
        "ONLINE",
        "OFFLINE",
        "RETIRED"
      ]
    },
    "DeviceSummary":{
      "type":"structure",
      "required":[
        "deviceArn",
        "deviceName",
        "providerName",
        "deviceType",
        "deviceStatus"
      ],
      "members":{
        "deviceArn":{
          "shape":"DeviceArn",
          "documentation":"<p>The ARN of the device.</p>"
        },
        "deviceName":{
          "shape":"String",
          "documentation":"<p>The name of the device.</p>"
        },
        "providerName":{
          "shape":"String",
          "documentation":"<p>The provider of the device.</p>"
        },
        "deviceType":{
          "shape":"DeviceType",
          "documentation":"<p>The type of the device.</p>"
        },
        "deviceStatus":{
          "shape":"DeviceStatus",
          "documentation":"<p>The status of the device.</p>"
        }
      },
      "documentation":"<p>Includes information about the device.</p>"
    },
    "DeviceSummaryList":{
      "type":"list",
      "member":{"shape":"DeviceSummary"}
    },
    "DeviceType":{
      "type":"string",
      "enum":[
        "QPU",
        "SIMULATOR"
      ]
    },
    "GetDeviceRequest":{
      "type":"structure",
      "required":["deviceArn"],
      "members":{
        "deviceArn":{
          "shape":"DeviceArn",
          "documentation":"<p>The ARN of the device to retrieve.</p>",
          "location":"uri",
          "locationName":"deviceArn"
        }
      }
    },
    "GetDeviceResponse":{
      "type":"structure",
      "required":[
        "deviceArn",
        "deviceName",
        "providerName",
        "deviceType",
        "deviceStatus",
        "deviceCapabilities"
      ],
      "members":{
        "deviceArn":{
          "shape":"DeviceArn",
          "documentation":"<p>The ARN of the device.</p>"
        },
        "deviceName":{
          "shape":"String",
          "documentation":"<p>The name of the device.</p>"
        },
        "providerName":{
          "shape":"String",
          "documentation":"<p>The name of the partner company for the device.</p>"
        },
        "deviceType":{
          "shape":"DeviceType",
          "documentation":"<p>The type of the device.</p>"
        },
        "deviceStatus":{
          "shape":"DeviceStatus",
          "documentation":"<p>The status of the device.</p>"
        },
        "deviceCapabilities":{
          "shape":"JsonValue",
          "documentation":"<p>Details about the capabilities of the device.</p>",
          "jsonvalue":true
        },
        "deviceQueueInfo":{
          "shape":"DeviceQueueInfoList",
          "documentation":"<p>The number of quantum tasks and hybrid jobs currently queued on the device.</p>"
        }
      }
    },
    "GetJobRequest":{
      "type":"structure",
      "required":["jobArn"],
      "members":{
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p>The ARN of the hybrid job to retrieve.</p>",
          "location":"uri",
          "locationName":"jobArn"
        },
        "additionalAttributeNames":{
          "shape":"HybridJobAdditionalAttributeNamesList",
          "documentation":"<p>A list of attributes to return additional information for. Only the QueueInfo additional attribute name is currently supported. </p>",
          "location":"querystring",
          "locationName":"additionalAttributeNames"
        }
      }
    },
    "GetJobResponse":{
      "type":"structure",
      "required":[
        "status",
        "jobArn",
        "roleArn",
        "jobName",
        "outputDataConfig",
        "algorithmSpecification",
        "instanceConfig",
        "createdAt"
      ],
      "members":{
        "status":{
          "shape":"JobPrimaryStatus",
          "documentation":"<p>The status of the Amazon Braket hybrid job.</p>"
        },
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p>The ARN of the Amazon Braket hybrid job.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, and output results and other hybrid job details to the s3 buckets of a user.</p>"
        },
        "failureReason":{
          "shape":"String1024",
          "documentation":"<p>A description of the reason why an Amazon Braket hybrid job failed, if it failed.</p>"
        },
        "jobName":{
          "shape":"GetJobResponseJobNameString",
          "documentation":"<p>The name of the Amazon Braket hybrid job.</p>"
        },
        "hyperParameters":{
          "shape":"HyperParameters",
          "documentation":"<p>Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the traiing job. The values are set with a map of JSON key:value pairs, where the key is the name of the hyperparameter and the value is the value of th hyperparameter.</p>"
        },
        "inputDataConfig":{
          "shape":"InputConfigList",
          "documentation":"<p>A list of parameters that specify the name and type of input data and where it is located.</p>"
        },
        "outputDataConfig":{
          "shape":"JobOutputDataConfig",
          "documentation":"<p>The path to the S3 location where hybrid job artifacts are stored and the encryption key used to store them there.</p>"
        },
        "stoppingCondition":{
          "shape":"JobStoppingCondition",
          "documentation":"<p>The user-defined criteria that specifies when to stop a running hybrid job.</p>"
        },
        "checkpointConfig":{
          "shape":"JobCheckpointConfig",
          "documentation":"<p>Information about the output locations for hybrid job checkpoint data.</p>"
        },
        "algorithmSpecification":{
          "shape":"AlgorithmSpecification",
          "documentation":"<p>Definition of the Amazon Braket hybrid job created. Provides information about the container image used, and the Python scripts used for training.</p>"
        },
        "instanceConfig":{
          "shape":"InstanceConfig",
          "documentation":"<p>The resource instances to use while running the hybrid job on Amazon Braket.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the Amazon Braket hybrid job was created.</p>"
        },
        "startedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the Amazon Braket hybrid job was started.</p>"
        },
        "endedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the Amazon Braket hybrid job ended.</p>"
        },
        "billableDuration":{
          "shape":"Integer",
          "documentation":"<p>The billable time for which the Amazon Braket hybrid job used to complete.</p>"
        },
        "deviceConfig":{
          "shape":"DeviceConfig",
          "documentation":"<p>The primary device used by the Amazon Braket hybrid job.</p>"
        },
        "events":{
          "shape":"JobEvents",
          "documentation":"<p>Details about the time and type of events occurred related to the Amazon Braket hybrid job.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>The tags associated with this hybrid job.</p>"
        },
        "queueInfo":{
          "shape":"HybridJobQueueInfo",
          "documentation":"<p>Queue information for the requested hybrid job. Only returned if <code>QueueInfo</code> is specified in the <code>additionalAttributeNames\"</code> field in the <code>GetJob</code> API request.</p>"
        },
        "associations":{
          "shape":"Associations",
          "documentation":"<p>The list of Amazon Braket resources associated with the hybrid job.</p>"
        }
      }
    },
    "GetJobResponseJobNameString":{
      "type":"string",
      "max":50,
      "min":1,
      "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9]){0,50}"
    },
    "GetQuantumTaskRequest":{
      "type":"structure",
      "required":["quantumTaskArn"],
      "members":{
        "quantumTaskArn":{
          "shape":"QuantumTaskArn",
          "documentation":"<p>The ARN of the quantum task to retrieve.</p>",
          "location":"uri",
          "locationName":"quantumTaskArn"
        },
        "additionalAttributeNames":{
          "shape":"QuantumTaskAdditionalAttributeNamesList",
          "documentation":"<p>A list of attributes to return additional information for. Only the QueueInfo additional attribute name is currently supported.</p>",
          "location":"querystring",
          "locationName":"additionalAttributeNames"
        }
      }
    },
    "GetQuantumTaskResponse":{
      "type":"structure",
      "required":[
        "quantumTaskArn",
        "status",
        "deviceArn",
        "deviceParameters",
        "shots",
        "outputS3Bucket",
        "outputS3Directory",
        "createdAt"
      ],
      "members":{
        "quantumTaskArn":{
          "shape":"QuantumTaskArn",
          "documentation":"<p>The ARN of the quantum task.</p>"
        },
        "status":{
          "shape":"QuantumTaskStatus",
          "documentation":"<p>The status of the quantum task.</p>"
        },
        "failureReason":{
          "shape":"String",
          "documentation":"<p>The reason that a quantum task failed.</p>"
        },
        "deviceArn":{
          "shape":"DeviceArn",
          "documentation":"<p>The ARN of the device the quantum task was run on.</p>"
        },
        "deviceParameters":{
          "shape":"JsonValue",
          "documentation":"<p>The parameters for the device on which the quantum task ran.</p>",
          "jsonvalue":true
        },
        "shots":{
          "shape":"Long",
          "documentation":"<p>The number of shots used in the quantum task.</p>"
        },
        "outputS3Bucket":{
          "shape":"String",
          "documentation":"<p>The S3 bucket where quantum task results are stored.</p>"
        },
        "outputS3Directory":{
          "shape":"String",
          "documentation":"<p>The folder in the S3 bucket where quantum task results are stored.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the quantum task was created.</p>"
        },
        "endedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the quantum task ended.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>The tags that belong to this quantum task.</p>"
        },
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p>The ARN of the Amazon Braket job associated with the quantum task.</p>"
        },
        "queueInfo":{
          "shape":"QuantumTaskQueueInfo",
          "documentation":"<p>Queue information for the requested quantum task. Only returned if <code>QueueInfo</code> is specified in the <code>additionalAttributeNames\"</code> field in the <code>GetQuantumTask</code> API request.</p>"
        },
        "associations":{
          "shape":"Associations",
          "documentation":"<p>The list of Amazon Braket resources associated with the quantum task.</p>"
        },
        "numSuccessfulShots":{
          "shape":"Long",
          "documentation":"<p>The number of successful shots for the quantum task. This is available after a successfully completed quantum task.</p>"
        },
        "actionMetadata":{
          "shape":"ActionMetadata",
          "documentation":"<p>Metadata about the action performed by the quantum task, including information about the type of action and program counts.</p>"
        }
      }
    },
    "HybridJobAdditionalAttributeName":{
      "type":"string",
      "enum":["QueueInfo"]
    },
    "HybridJobAdditionalAttributeNamesList":{
      "type":"list",
      "member":{"shape":"HybridJobAdditionalAttributeName"}
    },
    "HybridJobQueueInfo":{
      "type":"structure",
      "required":[
        "queue",
        "position"
      ],
      "members":{
        "queue":{
          "shape":"QueueName",
          "documentation":"<p>The name of the queue.</p>"
        },
        "position":{
          "shape":"String",
          "documentation":"<p>Current position of the hybrid job in the jobs queue.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>Optional. Provides more information about the queue position. For example, if the hybrid job is complete and no longer in the queue, the message field contains that information.</p>"
        }
      },
      "documentation":"<p>Information about the queue for a specified hybrid job.</p>"
    },
    "HyperParameters":{
      "type":"map",
      "key":{"shape":"String256"},
      "value":{"shape":"HyperParametersValueString"},
      "max":100,
      "min":0
    },
    "HyperParametersValueString":{
      "type":"string",
      "max":2500,
      "min":1,
      "pattern":".*"
    },
    "InputConfigList":{
      "type":"list",
      "member":{"shape":"InputFileConfig"}
    },
    "InputFileConfig":{
      "type":"structure",
      "required":[
        "channelName",
        "dataSource"
      ],
      "members":{
        "channelName":{
          "shape":"InputFileConfigChannelNameString",
          "documentation":"<p>A named input source that an Amazon Braket hybrid job can consume.</p>"
        },
        "contentType":{
          "shape":"String256",
          "documentation":"<p>The MIME type of the data.</p>"
        },
        "dataSource":{
          "shape":"DataSource",
          "documentation":"<p>The location of the input data.</p>"
        }
      },
      "documentation":"<p>A list of parameters that specify the input channels, type of input data, and where it is located.</p>"
    },
    "InputFileConfigChannelNameString":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z0-9\\.\\-_]+"
    },
    "InstanceConfig":{
      "type":"structure",
      "required":[
        "instanceType",
        "volumeSizeInGb"
      ],
      "members":{
        "instanceType":{
          "shape":"InstanceType",
          "documentation":"<p>Configures the type of resource instances to use while running an Amazon Braket hybrid job.</p>"
        },
        "volumeSizeInGb":{
          "shape":"InstanceConfigVolumeSizeInGbInteger",
          "documentation":"<p>The size of the storage volume, in GB, to provision.</p>"
        },
        "instanceCount":{
          "shape":"InstanceConfigInstanceCountInteger",
          "documentation":"<p>Configures the number of resource instances to use while running an Amazon Braket hybrid job on Amazon Braket. The default value is 1.</p>"
        }
      },
      "documentation":"<p>Configures the resource instances to use while running the Amazon Braket hybrid job on Amazon Braket.</p>"
    },
    "InstanceConfigInstanceCountInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "InstanceConfigVolumeSizeInGbInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "InstanceType":{
      "type":"string",
      "enum":[
        "ml.m4.xlarge",
        "ml.m4.2xlarge",
        "ml.m4.4xlarge",
        "ml.m4.10xlarge",
        "ml.m4.16xlarge",
        "ml.g4dn.xlarge",
        "ml.g4dn.2xlarge",
        "ml.g4dn.4xlarge",
        "ml.g4dn.8xlarge",
        "ml.g4dn.12xlarge",
        "ml.g4dn.16xlarge",
        "ml.m5.large",
        "ml.m5.xlarge",
        "ml.m5.2xlarge",
        "ml.m5.4xlarge",
        "ml.m5.12xlarge",
        "ml.m5.24xlarge",
        "ml.c4.xlarge",
        "ml.c4.2xlarge",
        "ml.c4.4xlarge",
        "ml.c4.8xlarge",
        "ml.p2.xlarge",
        "ml.p2.8xlarge",
        "ml.p2.16xlarge",
        "ml.p3.2xlarge",
        "ml.p3.8xlarge",
        "ml.p3.16xlarge",
        "ml.p3dn.24xlarge",
        "ml.p4d.24xlarge",
        "ml.c5.xlarge",
        "ml.c5.2xlarge",
        "ml.c5.4xlarge",
        "ml.c5.9xlarge",
        "ml.c5.18xlarge",
        "ml.c5n.xlarge",
        "ml.c5n.2xlarge",
        "ml.c5n.4xlarge",
        "ml.c5n.9xlarge",
        "ml.c5n.18xlarge"
      ]
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServiceException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request failed because of an unknown error.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "JobArn":{
      "type":"string",
      "pattern":"arn:aws[a-z\\-]*:braket:[a-z0-9\\-]+:[0-9]{12}:job/.*"
    },
    "JobCheckpointConfig":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "localPath":{
          "shape":"String4096",
          "documentation":"<p>(Optional) The local directory where checkpoint data is stored. The default directory is <code>/opt/braket/checkpoints/</code>.</p>"
        },
        "s3Uri":{
          "shape":"S3Path",
          "documentation":"<p>Identifies the S3 path where you want Amazon Braket to store checkpoint data. For example, <code>s3://bucket-name/key-name-prefix</code>.</p>"
        }
      },
      "documentation":"<p>Contains information about the output locations for hybrid job checkpoint data.</p>"
    },
    "JobEventDetails":{
      "type":"structure",
      "members":{
        "eventType":{
          "shape":"JobEventType",
          "documentation":"<p>The type of event that occurred related to the Amazon Braket hybrid job.</p>"
        },
        "timeOfEvent":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time of the event that occurred related to the Amazon Braket hybrid job.</p>"
        },
        "message":{
          "shape":"JobEventDetailsMessageString",
          "documentation":"<p>A message describing the event that occurred related to the Amazon Braket hybrid job.</p>"
        }
      },
      "documentation":"<p>Details about the type and time events that occurred related to the Amazon Braket hybrid job.</p>"
    },
    "JobEventDetailsMessageString":{
      "type":"string",
      "max":2500,
      "min":0
    },
    "JobEventType":{
      "type":"string",
      "enum":[
        "WAITING_FOR_PRIORITY",
        "QUEUED_FOR_EXECUTION",
        "STARTING_INSTANCE",
        "DOWNLOADING_DATA",
        "RUNNING",
        "DEPRIORITIZED_DUE_TO_INACTIVITY",
        "UPLOADING_RESULTS",
        "COMPLETED",
        "FAILED",
        "MAX_RUNTIME_EXCEEDED",
        "CANCELLED"
      ]
    },
    "JobEvents":{
      "type":"list",
      "member":{"shape":"JobEventDetails"},
      "max":20,
      "min":0
    },
    "JobOutputDataConfig":{
      "type":"structure",
      "required":["s3Path"],
      "members":{
        "kmsKeyId":{
          "shape":"String2048",
          "documentation":"<p>The AWS Key Management Service (AWS KMS) key that Amazon Braket uses to encrypt the hybrid job training artifacts at rest using Amazon S3 server-side encryption.</p>"
        },
        "s3Path":{
          "shape":"S3Path",
          "documentation":"<p>Identifies the S3 path where you want Amazon Braket to store the hybrid job training artifacts. For example, <code>s3://bucket-name/key-name-prefix</code>.</p>"
        }
      },
      "documentation":"<p>Specifies the path to the S3 location where you want to store hybrid job artifacts and the encryption key used to store them.</p>"
    },
    "JobPrimaryStatus":{
      "type":"string",
      "enum":[
        "QUEUED",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLING",
        "CANCELLED"
      ]
    },
    "JobStoppingCondition":{
      "type":"structure",
      "members":{
        "maxRuntimeInSeconds":{
          "shape":"JobStoppingConditionMaxRuntimeInSecondsInteger",
          "documentation":"<p>The maximum length of time, in seconds, that an Amazon Braket hybrid job can run.</p>"
        }
      },
      "documentation":"<p>Specifies limits for how long an Amazon Braket hybrid job can run. </p>"
    },
    "JobStoppingConditionMaxRuntimeInSecondsInteger":{
      "type":"integer",
      "box":true,
      "max":432000,
      "min":1
    },
    "JobSummary":{
      "type":"structure",
      "required":[
        "status",
        "jobArn",
        "jobName",
        "device",
        "createdAt"
      ],
      "members":{
        "status":{
          "shape":"JobPrimaryStatus",
          "documentation":"<p>The status of the Amazon Braket hybrid job.</p>"
        },
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p>The ARN of the Amazon Braket hybrid job.</p>"
        },
        "jobName":{
          "shape":"String",
          "documentation":"<p>The name of the Amazon Braket hybrid job.</p>"
        },
        "device":{
          "shape":"String256",
          "documentation":"<p>The primary device used by an Amazon Braket hybrid job.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the Amazon Braket hybrid job was created.</p>"
        },
        "startedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the Amazon Braket hybrid job was started.</p>"
        },
        "endedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the Amazon Braket hybrid job ended.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Displays the key, value pairs of tags associated with this hybrid job.</p>"
        }
      },
      "documentation":"<p>Provides summary information about an Amazon Braket hybrid job.</p>"
    },
    "JobSummaryList":{
      "type":"list",
      "member":{"shape":"JobSummary"}
    },
    "JobToken":{
      "type":"string",
      "max":128,
      "min":1
    },
    "JsonValue":{"type":"string"},
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>Specify the <code>resourceArn</code> for the resource whose tags to display.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Displays the key, value pairs of tags associated with this resource.</p>"
        }
      }
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "ProgramSetValidationFailure":{
      "type":"structure",
      "required":["programIndex"],
      "members":{
        "programIndex":{
          "shape":"Long",
          "documentation":"<p>The index of the program within the program set that failed validation.</p>"
        },
        "inputsIndex":{
          "shape":"Long",
          "documentation":"<p>The index of the input within the program set that failed validation.</p>"
        },
        "errors":{
          "shape":"ProgramValidationFailuresList",
          "documentation":"<p>A list of error messages describing the validation failures that occurred.</p>"
        }
      },
      "documentation":"<p>Contains information about validation failures that occurred during the processing of a program set in a quantum task.</p>"
    },
    "ProgramSetValidationFailuresList":{
      "type":"list",
      "member":{"shape":"ProgramSetValidationFailure"}
    },
    "ProgramValidationFailuresList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "QuantumTaskAdditionalAttributeName":{
      "type":"string",
      "enum":["QueueInfo"]
    },
    "QuantumTaskAdditionalAttributeNamesList":{
      "type":"list",
      "member":{"shape":"QuantumTaskAdditionalAttributeName"}
    },
    "QuantumTaskArn":{
      "type":"string",
      "max":256,
      "min":0
    },
    "QuantumTaskQueueInfo":{
      "type":"structure",
      "required":[
        "queue",
        "position"
      ],
      "members":{
        "queue":{
          "shape":"QueueName",
          "documentation":"<p>The name of the queue. </p>"
        },
        "position":{
          "shape":"String",
          "documentation":"<p>Current position of the quantum task in the quantum tasks queue.</p>"
        },
        "queuePriority":{
          "shape":"QueuePriority",
          "documentation":"<p>Optional. Specifies the priority of the queue. Quantum tasks in a priority queue are processed before the quantum tasks in a normal queue.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>Optional. Provides more information about the queue position. For example, if the quantum task is complete and no longer in the queue, the message field contains that information.</p>"
        }
      },
      "documentation":"<p>The queue information for the specified quantum task.</p>"
    },
    "QuantumTaskStatus":{
      "type":"string",
      "enum":[
        "CREATED",
        "QUEUED",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLING",
        "CANCELLED"
      ]
    },
    "QuantumTaskSummary":{
      "type":"structure",
      "required":[
        "quantumTaskArn",
        "status",
        "deviceArn",
        "shots",
        "outputS3Bucket",
        "outputS3Directory",
        "createdAt"
      ],
      "members":{
        "quantumTaskArn":{
          "shape":"QuantumTaskArn",
          "documentation":"<p>The ARN of the quantum task.</p>"
        },
        "status":{
          "shape":"QuantumTaskStatus",
          "documentation":"<p>The status of the quantum task.</p>"
        },
        "deviceArn":{
          "shape":"DeviceArn",
          "documentation":"<p>The ARN of the device the quantum task ran on.</p>"
        },
        "shots":{
          "shape":"Long",
          "documentation":"<p>The shots used for the quantum task.</p>"
        },
        "outputS3Bucket":{
          "shape":"String",
          "documentation":"<p>The S3 bucket where the quantum task result file is stored.</p>"
        },
        "outputS3Directory":{
          "shape":"String",
          "documentation":"<p>The folder in the S3 bucket where the quantum task result file is stored.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the quantum task was created.</p>"
        },
        "endedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the quantum task finished.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Displays the key, value pairs of tags associated with this quantum task.</p>"
        }
      },
      "documentation":"<p>Includes information about a quantum task.</p>"
    },
    "QuantumTaskSummaryList":{
      "type":"list",
      "member":{"shape":"QuantumTaskSummary"}
    },
    "QueueName":{
      "type":"string",
      "enum":[
        "QUANTUM_TASKS_QUEUE",
        "JOBS_QUEUE"
      ]
    },
    "QueuePriority":{
      "type":"string",
      "enum":[
        "Normal",
        "Priority"
      ]
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified resource was not found.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "RoleArn":{
      "type":"string",
      "pattern":"arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+"
    },
    "S3DataSource":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3Uri":{
          "shape":"S3Path",
          "documentation":"<p>Depending on the value specified for the <code>S3DataType</code>, identifies either a key name prefix or a manifest that locates the S3 data source.</p>"
        }
      },
      "documentation":"<p>Information about the Amazon S3 storage used by the Amazon Braket hybrid job.</p>"
    },
    "S3Path":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"(https|s3)://([^/]+)/?(.*)"
    },
    "ScriptModeConfig":{
      "type":"structure",
      "required":[
        "entryPoint",
        "s3Uri"
      ],
      "members":{
        "entryPoint":{
          "shape":"String",
          "documentation":"<p>The entry point in the algorithm scripts from where the execution begins in the hybrid job.</p>"
        },
        "s3Uri":{
          "shape":"S3Path",
          "documentation":"<p>The URI that specifies the S3 path to the algorithm scripts used by an Amazon Braket hybrid job.</p>"
        },
        "compressionType":{
          "shape":"CompressionType",
          "documentation":"<p>The type of compression used to store the algorithm scripts in Amazon S3 storage.</p>"
        }
      },
      "documentation":"<p>Contains information about algorithm scripts used for the Amazon Braket hybrid job.</p>"
    },
    "SearchDevicesFilter":{
      "type":"structure",
      "required":[
        "name",
        "values"
      ],
      "members":{
        "name":{
          "shape":"SearchDevicesFilterNameString",
          "documentation":"<p>The name of the device parameter to filter based on. Only <code>deviceArn</code> filter name is currently supported.</p>"
        },
        "values":{
          "shape":"SearchDevicesFilterValuesList",
          "documentation":"<p>The values used to filter devices based on the filter name.</p>"
        }
      },
      "documentation":"<p>The filter used to search for devices.</p>"
    },
    "SearchDevicesFilterNameString":{
      "type":"string",
      "max":64,
      "min":1
    },
    "SearchDevicesFilterValuesList":{
      "type":"list",
      "member":{"shape":"String256"},
      "max":10,
      "min":1
    },
    "SearchDevicesRequest":{
      "type":"structure",
      "required":["filters"],
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>A token used for pagination of results returned in the response. Use the token returned from the previous request to continue search where the previous request ended.</p>"
        },
        "maxResults":{
          "shape":"SearchDevicesRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in the response.</p>"
        },
        "filters":{
          "shape":"SearchDevicesRequestFiltersList",
          "documentation":"<p>Array of SearchDevicesFilter objects to use when searching for devices.</p>"
        }
      }
    },
    "SearchDevicesRequestFiltersList":{
      "type":"list",
      "member":{"shape":"SearchDevicesFilter"},
      "max":10,
      "min":0
    },
    "SearchDevicesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "SearchDevicesResponse":{
      "type":"structure",
      "required":["devices"],
      "members":{
        "devices":{
          "shape":"DeviceSummaryList",
          "documentation":"<p>An array of <code>DeviceSummary</code> objects for devices that match the specified filter values.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>A token used for pagination of results, or null if there are no additional results. Use the token value in a subsequent request to continue search where the previous request ended.</p>"
        }
      }
    },
    "SearchJobsFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"String64",
          "documentation":"<p>The name of the hybrid job parameter to filter based on. Filter name can be either <code>jobArn</code> or <code>createdAt</code>. </p>"
        },
        "values":{
          "shape":"SearchJobsFilterValuesList",
          "documentation":"<p>The values used to filter hybrid jobs based on the filter name and operator.</p>"
        },
        "operator":{
          "shape":"SearchJobsFilterOperator",
          "documentation":"<p>An operator to use for the filter.</p>"
        }
      },
      "documentation":"<p>A filter used to search for Amazon Braket hybrid jobs.</p>"
    },
    "SearchJobsFilterOperator":{
      "type":"string",
      "enum":[
        "LT",
        "LTE",
        "EQUAL",
        "GT",
        "GTE",
        "BETWEEN",
        "CONTAINS"
      ]
    },
    "SearchJobsFilterValuesList":{
      "type":"list",
      "member":{"shape":"String256"},
      "max":10,
      "min":1
    },
    "SearchJobsRequest":{
      "type":"structure",
      "required":["filters"],
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>A token used for pagination of results returned in the response. Use the token returned from the previous request to continue search where the previous request ended.</p>"
        },
        "maxResults":{
          "shape":"SearchJobsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in the response.</p>"
        },
        "filters":{
          "shape":"SearchJobsRequestFiltersList",
          "documentation":"<p>Array of SearchJobsFilter objects to use when searching for hybrid jobs.</p>"
        }
      }
    },
    "SearchJobsRequestFiltersList":{
      "type":"list",
      "member":{"shape":"SearchJobsFilter"},
      "max":10,
      "min":0
    },
    "SearchJobsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "SearchJobsResponse":{
      "type":"structure",
      "required":["jobs"],
      "members":{
        "jobs":{
          "shape":"JobSummaryList",
          "documentation":"<p>An array of <code>JobSummary</code> objects for devices that match the specified filter values.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>A token used for pagination of results, or <code>null</code> if there are no additional results. Use the token value in a subsequent request to continue search where the previous request ended.</p>"
        }
      }
    },
    "SearchQuantumTasksFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"String64",
          "documentation":"<p>The name of the quantum task parameter to filter based on. Filter name can be either <code>quantumTaskArn</code>, <code>deviceArn</code>, <code>jobArn</code>, <code>status</code> or <code>createdAt</code>.</p>"
        },
        "values":{
          "shape":"SearchQuantumTasksFilterValuesList",
          "documentation":"<p>The values used to filter quantum tasks based on the filter name and operator.</p>"
        },
        "operator":{
          "shape":"SearchQuantumTasksFilterOperator",
          "documentation":"<p>An operator to use for the filter.</p>"
        }
      },
      "documentation":"<p>A filter used to search for quantum tasks.</p>"
    },
    "SearchQuantumTasksFilterOperator":{
      "type":"string",
      "enum":[
        "LT",
        "LTE",
        "EQUAL",
        "GT",
        "GTE",
        "BETWEEN"
      ]
    },
    "SearchQuantumTasksFilterValuesList":{
      "type":"list",
      "member":{"shape":"String256"},
      "max":10,
      "min":1
    },
    "SearchQuantumTasksRequest":{
      "type":"structure",
      "required":["filters"],
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>A token used for pagination of results returned in the response. Use the token returned from the previous request to continue search where the previous request ended.</p>"
        },
        "maxResults":{
          "shape":"SearchQuantumTasksRequestMaxResultsInteger",
          "documentation":"<p>Maximum number of results to return in the response.</p>"
        },
        "filters":{
          "shape":"SearchQuantumTasksRequestFiltersList",
          "documentation":"<p>Array of <code>SearchQuantumTasksFilter</code> objects to use when searching for quantum tasks.</p>"
        }
      }
    },
    "SearchQuantumTasksRequestFiltersList":{
      "type":"list",
      "member":{"shape":"SearchQuantumTasksFilter"},
      "max":10,
      "min":0
    },
    "SearchQuantumTasksRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "SearchQuantumTasksResponse":{
      "type":"structure",
      "required":["quantumTasks"],
      "members":{
        "quantumTasks":{
          "shape":"QuantumTaskSummaryList",
          "documentation":"<p>An array of <code>QuantumTaskSummary</code> objects for quantum tasks that match the specified filters.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>A token used for pagination of results, or null if there are no additional results. Use the token value in a subsequent request to continue search where the previous request ended.</p>"
        }
      }
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request failed because a service quota is exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "String":{"type":"string"},
    "String1024":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "String2048":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "String256":{
      "type":"string",
      "max":256,
      "min":1
    },
    "String4096":{
      "type":"string",
      "max":4096,
      "min":1
    },
    "String64":{
      "type":"string",
      "max":64,
      "min":1
    },
    "SyntheticTimestamp_date_time":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "TagKeys":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>Specify the <code>resourceArn</code> of the resource to which a tag will be added.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Specify the tags to add to the resource. Tags can be specified as a key-value map.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagsMap":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The API throttling rate limit is exceeded.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>Specify the <code>resourceArn</code> for the resource from which to remove the tags.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeys",
          "documentation":"<p>Specify the keys for the tags to remove from the resource.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "Uri":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"\\d{10,14}\\.dkr\\.ecr.[a-z0-9-]+\\.amazonaws\\.com\\/.+(@sha256)?:.+"
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>The reason for validation failure.</p>"
        },
        "programSetValidationFailures":{
          "shape":"ProgramSetValidationFailuresList",
          "documentation":"<p>The validation failures in the program set submitted in the request.</p>"
        }
      },
      "documentation":"<p>The input request failed to satisfy constraints expected by Amazon Braket.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":["ProgramSetValidationFailed"]
    }
  },
  "documentation":"<p>The Amazon Braket API Reference provides information about the operations and structures supported by Amazon Braket.</p> <p>To learn about the permissions required to call an Amazon Braket API action, see <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbraket.html\">Actions, resources, and condition keys for Amazon Braket</a>. <a href=\"https://amazon-braket-sdk-python.readthedocs.io/en/latest/#\">Amazon Braket Python SDK</a> and the <a href=\"https://docs.aws.amazon.com/cli/latest/reference/braket/\">AWS Command Line Interface</a> can be used to make discovery and creation of API calls easier. For more information about Amazon Braket features, see <a href=\"https://docs.aws.amazon.com/braket/latest/developerguide/what-is-braket.html\">What is Amazon Braket?</a> and important <a href=\"https://docs.aws.amazon.com/braket/latest/developerguide/braket-terms.html\">terms and concepts</a> in the <i>Amazon Braket Developer Guide</i>.</p> <p> <b>In this guide:</b> </p> <ul> <li> <p/> </li> <li> <p/> </li> <li> <p> <a>CommonParameters</a> </p> </li> <li> <p> <a>CommonErrors</a> </p> </li> </ul> <p> <b>Available languages for AWS SDK:</b> </p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Braket/NBraket.html\">.NET</a> </p> </li> <li> <p> <a href=\"https://sdk.amazonaws.com/cpp/api/LATEST/root/html/index.html\">C++</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/sdk-for-go/api/service/braket/\">Go API reference</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/braket/package-summary.html\">Java</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Braket.html\">JavaScript</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Braket.BraketClient.html\">PHP</a> </p> </li> <li> <p> <a href=\"https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/braket.html\">Python (Boto)</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Braket.html\">Ruby</a> </p> </li> </ul> <p> <b>Code examples from the Amazon Braket Tutorials GitHub repository:</b> </p> <ul> <li> <p> <a href=\"https://github.com/amazon-braket/amazon-braket-examples\">Amazon Braket Examples</a> </p> </li> </ul>"
}
