Twilio Trait Group API

Trait Groups are the organized containers used to group related facts about a profile, such as contact details or account preferences. Trait schemas within each Trait Group must be defined before customer information is ingested into profiles. Out-of-the-box trait groups like "Contacts" are available by default to help store identity information consistently across channels. Custom groups can also be created to store industry-specific information or satisfy unique business needs.

Operations 5

GET /v1/ControlPlane/Stores/{storeId}/TraitGroups List Trait Groups #
POST /v1/ControlPlane/Stores/{storeId}/TraitGroups Create a Trait Group #
GET /v1/ControlPlane/Stores/{storeId}/TraitGroups/{traitGroupName} Retrieve a Trait Group #
PATCH /v1/ControlPlane/Stores/{storeId}/TraitGroups/{traitGroupName} Update Trait Group #
DELETE /v1/ControlPlane/Stores/{storeId}/TraitGroups/{traitGroupName} Delete a Trait Group #

Documentation

📖
Documentation
https://www.twilio.com/docs/iam/api/account
📖
Documentation
https://www.twilio.com/en-us/blog/insights/ai/what-is-intelligent-virtual-assistant
📖
Documentation
https://www.twilio.com/docs
📖
Documentation
https://www.twilio.com/docs/conversations
📖
Documentation
https://www.twilio.com/docs/marketplace
📖
Documentation
https://www.twilio.com/en-us/messaging
📖
Documentation
https://www.twilio.com/en-us/user-authentication-identity/verify
📖
Documentation
https://www.twilio.com/docs/video
📖
Documentation
https://www.twilio.com/en-us/voice
📖
Documentation
https://www.twilio.com/docs/lookup
📖
Documentation
https://www.twilio.com/docs/flex
📖
Documentation
https://www.twilio.com/docs/sendgrid
📖
Documentation
https://www.twilio.com/docs/iam/scim/api-reference
📖
Documentation
https://www.twilio.com/docs/iam/oauth-apps/account-oauth-apps
📖
Documentation
https://www.twilio.com/docs/iam/oauth-apps/oauth-access-token
📖
Documentation
https://www.twilio.com/docs/iam/oauth-apps/overview
📖
Documentation
https://www.twilio.com/docs/conversations/memory/api-quickstart
📖
Documentation
https://www.twilio.com/docs/conversations/knowledge
📖
Documentation
https://www.twilio.com/docs/conversational-intelligence
📖
Documentation
https://www.twilio.com/docs/voice
📖
Documentation
https://www.twilio.com/docs/voice/voice-insights
📖
Documentation
https://www.twilio.com/docs/global-infrastructure
📖
Documentation
https://www.twilio.com/docs/messaging
📖
Documentation
https://www.twilio.com/docs/phone-numbers
📖
Documentation
https://www.twilio.com/docs/content
📖
Documentation
https://www.twilio.com/docs/chat

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/twilio:twilio-traitgroup-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

twilio-traitgroup-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Twilio Memory Trait Group API
  description: APIs for managing memory stores, profiles, and conversational intelligence capabilities.
  version: '1.0'
  termsOfService: https://www.twilio.com/legal/tos
  contact:
    name: Twilio Support
    url: https://support.twilio.com
    email: support@twilio.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-twilio:
    apiStandards: v1.0
servers:
- url: https://memory.twilio.com
security:
- accountSid_authToken: []
tags:
- name: TraitGroup
  description: 'Trait Groups are the organized containers used to group related facts about a profile, such as contact details or account preferences. Trait schemas within each Trait Group must be defined before customer information is ingested into profiles.


    Out-of-the-box trait groups like "Contacts" are available by default to help store identity information consistently across channels. Custom groups can also be created to store industry-specific information or satisfy unique business needs.'
paths:
  /v1/ControlPlane/Stores/{storeId}/TraitGroups:
    servers:
    - url: https://memory.twilio.com
    parameters:
    - $ref: '#/components/parameters/StoreId'
    x-twilio:
      defaultOutputProperties:
      - traitGroups
      pathType: list
    get:
      operationId: ListTraitGroups
      summary: List Trait Groups
      description: Returns a list of Trait Groups for this Memory Store, with optional traits information.
      tags:
      - TraitGroup
      parameters:
      - name: includeTraits
        in: query
        description: Whether to include trait definitions in the response
        required: false
        schema:
          type: boolean
          default: false
      - $ref: '#/components/parameters/ControlPlanePageSize'
      - $ref: '#/components/parameters/PageToken'
      - $ref: '#/components/parameters/OrderBy'
      responses:
        '200':
          description: List of TraitGroups retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  traitGroups:
                    type: array
                    maxItems: 50
                    items:
                      $ref: '#/components/schemas/TraitGroup'
                  meta:
                    $ref: '#/components/schemas/Meta'
              example:
                traitGroups:
                - displayName: Contact
                  description: Traits related to contact information.
                  traits:
                    email:
                      dataType: STRING
                      description: User's email address
                    dob:
                      dataType: STRING
                      description: User's date of birth
                  version: 1
                meta:
                  key: traitGroups
                  pageSize: 1
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    post:
      operationId: CreateTraitGroup
      summary: Create a Trait Group
      description: Creates a Trait Group with declarative trait schemas for this Memory Store.
      tags:
      - TraitGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TraitGroupRequest'
            examples:
              Basic Traits:
                value:
                  displayName: Contact
                  description: Traits related to contact information.
                  traits:
                    email:
                      dataType: STRING
                      description: User's email address
                    dob:
                      dataType: STRING
                      description: User's date of birth
              All Trait Types:
                value:
                  displayName: mixedTraits
                  description: Demonstrates string, number, boolean, and array traits.
                  traits:
                    email:
                      dataType: STRING
                      description: User's email address
                      validationRule:
                        ruleType: STRING
                        pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
                        minLength: 5
                        maxLength: 254
                    age:
                      dataType: NUMBER
                      description: User's age in years
                      validationRule:
                        ruleType: NUMBER
                        min: 0
                        max: 150
                    isSubscribed:
                      dataType: BOOLEAN
                      description: Whether user is subscribed to newsletter
                      validationRule:
                        ruleType: BOOLEAN
                    favoriteColors:
                      dataType: ARRAY
                      description: List of user's favorite colors
                      validationRule:
                        ruleType: ARRAY
                        minItems: 1
                        maxItems: 10
              With Validation Rules:
                value:
                  displayName: validatedTraits
                  description: Demonstrates traits that include validation metadata.
                  traits:
                    email:
                      dataType: STRING
                      description: User's email address
                      validationRule:
                        ruleType: STRING
                        pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
                        minLength: 5
                        maxLength: 254
                    age:
                      dataType: NUMBER
                      description: User's age in years
                      validationRule:
                        ruleType: NUMBER
                        min: 0
                        max: 150
                    isSubscribed:
                      dataType: BOOLEAN
                      description: Whether user is subscribed to newsletter
                      validationRule:
                        ruleType: BOOLEAN
                    favoriteColors:
                      dataType: ARRAY
                      description: List of user's favorite colors
                      validationRule:
                        ruleType: ARRAY
                        minItems: 1
                        maxItems: 10
      responses:
        '202':
          description: TraitGroup creation request accepted.
          headers:
            Operation-Id:
              $ref: '#/components/headers/OperationId'
            Location:
              $ref: '#/components/headers/OperationLocation'
            Retry-After:
              $ref: '#/components/headers/OperationRetryAfter'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  message:
                    type: string
                    maxLength: 512
                    example: TraitGroup creation request accepted.
                  statusUrl:
                    type: string
                    description: URI to check operation status.
                    maxLength: 512
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /v1/ControlPlane/Stores/{storeId}/TraitGroups/{traitGroupName}:
    servers:
    - url: https://memory.twilio.com
    parameters:
    - $ref: '#/components/parameters/StoreId'
    - $ref: '#/components/parameters/traitGroupName'
    x-twilio:
      defaultOutputProperties:
      - traitGroup
      - meta
      pathType: instance
    get:
      operationId: FetchTraitGroup
      summary: Retrieve a Trait Group
      description: Retrieve a specific Trait Group by its unique name for this Memory Store, with optional traits information.
      tags:
      - TraitGroup
      parameters:
      - name: includeTraits
        in: query
        description: Whether to include trait definitions in the response
        required: false
        schema:
          type: boolean
          default: true
      - $ref: '#/components/parameters/ControlPlanePageSize'
      - $ref: '#/components/parameters/PageToken'
      - $ref: '#/components/parameters/OrderBy'
      responses:
        '200':
          description: TraitGroup retrieved successfully
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          content:
            application/json:
              schema:
                type: object
                properties:
                  traitGroup:
                    $ref: '#/components/schemas/TraitGroup'
                  meta:
                    $ref: '#/components/schemas/Meta'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    patch:
      operationId: PatchTraitGroup
      parameters:
      - $ref: '#/components/parameters/IfMatchHeader'
      summary: Update Trait Group
      description: 'Partially updates a Trait Group. Only the fields provided in the request body will be updated. For traits:

        existing traits with matching keys will be updated, new keys will be added. To remove a trait, set its dataType to

        an empty string ("") - this serves as an explicit deletion marker.'
      tags:
      - TraitGroup
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              minProperties: 1
              properties:
                description:
                  type: string
                  maxLength: 1024
                  description: Updated description of the Trait Group
                  example: Updated Trait Group contains traits related to contact information.
                traits:
                  type: object
                  description: 'Map of traits to add, update, or remove in this Trait Group, where the key is the trait name. - To update/add a trait: provide the complete TraitDefinition object - To remove a trait: set dataType to an empty string ("")'
                  additionalProperties:
                    $ref: '#/components/schemas/TraitDefinition'
                  maxProperties: 95
            examples:
              Update Traits:
                value:
                  description: Update loyalty-related traits.
                  traits:
                    phone:
                      dataType: STRING
                      description: User's phone number
                    loyaltyPoints:
                      dataType: NUMBER
                      description: User's accumulated loyalty points
              Add and Delete Traits:
                value:
                  description: Demonstrates adding and removing traits in one request.
                  traits:
                    addThisTrait:
                      dataType: STRING
                      description: Example of trait definition being added
                    removeThisTrait:
                      dataType: ''
              With Validation Rules:
                value:
                  description: Updates traits while enforcing validation rules.
                  traits:
                    phone:
                      dataType: STRING
                      description: User's phone number
                      validationRule:
                        ruleType: STRING
                        pattern: ^\+?[1-9]\d{1,16}$
                        minLength: 10
                        maxLength: 17
                    loyaltyPoints:
                      dataType: NUMBER
                      description: User's accumulated loyalty points
                      validationRule:
                        ruleType: NUMBER
                        min: 0
                        max: 1000000
                    tags:
                      dataType: ARRAY
                      description: User tags for segmentation
                      validationRule:
                        ruleType: ARRAY
                        minItems: 0
                        maxItems: 20
      responses:
        '202':
          description: TraitGroup update request accepted for processing.
          headers:
            Operation-Id:
              $ref: '#/components/headers/OperationId'
            Location:
              $ref: '#/components/headers/OperationLocation'
            Retry-After:
              $ref: '#/components/headers/OperationRetryAfter'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  message:
                    type: string
                    maxLength: 512
                    example: TraitGroup update request accepted.
                  statusUrl:
                    type: string
                    description: URI to check operation status.
                    maxLength: 512
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      operationId: DeleteTraitGroup
      summary: Delete a Trait Group
      description: Deletes the Trait Group and all associated Traits from the Memory Store.
      tags:
      - TraitGroup
      responses:
        '202':
          description: TraitGroup deletion request accepted.
          headers:
            Operation-Id:
              $ref: '#/components/headers/OperationId'
            Location:
              $ref: '#/components/headers/OperationLocation'
            Retry-After:
              $ref: '#/components/headers/OperationRetryAfter'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  message:
                    type: string
                    maxLength: 512
                    example: TraitGroup deletion request accepted.
                  statusUrl:
                    type: string
                    description: URI to check operation status.
                    maxLength: 512
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  schemas:
    TraitDefinition:
      type: object
      additionalProperties: false
      description: A Trait is a single attribute or characteristic of a profile, such as age, location, or preferences.
      properties:
        dataType:
          type: string
          description: 'Data type of the Trait, such as STRING, NUMBER, BOOLEAN, ARRAY.

            For DELETE operations in PATCH requests, set this to an empty string ("") to mark the trait for deletion.'
          example: STRING
          enum:
          - STRING
          - NUMBER
          - BOOLEAN
          - ARRAY
          - ''
        description:
          type: string
          maxLength: 1024
          description: Description of the Trait, providing additional context or information.
          example: The user's primary email address
        validationRule:
          $ref: '#/components/schemas/ValidationRule'
        idTypePromotion:
          type: string
          maxLength: 30
          description: 'The name of the identifier type to promote the trait value to, such as ''''email'''', ''''phone'''', ''''user_id'''',

            etc. This allows the trait to be mapped to an identifier in Identity Resolution. The identifier type should be

            configured in the Identity Resolution Settings.'
          example: email
      required:
      - dataType
    TwilioError:
      type: object
      additionalProperties: false
      maxProperties: 10
      description: A generic error object communicating client and server side API errors.
      properties:
        code:
          type: integer
          minimum: 100
          maximum: 999999
          description: The Twilio error code.
          format: int32
        message:
          type: string
          maxLength: 1024
          description: A human readable message describing the error.
        more_info:
          type: string
          description: A URL to a [Twilio error directory](https://www.twilio.com/docs/api/errors) page with more information about the error code.
        status:
          type: integer
          minimum: 100
          maximum: 599
          description: The HTTP status code for the error.
          format: int32
      example:
        code: 21614
        message: The address specified in the request is not a valid phone number.
        more_info: https://www.twilio.com/docs/api/errors/21614
        status: 400
    TraitGroup:
      type: object
      properties:
        displayName:
          type: string
          description: Provides a unique and addressable name to be assigned to this Trait Group
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_\-\.]+$
          example: Contact
        description:
          type: string
          maxLength: 1024
          description: description of the Trait Group
          example: This Trait Group contains traits related to contact information.
        traits:
          type: object
          description: Map of traits that are part of this Trait Group, where the key is the trait name and the value is the trait's definition.
          additionalProperties:
            type: object
            title: TraitGroupCoreTraits
            additionalProperties: false
            description: A Trait is a single attribute or characteristic of a profile, such as age, location, or preferences.
            properties:
              dataType:
                type: string
                description: 'Data type of the Trait, such as STRING, NUMBER, BOOLEAN, ARRAY.

                  For DELETE operations in PATCH requests, set this to an empty string ("") to mark the trait for deletion.'
                example: STRING
                enum:
                - STRING
                - NUMBER
                - BOOLEAN
                - ARRAY
                - ''
              description:
                type: string
                maxLength: 1024
                description: Description of the Trait, providing additional context or information.
                example: The user's primary email address
              validationRule:
                $ref: '#/components/schemas/ValidationRule'
              idTypePromotion:
                type: string
                maxLength: 30
                description: 'The name of the identifier type to promote the trait value to, such as ''''email'''', ''''phone'''', ''''user_id'''',

                  etc. This allows the trait to be mapped to an identifier in Identity Resolution. The identifier type should be

                  configured in the Identity Resolution Settings.'
                example: email
            required:
            - dataType
          maxProperties: 95
          example:
            email:
              dataType: STRING
              description: User's email address
            dob:
              dataType: STRING
              description: User's date of birth
        version:
          type: integer
          minimum: 1
          description: The current version number of the Trait Group. Incremented on each successful update.
          example: 3
      required:
      - version
      - displayName
    TraitGroupRequest:
      type: object
      additionalProperties: false
      description: Payload schema for creating Trait Groups.
      properties:
        displayName:
          type: string
          description: Unique name of the Trait Group
          minLength: 1
          maxLength: 64
          pattern: ^[a-zA-Z0-9_\-\.]+$
          example: Contact
        description:
          type: string
          maxLength: 1024
          description: description of the Trait Group
          example: This Trait Group contains traits related to contact information.
        traits:
          type: object
          description: Map of traits belonging to this Trait Group, keyed by trait name.
          additionalProperties:
            type: object
            additionalProperties: false
            description: A Trait is a single attribute or characteristic of a profile, such as age, location, or preferences.
            title: TraitGroupRequestTraits
            properties:
              dataType:
                type: string
                description: 'Data type of the Trait, such as STRING, NUMBER, BOOLEAN, ARRAY.

                  For DELETE operations in PATCH requests, set this to an empty string ("") to mark the trait for deletion.'
                example: STRING
                enum:
                - STRING
                - NUMBER
                - BOOLEAN
                - ARRAY
                - ''
              description:
                type: string
                maxLength: 1024
                description: Description of the Trait, providing additional context or information.
                example: The user's primary email address
              validationRule:
                $ref: '#/components/schemas/ValidationRule'
              idTypePromotion:
                type: string
                maxLength: 30
                description: 'The name of the identifier type to promote the trait value to, such as ''''email'''', ''''phone'''', ''''user_id'''',

                  etc. This allows the trait to be mapped to an identifier in Identity Resolution. The identifier type should be

                  configured in the Identity Resolution Settings.'
                example: email
            required:
            - dataType
          maxProperties: 95
          example:
            email:
              dataType: STRING
              description: User's email address
            dob:
              dataType: STRING
              description: User's date of birth
      required:
      - displayName
    ValidationRule:
      oneOf:
      - $ref: '#/components/schemas/StringValidationRule'
      - $ref: '#/components/schemas/NumberValidationRule'
      - $ref: '#/components/schemas/BooleanValidationRule'
      - $ref: '#/components/schemas/ArrayValidationRule'
      discriminator:
        propertyName: ruleType
        mapping:
          STRING: '#/components/schemas/StringValidationRule'
          NUMBER: '#/components/schemas/NumberValidationRule'
          BOOLEAN: '#/components/schemas/BooleanValidationRule'
          ARRAY: '#/components/schemas/ArrayValidationRule'
    Meta:
      type: object
      additionalProperties: false
      properties:
        key:
          type: string
          maxLength: 64
          description: 'The key of the list property contains the actual data items.

            This enables programmatic iteration over paginated results.

            '
        pageSize:
          type: integer
          description: The number of items returned in this page of results.
        nextToken:
          type: string
          maxLength: 4096
          example: eyJlYXN0ZXIiOiJlZ2cifQ
        previousToken:
          type: string
          maxLength: 4096
          example: eyJlYXN0ZXIiOiJlZ2cifQ
    StringValidationRule:
      type: object
      description: Validation for string dataType.
      properties:
        pattern:
          type: string
          description: Regex pattern (max 1000 chars)
          maxLength: 1000
        minLength:
          type: integer
          description: Minimum string length
          minimum: 0
        maxLength:
          type: integer
          description: Maximum string length
          minimum: 1
        ruleType:
          type: string
          description: Discriminator field indicating this is a string validation rule.
          enum:
          - STRING
      additionalProperties: false
      required:
      - ruleType
    ArrayValidationRule:
      type: object
      description: Validation for array dataType.
      properties:
        minItems:
          type: integer
          description: Minimum number of items
          minimum: 0
        maxItems:
          type: integer
          description: Maximum number of items
          minimum: 0
        ruleType:
          type: string
          description: Discriminator field indicating this is an array validation rule.
          enum:
          - ARRAY
      additionalProperties: false
      required:
      - ruleType
    BooleanValidationRule:
      type: object
      description: Validation for boolean dataType (no extra properties)
      additionalProperties: false
      properties:
        ruleType:
          type: string
          description: Discriminator field indicating this is a boolean validation rule.
          enum:
          - BOOLEAN
      required:
      - ruleType
    NumberValidationRule:
      type: object
      description: Validation for number dataType.
      properties:
        min:
          type: number
          description: Minimum value
        max:
          type: number
          description: Maximum value
        ruleType:
          type: string
          description: Discriminator field indicating this is a number validation rule.
          enum:
          - NUMBER
      additionalProperties: false
      required:
      - ruleType
  headers:
    OperationId:
      description: The operation identifier.
      schema:
        type: string
        maxLength: 512
    OperationLocation:
      description: URI to check operation status.
      schema:
        type: string
        maxLength: 512
    OperationRetryAfter:
      description: Suggested number of seconds to wait before checking status again.
      schema:
        type: integer
    ETag:
      description: 'Entity tag that acts as a unique identifier for a specific version of the resource.

        Send updates with If-Match conditional headers for optimistic concurrency control.'
      schema:
        type: string
        maxLength: 512
      example: eyJpZCI6ImFuX2lkIiwidiI6MX0
  responses:
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TwilioError'
          example:
            code: 20500
            message: Internal Server Error
            more_info: https://www.twilio.com/docs/api/errors/20500
            status: 500
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TwilioError'
          example:
            code: 20404
            message: Not Found
            more_info: https://www.twilio.com/docs/api/errors/20404
            status: 404
    ServiceUnavailable:
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TwilioError'
          example:
            code: 20503
            message: Service Unavailable
            more_info: https://www.twilio.com/docs/api/errors/20503
            status: 503
    TooManyRequests:
      description: This error indicates that you have sent too many requests to the API. You should retry according to the `Retry-After` response header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TwilioError'
          example:
            code: 20429
            message: Too many requests. Please retry according to the Retry-After response header.
            more_info: https://www.twilio.com/docs/api/errors/20429
            status: 429
      headers:
        Retry-After:
          description: The amount of time in seconds that the customer should wait before issuing a new request towards the API.
          schema:
            type: string
            pattern: ^[0-9]+$
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TwilioError'
          example:
            code: 400
            message: Failed to complete request due to a bad request
            more_info: https://www.twilio.com/docs/api/errors/400
            status: 400
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TwilioError'
          example:
            code: 20409
            message: Conflict
            more_info: https://www.twilio.com/docs/api/errors/20409
            status: 409
  parameters:
    StoreId:
      name: storeId
      in: path
      required: true
      description: A unique Memory Store ID using Twilio Type ID (TTID) format
      schema:
        type: string
        pattern: ^mem_(store|service)_[0-7][0-9a-z]{25}$
        example: mem_store_00000000000000000000000000
    IfMatchHeader:
      in: header
      name: If-Match
      description: 'Allows for optimistic concurrency control by making the request conditional.

        Server will only act if the resource''s current Entity Tag (ETag) matches

        the one provided, preventing accidental overwrites.'
      schema:
        type: string
        maxLength: 100
        example: '"eyJpZCI6ImFuX2lkIiwidiI6MX0"'
    PageToken:
      name: pageToken
      in: query
      required: false
      description: The token for the page of results to retrieve.
      schema:
        type: string
        maxLength: 4096
    traitGroupName:
      name: traitGroupName
      in: path
      required: true
      description: A unique Name of the TraitGroup
      schema:
        type: string
        minLength: 1
        maxLength: 64
        example: Contact
    OrderBy:
      name: orderBy
      in: query
      required: false
      description: Either 'ASC' or 'DESC' to sort results ascending or descending respectively.
      schema:
        type: string
        enum:
        - ASC
        - DESC
        default: DESC
    ControlPlanePageSize:
      name: pageSize
      in: query
      required: false
      description: The maximum number of items to return per page, maximum of 100.
      schema:
        type: integer
        default: 50
        minimum: 1
        maximum: 100
  securitySchemes:
    basic_apikey_or_accountsid:
      scheme: basic
      type: http
      description: This API uses [basic authentication](https://www.twilio.com/docs/glossary/what-is-basic-authentication). Use an [API key](https://www.twilio.com/docs/iam/api-keys) as the username and the API key secret as the password. You can also use your account SID and auth token, but limit their use to local testing.
    accountSid_authToken:
      scheme: basic
      type: http