Twilio - Proxy icon

Twilio - Proxy

This is the public Twilio REST API

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.1",
  "servers": [
    {
      "url": "https://proxy.twilio.com"
    }
  ],
  "info": {
    "contact": {
      "email": "support@twilio.com",
      "name": "Twilio Support",
      "url": "https://support.twilio.com"
    },
    "description": "This is the public Twilio REST API.",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "termsOfService": "https://www.twilio.com/legal/tos",
    "title": "Twilio - Proxy",
    "version": "1.42.0",
    "x-apisguru-categories": [
      "telecom",
      "messaging"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_static1.twilio.com_marketing_bundles_marketing_img_logos_wordmark-red.svg"
    },
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_proxy_v1.json",
        "version": "3.0"
      }
    ],
    "x-providerName": "twilio.com",
    "x-serviceName": "twilio_proxy_v1"
  },
  "paths": {
    "/v1/Services": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Retrieve a list of all Services for Twilio Proxy. A maximum of 100 records will be returned per page.",
        "operationId": "ListService",
        "parameters": [
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "services": {
                      "items": {
                        "$ref": "#/components/schemas/proxy.v1.service"
                      },
                      "type": "array"
                    }
                  },
                  "title": "ListServiceResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Create a new Service for Twilio Proxy",
        "operationId": "CreateService",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "CallbackUrl": {
                    "description": "The URL we should call when the interaction status changes.",
                    "format": "uri",
                    "type": "string"
                  },
                  "ChatInstanceSid": {
                    "description": "The SID of the Chat Service Instance managed by Proxy Service. The Chat Service enables Proxy to forward SMS and channel messages to this chat instance. This is a one-to-one relationship.",
                    "maxLength": 34,
                    "minLength": 34,
                    "pattern": "^IS[0-9a-fA-F]{32}$",
                    "type": "string"
                  },
                  "DefaultTtl": {
                    "description": "The default `ttl` value to set for Sessions created in the Service. The TTL (time to live) is measured in seconds after the Session's last create or last Interaction. The default value of `0` indicates an unlimited Session length. You can override a Session's default TTL value by setting its `ttl` value.",
                    "type": "integer"
                  },
                  "GeoMatchLevel": {
                    "$ref": "#/components/schemas/service_enum_geo_match_level",
                    "description": "Where a proxy number must be located relative to the participant identifier. Can be: `country`, `area-code`, or `extended-area-code`. The default value is `country` and more specific areas than `country` are only available in North America.",
                    "type": "string"
                  },
                  "InterceptCallbackUrl": {
                    "description": "The URL we call on each interaction. If we receive a 403 status, we block the interaction; otherwise the interaction continues.",
                    "format": "uri",
                    "type": "string"
                  },
                  "NumberSelectionBehavior": {
                    "$ref": "#/components/schemas/service_enum_number_selection_behavior",
                    "description": "The preference for Proxy Number selection in the Service instance. Can be: `prefer-sticky` or `avoid-sticky` and the default is `prefer-sticky`. `prefer-sticky` means that we will try and select the same Proxy Number for a given participant if they have previous [Sessions](https://www.twilio.com/docs/proxy/api/session), but we will not fail if that Proxy Number cannot be used.  `avoid-sticky` means that we will try to use different Proxy Numbers as long as that is possible within a given pool rather than try and use a previously assigned number.",
                    "type": "string"
                  },
                  "OutOfSessionCallbackUrl": {
                    "description": "The URL we should call when an inbound call or SMS action occurs on a closed or non-existent Session. If your server (or a Twilio [function](https://www.twilio.com/functions)) responds with valid [TwiML](https://www.twilio.com/docs/voice/twiml), we will process it. This means it is possible, for example, to play a message for a call, send an automated text message response, or redirect a call to another Phone Number. See [Out-of-Session Callback Response Guide](https://www.twilio.com/docs/proxy/out-session-callback-response-guide) for more information.",
                    "format": "uri",
                    "type": "string"
                  },
                  "UniqueName": {
                    "description": "An application-defined string that uniquely identifies the resource. This value must be 191 characters or fewer in length and be unique. **This value should not have PII.**",
                    "type": "string"
                  }
                },
                "required": [
                  "UniqueName"
                ],
                "title": "CreateServiceRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "unique_name",
          "date_created"
        ],
        "pathType": "list"
      }
    },
    "/v1/Services/{ServiceSid}/PhoneNumbers": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Retrieve a list of all Phone Numbers in the Proxy Number Pool for a Service. A maximum of 100 records will be returned per page.",
        "operationId": "ListPhoneNumber",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the PhoneNumber resources to read.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "phone_numbers": {
                      "items": {
                        "$ref": "#/components/schemas/proxy.v1.service.phone_number"
                      },
                      "type": "array"
                    }
                  },
                  "title": "ListPhoneNumberResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Add a Phone Number to a Service's Proxy Number Pool.",
        "operationId": "CreatePhoneNumber",
        "parameters": [
          {
            "description": "The SID parent [Service](https://www.twilio.com/docs/proxy/api/service) resource of the new PhoneNumber resource.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "IsReserved": {
                    "description": "Whether the new phone number should be reserved and not be assigned to a participant using proxy pool logic. See [Reserved Phone Numbers](https://www.twilio.com/docs/proxy/reserved-phone-numbers) for more information.",
                    "type": "boolean"
                  },
                  "PhoneNumber": {
                    "description": "The phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) format.  E.164 phone numbers consist of a + followed by the country code and subscriber number without punctuation characters. For example, +14155551234.",
                    "format": "phone-number",
                    "type": "string"
                  },
                  "Sid": {
                    "description": "The SID of a Twilio [IncomingPhoneNumber](https://www.twilio.com/docs/phone-numbers/api/incomingphonenumber-resource) resource that represents the Twilio Number you would like to assign to your Proxy Service.",
                    "maxLength": 34,
                    "minLength": 34,
                    "pattern": "^PN[0-9a-fA-F]{32}$",
                    "type": "string"
                  }
                },
                "title": "CreatePhoneNumberRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.phone_number"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "phone_number"
        ],
        "parent": "/Services/{Sid}",
        "pathType": "list"
      }
    },
    "/v1/Services/{ServiceSid}/PhoneNumbers/{Sid}": {
      "delete": {
        "description": "Delete a specific Phone Number from a Service.",
        "operationId": "DeletePhoneNumber",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the PhoneNumber resource to delete.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the PhoneNumber resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^PN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Fetch a specific Phone Number.",
        "operationId": "FetchPhoneNumber",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the PhoneNumber resource to fetch.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the PhoneNumber resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^PN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.phone_number"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Update a specific Proxy Number.",
        "operationId": "UpdatePhoneNumber",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the PhoneNumber resource to update.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the PhoneNumber resource to update.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^PN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "IsReserved": {
                    "description": "Whether the phone number should be reserved and not be assigned to a participant using proxy pool logic. See [Reserved Phone Numbers](https://www.twilio.com/docs/proxy/reserved-phone-numbers) for more information.",
                    "type": "boolean"
                  }
                },
                "title": "UpdatePhoneNumberRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.phone_number"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "phone_number"
        ],
        "parent": "/Services/{Sid}",
        "pathType": "instance"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Retrieve a list of all Sessions for the Service. A maximum of 100 records will be returned per page.",
        "operationId": "ListSession",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to read.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "sessions": {
                      "items": {
                        "$ref": "#/components/schemas/proxy.v1.service.session"
                      },
                      "type": "array"
                    }
                  },
                  "title": "ListSessionResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Create a new Session",
        "operationId": "CreateSession",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "DateExpiry": {
                    "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date when the Session should expire. If this is value is present, it overrides the `ttl` value.",
                    "format": "date-time",
                    "type": "string"
                  },
                  "Mode": {
                    "$ref": "#/components/schemas/session_enum_mode",
                    "description": "The Mode of the Session. Can be: `message-only`, `voice-only`, or `voice-and-message` and the default value is `voice-and-message`.",
                    "type": "string"
                  },
                  "Participants": {
                    "description": "The Participant objects to include in the new session.",
                    "items": {},
                    "type": "array"
                  },
                  "Status": {
                    "$ref": "#/components/schemas/session_enum_status",
                    "description": "The initial status of the Session. Can be: `open`, `in-progress`, `closed`, `failed`, or `unknown`. The default is `open` on create.",
                    "type": "string"
                  },
                  "Ttl": {
                    "description": "The time, in seconds, when the session will expire. The time is measured from the last Session create or the Session's last Interaction.",
                    "type": "integer"
                  },
                  "UniqueName": {
                    "description": "An application-defined string that uniquely identifies the resource. This value must be 191 characters or fewer in length and be unique. **This value should not have PII.**",
                    "type": "string"
                  }
                },
                "title": "CreateSessionRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "unique_name",
          "date_started",
          "date_ended"
        ],
        "parent": "/Services/{Sid}",
        "pathType": "list"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions/{SessionSid}/Interactions": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Retrieve a list of all Interactions for a Session. A maximum of 100 records will be returned per page.",
        "operationId": "ListInteraction",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) to read the resources from.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) to read the resources from.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "interactions": {
                      "items": {
                        "$ref": "#/components/schemas/proxy.v1.service.session.interaction"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "title": "ListInteractionResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "type",
          "data"
        ],
        "parent": "/Services/{ServiceSid}/Sessions/{Sid}",
        "pathType": "list"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions/{SessionSid}/Interactions/{Sid}": {
      "delete": {
        "description": "Delete a specific Interaction.",
        "operationId": "DeleteInteraction",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to delete.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) of the resource to delete.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the Interaction resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KI[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Retrieve a list of Interactions for a given [Session](https://www.twilio.com/docs/proxy/api/session).",
        "operationId": "FetchInteraction",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to fetch.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) of the resource to fetch.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the Interaction resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KI[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session.interaction"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "type",
          "data"
        ],
        "parent": "/Services/{ServiceSid}/Sessions/{Sid}",
        "pathType": "instance"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions/{SessionSid}/Participants": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Retrieve a list of all Participants in a Session.",
        "operationId": "ListParticipant",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resources to read.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) of the resources to read.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "participants": {
                      "items": {
                        "$ref": "#/components/schemas/proxy.v1.service.session.participant"
                      },
                      "type": "array"
                    }
                  },
                  "title": "ListParticipantResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Add a new Participant to the Session",
        "operationId": "CreateParticipant",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) resource.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "FriendlyName": {
                    "description": "The string that you assigned to describe the participant. This value must be 255 characters or fewer. **This value should not have PII.**",
                    "type": "string"
                  },
                  "Identifier": {
                    "description": "The phone number of the Participant.",
                    "type": "string"
                  },
                  "ProxyIdentifier": {
                    "description": "The proxy phone number to use for the Participant. If not specified, Proxy will select a number from the pool.",
                    "type": "string"
                  },
                  "ProxyIdentifierSid": {
                    "description": "The SID of the Proxy Identifier to assign to the Participant.",
                    "maxLength": 34,
                    "minLength": 34,
                    "pattern": "^PN[0-9a-fA-F]{32}$",
                    "type": "string"
                  }
                },
                "required": [
                  "Identifier"
                ],
                "title": "CreateParticipantRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session.participant"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "identifier",
          "proxy_identifier"
        ],
        "parent": "/Services/{ServiceSid}/Sessions/{Sid}",
        "pathType": "list"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions/{SessionSid}/Participants/{ParticipantSid}/MessageInteractions": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "",
        "operationId": "ListMessageInteraction",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) to read the resources from.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) to read the resources from.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the [Participant](https://www.twilio.com/docs/proxy/api/participant) to read the resources from.",
            "in": "path",
            "name": "ParticipantSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KP[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "interactions": {
                      "items": {
                        "$ref": "#/components/schemas/proxy.v1.service.session.participant.message_interaction"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "title": "ListMessageInteractionResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Create a new message Interaction to send directly from your system to one [Participant](https://www.twilio.com/docs/proxy/api/participant).  The `inbound` properties for the Interaction will always be empty.",
        "operationId": "CreateMessageInteraction",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) resource.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the [Participant](https://www.twilio.com/docs/proxy/api/participant) resource.",
            "in": "path",
            "name": "ParticipantSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KP[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "Body": {
                    "description": "The message to send to the participant",
                    "type": "string"
                  },
                  "MediaUrl": {
                    "description": "Reserved. Not currently supported.",
                    "items": {
                      "format": "uri",
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "title": "CreateMessageInteractionRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session.participant.message_interaction"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ],
        "x-twilio": {
          "conditional": [
            [
              "body",
              "media_url"
            ]
          ]
        }
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "type",
          "data"
        ],
        "parent": "/Services/{ServiceSid}/Sessions/{SessionSid}/Participants/{Sid}",
        "pathType": "list"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions/{SessionSid}/Participants/{ParticipantSid}/MessageInteractions/{Sid}": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "",
        "operationId": "FetchMessageInteraction",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to fetch.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) of the resource to fetch.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the [Participant](https://www.twilio.com/docs/proxy/api/participant) resource.",
            "in": "path",
            "name": "ParticipantSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KP[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the MessageInteraction resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KI[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session.participant.message_interaction"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "type",
          "data"
        ],
        "parent": "/Services/{ServiceSid}/Sessions/{SessionSid}/Participants/{Sid}",
        "pathType": "instance"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions/{SessionSid}/Participants/{Sid}": {
      "delete": {
        "description": "Delete a specific Participant. This is a soft-delete. The participant remains associated with the session and cannot be re-added. Participants are only permanently deleted when the [Session](https://www.twilio.com/docs/proxy/api/session) is deleted.",
        "operationId": "DeleteParticipant",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to delete.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) of the resource to delete.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the Participant resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KP[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Fetch a specific Participant.",
        "operationId": "FetchParticipant",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to fetch.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) of the resource to fetch.",
            "in": "path",
            "name": "SessionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the Participant resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KP[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session.participant"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "identifier",
          "proxy_identifier"
        ],
        "parent": "/Services/{ServiceSid}/Sessions/{Sid}",
        "pathType": "instance"
      }
    },
    "/v1/Services/{ServiceSid}/Sessions/{Sid}": {
      "delete": {
        "description": "Delete a specific Session.",
        "operationId": "DeleteSession",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to delete.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the Session resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Fetch a specific Session.",
        "operationId": "FetchSession",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to fetch.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the Session resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Update a specific Session.",
        "operationId": "UpdateSession",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to update.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the Session resource to update.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "DateExpiry": {
                    "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date when the Session should expire. If this is value is present, it overrides the `ttl` value.",
                    "format": "date-time",
                    "type": "string"
                  },
                  "Status": {
                    "$ref": "#/components/schemas/session_enum_status",
                    "description": "The new status of the resource. Can be: `in-progress` to re-open a session or `closed` to close a session.",
                    "type": "string"
                  },
                  "Ttl": {
                    "description": "The time, in seconds, when the session will expire. The time is measured from the last Session create or the Session's last Interaction.",
                    "type": "integer"
                  }
                },
                "title": "UpdateSessionRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.session"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "unique_name",
          "date_started",
          "date_ended"
        ],
        "parent": "/Services/{Sid}",
        "pathType": "instance"
      }
    },
    "/v1/Services/{ServiceSid}/ShortCodes": {
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Retrieve a list of all Short Codes in the Proxy Number Pool for the Service. A maximum of 100 records will be returned per page.",
        "operationId": "ListShortCode",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) to read the resources from.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "short_codes": {
                      "items": {
                        "$ref": "#/components/schemas/proxy.v1.service.short_code"
                      },
                      "type": "array"
                    }
                  },
                  "title": "ListShortCodeResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Add a Short Code to the Proxy Number Pool for the Service.",
        "operationId": "CreateShortCode",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "Sid": {
                    "description": "The SID of a Twilio [ShortCode](https://www.twilio.com/docs/sms/api/short-code) resource that represents the short code you would like to assign to your Proxy Service.",
                    "maxLength": 34,
                    "minLength": 34,
                    "pattern": "^SC[0-9a-fA-F]{32}$",
                    "type": "string"
                  }
                },
                "required": [
                  "Sid"
                ],
                "title": "CreateShortCodeRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.short_code"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "short_code",
          "iso_country"
        ],
        "parent": "/Services/{Sid}",
        "pathType": "list"
      }
    },
    "/v1/Services/{ServiceSid}/ShortCodes/{Sid}": {
      "delete": {
        "description": "Delete a specific Short Code from a Service.",
        "operationId": "DeleteShortCode",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) resource to delete the ShortCode resource from.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the ShortCode resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^SC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Fetch a specific Short Code.",
        "operationId": "FetchShortCode",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) to fetch the resource from.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the ShortCode resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^SC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.short_code"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Update a specific Short Code.",
        "operationId": "UpdateShortCode",
        "parameters": [
          {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) of the resource to update.",
            "in": "path",
            "name": "ServiceSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The Twilio-provided string that uniquely identifies the ShortCode resource to update.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^SC[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "IsReserved": {
                    "description": "Whether the short code should be reserved and not be assigned to a participant using proxy pool logic. See [Reserved Phone Numbers](https://www.twilio.com/docs/proxy/reserved-phone-numbers) for more information.",
                    "type": "boolean"
                  }
                },
                "title": "UpdateShortCodeRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service.short_code"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "short_code",
          "iso_country"
        ],
        "parent": "/Services/{Sid}",
        "pathType": "instance"
      }
    },
    "/v1/Services/{Sid}": {
      "delete": {
        "description": "Delete a specific Service.",
        "operationId": "DeleteService",
        "parameters": [
          {
            "description": "The Twilio-provided string that uniquely identifies the Service resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "description": "TODO: Resource-level docs",
      "get": {
        "description": "Fetch a specific Service.",
        "operationId": "FetchService",
        "parameters": [
          {
            "description": "The Twilio-provided string that uniquely identifies the Service resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "post": {
        "description": "Update a specific Service.",
        "operationId": "UpdateService",
        "parameters": [
          {
            "description": "The Twilio-provided string that uniquely identifies the Service resource to update.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^KS[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "CallbackUrl": {
                    "description": "The URL we should call when the interaction status changes.",
                    "format": "uri",
                    "type": "string"
                  },
                  "ChatInstanceSid": {
                    "description": "The SID of the Chat Service Instance managed by Proxy Service. The Chat Service enables Proxy to forward SMS and channel messages to this chat instance. This is a one-to-one relationship.",
                    "maxLength": 34,
                    "minLength": 34,
                    "pattern": "^IS[0-9a-fA-F]{32}$",
                    "type": "string"
                  },
                  "DefaultTtl": {
                    "description": "The default `ttl` value to set for Sessions created in the Service. The TTL (time to live) is measured in seconds after the Session's last create or last Interaction. The default value of `0` indicates an unlimited Session length. You can override a Session's default TTL value by setting its `ttl` value.",
                    "type": "integer"
                  },
                  "GeoMatchLevel": {
                    "$ref": "#/components/schemas/service_enum_geo_match_level",
                    "description": "Where a proxy number must be located relative to the participant identifier. Can be: `country`, `area-code`, or `extended-area-code`. The default value is `country` and more specific areas than `country` are only available in North America.",
                    "type": "string"
                  },
                  "InterceptCallbackUrl": {
                    "description": "The URL we call on each interaction. If we receive a 403 status, we block the interaction; otherwise the interaction continues.",
                    "format": "uri",
                    "type": "string"
                  },
                  "NumberSelectionBehavior": {
                    "$ref": "#/components/schemas/service_enum_number_selection_behavior",
                    "description": "The preference for Proxy Number selection in the Service instance. Can be: `prefer-sticky` or `avoid-sticky` and the default is `prefer-sticky`. `prefer-sticky` means that we will try and select the same Proxy Number for a given participant if they have previous [Sessions](https://www.twilio.com/docs/proxy/api/session), but we will not fail if that Proxy Number cannot be used.  `avoid-sticky` means that we will try to use different Proxy Numbers as long as that is possible within a given pool rather than try and use a previously assigned number.",
                    "type": "string"
                  },
                  "OutOfSessionCallbackUrl": {
                    "description": "The URL we should call when an inbound call or SMS action occurs on a closed or non-existent Session. If your server (or a Twilio [function](https://www.twilio.com/functions)) responds with valid [TwiML](https://www.twilio.com/docs/voice/twiml), we will process it. This means it is possible, for example, to play a message for a call, send an automated text message response, or redirect a call to another Phone Number. See [Out-of-Session Callback Response Guide](https://www.twilio.com/docs/proxy/out-session-callback-response-guide) for more information.",
                    "format": "uri",
                    "type": "string"
                  },
                  "UniqueName": {
                    "description": "An application-defined string that uniquely identifies the resource. This value must be 191 characters or fewer in length and be unique. **This value should not have PII.**",
                    "type": "string"
                  }
                },
                "title": "UpdateServiceRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxy.v1.service"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "Beta"
        ]
      },
      "servers": [
        {
          "url": "https://proxy.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "unique_name",
          "date_created"
        ],
        "pathType": "instance"
      }
    }
  },
  "components": {
    "schemas": {
      "interaction_enum_resource_status": {
        "enum": [
          "accepted",
          "answered",
          "busy",
          "canceled",
          "completed",
          "deleted",
          "delivered",
          "delivery-unknown",
          "failed",
          "in-progress",
          "initiated",
          "no-answer",
          "queued",
          "received",
          "receiving",
          "ringing",
          "scheduled",
          "sending",
          "sent",
          "undelivered",
          "unknown"
        ],
        "type": "string"
      },
      "interaction_enum_type": {
        "enum": [
          "message",
          "voice",
          "unknown"
        ],
        "type": "string"
      },
      "message_interaction_enum_resource_status": {
        "enum": [
          "accepted",
          "answered",
          "busy",
          "canceled",
          "completed",
          "deleted",
          "delivered",
          "delivery-unknown",
          "failed",
          "in-progress",
          "initiated",
          "no-answer",
          "queued",
          "received",
          "receiving",
          "ringing",
          "scheduled",
          "sending",
          "sent",
          "undelivered",
          "unknown"
        ],
        "type": "string"
      },
      "message_interaction_enum_type": {
        "enum": [
          "message",
          "voice",
          "unknown"
        ],
        "type": "string"
      },
      "proxy.v1.service": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Service resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "callback_url": {
            "description": "The URL we call when the interaction status changes.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "chat_instance_sid": {
            "description": "The SID of the Chat Service Instance managed by Proxy Service. The Chat Service enables Proxy to forward SMS and channel messages to this chat instance. This is a one-to-one relationship.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^IS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "date_created": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was last updated.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "default_ttl": {
            "description": "The default `ttl` value for Sessions created in the Service. The TTL (time to live) is measured in seconds after the Session's last create or last Interaction. The default value of `0` indicates an unlimited Session length. You can override a Session's default TTL value by setting its `ttl` value.",
            "nullable": true,
            "type": "integer"
          },
          "geo_match_level": {
            "$ref": "#/components/schemas/service_enum_geo_match_level",
            "description": "Where a proxy number must be located relative to the participant identifier. Can be: `country`, `area-code`, or `extended-area-code`. The default value is `country` and more specific areas than `country` are only available in North America.",
            "nullable": true,
            "type": "string"
          },
          "intercept_callback_url": {
            "description": "The URL we call on each interaction. If we receive a 403 status, we block the interaction; otherwise the interaction continues.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "links": {
            "description": "The URLs of resources related to the Service.",
            "format": "uri-map",
            "nullable": true,
            "type": "object"
          },
          "number_selection_behavior": {
            "$ref": "#/components/schemas/service_enum_number_selection_behavior",
            "description": "The preference for Proxy Number selection in the Service instance. Can be: `prefer-sticky` or `avoid-sticky`. `prefer-sticky` means that we will try and select the same Proxy Number for a given participant if they have previous [Sessions](https://www.twilio.com/docs/proxy/api/session), but we will not fail if that Proxy Number cannot be used.  `avoid-sticky` means that we will try to use different Proxy Numbers as long as that is possible within a given pool rather than try and use a previously assigned number.",
            "nullable": true,
            "type": "string"
          },
          "out_of_session_callback_url": {
            "description": "The URL we call when an inbound call or SMS action occurs on a closed or non-existent Session. If your server (or a Twilio [function](https://www.twilio.com/functions)) responds with valid [TwiML](https://www.twilio.com/docs/voice/twiml), we will process it. This means it is possible, for example, to play a message for a call, send an automated text message response, or redirect a call to another Phone Number. See [Out-of-Session Callback Response Guide](https://www.twilio.com/docs/proxy/out-session-callback-response-guide) for more information.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the Service resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "unique_name": {
            "description": "An application-defined string that uniquely identifies the resource. This value must be 191 characters or fewer in length and be unique. Supports UTF-8 characters. **This value should not have PII.**",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the Service resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "proxy.v1.service.phone_number": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the PhoneNumber resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "capabilities": {
            "description": "The capabilities of the phone number.",
            "format": "phone-number-capabilities",
            "nullable": true,
            "properties": {
              "fax": {
                "type": "boolean"
              },
              "mms": {
                "type": "boolean"
              },
              "sms": {
                "type": "boolean"
              },
              "voice": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "date_created": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was last updated.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "friendly_name": {
            "description": "The string that you assigned to describe the resource.",
            "nullable": true,
            "type": "string"
          },
          "in_use": {
            "description": "The number of open session assigned to the number. See the [How many Phone Numbers do I need?](https://www.twilio.com/docs/proxy/phone-numbers-needed) guide for more information.",
            "nullable": true,
            "type": "integer"
          },
          "is_reserved": {
            "description": "Whether the phone number should be reserved and not be assigned to a participant using proxy pool logic. See [Reserved Phone Numbers](https://www.twilio.com/docs/proxy/reserved-phone-numbers) for more information.",
            "nullable": true,
            "type": "boolean"
          },
          "iso_country": {
            "description": "The ISO Country Code for the phone number.",
            "nullable": true,
            "type": "string"
          },
          "phone_number": {
            "description": "The phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) format, which consists of a + followed by the country code and subscriber number.",
            "format": "phone-number",
            "nullable": true,
            "type": "string"
          },
          "service_sid": {
            "description": "The SID of the PhoneNumber resource's parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the PhoneNumber resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^PN[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the PhoneNumber resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "proxy.v1.service.session": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Session resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "closed_reason": {
            "description": "The reason the Session ended.",
            "nullable": true,
            "type": "string"
          },
          "date_created": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_ended": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date when the Session ended.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_expiry": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date when the Session should expire. If this is value is present, it overrides the `ttl` value.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_last_interaction": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date when the Session last had an interaction.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_started": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date when the Session started.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was last updated.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "links": {
            "description": "The URLs of resources related to the Session.",
            "format": "uri-map",
            "nullable": true,
            "type": "object"
          },
          "mode": {
            "$ref": "#/components/schemas/session_enum_mode",
            "description": "The Mode of the Session. Can be: `message-only`, `voice-only`, or `voice-and-message`.",
            "nullable": true,
            "type": "string"
          },
          "service_sid": {
            "description": "The SID of the [Service](https://www.twilio.com/docs/proxy/api/service) the session is associated with.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the Session resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/session_enum_status",
            "description": "The status of the Session. Can be: `open`, `in-progress`, `closed`, `failed`, or `unknown`.",
            "nullable": true,
            "type": "string"
          },
          "ttl": {
            "description": "The time, in seconds, when the session will expire. The time is measured from the last Session create or the Session's last Interaction.",
            "nullable": true,
            "type": "integer"
          },
          "unique_name": {
            "description": "An application-defined string that uniquely identifies the resource. This value must be 191 characters or fewer in length and be unique. Supports UTF-8 characters. **This value should not have PII.**",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the Session resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "proxy.v1.service.session.interaction": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Interaction resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "data": {
            "description": "A JSON string that includes the message body of message interactions (e.g. `{\"body\": \"hello\"}`) or the call duration (when available) of a call (e.g. `{\"duration\": \"5\"}`).",
            "nullable": true,
            "type": "string"
          },
          "date_created": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the Interaction was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was last updated.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "inbound_participant_sid": {
            "description": "The SID of the inbound [Participant](https://www.twilio.com/docs/proxy/api/participant) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KP[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "inbound_resource_sid": {
            "description": "The SID of the inbound resource; either the [Call](https://www.twilio.com/docs/voice/api/call-resource) or [Message](https://www.twilio.com/docs/sms/api/message.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^[a-zA-Z]{2}[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "inbound_resource_status": {
            "$ref": "#/components/schemas/interaction_enum_resource_status",
            "description": "The inbound resource status of the Interaction. Will always be `delivered` for messages and `in-progress` for calls.",
            "nullable": true,
            "type": "string"
          },
          "inbound_resource_type": {
            "description": "The inbound resource type. Can be [Call](https://www.twilio.com/docs/voice/api/call-resource) or [Message](https://www.twilio.com/docs/sms/api/message-resource).",
            "nullable": true,
            "type": "string"
          },
          "inbound_resource_url": {
            "description": "The URL of the Twilio inbound resource",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "outbound_participant_sid": {
            "description": "The SID of the outbound [Participant](https://www.twilio.com/docs/proxy/api/participant)).",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KP[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "outbound_resource_sid": {
            "description": "The SID of the outbound resource; either the [Call](https://www.twilio.com/docs/voice/api/call-resource) or [Message](https://www.twilio.com/docs/sms/api/message-resource).",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^[a-zA-Z]{2}[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "outbound_resource_status": {
            "$ref": "#/components/schemas/interaction_enum_resource_status",
            "description": "The outbound resource status of the Interaction. Can be: `accepted`, `canceled`, `deleted`, `delivered`, `delivery-unknown`, `failed`, `partially-delivered`, `queued`, `read`, `received`, `receiving`, `scheduled`, `sending`, `sent`, `undelivered`, or `unknown` for messages.  Can be `initiated` or `completed` or `unknown` for calls.",
            "nullable": true,
            "type": "string"
          },
          "outbound_resource_type": {
            "description": "The outbound resource type. Can be: [Call](https://www.twilio.com/docs/voice/api/call-resource) or [Message](https://www.twilio.com/docs/sms/api/message-resource).",
            "nullable": true,
            "type": "string"
          },
          "outbound_resource_url": {
            "description": "The URL of the Twilio outbound resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "service_sid": {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "session_sid": {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the Interaction resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KI[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/interaction_enum_type",
            "description": "The Type of the Interaction. Can be: `message`, `voice` or `unknown`.",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the Interaction resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "proxy.v1.service.session.participant": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Participant resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "date_created": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_deleted": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date when the Participant was removed from the session.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was last updated.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "friendly_name": {
            "description": "The string that you assigned to describe the participant. This value must be 255 characters or fewer. Supports UTF-8 characters. **This value should not have PII.**",
            "nullable": true,
            "type": "string"
          },
          "identifier": {
            "description": "The phone number or channel identifier of the Participant. This value must be 191 characters or fewer. Supports UTF-8 characters.",
            "nullable": true,
            "type": "string"
          },
          "links": {
            "description": "The URLs to resources related the participant.",
            "format": "uri-map",
            "nullable": true,
            "type": "object"
          },
          "proxy_identifier": {
            "description": "The phone number or short code (masked number) of the participant's partner. The participant will call or message the partner participant at this number.",
            "nullable": true,
            "type": "string"
          },
          "proxy_identifier_sid": {
            "description": "The SID of the Proxy Identifier assigned to the Participant.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^PN[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "service_sid": {
            "description": "The SID of the resource's parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "session_sid": {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the Participant resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KP[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the Participant resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "proxy.v1.service.session.participant.message_interaction": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the MessageInteraction resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "data": {
            "description": "A JSON string that includes the message body sent to the participant. (e.g. `{\"body\": \"hello\"}`)",
            "nullable": true,
            "type": "string"
          },
          "date_created": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was last updated.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "inbound_participant_sid": {
            "description": "Always empty for created Message Interactions.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KP[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "inbound_resource_sid": {
            "description": "Always empty for created Message Interactions.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^[a-zA-Z]{2}[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "inbound_resource_status": {
            "$ref": "#/components/schemas/message_interaction_enum_resource_status",
            "description": "Always empty for created Message Interactions.",
            "nullable": true,
            "type": "string"
          },
          "inbound_resource_type": {
            "description": "Always empty for created Message Interactions.",
            "nullable": true,
            "type": "string"
          },
          "inbound_resource_url": {
            "description": "Always empty for created Message Interactions.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "outbound_participant_sid": {
            "description": "The SID of the outbound [Participant](https://www.twilio.com/docs/proxy/api/participant) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KP[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "outbound_resource_sid": {
            "description": "The SID of the outbound [Message](https://www.twilio.com/docs/sms/api/message-resource) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^[a-zA-Z]{2}[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "outbound_resource_status": {
            "$ref": "#/components/schemas/message_interaction_enum_resource_status",
            "description": "The outbound message resource status. Can be: `accepted`, `deleted`, `delivered`, `delivery-unknown`, `failed`, `queued`, `received`, `receiving`, `scheduled`, `sending`, `sent`, `undelivered`, or `unknown`.",
            "nullable": true,
            "type": "string"
          },
          "outbound_resource_type": {
            "description": "The outbound resource type. This value is always `Message`.",
            "nullable": true,
            "type": "string"
          },
          "outbound_resource_url": {
            "description": "The URL of the Twilio message resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "participant_sid": {
            "description": "The SID of the [Participant](https://www.twilio.com/docs/proxy/api/participant) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KP[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "service_sid": {
            "description": "The SID of the parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "session_sid": {
            "description": "The SID of the parent [Session](https://www.twilio.com/docs/proxy/api/session) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the MessageInteraction resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KI[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/message_interaction_enum_type",
            "description": "The Type of Message Interaction. This value is always `message`.",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the MessageInteraction resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "proxy.v1.service.short_code": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the ShortCode resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "capabilities": {
            "description": "The capabilities of the short code.",
            "format": "phone-number-capabilities",
            "nullable": true,
            "properties": {
              "fax": {
                "type": "boolean"
              },
              "mms": {
                "type": "boolean"
              },
              "sms": {
                "type": "boolean"
              },
              "voice": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "date_created": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time in GMT when the resource was last updated.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "is_reserved": {
            "description": "Whether the short code should be reserved and not be assigned to a participant using proxy pool logic. See [Reserved Phone Numbers](https://www.twilio.com/docs/proxy/reserved-phone-numbers) for more information.",
            "nullable": true,
            "type": "boolean"
          },
          "iso_country": {
            "description": "The ISO Country Code for the short code.",
            "nullable": true,
            "type": "string"
          },
          "service_sid": {
            "description": "The SID of the ShortCode resource's parent [Service](https://www.twilio.com/docs/proxy/api/service) resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^KS[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "short_code": {
            "description": "The short code's number.",
            "nullable": true,
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the ShortCode resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^SC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the ShortCode resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "service_enum_geo_match_level": {
        "enum": [
          "area-code",
          "overlay",
          "radius",
          "country"
        ],
        "type": "string"
      },
      "service_enum_number_selection_behavior": {
        "enum": [
          "avoid-sticky",
          "prefer-sticky"
        ],
        "type": "string"
      },
      "session_enum_mode": {
        "enum": [
          "message-only",
          "voice-only",
          "voice-and-message"
        ],
        "type": "string"
      },
      "session_enum_status": {
        "enum": [
          "open",
          "in-progress",
          "closed",
          "failed",
          "unknown"
        ],
        "type": "string"
      }
    },
    "securitySchemes": {
      "accountSid_authToken": {
        "scheme": "basic",
        "type": "http"
      }
    }
  },
  "x-maturity": [
    {
      "description": "PLEASE NOTE that this is a Beta product that is subject to change. Use it with caution.",
      "name": "Beta"
    }
  ]
}