2019/11/25 - AWS IoT Secure Tunneling - 7 new api methods
Changes This release adds support for IoT Secure Tunneling to remote access devices behind restricted firewalls.
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.
See also: AWS API Documentation
Request Syntax
client.close_tunnel(
    tunnelId='string',
    delete=True|False
)
string
[REQUIRED]
The ID of the tunnel to close.
boolean
When set to true, AWS IoT Secure Tunneling deletes the tunnel data immediately.
dict
Response Syntax
{}
Response Structure
(dict) --
Creates a new tunnel, and returns two client access tokens for clients to use to connect to the AWS IoT Secure Tunneling proxy server. .
See also: AWS API Documentation
Request Syntax
client.open_tunnel(
    description='string',
    tags=[
        {
            'key': 'string',
            'value': 'string'
        },
    ],
    destinationConfig={
        'thingName': 'string',
        'services': [
            'string',
        ]
    },
    timeoutConfig={
        'maxLifetimeTimeoutMinutes': 123
    }
)
string
A short text description of the tunnel.
list
A collection of tag metadata.
(dict) --
An arbitary key/value pair used to add searchable metadata to secure tunnel resources.
key (string) -- [REQUIRED]
The key of the tag.
value (string) -- [REQUIRED]
The value of the tag.
dict
The destination configuration for the OpenTunnel request.
thingName (string) -- [REQUIRED]
The name of the IoT thing to which you want to connect.
services (list) -- [REQUIRED]
A list of service names that identity the target application. Currently, you can only specify a single name. The AWS IoT client running on the destination device reads this value and uses it to look up a port or an IP address and a port. The AWS IoT client instantiates the local proxy which uses this information to connect to the destination application.
(string) --
dict
Timeout configuration for a tunnel.
maxLifetimeTimeoutMinutes (integer) --
The maximum amount of time (in minutes) a tunnel can remain open. If not specified, maxLifetimeTimeoutMinutes defaults to 720 minutes. Valid values are from 1 minute to 12 hours (720 minutes)
dict
Response Syntax
{
    'tunnelId': 'string',
    'tunnelArn': 'string',
    'sourceAccessToken': 'string',
    'destinationAccessToken': 'string'
}
Response Structure
(dict) --
tunnelId (string) --
A unique alpha-numeric tunnel ID.
tunnelArn (string) --
The Amazon Resource Name for the tunnel. The tunnel ARN format is arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>
sourceAccessToken (string) --
The access token the source local proxy uses to connect to AWS IoT Secure Tunneling.
destinationAccessToken (string) --
The access token the destination local proxy uses to connect to AWS IoT Secure Tunneling.
Lists the tags for the specified resource.
See also: AWS API Documentation
Request Syntax
client.list_tags_for_resource(
    resourceArn='string'
)
string
[REQUIRED]
The resource ARN.
dict
Response Syntax
{
    'tags': [
        {
            'key': 'string',
            'value': 'string'
        },
    ]
}
Response Structure
(dict) --
tags (list) --
The tags for the specified resource.
(dict) --
An arbitary key/value pair used to add searchable metadata to secure tunnel resources.
key (string) --
The key of the tag.
value (string) --
The value of the tag.
Removes a tag from a resource.
See also: AWS API Documentation
Request Syntax
client.untag_resource(
    resourceArn='string',
    tagKeys=[
        'string',
    ]
)
string
[REQUIRED]
The resource ARN.
list
[REQUIRED]
The keys of the tags to remove.
(string) --
dict
Response Syntax
{}
Response Structure
(dict) --
List all tunnels for an AWS account. Tunnels are listed by creation time in descending order, newer tunnels will be listed before older tunnels.
See also: AWS API Documentation
Request Syntax
client.list_tunnels(
    thingName='string',
    maxResults=123,
    nextToken='string'
)
string
The name of the IoT thing associated with the destination device.
integer
The maximum number of results to return at once.
string
A token to retrieve the next set of results.
dict
Response Syntax
{
    'tunnelSummaries': [
        {
            'tunnelId': 'string',
            'tunnelArn': 'string',
            'status': 'OPEN'|'CLOSED',
            'description': 'string',
            'createdAt': datetime(2015, 1, 1),
            'lastUpdatedAt': datetime(2015, 1, 1)
        },
    ],
    'nextToken': 'string'
}
Response Structure
(dict) --
tunnelSummaries (list) --
A short description of the tunnels in an AWS account.
(dict) --
Information about the tunnel.
tunnelId (string) --
The unique alpha-numeric identifier for the tunnel.
tunnelArn (string) --
The Amazon Resource Name of the tunnel. The tunnel ARN format is arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>
status (string) --
The status of a tunnel. Valid values are: Open and Closed.
description (string) --
A description of the tunnel.
createdAt (datetime) --
The time the tunnel was created.
lastUpdatedAt (datetime) --
The time the tunnel was last updated.
nextToken (string) --
A token to used to retrieve the next set of results.
Gets information about a tunnel identified by the unique tunnel id.
See also: AWS API Documentation
Request Syntax
client.describe_tunnel(
    tunnelId='string'
)
string
[REQUIRED]
The tunnel to describe.
dict
Response Syntax
{
    'tunnel': {
        'tunnelId': 'string',
        'tunnelArn': 'string',
        'status': 'OPEN'|'CLOSED',
        'sourceConnectionState': {
            'status': 'CONNECTED'|'DISCONNECTED',
            'lastUpdatedAt': datetime(2015, 1, 1)
        },
        'destinationConnectionState': {
            'status': 'CONNECTED'|'DISCONNECTED',
            'lastUpdatedAt': datetime(2015, 1, 1)
        },
        'description': 'string',
        'destinationConfig': {
            'thingName': 'string',
            'services': [
                'string',
            ]
        },
        'timeoutConfig': {
            'maxLifetimeTimeoutMinutes': 123
        },
        'tags': [
            {
                'key': 'string',
                'value': 'string'
            },
        ],
        'createdAt': datetime(2015, 1, 1),
        'lastUpdatedAt': datetime(2015, 1, 1)
    }
}
Response Structure
(dict) --
tunnel (dict) --
The tunnel being described.
tunnelId (string) --
A unique alpha-numeric ID that identifies a tunnel.
tunnelArn (string) --
The Amazon Resource Name (ARN) of a tunnel. The tunnel ARN format is arn:aws:tunnel:<region>:<account-id>:tunnel/<tunnel-id>
status (string) --
The status of a tunnel. Valid values are: Open and Closed.
sourceConnectionState (dict) --
The connection state of the source application.
status (string) --
The connection status of the tunnel. Valid values are CONNECTED and DISCONNECTED .
lastUpdatedAt (datetime) --
The last time the connection status was updated.
destinationConnectionState (dict) --
The connection state of the destination application.
status (string) --
The connection status of the tunnel. Valid values are CONNECTED and DISCONNECTED .
lastUpdatedAt (datetime) --
The last time the connection status was updated.
description (string) --
A description of the tunnel.
destinationConfig (dict) --
The destination configuration that specifies the thing name of the destination device and a service name that the local proxy uses to connect to the destination application.
thingName (string) --
The name of the IoT thing to which you want to connect.
services (list) --
A list of service names that identity the target application. Currently, you can only specify a single name. The AWS IoT client running on the destination device reads this value and uses it to look up a port or an IP address and a port. The AWS IoT client instantiates the local proxy which uses this information to connect to the destination application.
(string) --
timeoutConfig (dict) --
Timeout configuration for the tunnel.
maxLifetimeTimeoutMinutes (integer) --
The maximum amount of time (in minutes) a tunnel can remain open. If not specified, maxLifetimeTimeoutMinutes defaults to 720 minutes. Valid values are from 1 minute to 12 hours (720 minutes)
tags (list) --
A list of tag metadata associated with the secure tunnel.
(dict) --
An arbitary key/value pair used to add searchable metadata to secure tunnel resources.
key (string) --
The key of the tag.
value (string) --
The value of the tag.
createdAt (datetime) --
The time when the tunnel was created.
lastUpdatedAt (datetime) --
The last time the tunnel was updated.
A resource tag.
See also: AWS API Documentation
Request Syntax
client.tag_resource(
    resourceArn='string',
    tags=[
        {
            'key': 'string',
            'value': 'string'
        },
    ]
)
string
[REQUIRED]
The ARN of the resource.
list
[REQUIRED]
The tags for the resource.
(dict) --
An arbitary key/value pair used to add searchable metadata to secure tunnel resources.
key (string) -- [REQUIRED]
The key of the tag.
value (string) -- [REQUIRED]
The value of the tag.
dict
Response Syntax
{}
Response Structure
(dict) --