# This file is auto-generated by AWSMetadata.jl
using AWS
using AWS.AWSServices: iotsecuretunneling
using AWS.Compat
using AWS.UUIDs

"""
    CloseTunnel()

Closes a tunnel identified by the unique tunnel id. When a CloseTunnel request is received, we close the WebSocket connections between the client and proxy server so no data can be transmitted.

# Required Parameters
- `tunnelId`: The ID of the tunnel to close.

# Optional Parameters
- `delete`: When set to true, AWS IoT Secure Tunneling deletes the tunnel data immediately.
"""
close_tunnel(tunnelId; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("CloseTunnel", Dict{String, Any}("tunnelId"=>tunnelId); aws_config=aws_config)
close_tunnel(tunnelId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("CloseTunnel", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("tunnelId"=>tunnelId), args)); aws_config=aws_config)

"""
    DescribeTunnel()

Gets information about a tunnel identified by the unique tunnel id.

# Required Parameters
- `tunnelId`: The tunnel to describe.

"""
describe_tunnel(tunnelId; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("DescribeTunnel", Dict{String, Any}("tunnelId"=>tunnelId); aws_config=aws_config)
describe_tunnel(tunnelId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("DescribeTunnel", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("tunnelId"=>tunnelId), args)); aws_config=aws_config)

"""
    ListTagsForResource()

Lists the tags for the specified resource.

# Required Parameters
- `resourceArn`: The resource ARN.

"""
list_tags_for_resource(resourceArn; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("ListTagsForResource", Dict{String, Any}("resourceArn"=>resourceArn); aws_config=aws_config)
list_tags_for_resource(resourceArn, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("ListTagsForResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("resourceArn"=>resourceArn), args)); aws_config=aws_config)

"""
    ListTunnels()

List all tunnels for an AWS account. Tunnels are listed by creation time in descending order, newer tunnels will be listed before older tunnels.

# Optional Parameters
- `maxResults`: The maximum number of results to return at once.
- `nextToken`: A token to retrieve the next set of results.
- `thingName`: The name of the IoT thing associated with the destination device.
"""
list_tunnels(; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("ListTunnels"; aws_config=aws_config)
list_tunnels(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("ListTunnels", args; aws_config=aws_config)

"""
    OpenTunnel()

Creates a new tunnel, and returns two client access tokens for clients to use to connect to the AWS IoT Secure Tunneling proxy server.

# Optional Parameters
- `description`: A short text description of the tunnel. 
- `destinationConfig`: The destination configuration for the OpenTunnel request.
- `tags`: A collection of tag metadata.
- `timeoutConfig`: Timeout configuration for a tunnel.
"""
open_tunnel(; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("OpenTunnel"; aws_config=aws_config)
open_tunnel(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("OpenTunnel", args; aws_config=aws_config)

"""
    TagResource()

A resource tag.

# Required Parameters
- `resourceArn`: The ARN of the resource.
- `tags`: The tags for the resource.

"""
tag_resource(resourceArn, tags; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("TagResource", Dict{String, Any}("resourceArn"=>resourceArn, "tags"=>tags); aws_config=aws_config)
tag_resource(resourceArn, tags, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("TagResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("resourceArn"=>resourceArn, "tags"=>tags), args)); aws_config=aws_config)

"""
    UntagResource()

Removes a tag from a resource.

# Required Parameters
- `resourceArn`: The resource ARN.
- `tagKeys`: The keys of the tags to remove.

"""
untag_resource(resourceArn, tagKeys; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("UntagResource", Dict{String, Any}("resourceArn"=>resourceArn, "tagKeys"=>tagKeys); aws_config=aws_config)
untag_resource(resourceArn, tagKeys, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = iotsecuretunneling("UntagResource", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("resourceArn"=>resourceArn, "tagKeys"=>tagKeys), args)); aws_config=aws_config)
