# This file is auto-generated by AWSMetadata.jl
using AWS
using AWS.AWSServices: braket

using AWS.Compat
using AWS.UUIDs
"""
    CancelQuantumTask()

Cancels the specified task.

# Required Parameters
- `clientToken`: The client token associated with the request.
- `quantumTaskArn`: The ARN of the task to cancel.

"""

cancel_quantum_task(clientToken, quantumTaskArn; aws_config::AWSConfig=global_aws_config()) = braket("PUT", "/quantum-task/$(quantumTaskArn)/cancel", Dict{String, Any}("clientToken"=>clientToken); aws_config=aws_config)
cancel_quantum_task(clientToken, quantumTaskArn, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = braket("PUT", "/quantum-task/$(quantumTaskArn)/cancel", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("clientToken"=>clientToken), args)); aws_config=aws_config)

"""
    CreateQuantumTask()

Creates a quantum task.

# Required Parameters
- `action`: The action associated with the task.
- `clientToken`: The client token associated with the request.
- `deviceArn`: The ARN of the device to run the task on.
- `outputS3Bucket`: The S3 bucket to store task result files in.
- `outputS3KeyPrefix`: The key prefix for the location in the S3 bucket to store task results in.
- `shots`: The number of shots to use for the task.

# Optional Parameters
- `deviceParameters`: The parameters for the device to run the task on.
"""

create_quantum_task(action, clientToken, deviceArn, outputS3Bucket, outputS3KeyPrefix, shots; aws_config::AWSConfig=global_aws_config()) = braket("POST", "/quantum-task", Dict{String, Any}("action"=>action, "clientToken"=>clientToken, "deviceArn"=>deviceArn, "outputS3Bucket"=>outputS3Bucket, "outputS3KeyPrefix"=>outputS3KeyPrefix, "shots"=>shots); aws_config=aws_config)
create_quantum_task(action, clientToken, deviceArn, outputS3Bucket, outputS3KeyPrefix, shots, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = braket("POST", "/quantum-task", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("action"=>action, "clientToken"=>clientToken, "deviceArn"=>deviceArn, "outputS3Bucket"=>outputS3Bucket, "outputS3KeyPrefix"=>outputS3KeyPrefix, "shots"=>shots), args)); aws_config=aws_config)

"""
    GetDevice()

Retrieves the devices available in Amazon Braket.

# Required Parameters
- `deviceArn`: The ARN of the device to retrieve.

"""

get_device(deviceArn; aws_config::AWSConfig=global_aws_config()) = braket("GET", "/device/$(deviceArn)"; aws_config=aws_config)
get_device(deviceArn, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = braket("GET", "/device/$(deviceArn)", args; aws_config=aws_config)

"""
    GetQuantumTask()

Retrieves the specified quantum task.

# Required Parameters
- `quantumTaskArn`: the ARN of the task to retrieve.

"""

get_quantum_task(quantumTaskArn; aws_config::AWSConfig=global_aws_config()) = braket("GET", "/quantum-task/$(quantumTaskArn)"; aws_config=aws_config)
get_quantum_task(quantumTaskArn, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = braket("GET", "/quantum-task/$(quantumTaskArn)", args; aws_config=aws_config)

"""
    SearchDevices()

Searches for devices using the specified filters.

# Required Parameters
- `filters`: The filter values to use to search for a device.

# Optional Parameters
- `maxResults`: The maximum number of results to return in the response.
- `nextToken`: A token used for pagination of results returned in the response. Use the token returned from the previous request continue results where the previous request ended.
"""

search_devices(filters; aws_config::AWSConfig=global_aws_config()) = braket("POST", "/devices", Dict{String, Any}("filters"=>filters); aws_config=aws_config)
search_devices(filters, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = braket("POST", "/devices", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("filters"=>filters), args)); aws_config=aws_config)

"""
    SearchQuantumTasks()

Searches for tasks that match the specified filter values.

# Required Parameters
- `filters`: Array of SearchQuantumTasksFilter objects.

# Optional Parameters
- `maxResults`: Maximum number of results to return in the response.
- `nextToken`: A token used for pagination of results returned in the response. Use the token returned from the previous request continue results where the previous request ended.
"""

search_quantum_tasks(filters; aws_config::AWSConfig=global_aws_config()) = braket("POST", "/quantum-tasks", Dict{String, Any}("filters"=>filters); aws_config=aws_config)
search_quantum_tasks(filters, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = braket("POST", "/quantum-tasks", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("filters"=>filters), args)); aws_config=aws_config)
