AWS IoT Secure Tunneling icon

AWS IoT Secure Tunneling

<fullname>IoT Secure Tunneling</fullname> <p>IoT Secure Tunneling creates remote connections to devices deployed in the field

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "info": {
    "version": "2018-10-05",
    "x-release": "v4",
    "title": "AWS IoT Secure Tunneling",
    "description": "<fullname>IoT Secure Tunneling</fullname> <p>IoT Secure Tunneling creates remote connections to devices deployed in the field.</p> <p>For more information about how IoT Secure Tunneling works, see <a href=\"https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html\">IoT Secure Tunneling</a>.</p>",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_twitter.com_awscloud_profile_image.png",
      "backgroundColor": "#FFFFFF"
    },
    "termsOfService": "https://aws.amazon.com/service-terms/",
    "contact": {
      "name": "Mike Ralphson",
      "email": "mike.ralphson@gmail.com",
      "url": "https://github.com/mermade/aws2openapi",
      "x-twitter": "PermittedSoc"
    },
    "license": {
      "name": "Apache 2.0 License",
      "url": "http://www.apache.org/licenses/"
    },
    "x-providerName": "amazonaws.com",
    "x-serviceName": "iotsecuretunneling",
    "x-aws-signingName": "IoTSecuredTunneling",
    "x-origin": [
      {
        "contentType": "application/json",
        "url": "https://raw.githubusercontent.com/aws/aws-sdk-js/master/apis/iotsecuretunneling-2018-10-05.normal.json",
        "converter": {
          "url": "https://github.com/mermade/aws2openapi",
          "version": "1.0.0"
        },
        "x-apisguru-driver": "external"
      }
    ],
    "x-apiClientRegistration": {
      "url": "https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct"
    },
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-preferred": true
  },
  "externalDocs": {
    "description": "Amazon Web Services documentation",
    "url": "https://docs.aws.amazon.com/iot/"
  },
  "servers": [
    {
      "url": "http://api.tunneling.iot.{region}.amazonaws.com",
      "variables": {
        "region": {
          "description": "The AWS region",
          "enum": [
            "us-east-1",
            "us-east-2",
            "us-west-1",
            "us-west-2",
            "us-gov-west-1",
            "us-gov-east-1",
            "ca-central-1",
            "eu-north-1",
            "eu-west-1",
            "eu-west-2",
            "eu-west-3",
            "eu-central-1",
            "eu-south-1",
            "af-south-1",
            "ap-northeast-1",
            "ap-northeast-2",
            "ap-northeast-3",
            "ap-southeast-1",
            "ap-southeast-2",
            "ap-east-1",
            "ap-south-1",
            "sa-east-1",
            "me-south-1"
          ],
          "default": "us-east-1"
        }
      },
      "description": "The AWS IoT Secure Tunneling multi-region endpoint"
    },
    {
      "url": "https://api.tunneling.iot.{region}.amazonaws.com",
      "variables": {
        "region": {
          "description": "The AWS region",
          "enum": [
            "us-east-1",
            "us-east-2",
            "us-west-1",
            "us-west-2",
            "us-gov-west-1",
            "us-gov-east-1",
            "ca-central-1",
            "eu-north-1",
            "eu-west-1",
            "eu-west-2",
            "eu-west-3",
            "eu-central-1",
            "eu-south-1",
            "af-south-1",
            "ap-northeast-1",
            "ap-northeast-2",
            "ap-northeast-3",
            "ap-southeast-1",
            "ap-southeast-2",
            "ap-east-1",
            "ap-south-1",
            "sa-east-1",
            "me-south-1"
          ],
          "default": "us-east-1"
        }
      },
      "description": "The AWS IoT Secure Tunneling multi-region endpoint"
    },
    {
      "url": "http://api.tunneling.iot.{region}.amazonaws.com.cn",
      "variables": {
        "region": {
          "description": "The AWS region",
          "enum": [
            "cn-north-1",
            "cn-northwest-1"
          ],
          "default": "cn-north-1"
        }
      },
      "description": "The AWS IoT Secure Tunneling endpoint for China (Beijing) and China (Ningxia)"
    },
    {
      "url": "https://api.tunneling.iot.{region}.amazonaws.com.cn",
      "variables": {
        "region": {
          "description": "The AWS region",
          "enum": [
            "cn-north-1",
            "cn-northwest-1"
          ],
          "default": "cn-north-1"
        }
      },
      "description": "The AWS IoT Secure Tunneling endpoint for China (Beijing) and China (Ningxia)"
    }
  ],
  "x-hasEquivalentPaths": true,
  "paths": {
    "/#X-Amz-Target=IoTSecuredTunneling.CloseTunnel": {
      "post": {
        "operationId": "CloseTunnel",
        "description": "<p>Closes a tunnel identified by the unique tunnel id. When a <code>CloseTunnel</code> request is received, we close the WebSocket connections between the client and proxy server so no data can be transmitted.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">CloseTunnel</a> action.</p>",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloseTunnelResponse"
                }
              }
            }
          },
          "480": {
            "description": "ResourceNotFoundException",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceNotFoundException"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloseTunnelRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.CloseTunnel"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    },
    "/#X-Amz-Target=IoTSecuredTunneling.DescribeTunnel": {
      "post": {
        "operationId": "DescribeTunnel",
        "description": "<p>Gets information about a tunnel identified by the unique tunnel id.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">DescribeTunnel</a> action.</p>",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DescribeTunnelResponse"
                }
              }
            }
          },
          "480": {
            "description": "ResourceNotFoundException",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceNotFoundException"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DescribeTunnelRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.DescribeTunnel"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    },
    "/#X-Amz-Target=IoTSecuredTunneling.ListTagsForResource": {
      "post": {
        "operationId": "ListTagsForResource",
        "description": "Lists the tags for the specified resource.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTagsForResourceResponse"
                }
              }
            }
          },
          "480": {
            "description": "ResourceNotFoundException",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceNotFoundException"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListTagsForResourceRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.ListTagsForResource"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    },
    "/#X-Amz-Target=IoTSecuredTunneling.ListTunnels": {
      "post": {
        "operationId": "ListTunnels",
        "description": "<p>List all tunnels for an Amazon Web Services account. Tunnels are listed by creation time in descending order, newer tunnels will be listed before older tunnels.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">ListTunnels</a> action.</p>",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTunnelsResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListTunnelsRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "maxResults",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Pagination limit",
            "required": false
          },
          {
            "name": "nextToken",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Pagination token",
            "required": false
          },
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.ListTunnels"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    },
    "/#X-Amz-Target=IoTSecuredTunneling.OpenTunnel": {
      "post": {
        "operationId": "OpenTunnel",
        "description": "<p>Creates a new tunnel, and returns two client access tokens for clients to use to connect to the IoT Secure Tunneling proxy server.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">OpenTunnel</a> action.</p>",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpenTunnelResponse"
                }
              }
            }
          },
          "480": {
            "description": "LimitExceededException",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LimitExceededException"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenTunnelRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.OpenTunnel"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    },
    "/#X-Amz-Target=IoTSecuredTunneling.RotateTunnelAccessToken": {
      "post": {
        "operationId": "RotateTunnelAccessToken",
        "description": "<p>Revokes the current client access token (CAT) and returns new CAT for clients to use when reconnecting to secure tunneling to access the same tunnel.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">RotateTunnelAccessToken</a> action.</p> <note> <p>Rotating the CAT doesn't extend the tunnel duration. For example, say the tunnel duration is 12 hours and the tunnel has already been open for 4 hours. When you rotate the access tokens, the new tokens that are generated can only be used for the remaining 8 hours.</p> </note>",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RotateTunnelAccessTokenResponse"
                }
              }
            }
          },
          "480": {
            "description": "ResourceNotFoundException",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceNotFoundException"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RotateTunnelAccessTokenRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.RotateTunnelAccessToken"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    },
    "/#X-Amz-Target=IoTSecuredTunneling.TagResource": {
      "post": {
        "operationId": "TagResource",
        "description": "A resource tag.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagResourceResponse"
                }
              }
            }
          },
          "480": {
            "description": "ResourceNotFoundException",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceNotFoundException"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagResourceRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.TagResource"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    },
    "/#X-Amz-Target=IoTSecuredTunneling.UntagResource": {
      "post": {
        "operationId": "UntagResource",
        "description": "Removes a tag from a resource.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UntagResourceResponse"
                }
              }
            }
          },
          "480": {
            "description": "ResourceNotFoundException",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceNotFoundException"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UntagResourceRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Amz-Target",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "IoTSecuredTunneling.UntagResource"
              ]
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/X-Amz-Content-Sha256"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Date"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Algorithm"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Credential"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Security-Token"
        },
        {
          "$ref": "#/components/parameters/X-Amz-Signature"
        },
        {
          "$ref": "#/components/parameters/X-Amz-SignedHeaders"
        }
      ]
    }
  },
  "components": {
    "parameters": {
      "X-Amz-Content-Sha256": {
        "name": "X-Amz-Content-Sha256",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": false
      },
      "X-Amz-Date": {
        "name": "X-Amz-Date",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": false
      },
      "X-Amz-Algorithm": {
        "name": "X-Amz-Algorithm",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": false
      },
      "X-Amz-Credential": {
        "name": "X-Amz-Credential",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": false
      },
      "X-Amz-Security-Token": {
        "name": "X-Amz-Security-Token",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": false
      },
      "X-Amz-Signature": {
        "name": "X-Amz-Signature",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": false
      },
      "X-Amz-SignedHeaders": {
        "name": "X-Amz-SignedHeaders",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": false
      }
    },
    "securitySchemes": {
      "hmac": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header",
        "description": "Amazon Signature authorization v4",
        "x-amazon-apigateway-authtype": "awsSigv4"
      }
    },
    "schemas": {
      "CloseTunnelResponse": {
        "type": "object",
        "properties": {}
      },
      "CloseTunnelRequest": {
        "type": "object",
        "required": [
          "tunnelId"
        ],
        "title": "CloseTunnelRequest",
        "properties": {
          "tunnelId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelId"
              },
              {
                "description": "The ID of the tunnel to close."
              }
            ]
          },
          "delete": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeleteFlag"
              },
              {
                "description": "When set to true, IoT Secure Tunneling deletes the tunnel data immediately."
              }
            ]
          }
        }
      },
      "ResourceNotFoundException": {},
      "DescribeTunnelResponse": {
        "type": "object",
        "properties": {
          "tunnel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Tunnel"
              },
              {
                "description": "The tunnel being described."
              }
            ]
          }
        }
      },
      "DescribeTunnelRequest": {
        "type": "object",
        "required": [
          "tunnelId"
        ],
        "title": "DescribeTunnelRequest",
        "properties": {
          "tunnelId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelId"
              },
              {
                "description": "The tunnel to describe."
              }
            ]
          }
        }
      },
      "ListTagsForResourceResponse": {
        "type": "object",
        "properties": {
          "tags": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagList"
              },
              {
                "description": "The tags for the specified resource."
              }
            ]
          }
        }
      },
      "ListTagsForResourceRequest": {
        "type": "object",
        "required": [
          "resourceArn"
        ],
        "title": "ListTagsForResourceRequest",
        "properties": {
          "resourceArn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmazonResourceName"
              },
              {
                "description": "The resource ARN."
              }
            ]
          }
        }
      },
      "ListTunnelsResponse": {
        "type": "object",
        "properties": {
          "tunnelSummaries": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelSummaryList"
              },
              {
                "description": "A short description of the tunnels in an Amazon Web Services account."
              }
            ]
          },
          "nextToken": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextToken"
              },
              {
                "description": "The token to use to get the next set of results, or null if there are no additional results."
              }
            ]
          }
        }
      },
      "ListTunnelsRequest": {
        "type": "object",
        "title": "ListTunnelsRequest",
        "properties": {
          "thingName": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThingName"
              },
              {
                "description": "The name of the IoT thing associated with the destination device."
              }
            ]
          },
          "maxResults": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MaxResults"
              },
              {
                "description": "The maximum number of results to return at once."
              }
            ]
          },
          "nextToken": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextToken"
              },
              {
                "description": "To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results."
              }
            ]
          }
        }
      },
      "OpenTunnelResponse": {
        "type": "object",
        "properties": {
          "tunnelId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelId"
              },
              {
                "description": "A unique alpha-numeric tunnel ID."
              }
            ]
          },
          "tunnelArn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelArn"
              },
              {
                "description": "The Amazon Resource Name for the tunnel."
              }
            ]
          },
          "sourceAccessToken": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClientAccessToken"
              },
              {
                "description": "The access token the source local proxy uses to connect to IoT Secure Tunneling."
              }
            ]
          },
          "destinationAccessToken": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClientAccessToken"
              },
              {
                "description": "The access token the destination local proxy uses to connect to IoT Secure Tunneling."
              }
            ]
          }
        }
      },
      "OpenTunnelRequest": {
        "type": "object",
        "title": "OpenTunnelRequest",
        "properties": {
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Description"
              },
              {
                "description": "A short text description of the tunnel. "
              }
            ]
          },
          "tags": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagList"
              },
              {
                "description": "A collection of tag metadata."
              }
            ]
          },
          "destinationConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DestinationConfig"
              },
              {
                "description": "The destination configuration for the OpenTunnel request."
              }
            ]
          },
          "timeoutConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TimeoutConfig"
              },
              {
                "description": "Timeout configuration for a tunnel."
              }
            ]
          }
        }
      },
      "LimitExceededException": {},
      "RotateTunnelAccessTokenResponse": {
        "type": "object",
        "properties": {
          "tunnelArn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelArn"
              },
              {
                "description": "The Amazon Resource Name for the tunnel."
              }
            ]
          },
          "sourceAccessToken": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClientAccessToken"
              },
              {
                "description": "The client access token that the source local proxy uses to connect to IoT Secure Tunneling."
              }
            ]
          },
          "destinationAccessToken": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClientAccessToken"
              },
              {
                "description": "The client access token that the destination local proxy uses to connect to IoT Secure Tunneling."
              }
            ]
          }
        }
      },
      "RotateTunnelAccessTokenRequest": {
        "type": "object",
        "required": [
          "tunnelId",
          "clientMode"
        ],
        "title": "RotateTunnelAccessTokenRequest",
        "properties": {
          "tunnelId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelId"
              },
              {
                "description": "The tunnel for which you want to rotate the access tokens."
              }
            ]
          },
          "clientMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClientMode"
              },
              {
                "description": "The mode of the client that will use the client token, which can be either the source or destination, or both source and destination."
              }
            ]
          },
          "destinationConfig": {
            "$ref": "#/components/schemas/DestinationConfig"
          }
        }
      },
      "TagResourceResponse": {
        "type": "object",
        "properties": {}
      },
      "TagResourceRequest": {
        "type": "object",
        "required": [
          "resourceArn",
          "tags"
        ],
        "title": "TagResourceRequest",
        "properties": {
          "resourceArn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmazonResourceName"
              },
              {
                "description": "The ARN of the resource."
              }
            ]
          },
          "tags": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagList"
              },
              {
                "description": "The tags for the resource."
              }
            ]
          }
        }
      },
      "UntagResourceResponse": {
        "type": "object",
        "properties": {}
      },
      "UntagResourceRequest": {
        "type": "object",
        "required": [
          "resourceArn",
          "tagKeys"
        ],
        "title": "UntagResourceRequest",
        "properties": {
          "resourceArn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmazonResourceName"
              },
              {
                "description": "The resource ARN."
              }
            ]
          },
          "tagKeys": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagKeyList"
              },
              {
                "description": "The keys of the tags to remove."
              }
            ]
          }
        }
      },
      "AmazonResourceName": {
        "type": "string",
        "minLength": 1,
        "maxLength": 1011
      },
      "ClientAccessToken": {
        "type": "string",
        "format": "password"
      },
      "ClientMode": {
        "type": "string",
        "enum": [
          "SOURCE",
          "DESTINATION",
          "ALL"
        ]
      },
      "TunnelId": {
        "type": "string",
        "pattern": "[a-zA-Z0-9_\\-+=:]{1,128}"
      },
      "DeleteFlag": {
        "type": "boolean"
      },
      "ConnectionStatus": {
        "type": "string",
        "enum": [
          "CONNECTED",
          "DISCONNECTED"
        ]
      },
      "DateType": {
        "type": "string",
        "format": "date-time"
      },
      "ConnectionState": {
        "type": "object",
        "properties": {
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectionStatus"
              },
              {
                "description": "The connection status of the tunnel. Valid values are <code>CONNECTED</code> and <code>DISCONNECTED</code>."
              }
            ]
          },
          "lastUpdatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateType"
              },
              {
                "description": "The last time the connection status was updated."
              }
            ]
          }
        },
        "description": "The state of a connection."
      },
      "Tunnel": {
        "type": "object",
        "properties": {
          "tunnelId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelId"
              },
              {
                "description": "A unique alpha-numeric ID that identifies a tunnel."
              }
            ]
          },
          "tunnelArn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelArn"
              },
              {
                "description": "The Amazon Resource Name (ARN) of a tunnel."
              }
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelStatus"
              },
              {
                "description": "The status of a tunnel. Valid values are: Open and Closed."
              }
            ]
          },
          "sourceConnectionState": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectionState"
              },
              {
                "description": "The connection state of the source application."
              }
            ]
          },
          "destinationConnectionState": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectionState"
              },
              {
                "description": "The connection state of the destination application."
              }
            ]
          },
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Description"
              },
              {
                "description": "A description of the tunnel."
              }
            ]
          },
          "destinationConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DestinationConfig"
              },
              {
                "description": "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."
              }
            ]
          },
          "timeoutConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TimeoutConfig"
              },
              {
                "description": "Timeout configuration for the tunnel."
              }
            ]
          },
          "tags": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagList"
              },
              {
                "description": "A list of tag metadata associated with the secure tunnel."
              }
            ]
          },
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateType"
              },
              {
                "description": "The time when the tunnel was created."
              }
            ]
          },
          "lastUpdatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateType"
              },
              {
                "description": "The last time the tunnel was updated."
              }
            ]
          }
        },
        "description": "A connection between a source computer and a destination device."
      },
      "Description": {
        "type": "string",
        "pattern": "[^\\p{C}]{1,2048}"
      },
      "ThingName": {
        "type": "string",
        "pattern": "[a-zA-Z0-9:_-]+",
        "minLength": 1,
        "maxLength": 128
      },
      "ServiceList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Service"
        },
        "minItems": 1
      },
      "DestinationConfig": {
        "type": "object",
        "required": [
          "services"
        ],
        "properties": {
          "thingName": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThingName"
              },
              {
                "description": "The name of the IoT thing to which you want to connect."
              }
            ]
          },
          "services": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServiceList"
              },
              {
                "description": "A list of service names that identify the target application. The 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 IoT client instantiates the local proxy, which uses this information to connect to the destination application."
              }
            ]
          }
        },
        "description": "The destination configuration."
      },
      "TagList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Tag"
        },
        "minItems": 1,
        "maxItems": 200
      },
      "MaxResults": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      },
      "NextToken": {
        "type": "string",
        "pattern": "[a-zA-Z0-9_=-]{1,4096}"
      },
      "TunnelSummaryList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TunnelSummary"
        }
      },
      "TimeoutConfig": {
        "type": "object",
        "properties": {
          "maxLifetimeTimeoutMinutes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TimeoutInMin"
              },
              {
                "description": "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) "
              }
            ]
          }
        },
        "description": "Tunnel timeout configuration."
      },
      "TunnelArn": {
        "type": "string",
        "minLength": 1,
        "maxLength": 1600
      },
      "Service": {
        "type": "string",
        "pattern": "[a-zA-Z0-9:_-]+",
        "minLength": 1,
        "maxLength": 128
      },
      "TagKey": {
        "type": "string",
        "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$",
        "minLength": 1,
        "maxLength": 128
      },
      "TagValue": {
        "type": "string",
        "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$",
        "minLength": 0,
        "maxLength": 256
      },
      "Tag": {
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "properties": {
          "key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagKey"
              },
              {
                "description": "The key of the tag."
              }
            ]
          },
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagValue"
              },
              {
                "description": "The value of the tag."
              }
            ]
          }
        },
        "description": "An arbitary key/value pair used to add searchable metadata to secure tunnel resources."
      },
      "TagKeyList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TagKey"
        },
        "minItems": 0,
        "maxItems": 200
      },
      "TimeoutInMin": {
        "type": "integer",
        "minimum": 1,
        "maximum": 720
      },
      "TunnelStatus": {
        "type": "string",
        "enum": [
          "OPEN",
          "CLOSED"
        ]
      },
      "TunnelSummary": {
        "type": "object",
        "properties": {
          "tunnelId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelId"
              },
              {
                "description": "The unique alpha-numeric identifier for the tunnel."
              }
            ]
          },
          "tunnelArn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelArn"
              },
              {
                "description": "The Amazon Resource Name of the tunnel. "
              }
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TunnelStatus"
              },
              {
                "description": "The status of a tunnel. Valid values are: Open and Closed."
              }
            ]
          },
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Description"
              },
              {
                "description": "A description of the tunnel."
              }
            ]
          },
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateType"
              },
              {
                "description": "The time the tunnel was created."
              }
            ]
          },
          "lastUpdatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateType"
              },
              {
                "description": "The time the tunnel was last updated."
              }
            ]
          }
        },
        "description": "Information about the tunnel."
      }
    }
  },
  "security": [
    {
      "hmac": []
    }
  ]
}