{
  "openapi": "3.1.0",
  "info": {
    "title": "CurrentClient Public API",
    "description": "The supported public surface of the CurrentClient API. Endpoints not listed here are internal and may change without notice.",
    "version": "9f349e2"
  },
  "paths": {
    "/api/v1/contacts/": {
      "get": {
        "tags": [
          "contacts"
        ],
        "summary": "Read Contacts",
        "description": "Get contact records",
        "operationId": "read_contacts_api_v1_contacts__get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "description": "Pagination page size",
            "schema": {
              "title": "Pagination Limit",
              "description": "Pagination page size",
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 200,
                  "minimum": 10
                },
                {
                  "type": "null"
                }
              ],
              "default": 100
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "description": "Pagination cursor provided by previous paginated response",
            "schema": {
              "title": "Pagination Cursor",
              "description": "Pagination cursor provided by previous paginated response",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "useSegment",
            "description": "Restrict results to a saved segment, given the segment ID (list segments with GET /segments/). Can be combined with useFilter; the filters are then applied within the segment.",
            "schema": {
              "title": "Use Segment",
              "description": "Restrict results to a saved segment, given the segment ID (list segments with GET /segments/). Can be combined with useFilter; the filters are then applied within the segment.",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "versions",
            "description": "Return all versions of all contacts",
            "schema": {
              "title": "All versions",
              "description": "Return all versions of all contacts",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "useFilter",
            "description": "Filter results with a Field:Operator:Value string, e.g. `FirstName:beginswith:Jo` or `Tags:contains:abc123`. Repeat the parameter to add more filters (`useFilter=A:eq:1&useFilter=B:gt:2`); all filters must match (AND). Field is a contact field name (e.g. FirstName, LastName, Email, City, State, Tags) or a custom field. Operator is one of: eq, ne, like, notlike, contains, notcontains, containsany, beginswith, isin, between, gt, gte, lt, lte, exists, notexists. When useFilter is used on its own, LastName honors only beginswith (a name prefix) and between (a letter range such as `LastName:between:A-M`); other LastName operators are ignored. Value may contain letters, digits, whitespace and . , _ @ / # & + -. Pattern: ([A-Za-z0-9:]+):(eq|ne|like|notlike|contains|containsany|beginswith|isin|between|notcontains|gt|gte|lt|lte|exists|notexists):([\\w\\d\\s.,_@/#&+-]*)",
            "schema": {
              "title": "Use Filter",
              "description": "Filter results with a Field:Operator:Value string, e.g. `FirstName:beginswith:Jo` or `Tags:contains:abc123`. Repeat the parameter to add more filters (`useFilter=A:eq:1&useFilter=B:gt:2`); all filters must match (AND). Field is a contact field name (e.g. FirstName, LastName, Email, City, State, Tags) or a custom field. Operator is one of: eq, ne, like, notlike, contains, notcontains, containsany, beginswith, isin, between, gt, gte, lt, lte, exists, notexists. When useFilter is used on its own, LastName honors only beginswith (a name prefix) and between (a letter range such as `LastName:between:A-M`); other LastName operators are ignored. Value may contain letters, digits, whitespace and . , _ @ / # & + -. Pattern: ([A-Za-z0-9:]+):(eq|ne|like|notlike|contains|containsany|beginswith|isin|between|notcontains|gt|gte|lt|lte|exists|notexists):([\\w\\d\\s.,_@/#&+-]*)",
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "pattern": "([A-Za-z0-9:]+):(eq|ne|like|notlike|contains|containsany|beginswith|isin|between|notcontains|gt|gte|lt|lte|exists|notexists):([\\w\\d\\s.,_@/#&+-]*)"
                  }
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "q",
            "description": "Free-text search: case-insensitive contains match on first name, last name, phone and email. Combines with useFilter, useSegment and cursor. Blank values are ignored.",
            "schema": {
              "title": "Search",
              "description": "Free-text search: case-insensitive contains match on first name, last name, phone and email. Combines with useFilter, useSegment and cursor. Blank values are ignored.",
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 200
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsPaginated"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "contacts"
        ],
        "summary": "Create Contacts",
        "description": "Create contact record",
        "operationId": "create_contacts_api_v1_contacts__post",
        "parameters": [
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "sync",
            "schema": {
              "title": "Sync from CRM",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isVerifyNumbers",
            "schema": {
              "title": "Verify numbers",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "title": "Contacts In",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactCreate"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Create Contacts Api V1 Contacts  Post",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Contact"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "servers": [
        {
          "url": "https://contacts.api.currentclient.com",
          "description": "Production"
        },
        {
          "url": "https://contacts.api.currentclient.io",
          "description": "Development"
        }
      ]
    },
    "/api/v1/contacts/phones/{phone}/": {
      "get": {
        "tags": [
          "contacts"
        ],
        "summary": "Read Contacts By Phone",
        "description": "Get all the contacts records that have a phone",
        "operationId": "read_contacts_by_phone_api_v1_contacts_phones__phone___get",
        "parameters": [
          {
            "in": "path",
            "name": "phone",
            "required": true,
            "schema": {
              "title": "Phone",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "limit",
            "description": "Pagination page size",
            "schema": {
              "title": "Pagination Limit",
              "description": "Pagination page size",
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 1000,
                  "minimum": 1
                },
                {
                  "type": "null"
                }
              ],
              "default": 1000
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "versions",
            "description": "Return contacts versions as well",
            "schema": {
              "title": "Find versions",
              "description": "Return contacts versions as well",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Read Contacts By Phone Api V1 Contacts Phones  Phone   Get",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Contact"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "servers": [
        {
          "url": "https://contacts.api.currentclient.com",
          "description": "Production"
        },
        {
          "url": "https://contacts.api.currentclient.io",
          "description": "Development"
        }
      ]
    },
    "/api/v1/contacts/{id}": {
      "get": {
        "tags": [
          "contacts"
        ],
        "summary": "Read Contact",
        "description": "Get contact record",
        "operationId": "read_contact_api_v1_contacts__id__get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "versions",
            "description": "Include all the versions for the contact",
            "schema": {
              "title": "Versions",
              "description": "Include all the versions for the contact",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "teamMemberUserId",
            "description": "Admin Only: Team Member User Id for the owner of the resource",
            "schema": {
              "title": "Team Member User Id",
              "description": "Admin Only: Team Member User Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contact"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "put": {
        "tags": [
          "contacts"
        ],
        "summary": "Update Contact",
        "description": "Update contact record",
        "operationId": "update_contact_api_v1_contacts__id__put",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "inPlace",
            "description": "Update the record in place, dont version it",
            "schema": {
              "title": "In Place Update",
              "description": "Update the record in place, dont version it",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "connectSync",
            "description": "Update the record in place with the sync info, dont version it",
            "schema": {
              "title": "Connect sync id",
              "description": "Update the record in place with the sync info, dont version it",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isAddTag",
            "description": "Add the tags, dont replace",
            "schema": {
              "title": "Add tag",
              "description": "Add the tags, dont replace",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactUpdate"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "servers": [
        {
          "url": "https://contacts.api.currentclient.com",
          "description": "Production"
        },
        {
          "url": "https://contacts.api.currentclient.io",
          "description": "Development"
        }
      ]
    },
    "/api/v1/contacts/{contactId}/notes/": {
      "get": {
        "tags": [
          "contacts"
        ],
        "summary": "Read Contact Notes",
        "description": "Get contacts note records",
        "operationId": "read_contact_notes_api_v1_contacts__contactId__notes__get",
        "parameters": [
          {
            "in": "path",
            "name": "contactId",
            "required": true,
            "schema": {
              "title": "Contactid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "limit",
            "description": "Pagination page size",
            "schema": {
              "title": "Pagination Limit",
              "description": "Pagination page size",
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 200,
                  "minimum": 10
                },
                {
                  "type": "null"
                }
              ],
              "default": 100
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "description": "Pagination cursor provided by previous paginated response",
            "schema": {
              "title": "Pagination Cursor",
              "description": "Pagination cursor provided by previous paginated response",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotesPaginated"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "contacts"
        ],
        "summary": "Create Note",
        "description": "Create note record",
        "operationId": "create_note_api_v1_contacts__contactId__notes__post",
        "parameters": [
          {
            "in": "path",
            "name": "contactId",
            "required": true,
            "schema": {
              "title": "Contactid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NoteCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Note"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "servers": [
        {
          "url": "https://contacts.api.currentclient.com",
          "description": "Production"
        },
        {
          "url": "https://contacts.api.currentclient.io",
          "description": "Development"
        }
      ]
    },
    "/api/v1/contacts/{contactId}/notes/{noteId}": {
      "put": {
        "tags": [
          "contacts"
        ],
        "summary": "Update Note",
        "description": "Update note record",
        "operationId": "update_note_api_v1_contacts__contactId__notes__noteId__put",
        "parameters": [
          {
            "in": "path",
            "name": "contactId",
            "required": true,
            "schema": {
              "title": "Contactid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "path",
            "name": "noteId",
            "required": true,
            "schema": {
              "title": "Noteid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NoteUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoteUpdate"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "delete": {
        "tags": [
          "contacts"
        ],
        "summary": "Delete Note",
        "description": "Delete note record",
        "operationId": "delete_note_api_v1_contacts__contactId__notes__noteId__delete",
        "parameters": [
          {
            "in": "path",
            "name": "contactId",
            "required": true,
            "schema": {
              "title": "Contactid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "path",
            "name": "noteId",
            "required": true,
            "schema": {
              "title": "Noteid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Note"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "servers": [
        {
          "url": "https://contacts.api.currentclient.com",
          "description": "Production"
        },
        {
          "url": "https://contacts.api.currentclient.io",
          "description": "Development"
        }
      ]
    },
    "/api/v1/tags/": {
      "get": {
        "tags": [
          "tags"
        ],
        "summary": "Read Tags",
        "description": "Get tag records",
        "operationId": "read_tags_api_v1_tags__get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "description": "Pagination page size",
            "schema": {
              "title": "Pagination Limit",
              "description": "Pagination page size",
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 1000,
                  "minimum": 10
                },
                {
                  "type": "null"
                }
              ],
              "default": 100
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "description": "Pagination cursor provided by previous paginated response",
            "schema": {
              "title": "Pagination Cursor",
              "description": "Pagination cursor provided by previous paginated response",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagsPaginated"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "servers": [
        {
          "url": "https://contacts.api.currentclient.com",
          "description": "Production"
        },
        {
          "url": "https://contacts.api.currentclient.io",
          "description": "Development"
        }
      ]
    },
    "/api/v1/messages/receipts/archiver/xyarchive": {
      "put": {
        "tags": [
          "messages"
        ],
        "summary": "Batch Update Message Xyarchive Archiver Ids",
        "description": "Batch tag messages with XYARCHIVE archiver receipts.\n\nAccepts admin tokens (userId query param required) or workspace-scoped\ntokens issued to the XYArchive OAuth client (workspace from token).",
        "operationId": "batch_update_message_xyarchive_archiver_ids_api_v1_messages_receipts_archiver_xyarchive_put",
        "parameters": [
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageArchiverReceiptIds"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageArchiverReceiptIds"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid",
                  "message": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed",
                  "message": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/inboxes/": {
      "get": {
        "tags": [
          "inboxes"
        ],
        "summary": "List Inboxes",
        "description": "Get list of inboxes",
        "operationId": "list_inboxes_api_v1_inboxes__get",
        "parameters": [
          {
            "in": "query",
            "name": "cursor",
            "description": "Pagination cursor provided by previous paginated response",
            "schema": {
              "title": "Pagination Cursor",
              "description": "Pagination cursor provided by previous paginated response",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "showHidden",
            "description": "Show hidden inboxes",
            "schema": {
              "title": "Show Hidden",
              "description": "Show hidden inboxes",
              "type": "boolean",
              "default": false
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "showMuted",
            "description": "Show muted inboxes",
            "schema": {
              "title": "Show Muted",
              "description": "Show muted inboxes",
              "type": "boolean",
              "default": true
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "showWorkspace",
            "description": "Show inboxes for the entire workspace",
            "schema": {
              "title": "Show Workspace",
              "description": "Show inboxes for the entire workspace",
              "type": "boolean",
              "default": false
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the resource",
            "schema": {
              "title": "User Id",
              "description": "Admin Only: Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "teamMemberUserId",
            "description": "Admin Only: Team Member User Id for the owner of the resource",
            "schema": {
              "title": "Team Member User Id",
              "description": "Admin Only: Team Member User Id for the owner of the resource",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "workspaceId",
            "description": "Workspace Id to get data for",
            "schema": {
              "title": "Workspace Id",
              "description": "Workspace Id to get data for",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxPagination"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/inboxes/{number}": {
      "get": {
        "tags": [
          "inboxes"
        ],
        "summary": "Get an inbox",
        "description": "Returns one inbox by phone number. Requires a bearer token (Authorization: Bearer <token>).",
        "operationId": "getInbox",
        "parameters": [
          {
            "in": "path",
            "name": "number",
            "required": true,
            "schema": {
              "title": "Number",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Inbox"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/scheduled-messages/": {
      "get": {
        "tags": [
          "scheduled messages"
        ],
        "summary": "List Scheduled Messages",
        "description": "Get scheduled messages records",
        "operationId": "list_scheduled_messages_api_v1_scheduled_messages__get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "description": "Pagination page size",
            "schema": {
              "title": "Pagination Limit",
              "description": "Pagination page size",
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 100,
                  "minimum": 10
                },
                {
                  "type": "null"
                }
              ],
              "default": 100
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "description": "Pagination cursor provided by previous paginated response",
            "schema": {
              "title": "Pagination Cursor",
              "description": "Pagination cursor provided by previous paginated response",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "search",
            "description": "Filter to records containing value",
            "schema": {
              "title": "Search",
              "description": "Filter to records containing value",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isShowScheduledOnly",
            "description": "Filter records that are still scheduled",
            "schema": {
              "title": "Is Show Schedule Only",
              "description": "Filter records that are still scheduled",
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledMessagesPaginated"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "scheduled messages"
        ],
        "summary": "Create Scheduled Message",
        "description": "Create scheduled message record\n\nIf you provide contacts, a conversation id will be generated for that group of contacts",
        "operationId": "create_scheduled_message_api_v1_scheduled_messages__post",
        "parameters": [
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduledMessageCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledMessage"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/scheduled-messages/{id}": {
      "get": {
        "tags": [
          "scheduled messages"
        ],
        "summary": "Read Scheduled Message",
        "description": "Get scheduled message record",
        "operationId": "read_scheduled_message_api_v1_scheduled_messages__id__get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledMessage"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "delete": {
        "tags": [
          "scheduled messages"
        ],
        "summary": "Delete Scheduled Message",
        "description": "Delete scheduled_message record",
        "operationId": "delete_scheduled_message_api_v1_scheduled_messages__id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledMessage"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/profile": {
      "get": {
        "tags": [
          "profiles"
        ],
        "summary": "Read Userprofile",
        "description": "Get user profile record",
        "operationId": "read_userprofile_api_v1_profile_get",
        "parameters": [
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfile"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/webhooks/": {
      "get": {
        "tags": [
          "webhooks"
        ],
        "summary": "Read Webhook Endpoints",
        "description": "List this account's webhook endpoints.",
        "operationId": "read_webhook_endpoints_api_v1_webhooks__get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "description": "Pagination page size",
            "schema": {
              "title": "Pagination Limit",
              "description": "Pagination page size",
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 100,
                  "minimum": 10
                },
                {
                  "type": "null"
                }
              ],
              "default": 100
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "description": "Pagination cursor provided by previous paginated response",
            "schema": {
              "title": "Pagination Cursor",
              "description": "Pagination cursor provided by previous paginated response",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointsPaginated"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "webhooks"
        ],
        "summary": "Create Webhook Endpoint",
        "description": "Create a webhook endpoint.\n\nReturns the freshly generated signing secret exactly once -- it is\nnever returned by any subsequent read; call POST /{id}/rotate-secret\nto get a new one if it's lost.",
        "operationId": "create_webhook_endpoint_api_v1_webhooks__post",
        "parameters": [
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointWithSecret"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/webhooks/{id}": {
      "get": {
        "tags": [
          "webhooks"
        ],
        "summary": "Read Webhook Endpoint",
        "description": "Get a single webhook endpoint. Never returns the signing secret --\nthat's only ever returned once, by POST / or POST /{id}/rotate-secret.",
        "operationId": "read_webhook_endpoint_api_v1_webhooks__id__get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "put": {
        "tags": [
          "webhooks"
        ],
        "summary": "Update Webhook Endpoint",
        "description": "Update a webhook endpoint's URL, name, and/or enabled state.\n\nNever accepts a signing secret -- call POST /{id}/rotate-secret to get\na new one.",
        "operationId": "update_webhook_endpoint_api_v1_webhooks__id__put",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "delete": {
        "tags": [
          "webhooks"
        ],
        "summary": "Delete Webhook Endpoint",
        "description": "Delete a webhook endpoint and all of its event subscriptions.",
        "operationId": "delete_webhook_endpoint_api_v1_webhooks__id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/webhooks/{id}/rotate-secret": {
      "post": {
        "tags": [
          "webhooks"
        ],
        "summary": "Rotate Webhook Endpoint Secret",
        "description": "Rotate this webhook endpoint's signing secret.\n\nReturns the new secret exactly once -- save it now. The prior secret\nstops verifying immediately, including for every existing event\nsubscription.",
        "operationId": "rotate_webhook_endpoint_secret_api_v1_webhooks__id__rotate_secret_post",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointWithSecret"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/webhooks/{id}/events": {
      "get": {
        "tags": [
          "webhooks"
        ],
        "summary": "Read Webhook Endpoint Events",
        "description": "List this webhook endpoint's current event subscriptions.",
        "operationId": "read_webhook_endpoint_events_api_v1_webhooks__id__events_get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Read Webhook Endpoint Events Api V1 Webhooks  Id  Events Get",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookEventSubscription"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      },
      "put": {
        "tags": [
          "webhooks"
        ],
        "summary": "Update Webhook Endpoint Events",
        "description": "Replace this webhook endpoint's event subscriptions with exactly the\nset in EventNames: events newly listed are subscribed, events already\nsubscribed but disabled are re-enabled, and subscribed events left off\nthe list are removed.\n\nOnly the events this API can subscribe to are managed. A webhook\nendpoint may also carry subscriptions for other events, created\nelsewhere in the app; those are reported by GET /{id}/events but are\nnever removed by this call, whether or not you list them. Listing one\nis rejected with a 400, so echo back only the events this endpoint\naccepts.",
        "operationId": "update_webhook_endpoint_events_api_v1_webhooks__id__events_put",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "title": "Id",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "userId",
            "description": "Admin Only: Id for the owner of the user",
            "schema": {
              "title": "User Owner Id",
              "description": "Admin Only: Id for the owner of the user",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEventSubscriptionsUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Update Webhook Endpoint Events Api V1 Webhooks  Id  Events Put",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookEventSubscription"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid user request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the request is invalid"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "example": {
                  "detail": "A message for why the server failed"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/calls": {
      "get": {
        "summary": "List calls",
        "description": "Returns calls visible to the authenticated caller, most recent first.",
        "operationId": "listCalls",
        "parameters": [
          {
            "in": "query",
            "name": "contactNumber",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "direction",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Direction"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "dispositionId",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isAgentCall",
            "schema": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isContact",
            "schema": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isVoicemail",
            "schema": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "format": "uint16",
              "default": 100,
              "maximum": 65535,
              "minimum": 0
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/UnixTimestamp"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "transferTargetMemberId",
            "description": "PRO-7266: \"For you\" tab \u2014 voicemails a live-agent transfer left for\n this member, wherever the mainline conversation they landed under.",
            "schema": {
              "description": "PRO-7266: \"For you\" tab \u2014 voicemails a live-agent transfer left for\n this member, wherever the mainline conversation they landed under.",
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/UnixTimestamp"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userNumber",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Paginated_for_Call"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/calls/{call_id}": {
      "get": {
        "summary": "Get a call",
        "description": "Returns one call by id, if the caller can access it.",
        "operationId": "getCall",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/conversations": {
      "get": {
        "summary": "List conversations",
        "description": "Returns conversations visible to the authenticated caller, most recent first.",
        "operationId": "listConversations",
        "parameters": [
          {
            "in": "query",
            "name": "assignedTo",
            "description": "PRO-6906: `?assignedTo=<memberId>` filter.",
            "schema": {
              "description": "PRO-6906: `?assignedTo=<memberId>` filter.",
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "folderId",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isSnoozed",
            "schema": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "isUnread",
            "schema": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "format": "uint16",
              "default": 100,
              "maximum": 65535,
              "minimum": 0
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Status"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userNumber",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Paginated_for_Conversation"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/conversations/{conversation_id}": {
      "get": {
        "summary": "Get a conversation",
        "description": "Returns one conversation by id, if the caller can access it.",
        "operationId": "getConversation",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Conversation"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/conversations/{conversation_id}/messages": {
      "get": {
        "summary": "List a conversation's messages",
        "description": "Returns the messages in one conversation, most recent first, if the caller can access it.",
        "operationId": "listConversationMessages",
        "parameters": [
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "format": "uint16",
              "default": 100,
              "maximum": 65535,
              "minimum": 0
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Paginated_for_Message"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/messages": {
      "get": {
        "summary": "List messages",
        "description": "Returns messages visible to the authenticated caller, most recent first.",
        "operationId": "listMessages",
        "parameters": [
          {
            "in": "query",
            "name": "contactNumber",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "includeGroups",
            "schema": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "format": "uint16",
              "default": 100,
              "maximum": 65535,
              "minimum": 0
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "order",
            "description": "PRO-4251: `asc` for oldest-first, `desc` (default) for newest-first.",
            "schema": {
              "description": "PRO-4251: `asc` for oldest-first, `desc` (default) for newest-first.",
              "anyOf": [
                {
                  "$ref": "#/components/schemas/MessageOrder"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/UnixTimestamp"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/UnixTimestamp"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "userNumber",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Paginated_for_Message"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/messages/send": {
      "post": {
        "summary": "Send a message",
        "description": "Sends an outbound message from one of the caller's inboxes.",
        "operationId": "sendMessage",
        "parameters": [
          {
            "in": "query",
            "name": "setStatus",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Status"
                },
                {
                  "type": "null"
                }
              ]
            },
            "style": "form"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/team-members": {
      "get": {
        "summary": "List team members",
        "description": "Returns the team members visible to the authenticated caller's workspace.",
        "operationId": "listTeamMembers",
        "parameters": [
          {
            "in": "query",
            "name": "isActive",
            "schema": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Paginated_for_TeamMemberExtra"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    },
    "/api/v1/team-members/{id}": {
      "get": {
        "summary": "Get a team member",
        "operationId": "getTeamMember",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "JWTBearer": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "JWTBearer": {
        "type": "http",
        "scheme": "bearer"
      },
      "CcAdminJWTBearer": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "Contact": {
        "title": "Contact",
        "description": "Contact\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "Address1": {
            "title": "Address1",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Address2": {
            "title": "Address2",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AvatarUrl": {
            "title": "Avatarurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BirthDate": {
            "title": "Birthdate",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "City": {
            "title": "City",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contactid",
            "type": "string"
          },
          "CreatedAt": {
            "title": "Createdat",
            "type": "string"
          },
          "CustomFields": {
            "title": "Customfields",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Email": {
            "title": "Email",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerName": {
            "title": "Enrichcallername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerType": {
            "title": "Enrichcallertype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichLookupAt": {
            "title": "Enrichlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichMeta": {
            "title": "Enrichmeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "FirstName": {
            "title": "Firstname",
            "type": "string"
          },
          "HouseholdId": {
            "title": "Householdid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdName": {
            "title": "Householdname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdTitle": {
            "title": "Householdtitle",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsArchived": {
            "title": "Isarchived",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "LastContactedTime": {
            "title": "Lastcontactedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastName": {
            "title": "Lastname",
            "type": "string"
          },
          "LastSubmittedTime": {
            "title": "Lastsubmittedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastSyncTime": {
            "title": "Lastsynctime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "MiddleName": {
            "title": "Middlename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Nickname": {
            "title": "Nickname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierName": {
            "title": "Numbercarriername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NumberCarrierTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberLookupAt": {
            "title": "Numberlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberMeta": {
            "title": "Numbermeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "Numbers": {
            "title": "Numbers",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactNumber"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerId": {
            "title": "Ownerid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceId": {
            "title": "Ownersourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceName": {
            "title": "Ownersourcename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "type": "string"
          },
          "SourceId": {
            "title": "Sourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceMeta": {
            "title": "Sourcemeta",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceSyncFlow": {
            "title": "Sourcesyncflow",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceType": {
            "title": "Sourcetype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "State": {
            "title": "State",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Tags": {
            "title": "Tags",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UpdatedAt": {
            "title": "Updatedat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UploadId": {
            "title": "Uploadid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          },
          "Version": {
            "title": "Version",
            "type": "integer"
          },
          "Versions": {
            "title": "Versions",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactVersion"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "Zip": {
            "title": "Zip",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "Phone",
          "FirstName",
          "LastName",
          "UserId",
          "Version",
          "ContactId",
          "CreatedAt"
        ]
      },
      "ContactCreate": {
        "title": "ContactCreate",
        "description": "Create\n\nProperties to receive on contact creation",
        "type": "object",
        "properties": {
          "Address1": {
            "title": "Address1",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Address2": {
            "title": "Address2",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AvatarUrl": {
            "title": "Avatarurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BirthDate": {
            "title": "Birthdate",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "City": {
            "title": "City",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CustomFields": {
            "title": "Customfields",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Email": {
            "title": "Email",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerName": {
            "title": "Enrichcallername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerType": {
            "title": "Enrichcallertype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichLookupAt": {
            "title": "Enrichlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichMeta": {
            "title": "Enrichmeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "FirstName": {
            "title": "Firstname",
            "type": "string"
          },
          "HouseholdId": {
            "title": "Householdid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdName": {
            "title": "Householdname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdTitle": {
            "title": "Householdtitle",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsArchived": {
            "title": "Isarchived",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "LastContactedTime": {
            "title": "Lastcontactedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastName": {
            "title": "Lastname",
            "type": "string"
          },
          "LastSubmittedTime": {
            "title": "Lastsubmittedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastSyncTime": {
            "title": "Lastsynctime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "MiddleName": {
            "title": "Middlename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Nickname": {
            "title": "Nickname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierName": {
            "title": "Numbercarriername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NumberCarrierTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberLookupAt": {
            "title": "Numberlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberMeta": {
            "title": "Numbermeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "Numbers": {
            "title": "Numbers",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactNumber"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerId": {
            "title": "Ownerid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceId": {
            "title": "Ownersourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceName": {
            "title": "Ownersourcename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "type": "string"
          },
          "SourceId": {
            "title": "Sourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceMeta": {
            "title": "Sourcemeta",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceSyncFlow": {
            "title": "Sourcesyncflow",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceType": {
            "title": "Sourcetype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "State": {
            "title": "State",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Tags": {
            "title": "Tags",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UploadId": {
            "title": "Uploadid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "Zip": {
            "title": "Zip",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "Phone",
          "FirstName",
          "LastName"
        ]
      },
      "ContactNumber": {
        "title": "ContactNumber",
        "description": "ContactNumber\n\nNumbers on the contact record",
        "type": "object",
        "properties": {
          "IsDoNotContact": {
            "title": "Isdonotcontact",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsPreferred": {
            "title": "Ispreferred",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "Label": {
            "title": "Label",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Meta": {
            "title": "Meta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "type": "string"
          }
        }
      },
      "ContactUpdate": {
        "title": "ContactUpdate",
        "description": "Update\n\nProperties to receive on contact update",
        "type": "object",
        "properties": {
          "Address1": {
            "title": "Address1",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Address2": {
            "title": "Address2",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AvatarUrl": {
            "title": "Avatarurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BirthDate": {
            "title": "Birthdate",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "City": {
            "title": "City",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CustomFields": {
            "title": "Customfields",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Email": {
            "title": "Email",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerName": {
            "title": "Enrichcallername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerType": {
            "title": "Enrichcallertype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichLookupAt": {
            "title": "Enrichlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichMeta": {
            "title": "Enrichmeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "FirstName": {
            "title": "Firstname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdId": {
            "title": "Householdid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdName": {
            "title": "Householdname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdTitle": {
            "title": "Householdtitle",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsArchived": {
            "title": "Isarchived",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "LastContactedTime": {
            "title": "Lastcontactedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastName": {
            "title": "Lastname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastSubmittedTime": {
            "title": "Lastsubmittedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastSyncTime": {
            "title": "Lastsynctime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "MiddleName": {
            "title": "Middlename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Nickname": {
            "title": "Nickname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierName": {
            "title": "Numbercarriername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NumberCarrierTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberLookupAt": {
            "title": "Numberlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberMeta": {
            "title": "Numbermeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "Numbers": {
            "title": "Numbers",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactNumber"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerId": {
            "title": "Ownerid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceId": {
            "title": "Ownersourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceName": {
            "title": "Ownersourcename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceId": {
            "title": "Sourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceMeta": {
            "title": "Sourcemeta",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceSyncFlow": {
            "title": "Sourcesyncflow",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceType": {
            "title": "Sourcetype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "State": {
            "title": "State",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Tags": {
            "title": "Tags",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UploadId": {
            "title": "Uploadid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "Zip": {
            "title": "Zip",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "ContactVersion": {
        "title": "ContactVersion",
        "description": "Version\n\nProperties to share for a Versioned contact",
        "type": "object",
        "properties": {
          "Address1": {
            "title": "Address1",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Address2": {
            "title": "Address2",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AvatarUrl": {
            "title": "Avatarurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BirthDate": {
            "title": "Birthdate",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "City": {
            "title": "City",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedAt": {
            "title": "Createdat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CustomFields": {
            "title": "Customfields",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Email": {
            "title": "Email",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerName": {
            "title": "Enrichcallername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichCallerType": {
            "title": "Enrichcallertype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichLookupAt": {
            "title": "Enrichlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "EnrichMeta": {
            "title": "Enrichmeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "FirstName": {
            "title": "Firstname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdId": {
            "title": "Householdid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdName": {
            "title": "Householdname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HouseholdTitle": {
            "title": "Householdtitle",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsArchived": {
            "title": "Isarchived",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "LastContactedTime": {
            "title": "Lastcontactedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastName": {
            "title": "Lastname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastSubmittedTime": {
            "title": "Lastsubmittedtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastSyncTime": {
            "title": "Lastsynctime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "MiddleName": {
            "title": "Middlename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Nickname": {
            "title": "Nickname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierName": {
            "title": "Numbercarriername",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberCarrierType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NumberCarrierTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberLookupAt": {
            "title": "Numberlookupat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberMeta": {
            "title": "Numbermeta",
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ]
          },
          "Numbers": {
            "title": "Numbers",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ContactNumber"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerId": {
            "title": "Ownerid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceId": {
            "title": "Ownersourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OwnerSourceName": {
            "title": "Ownersourcename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceId": {
            "title": "Sourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceMeta": {
            "title": "Sourcemeta",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceSyncFlow": {
            "title": "Sourcesyncflow",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceType": {
            "title": "Sourcetype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "State": {
            "title": "State",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Tags": {
            "title": "Tags",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UpdatedAt": {
            "title": "Updatedat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UploadId": {
            "title": "Uploadid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "Version": {
            "title": "Version",
            "type": "integer"
          },
          "Zip": {
            "title": "Zip",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "Version"
        ]
      },
      "ContactsPaginated": {
        "title": "ContactsPaginated",
        "description": "Pagination\n\nReturns pages of records and meta data about pagination",
        "type": "object",
        "properties": {
          "meta": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ResponseMetaBase"
              },
              {
                "type": "null"
              }
            ]
          },
          "records": {
            "title": "Records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      },
      "HTTPValidationError": {
        "title": "HTTPValidationError",
        "type": "object",
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      },
      "Note": {
        "title": "Note",
        "description": "Note\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "ContactId": {
            "title": "Contactid",
            "type": "string"
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "Message": {
            "title": "Message",
            "type": "string"
          },
          "NoteId": {
            "title": "Noteid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          }
        },
        "required": [
          "Message",
          "UserId",
          "ContactId",
          "NoteId",
          "CreatedTime"
        ]
      },
      "NoteCreate": {
        "title": "NoteCreate",
        "description": "Create\n\nProperties to receive on note creation",
        "type": "object",
        "properties": {
          "Message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "Message"
        ]
      },
      "NoteUpdate": {
        "title": "NoteUpdate",
        "description": "Update\n\nProperties to receive on note update",
        "type": "object",
        "properties": {
          "Message": {
            "title": "Message",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "NotesPaginated": {
        "title": "NotesPaginated",
        "description": "Pagination\n\nReturns pages of records and meta data about pagination",
        "type": "object",
        "properties": {
          "meta": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ResponseMetaBase"
              },
              {
                "type": "null"
              }
            ]
          },
          "records": {
            "title": "Records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      },
      "NumberCarrierTypeEnum": {
        "title": "NumberCarrierTypeEnum",
        "description": "Twilio carrier types\nhttps://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name",
        "type": "string",
        "enum": [
          "mobile",
          "landline",
          "voip",
          "invalid",
          "error"
        ]
      },
      "ResponseMetaBase": {
        "title": "ResponseMetaBase",
        "description": "Base\n\nResponse meta values, hold the cursor, total count and whatever else",
        "type": "object",
        "properties": {
          "calls": {
            "title": "Calls",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "cursor": {
            "title": "Cursor",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "limit": {
            "title": "Limit",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "stats": {
            "title": "Stats",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "title": "Total",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "Tag": {
        "title": "Tag",
        "description": "Tag\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "Color": {
            "title": "Color",
            "anyOf": [
              {
                "type": "string",
                "pattern": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedAt": {
            "title": "Createdat",
            "type": "string"
          },
          "Description": {
            "title": "Description",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsMutable": {
            "title": "Ismutable",
            "type": "boolean"
          },
          "IsPinned": {
            "title": "Ispinned",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastSyncTime": {
            "title": "Lastsynctime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceId": {
            "title": "Sourceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceType": {
            "title": "Sourcetype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TagId": {
            "title": "Tagid",
            "type": "string"
          },
          "Title": {
            "title": "Title",
            "type": "string"
          },
          "UpdatedAt": {
            "title": "Updatedat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          }
        },
        "required": [
          "Title",
          "Description",
          "UserId",
          "TagId",
          "CreatedAt",
          "IsMutable"
        ]
      },
      "TagsPaginated": {
        "title": "TagsPaginated",
        "description": "Pagination\n\nReturns pages of records and meta data about pagination",
        "type": "object",
        "properties": {
          "meta": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ResponseMetaBase"
              },
              {
                "type": "null"
              }
            ]
          },
          "records": {
            "title": "Records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      },
      "ValidationError": {
        "title": "ValidationError",
        "type": "object",
        "properties": {
          "type": {
            "title": "Error Type",
            "type": "string"
          },
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "title": "Location",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            }
          },
          "msg": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ]
      },
      "Call": {
        "title": "Call",
        "description": "Call\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "AgentInteractions": {
            "title": "AgentInteractions",
            "description": "List of AI agent interactions on this call. Each entry contains agentId, conversationId, dialplanId, nextNodeId, and firmName.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "AnsweredBy": {
            "title": "AnsweredBy",
            "description": "Twilio AMD result for outbound calls: 'human', 'machine_start', 'machine_end_silence', 'machine_end_beep', 'machine_end_other', 'fax', or 'unknown'. None when AMD was not run.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AnsweredByMemberId": {
            "title": "Answeredbymemberid",
            "description": "The id of the member that answered a call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ArchiverIds": {
            "title": "Archiverids",
            "description": "Dictionary to store archiver ids - key is ArchiverId, value is ArchiverType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisStatus": {
            "title": "CallAnalysisStatus",
            "description": "Status of the ai summary",
            "anyOf": [
              {
                "$ref": "#/components/schemas/CallAnalysisStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisSummary": {
            "title": "CallAnalysisSummary",
            "description": "Analysis generated for the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisSummaryPending": {
            "title": "CallAnalysisSummaryPending",
            "description": "Ai summary held for review; copied to CallAnalysisSummary on approval so no other reader sees unreviewed text",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisTranscript": {
            "title": "CallAnalysisTranscript",
            "description": "Transcript generated for the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallDurationTime": {
            "title": "CallDurationTime",
            "description": "Time in seconds of the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallEndedTime": {
            "title": "Callendedtime",
            "description": "The time the call ended",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallId": {
            "title": "Callid",
            "type": "string"
          },
          "CallSid": {
            "title": "CallSid",
            "description": "Specific call sid for the call, useful for twilio api",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallSummaryReviewStatus": {
            "title": "CallSummaryReviewStatus",
            "description": "Set only when the workspace requires review: pending until a human approves",
            "anyOf": [
              {
                "$ref": "#/components/schemas/CallSummaryReviewStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallSummaryReviewedAt": {
            "title": "CallSummaryReviewedAt",
            "description": "ISO timestamp the ai summary was approved",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallSummaryReviewedBy": {
            "title": "CallSummaryReviewedBy",
            "description": "User id that approved the ai summary",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallerMemberId": {
            "title": "Caller Member Id",
            "description": "Member id for the caller",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "CallerName": {
            "title": "Caller Name",
            "description": "Name of the caller for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Jen Framer"
          },
          "Comments": {
            "title": "Comments",
            "description": "Comments about the call",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CallComment"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contact Id",
            "description": "Id of the contact for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "ContactMemberId": {
            "title": "Contact Member Id",
            "description": "The called team member on a direct team-member call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactName": {
            "title": "Contact Name",
            "description": "Name of the contact for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Ray Dalio"
          },
          "ContactNumber": {
            "title": "Contact Number",
            "description": "Phone number in E.164 format",
            "type": "string",
            "example": "+18008675309"
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CrmIds": {
            "title": "Crmids",
            "description": "Dictionary to store CRM ids - key is CrmId, value is CrmType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Direction": {
            "$ref": "#/components/schemas/CallDirectionEnum"
          },
          "DispositionId": {
            "title": "DispositionId",
            "description": "Workspace disposition assigned to this call (PRO-4164). Null until set; filterable via the calls list endpoint.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsAgentCall": {
            "title": "IsAgentCall",
            "description": "Whether an AI agent handled this call",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsForwarded": {
            "title": "IsForwarded",
            "description": "If the call is forwarded",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsMissedCall": {
            "title": "Ismissedcall",
            "description": "Explicitly set to True when the call is confirmed missed by the application layer (is_done=True). Prevents premature missed-call notifications from intermediate DynamoDB stream events during parallel dial.",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsOutsideHours": {
            "title": "IsOutsideHours",
            "description": "If the call is outside business hours",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsRecorded": {
            "title": "IsRecorded",
            "description": "If the call is recorded",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsSipAnswered": {
            "title": "IsSipAnswered",
            "description": "PRO-7119: set once the <Sip> leg of a VoiceProvider=sip inbound call actually answers, via the sip-answered statusCallback. Positive answer evidence for is_inbound_unattended, the same role IsAgentCall plays for the ElevenLabs agent dial -- a SIP-answered call stamps none of the other answer signals (AnsweredByMemberId is written only from a per-leg <Client> statusCallback, and the cc-sip CDR keys on cc-sip's own call_id, not the Twilio CallSid, so it never reaches this record).",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsTeamCall": {
            "title": "Is Team Call",
            "description": "True for a direct call between two workspace team members",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsVoicemail": {
            "title": "IsVoicemail",
            "description": "True when this call was routed to voicemail",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "Meta": {
            "title": "Meta",
            "description": "Key values of meta data for this call, will be published as attributes to topic on callbacks",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Note": {
            "title": "Note",
            "description": "Note about the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NotetakerIds": {
            "title": "Notetakerids",
            "description": "Dictionary to store notetaker ids",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberForwardedTo": {
            "title": "NumberForwardedTo",
            "description": "If the call is forwarded, this is the number it went to",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Participants": {
            "title": "Participants",
            "description": "List of participants currently in the call",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallParticipant"
            }
          },
          "RecordingDurationTime": {
            "title": "RecordingDurationTime",
            "description": "Time in seconds of the call recording",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "RecordingSid": {
            "title": "RecordingSid",
            "description": "Specific recording sid for the call, useful for twilio api",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "RecordingStatus": {
            "title": "RecordingStatus",
            "description": "Status of the recording",
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordingStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "RecordingUrl": {
            "title": "RecordingUrl",
            "description": "Url to the call recording",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Status": {
            "$ref": "#/components/schemas/CallStatusEnum"
          },
          "StatusCallSid": {
            "title": "Statuscallsid",
            "description": "The Twilio CallSid that produced the current StatusSequence.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "StatusSequence": {
            "title": "Statussequence",
            "description": "Highest Twilio SequenceNumber processed for status updates. Stored as a DynamoDB N type for correct numeric comparison.",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "StatusWeight": {
            "title": "Statusweight",
            "description": "Numeric weight of the current Status, used to prevent cross-CallSid status regressions.",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "Tags": {
            "title": "Tags",
            "description": "Tags for the message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "TranscriptionStatus": {
            "title": "TranscriptionStatus",
            "description": "Status of the transcription",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TranscriptionText": {
            "title": "TranscriptionText",
            "description": "Text of the voicemail",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredAtTime": {
            "title": "Transferredattime",
            "description": "Epoch timestamp when the call was transferred",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredByMemberId": {
            "title": "Transferredbymemberid",
            "description": "The id of the member that transferred the call away. On the unattended transfer_to_inbox path the transferred record is de-keyed off GSI4 and a NEW destination leg reuses the call id, so the destination's AnsweredByMemberId is the RECIPIENT, not the transferrer. read_call backfills this from the source record's AnsweredByMemberId (PRO-7260). The attended path (CRUDCall.transfer) stamps in place and keeps GSI4, so there AnsweredByMemberId is already the transferrer and this stays unset.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredToMemberId": {
            "title": "Transferredtomemberid",
            "description": "The id of the member that the call was transferred to",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredToNumber": {
            "title": "Transferredtonumber",
            "description": "The phone number that the call was transferred to",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UpdatedTime": {
            "title": "Updatedtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "User Id",
            "description": "Id of the app user",
            "type": "string",
            "example": "1234-abcd-4567-ABCD"
          },
          "UserNumber": {
            "title": "Number for the app user",
            "description": "Number with a leading +1, or `member:<id>` on a direct team-member call (PRO-8680)",
            "type": "string",
            "example": "+18008675309",
            "pattern": "^(\\+[1-9]\\d{1,14}|member:.+)$"
          }
        },
        "required": [
          "CallId"
        ]
      },
      "CallAnalysisStatusEnum": {
        "title": "CallAnalysisStatusEnum",
        "description": "CallAnalysisStatusEnum\n\nAi summary status of the call",
        "type": "string",
        "enum": [
          "queued",
          "processing",
          "completed",
          "error"
        ]
      },
      "CallComment": {
        "title": "CallComment",
        "description": "CallComment",
        "type": "object",
        "properties": {
          "CallCommentId": {
            "title": "Callcommentid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "Comment": {
            "title": "Comment",
            "type": "string"
          },
          "CreatedByUserId": {
            "title": "Createdbyuserid",
            "type": "string"
          },
          "CreatedByUserName": {
            "title": "Createdbyusername",
            "type": "string"
          },
          "CreatedTime": {
            "title": "Createdtime",
            "type": "integer"
          },
          "Mentions": {
            "title": "Mentions",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UpdatedAt": {
            "title": "Updatedat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "Comment",
          "CreatedByUserId",
          "CreatedByUserName",
          "CreatedTime"
        ]
      },
      "CallDirectionEnum": {
        "title": "CallDirectionEnum",
        "description": "CallDirectionEnum\n\nDirection of the call, whether it was outbound or inbound",
        "type": "string",
        "enum": [
          "OUTBOUND",
          "INBOUND"
        ]
      },
      "CallInDB": {
        "title": "CallInDB",
        "description": "InDB\n\nProperties properties stored in DB, this is full representation of\nrecord",
        "type": "object",
        "properties": {
          "AgentInteractions": {
            "title": "AgentInteractions",
            "description": "List of AI agent interactions on this call. Each entry contains agentId, conversationId, dialplanId, nextNodeId, and firmName.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "AnsweredBy": {
            "title": "AnsweredBy",
            "description": "Twilio AMD result for outbound calls: 'human', 'machine_start', 'machine_end_silence', 'machine_end_beep', 'machine_end_other', 'fax', or 'unknown'. None when AMD was not run.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AnsweredByMemberId": {
            "title": "Answeredbymemberid",
            "description": "The id of the member that answered a call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ArchiverIds": {
            "title": "Archiverids",
            "description": "Dictionary to store archiver ids - key is ArchiverId, value is ArchiverType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisStatus": {
            "title": "CallAnalysisStatus",
            "description": "Status of the ai summary",
            "anyOf": [
              {
                "$ref": "#/components/schemas/CallAnalysisStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisSummary": {
            "title": "CallAnalysisSummary",
            "description": "Analysis generated for the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisSummaryPending": {
            "title": "CallAnalysisSummaryPending",
            "description": "Ai summary held for review; copied to CallAnalysisSummary on approval so no other reader sees unreviewed text",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallAnalysisTranscript": {
            "title": "CallAnalysisTranscript",
            "description": "Transcript generated for the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallDurationTime": {
            "title": "CallDurationTime",
            "description": "Time in seconds of the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallEndedTime": {
            "title": "Callendedtime",
            "description": "The time the call ended",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallId": {
            "title": "Callid",
            "type": "string"
          },
          "CallSid": {
            "title": "CallSid",
            "description": "Specific call sid for the call, useful for twilio api",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallSummaryReviewStatus": {
            "title": "CallSummaryReviewStatus",
            "description": "Set only when the workspace requires review: pending until a human approves",
            "anyOf": [
              {
                "$ref": "#/components/schemas/CallSummaryReviewStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallSummaryReviewedAt": {
            "title": "CallSummaryReviewedAt",
            "description": "ISO timestamp the ai summary was approved",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallSummaryReviewedBy": {
            "title": "CallSummaryReviewedBy",
            "description": "User id that approved the ai summary",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallerMemberId": {
            "title": "Caller Member Id",
            "description": "Member id for the caller",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "CallerName": {
            "title": "Caller Name",
            "description": "Name of the caller for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Jen Framer"
          },
          "Comments": {
            "title": "Comments",
            "description": "Comments about the call",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CallComment"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contact Id",
            "description": "Id of the contact for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "ContactMemberId": {
            "title": "Contact Member Id",
            "description": "The called team member on a direct team-member call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactName": {
            "title": "Contact Name",
            "description": "Name of the contact for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Ray Dalio"
          },
          "ContactNumber": {
            "title": "Contact Number",
            "description": "Phone number in E.164 format",
            "type": "string",
            "example": "+18008675309"
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CrmIds": {
            "title": "Crmids",
            "description": "Dictionary to store CRM ids - key is CrmId, value is CrmType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Direction": {
            "$ref": "#/components/schemas/CallDirectionEnum"
          },
          "DispositionId": {
            "title": "DispositionId",
            "description": "Workspace disposition assigned to this call (PRO-4164). Null until set; filterable via the calls list endpoint.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI1PK": {
            "title": "Gsi1Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI1SK": {
            "title": "Gsi1Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI2PK": {
            "title": "Gsi2Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI2SK": {
            "title": "Gsi2Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI3PK": {
            "title": "Gsi3Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI3SK": {
            "title": "Gsi3Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI4PK": {
            "title": "Gsi4Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI4SK": {
            "title": "Gsi4Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsAgentCall": {
            "title": "IsAgentCall",
            "description": "Whether an AI agent handled this call",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsForwarded": {
            "title": "IsForwarded",
            "description": "If the call is forwarded",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsMissedCall": {
            "title": "Ismissedcall",
            "description": "Explicitly set to True when the call is confirmed missed by the application layer (is_done=True). Prevents premature missed-call notifications from intermediate DynamoDB stream events during parallel dial.",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsOutsideHours": {
            "title": "IsOutsideHours",
            "description": "If the call is outside business hours",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsRecorded": {
            "title": "IsRecorded",
            "description": "If the call is recorded",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsSipAnswered": {
            "title": "IsSipAnswered",
            "description": "PRO-7119: set once the <Sip> leg of a VoiceProvider=sip inbound call actually answers, via the sip-answered statusCallback. Positive answer evidence for is_inbound_unattended, the same role IsAgentCall plays for the ElevenLabs agent dial -- a SIP-answered call stamps none of the other answer signals (AnsweredByMemberId is written only from a per-leg <Client> statusCallback, and the cc-sip CDR keys on cc-sip's own call_id, not the Twilio CallSid, so it never reaches this record).",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsTeamCall": {
            "title": "Is Team Call",
            "description": "True for a direct call between two workspace team members",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsVoicemail": {
            "title": "IsVoicemail",
            "description": "True when this call was routed to voicemail",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "Meta": {
            "title": "Meta",
            "description": "Key values of meta data for this call, will be published as attributes to topic on callbacks",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Note": {
            "title": "Note",
            "description": "Note about the call",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NotetakerIds": {
            "title": "Notetakerids",
            "description": "Dictionary to store notetaker ids",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberForwardedTo": {
            "title": "NumberForwardedTo",
            "description": "If the call is forwarded, this is the number it went to",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "PK": {
            "title": "Pk",
            "type": "string"
          },
          "Participants": {
            "title": "Participants",
            "description": "List of participants currently in the call",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallParticipant"
            }
          },
          "ParticipantsVersion": {
            "title": "Participantsversion",
            "description": "Monotonic counter bumped by every write of `Participants` this service makes (stamped centrally in CRUDCall.update_call), and pinned by crud_calls.pin_call_to_what_was_read so a read-modify-write of the whole list is refused when ANOTHER roster writer has rewritten it since the read (PRO-8606). `Status`/`CallEndedTime` alone only catch the call's finaliser: two roster writers read the same values for both, so the slower one used to put back a row the faster one removed. Absent on records last written before PRO-8606, which the pin reads as \"no version yet\". Internal bookkeeping: excluded from the `Call` response model, like `RefusedAddKeys` -- though a `CallInDBBase` response such as `CallSharedResponse` still carries both.",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "RecordingDurationTime": {
            "title": "RecordingDurationTime",
            "description": "Time in seconds of the call recording",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "RecordingSid": {
            "title": "RecordingSid",
            "description": "Specific recording sid for the call, useful for twilio api",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "RecordingStatus": {
            "title": "RecordingStatus",
            "description": "Status of the recording",
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordingStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "RecordingUrl": {
            "title": "RecordingUrl",
            "description": "Url to the call recording",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "RefusedAddKeys": {
            "title": "Refusedaddkeys",
            "description": "Participant keys (Type|TeamMemberId|Number) whose mid-call add this service staged and then took back because the conference refused it with nothing dialled -- newest last, see crud_calls._refused_add_key. Written beside the removal itself and cleared for a key by every later write this service makes for that identity (a new add staging its row, a cc-sip lifecycle event the roster consumer applies). Read by crud_calls.hide_refused_phantom_rows, which uses it to keep a FINISHED row another service's reconciliation re-materialised out of a reader's copy of the roster (PRO-8264 QA round 20). Internal bookkeeping: excluded from every `Call` response, and cleared off the instance by hide_refused_phantom_rows as it reads it.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "SK": {
            "title": "Sk",
            "type": "string"
          },
          "Searchable": {
            "title": "Searchable",
            "type": "string"
          },
          "SourceCallSK": {
            "title": "Sourcecallsk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Status": {
            "$ref": "#/components/schemas/CallStatusEnum"
          },
          "StatusCallSid": {
            "title": "Statuscallsid",
            "description": "The Twilio CallSid that produced the current StatusSequence.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "StatusSequence": {
            "title": "Statussequence",
            "description": "Highest Twilio SequenceNumber processed for status updates. Stored as a DynamoDB N type for correct numeric comparison.",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "StatusWeight": {
            "title": "Statusweight",
            "description": "Numeric weight of the current Status, used to prevent cross-CallSid status regressions.",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "TYPE": {
            "title": "Type",
            "type": "string"
          },
          "Tags": {
            "title": "Tags",
            "description": "Tags for the message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "TranscriptionStatus": {
            "title": "TranscriptionStatus",
            "description": "Status of the transcription",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TranscriptionText": {
            "title": "TranscriptionText",
            "description": "Text of the voicemail",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredAtTime": {
            "title": "Transferredattime",
            "description": "Epoch timestamp when the call was transferred",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredByMemberId": {
            "title": "Transferredbymemberid",
            "description": "The id of the member that transferred the call away. On the unattended transfer_to_inbox path the transferred record is de-keyed off GSI4 and a NEW destination leg reuses the call id, so the destination's AnsweredByMemberId is the RECIPIENT, not the transferrer. read_call backfills this from the source record's AnsweredByMemberId (PRO-7260). The attended path (CRUDCall.transfer) stamps in place and keeps GSI4, so there AnsweredByMemberId is already the transferrer and this stays unset.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredToMemberId": {
            "title": "Transferredtomemberid",
            "description": "The id of the member that the call was transferred to",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TransferredToNumber": {
            "title": "Transferredtonumber",
            "description": "The phone number that the call was transferred to",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UpdatedTime": {
            "title": "Updatedtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "User Id",
            "description": "Id of the app user",
            "type": "string",
            "example": "1234-abcd-4567-ABCD"
          },
          "UserNumber": {
            "title": "Number for the app user",
            "description": "Number with a leading +1, or `member:<id>` on a direct team-member call (PRO-8680)",
            "type": "string",
            "example": "+18008675309",
            "pattern": "^(\\+[1-9]\\d{1,14}|member:.+)$"
          }
        },
        "required": [
          "CallId",
          "TYPE",
          "PK",
          "SK",
          "Searchable"
        ]
      },
      "CallParticipant": {
        "title": "CallParticipant",
        "description": "CallParticipant\n\nModel rerpesenting a participant to be added to an existing call",
        "type": "object",
        "properties": {
          "CallSid": {
            "title": "Callsid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallStatus": {
            "$ref": "#/components/schemas/CallParticipantStatus",
            "default": "left"
          },
          "ContactId": {
            "title": "Contactid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Name": {
            "title": "Name",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Number": {
            "title": "Number",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TeamMemberId": {
            "title": "Teammemberid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Type": {
            "$ref": "#/components/schemas/CallParticipantType"
          }
        },
        "required": [
          "Type"
        ]
      },
      "CallParticipantStatus": {
        "title": "CallParticipantStatus",
        "description": "CallParticipantStatus\n\nEnum for the various call states of a call participant",
        "type": "string",
        "enum": [
          "connecting",
          "active",
          "left",
          "no-answer",
          "held"
        ]
      },
      "CallParticipantType": {
        "title": "CallParticipantType",
        "description": "CallParticipantType\n\nEnum for the type of call",
        "type": "string",
        "enum": [
          "contact",
          "team",
          "notetaker"
        ]
      },
      "CallStatusEnum": {
        "title": "CallStatusEnum",
        "description": "CallStatusEnum\n\nStatus of the call",
        "type": "string",
        "enum": [
          "created",
          "initiated",
          "ringing",
          "in-progress",
          "transferred",
          "blocked",
          "completed",
          "failed",
          "busy",
          "no-answer",
          "canceled"
        ]
      },
      "CallSummaryReviewStatusEnum": {
        "title": "CallSummaryReviewStatusEnum",
        "description": "PRO-6946: human review state of the AI call summary",
        "type": "string",
        "enum": [
          "pending",
          "approved"
        ]
      },
      "ChannelTypeEnum": {
        "title": "ChannelTypeEnum",
        "description": "ChannelTypeEnum\n\nType of the communication channel",
        "type": "string",
        "enum": [
          "sms",
          "whatsapp"
        ]
      },
      "Conversation": {
        "title": "Conversation",
        "description": "Conversation\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "AssignedByUserId": {
            "title": "Assigned By User Id",
            "description": "Member ID of the team member who made the assignment",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AssignedTime": {
            "title": "Assigned Time",
            "description": "ISO-8601 timestamp of when the assignment was made",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AssignedToUserId": {
            "title": "Assigned To User Id",
            "description": "Member ID of the team member this conversation is assigned to",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ChannelType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChannelTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contactid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactName": {
            "title": "Contactname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ConversationFolderId": {
            "title": "Conversationfolderid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ConversationId": {
            "title": "Conversationid",
            "type": "string"
          },
          "CreatedTime": {
            "title": "Createdtime",
            "type": "integer"
          },
          "IsCancelSnoozeOnReply": {
            "title": "Iscancelsnoozeonreply",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsRead": {
            "title": "Isread",
            "type": "boolean",
            "default": false
          },
          "IsReadByMe": {
            "title": "Isreadbyme",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsSnoozed": {
            "title": "Issnoozed",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsSnoozedAlert": {
            "title": "Issnoozedalert",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "Label": {
            "title": "Label",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastInboundTime": {
            "title": "Lastinboundtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "LatestCall": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CallInDB"
              },
              {
                "type": "null"
              }
            ]
          },
          "LatestMessage": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MessageInDB"
              },
              {
                "type": "null"
              }
            ]
          },
          "Name": {
            "title": "Name",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NumberReadStates": {
            "title": "Numberreadstates",
            "description": "Per-inbox read state for group conversations. Maps team phone number to has-read boolean.",
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            }
          },
          "Owner": {
            "title": "Owner",
            "description": "Member ID of the first team member to send an outbound message or call in this conversation",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Participants": {
            "title": "Participants",
            "type": "array",
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ConversationParticipant"
            }
          },
          "SnoozedUntilTime": {
            "title": "Snoozeduntiltime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Status": {
            "$ref": "#/components/schemas/ConversationStatusEnum"
          },
          "UpdatedTime": {
            "title": "Updatedtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          },
          "UserNumbers": {
            "title": "User Numbers",
            "description": "List of user numbers associated with this conversation",
            "type": "array",
            "example": [
              "+18008675309",
              "+18005551234"
            ],
            "items": {
              "type": "string"
            }
          },
          "Viewers": {
            "title": "Viewers",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsAppOptIn": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WhatsAppOptInInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "UserId",
          "ConversationId",
          "CreatedTime"
        ]
      },
      "ConversationParticipant": {
        "title": "ConversationParticipant",
        "description": "ConversationParticipant\n\nModel rerpesenting a participant in a conversation",
        "type": "object",
        "properties": {
          "ContactId": {
            "title": "Contactid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Name": {
            "title": "Name",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Number": {
            "title": "Number",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Type": {
            "$ref": "#/components/schemas/ConversationParticipantType"
          }
        },
        "required": [
          "Type"
        ]
      },
      "ConversationParticipantType": {
        "title": "ConversationParticipantType",
        "description": "ConversationParticipantType\n\nEnum for the type of participant",
        "type": "string",
        "enum": [
          "contact",
          "team"
        ]
      },
      "ConversationStatusEnum": {
        "title": "ConversationStatusEnum",
        "description": "ConversationStatusEnum\n\nStatus of the conversation",
        "type": "string",
        "enum": [
          "OPEN",
          "CLOSED"
        ]
      },
      "ForwardingVoicemailModeEnum": {
        "title": "ForwardingVoicemailModeEnum",
        "description": "Forwarding Voicemail Mode Enum\n\nPRO-6628: which voicemail should win the race when a forwarded call goes\nunanswered.\n- DESTINATION (default, `None`/absent behaves identically): the\n  forwarded-to number's own carrier voicemail. `ForwardingTimeout` is\n  floored at `crud.MIN_FORWARD_RING_SEC` so that voicemail has a real\n  chance to answer.\n- CURRENTCLIENT: CurrentClient's own voicemail. `ForwardingTimeout` is\n  passed through unfloored so a short ring lets it win instead.",
        "type": "string",
        "enum": [
          "DESTINATION",
          "CURRENTCLIENT"
        ]
      },
      "InboundTypeEnum": {
        "title": "InboundTypeEnum",
        "description": "Inbound Type Enum\n\nDetermines how incoming calls are handled for this inbox:\n- RING: Ring the team members in the app\n- FORWARD: Forward the call to an external number\n- DIALPLAN: Route through a custom dial plan",
        "type": "string",
        "enum": [
          "RING",
          "FORWARD",
          "DIALPLAN"
        ]
      },
      "Inbox": {
        "title": "Inbox",
        "description": "Collection for inbox",
        "type": "object",
        "properties": {
          "BusinessSchedule": {
            "title": "Businessschedule",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              {
                "type": "null"
              }
            ],
            "default": [
              {
                "end": "1700",
                "start": "0900"
              },
              {
                "end": "1700",
                "start": "0900"
              },
              {
                "end": "1700",
                "start": "0900"
              },
              {
                "end": "1700",
                "start": "0900"
              },
              {
                "end": "1700",
                "start": "0900"
              },
              {
                "end": "",
                "start": ""
              },
              {
                "end": "",
                "start": ""
              }
            ]
          },
          "BusinessTimezone": {
            "title": "Businesstimezone",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallRingDuration": {
            "title": "Callringduration",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "15"
          },
          "CallRingOrderType": {
            "title": "Callringordertype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CallTeamMemberIds": {
            "title": "Callteammemberids",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "CallflowId": {
            "title": "Callflowid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ComplianceMessage": {
            "title": "Compliancemessage",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "You can call or text us at this number. Primarily, you can expect to receive brief news and updates from us. Msg & data rates may apply. Reply STOP to opt-out anytime. Questions? You are welcome to reply."
          },
          "ComplianceVCardId": {
            "title": "Compliancevcardid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "DeletedTime": {
            "title": "Deletedtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "Dialplan": {
            "title": "Dialplan",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ForwardingTimeout": {
            "title": "Forwardingtimeout",
            "type": "integer",
            "default": 300
          },
          "ForwardingVoicemailMode": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ForwardingVoicemailModeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "GreetingAudioUrl": {
            "title": "Greetingaudiourl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HiddenFor": {
            "title": "Hiddenfor",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "Holidays": {
            "title": "Holidays",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InboxHoliday"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "InboundType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InboundTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsComplianceAutoSuppress": {
            "title": "Iscomplianceautosuppress",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsComplianceEnabled": {
            "title": "Iscomplianceenabled",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": true
          },
          "IsDropCallerId": {
            "title": "Isdropcallerid",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoConferenceNotetaker": {
            "title": "Isenableautoconferencenotetaker",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoIncomingMessage": {
            "title": "Isenableautoincomingmessage",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoMissedCall": {
            "title": "Isenableautomissedcall",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoOutOfOfficeIncomingMessage": {
            "title": "Isenableautooutofofficeincomingmessage",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoOutOfOfficeMissedCall": {
            "title": "Isenableautooutofofficemissedcall",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoOutsideHoursIncomingMessage": {
            "title": "Isenableautooutsidehoursincomingmessage",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoOutsideHoursMissedCall": {
            "title": "Isenableautooutsidehoursmissedcall",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableAutoRecordCalls": {
            "title": "Isenableautorecordcalls",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableBusinessHours": {
            "title": "Isenablebusinesshours",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableCallSummary": {
            "title": "Isenablecallsummary",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableCallTranscription": {
            "title": "Isenablecalltranscription",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableFilterProfanity": {
            "title": "Isenablefilterprofanity",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": true
          },
          "IsEnableForwardCall": {
            "title": "Isenableforwardcall",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableGreeting": {
            "title": "Isenablegreeting",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnablePhoneMenu": {
            "title": "Isenablephonemenu",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableRecordGreeting": {
            "title": "Isenablerecordgreeting",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsEnableRecordingAnnouncement": {
            "title": "Isenablerecordingannouncement",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsEnableTranscribeVoicemail": {
            "title": "Isenabletranscribevoicemail",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": true
          },
          "IsFaxCapable": {
            "title": "Isfaxcapable",
            "type": "boolean",
            "default": false
          },
          "IsRequireCallSummaryReview": {
            "title": "Isrequirecallsummaryreview",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsSmsCapable": {
            "title": "Issmscapable",
            "type": "boolean",
            "default": false
          },
          "IsSmsHosting": {
            "title": "Issmshosting",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "MutedFor": {
            "title": "Mutedfor",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "Name": {
            "title": "Name",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NotetakerPhoneNumber": {
            "title": "Notetakerphonenumber",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NotetakerProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NotetakerProviderEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "Number": {
            "title": "Number",
            "type": "string"
          },
          "NumberForwardTo": {
            "title": "Numberforwardto",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OrgA2pId": {
            "title": "Orga2Pid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OrgA2pStatus": {
            "title": "Orga2Pstatus",
            "anyOf": [
              {
                "$ref": "#/components/schemas/InboxOrgA2PStatusEnum"
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OutOfOfficeEndDate": {
            "title": "Outofofficeenddate",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OutOfOfficeEndTime": {
            "title": "Outofofficeendtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OutOfOfficeStartDate": {
            "title": "Outofofficestartdate",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OutOfOfficeStartTime": {
            "title": "Outofofficestarttime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OutOfOfficeVoicemailAudioUrl": {
            "title": "Outofofficevoicemailaudiourl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OutsideHoursVoicemailAudioUrl": {
            "title": "Outsidehoursvoicemailaudiourl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Permissions": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PermissionSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "PortOutUnlocked": {
            "title": "Portoutunlocked",
            "type": "boolean",
            "default": false
          },
          "RecordingAnnouncementPromptRef": {
            "title": "Recordingannouncementpromptref",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SkipTeamMemberIds": {
            "title": "Skipteammemberids",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "Symbol": {
            "title": "Symbol",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TeamMemberId": {
            "title": "Teammemberid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoAutoOutsideHoursMissedCall": {
            "title": "Textautoautooutsidehoursmissedcall",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoIncomingMessage": {
            "title": "Textautoincomingmessage",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoMissedCall": {
            "title": "Textautomissedcall",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoOutOfOfficeIncomingMessage": {
            "title": "Textautooutofofficeincomingmessage",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoOutOfOfficeMissedCall": {
            "title": "Textautooutofofficemissedcall",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoOutsideHoursIncomingMessage": {
            "title": "Textautooutsidehoursincomingmessage",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TwilioMessagingServiceSid": {
            "title": "Twiliomessagingservicesid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Type": {
            "$ref": "#/components/schemas/InboxTypeEnum",
            "default": "REGULAR"
          },
          "UserId": {
            "title": "Userid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "VoiceProvider": {
            "$ref": "#/components/schemas/VoiceProviderEnum",
            "default": "twilio"
          },
          "VoicemailAudioUrl": {
            "title": "Voicemailaudiourl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WabaId": {
            "title": "Wabaid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsappSenderNumber": {
            "title": "Whatsappsendernumber",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "Number"
        ]
      },
      "InboxHoliday": {
        "title": "InboxHoliday",
        "description": "PRO-811: one holiday an inbox is out of office for.\n\nEither a preset (HolidayId in app.core.holidays.HOLIDAYS, date computed\nper year) or a custom date (HolidayId \"CUSTOM_<anything>\" plus CustomDate).",
        "type": "object",
        "properties": {
          "CustomDate": {
            "title": "Customdate",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HolidayId": {
            "title": "Holidayid",
            "type": "string"
          },
          "IsEnabled": {
            "title": "Isenabled",
            "type": "boolean",
            "default": true
          },
          "IsRecurringYearly": {
            "title": "Isrecurringyearly",
            "type": "boolean",
            "default": false
          },
          "Name": {
            "title": "Name",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoIncomingMessage": {
            "title": "Textautoincomingmessage",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TextAutoMissedCall": {
            "title": "Textautomissedcall",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "VoicemailAudioUrl": {
            "title": "Voicemailaudiourl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "HolidayId"
        ]
      },
      "InboxOrgA2PStatusEnum": {
        "title": "InboxOrgA2PStatusEnum",
        "description": "Inbox Org A2P Status Enum\n\nStatus tracking for linking an inbox to a business registration (A2P)",
        "type": "string",
        "enum": [
          "PORTING_IN",
          "SMS_HOSTING_PENDING",
          "UNLINKED",
          "LINKING",
          "VOICE_LINKING",
          "SMS_LINKING",
          "WAITING_FOR_SMS",
          "ADDING_TO_MESSAGING_SERVICE",
          "SMS_LINKING_FAILED",
          "LINKED",
          "LINKED_TO_HOLDING_POOL",
          "UNLINKING"
        ]
      },
      "InboxPagination": {
        "title": "InboxPagination",
        "description": "Pagniation\n\nReturns pages of records and meta data about pagination",
        "type": "object",
        "properties": {
          "meta": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ResponseMetaBase"
              },
              {
                "type": "null"
              }
            ]
          },
          "records": {
            "title": "Records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inbox"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      },
      "InboxTypeEnum": {
        "title": "InboxTypeEnum",
        "description": "Inbox Type Enum\n\nPRO-4150 shipped this as a mutable flip on one row per number -- \"an\ninbox is either REGULAR or WHATSAPP, never both.\" PRO-7929 corrects\nthat: a number can hold a REGULAR inbox and a WHATSAPP inbox at the\nsame time, as two separate coexisting records (see `Inbox.make_sk`).\nThis enum still names the two channels; it is no longer a toggle on a\nsingle record, and outbound channel is still determined by which of\nthe two inbox records you composed from.",
        "type": "string",
        "enum": [
          "REGULAR",
          "WHATSAPP"
        ]
      },
      "Message": {
        "title": "Message",
        "description": "Message\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "ArchiverIds": {
            "title": "Archiverids",
            "description": "Dictionary to store archiver ids - key is ArchiverId, value is ArchiverType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "BestDeliveryStatus": {
            "title": "Best Delivery Status",
            "description": "For a group-conversation message, the highest-ranked leg success (delivered/read, by MESSAGE_STATUS_WEIGHT) ever recorded on this row, kept independent of the row's own Status. Written on every success receipt via the group-delivery path and never downgraded. Exists because a later failing leg can resolve the row's Status to partiallydelivered -- a single scalar that cannot also encode 'and the best success so far was read' -- so once that happens, prior_status stops being a usable record of it. Without this field, a read receipt followed by a failing leg followed by that leg merely CORRECTING to delivered (rather than read) permanently lost the fact that someone had already read the message (PRO-7413). Populated only via the onDeliveryUpdated group-delivery path (crud.message.update_status resolve_as_group_delivery=True); unset for a 1:1 message.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ChannelType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChannelTypeEnum"
              },
              {
                "type": "null"
              }
            ],
            "default": "sms"
          },
          "Comments": {
            "title": "Comments",
            "description": "Comments about the message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MessageComment"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contact Id",
            "description": "Id of the contact for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactName": {
            "title": "Contact Name",
            "description": "Name of the contact for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactNumber": {
            "title": "Contact Number",
            "description": "Phone with a leading +1 or a short code",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ConversationId": {
            "title": "Conversation ID",
            "description": "A Twilio conversation ID or our number TO number format",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CrmIds": {
            "title": "Crmids",
            "description": "Dictionary to store CRM ids - key is CrmId, value is CrmType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Direction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MessageDirectionEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "ErrorCode": {
            "title": "Errorcode",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ErrorMessage": {
            "title": "Errormessage",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HoldUntil": {
            "title": "Hold Until",
            "description": "PRO-8559: epoch-seconds when a Status=pending message's undo-send grace period ends and it is actually handed to Twilio. Set only while Status is pending; the frontend renders the remaining hold from this instead of re-deriving its own client-side timer, so the window survives a reload. Never cleared -- it stays on the row, stale, once the message leaves pending -- so consumers must gate on Status==pending, not merely on this field being set.",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsIgnored": {
            "title": "Isignored",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsSilenced": {
            "title": "Issilenced",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "LinkedComplianceMessageId": {
            "title": "Linked Compliance Message Id",
            "description": "PRO-8589: set on a held real (non-compliance) message whose first-contact compliance sub-message was ALSO held for the same undo-send grace window, pointing at that sub-message's own MessageId. cancel_pending_send follows it to cancel the compliance row in lockstep with this one, so undoing a first-ever send never leaves the contact holding a bare Reply-STOP line with no message attached to it. Unset for every other message -- compliance resends, and automated / admin-or-service / CH sends, which skip the hold entirely.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LocalMessageId": {
            "title": "Localmessageid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Message": {
            "title": "Message",
            "description": "Field of message to send",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "MessageId": {
            "title": "Messageid",
            "type": "string"
          },
          "MessageMediaItems": {
            "title": "MessageMediaItems",
            "description": "Media to include in message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MessageMediaItem"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "Meta": {
            "title": "Meta",
            "description": "Key values of meta data for this message, will be published as attributes to topic on callbacks",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "SenderMemberId": {
            "title": "Sender Member Id",
            "description": "Member id for the sender",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SenderName": {
            "title": "Sender Name",
            "description": "Name of the Sender for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MessageStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "Tags": {
            "title": "Tags",
            "description": "Tags for the message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "TwilioNumOfSegments": {
            "title": "Twilionumofsegments",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TwilioSid": {
            "title": "Twiliosid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UndeliveredContactNumber": {
            "title": "Undelivered Contact Number",
            "description": "For a group-conversation message, the specific participant number whose relay leg failed, resolved from Twilio's per-recipient onDeliveryUpdated ParticipantSid (PRO-6630/PRO-6632) since the message row's own ContactNumber can't name one recipient out of several. Unset for a 1:1 message, where ContactNumber already identifies the recipient, and unset if the participant lookup failed.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UndeliveredContactNumbers": {
            "title": "Undelivered Contact Numbers",
            "description": "For a group-conversation message, every participant leg that is CURRENTLY known-failed, by number -- the per-recipient state the PRO-7304 failure alert renders from, since a group send's single Status can only ever describe one aggregate outcome and UndeliveredContactNumber (singular) only ever named the most recently-resolved failure. Index-aligned with UndeliveredParticipantSids (entry i failed as participant i). A NEW failing participant is appended; the SAME participant later correcting to a success (PRO-5002's shape, not a second person's independent failure) removes that entry instead of leaving it stuck forever (PRO-7304 round 3 -- this list is NOT append-only despite an earlier round of this same ticket documenting it that way). Populated only via the onDeliveryUpdated group-delivery path (crud.message.update_status resolve_as_group_delivery=True); unset for a 1:1 message and for a clean group delivery with no failures at all.\n\nAn ENTRY may be None: the leg is known-failed but Twilio's participant lookup could not resolve its number. The entry is still recorded, because dropping it would leave that leg with no UndeliveredParticipantSids entry either, and its own later correction could then never be matched -- pinning the row at partiallydelivered forever with nothing able to clear it (ironhide, PR #875 round 7). Consumers rendering this list must skip None entries; the count of failed LEGS is the list length, the count of NAMEABLE ones is smaller.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UndeliveredParticipantSids": {
            "title": "Undelivered Participant Sids",
            "description": "Twilio ParticipantSid for each entry in UndeliveredContactNumbers, same index. The identity that lets update_status tell a same-participant DLR correction (PRO-5002: this exact leg corrected itself, remove it) apart from a second, independent participant's receipt (PRO-7304: two different people, two different facts, neither erases the other) -- Status and ContactNumber alone can't distinguish those. Backend-internal: not meant for the frontend to render, only to let this field's sibling list self-correct accurately. An entry can itself be None (a legacy row seeded from the pre-sid-tracking singular UndeliveredContactNumber field, or the Twilio Participant lookup failed) -- update_status's correction matching requires an actual sid on BOTH sides, so a None entry here can never be mistaken for a match against an incoming None sid.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "User Id",
            "description": "Id of the app user",
            "type": "string"
          },
          "UserNumber": {
            "title": "Number for the app user",
            "description": "Number with a leading +1",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WebhookUrlStatus": {
            "title": "Webhookurlstatus",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsAppContentSid": {
            "title": "WhatsApp Content Sid",
            "description": "Server-resolved Twilio Content SID for a template send. Not client-settable.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsAppContentVariables": {
            "title": "WhatsApp Content Variables",
            "description": "Server-resolved positional {'1': value, ...} substitutions for a template send. Not client-settable.",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsAppTemplateId": {
            "title": "WhatsApp Template Id",
            "description": "An approved WhatsAppTemplate to send this message with, bypassing the 24h session window",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "MessageId"
        ]
      },
      "MessageArchiverReceiptIds": {
        "title": "MessageArchiverReceiptIds",
        "type": "object",
        "properties": {
          "MessageIds": {
            "title": "Messageids",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "MessageIds"
        ]
      },
      "MessageComment": {
        "title": "MessageComment",
        "description": "MessageComment",
        "type": "object",
        "properties": {
          "Comment": {
            "title": "Comment",
            "type": "string"
          },
          "CreatedByUserId": {
            "title": "Createdbyuserid",
            "type": "string"
          },
          "CreatedByUserName": {
            "title": "Createdbyusername",
            "type": "string"
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "Mentions": {
            "title": "Mentions",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "MessageCommentId": {
            "title": "Messagecommentid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "UpdatedAt": {
            "title": "Updatedat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "Comment",
          "CreatedByUserId",
          "CreatedByUserName",
          "CreatedTime"
        ]
      },
      "MessageDirectionEnum": {
        "title": "MessageDirectionEnum",
        "description": "MessageDirectionEnum\n\nDirection of the message, whether it was sent or received",
        "type": "string",
        "enum": [
          "SENT",
          "RECEIVED"
        ]
      },
      "MessageInDB": {
        "title": "MessageInDB",
        "description": "InDB\n\nProperties properties stored in DB, this is full representation of\nrecord",
        "type": "object",
        "properties": {
          "ArchiverIds": {
            "title": "Archiverids",
            "description": "Dictionary to store archiver ids - key is ArchiverId, value is ArchiverType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "BestDeliveryStatus": {
            "title": "Best Delivery Status",
            "description": "For a group-conversation message, the highest-ranked leg success (delivered/read, by MESSAGE_STATUS_WEIGHT) ever recorded on this row, kept independent of the row's own Status. Written on every success receipt via the group-delivery path and never downgraded. Exists because a later failing leg can resolve the row's Status to partiallydelivered -- a single scalar that cannot also encode 'and the best success so far was read' -- so once that happens, prior_status stops being a usable record of it. Without this field, a read receipt followed by a failing leg followed by that leg merely CORRECTING to delivered (rather than read) permanently lost the fact that someone had already read the message (PRO-7413). Populated only via the onDeliveryUpdated group-delivery path (crud.message.update_status resolve_as_group_delivery=True); unset for a 1:1 message.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ChannelType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChannelTypeEnum"
              },
              {
                "type": "null"
              }
            ],
            "default": "sms"
          },
          "Comments": {
            "title": "Comments",
            "description": "Comments about the message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MessageComment"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contact Id",
            "description": "Id of the contact for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactName": {
            "title": "Contact Name",
            "description": "Name of the contact for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactNumber": {
            "title": "Contact Number",
            "description": "Phone with a leading +1 or a short code",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ConversationId": {
            "title": "Conversation ID",
            "description": "A Twilio conversation ID or our number TO number format",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CrmIds": {
            "title": "Crmids",
            "description": "Dictionary to store CRM ids - key is CrmId, value is CrmType",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "Direction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MessageDirectionEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "ErrorCode": {
            "title": "Errorcode",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ErrorMessage": {
            "title": "Errormessage",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI1PK": {
            "title": "Gsi1Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI1SK": {
            "title": "Gsi1Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI2PK": {
            "title": "Gsi2Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI2SK": {
            "title": "Gsi2Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI3PK": {
            "title": "Gsi3Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI3SK": {
            "title": "Gsi3Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI6PK": {
            "title": "Gsi6Pk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "GSI6SK": {
            "title": "Gsi6Sk",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "HoldUntil": {
            "title": "Hold Until",
            "description": "PRO-8559: epoch-seconds when a Status=pending message's undo-send grace period ends and it is actually handed to Twilio. Set only while Status is pending; the frontend renders the remaining hold from this instead of re-deriving its own client-side timer, so the window survives a reload. Never cleared -- it stays on the row, stale, once the message leaves pending -- so consumers must gate on Status==pending, not merely on this field being set.",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsIgnored": {
            "title": "Isignored",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsSilenced": {
            "title": "Issilenced",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "LinkedComplianceMessageId": {
            "title": "Linked Compliance Message Id",
            "description": "PRO-8589: set on a held real (non-compliance) message whose first-contact compliance sub-message was ALSO held for the same undo-send grace window, pointing at that sub-message's own MessageId. cancel_pending_send follows it to cancel the compliance row in lockstep with this one, so undoing a first-ever send never leaves the contact holding a bare Reply-STOP line with no message attached to it. Unset for every other message -- compliance resends, and automated / admin-or-service / CH sends, which skip the hold entirely.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LocalMessageId": {
            "title": "Localmessageid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Message": {
            "title": "Message",
            "description": "Field of message to send",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "MessageId": {
            "title": "Messageid",
            "type": "string"
          },
          "MessageMediaItems": {
            "title": "MessageMediaItems",
            "description": "Media to include in message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MessageMediaItem"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "Meta": {
            "title": "Meta",
            "description": "Key values of meta data for this message, will be published as attributes to topic on callbacks",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "PK": {
            "title": "Pk",
            "type": "string"
          },
          "SK": {
            "title": "Sk",
            "type": "string"
          },
          "Searchable": {
            "title": "Searchable",
            "type": "string"
          },
          "SenderMemberId": {
            "title": "Sender Member Id",
            "description": "Member id for the sender",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SenderName": {
            "title": "Sender Name",
            "description": "Name of the Sender for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MessageStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "TYPE": {
            "title": "Type",
            "type": "string"
          },
          "Tags": {
            "title": "Tags",
            "description": "Tags for the message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "TwilioNumOfSegments": {
            "title": "Twilionumofsegments",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TwilioSid": {
            "title": "Twiliosid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UndeliveredContactNumber": {
            "title": "Undelivered Contact Number",
            "description": "For a group-conversation message, the specific participant number whose relay leg failed, resolved from Twilio's per-recipient onDeliveryUpdated ParticipantSid (PRO-6630/PRO-6632) since the message row's own ContactNumber can't name one recipient out of several. Unset for a 1:1 message, where ContactNumber already identifies the recipient, and unset if the participant lookup failed.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UndeliveredContactNumbers": {
            "title": "Undelivered Contact Numbers",
            "description": "For a group-conversation message, every participant leg that is CURRENTLY known-failed, by number -- the per-recipient state the PRO-7304 failure alert renders from, since a group send's single Status can only ever describe one aggregate outcome and UndeliveredContactNumber (singular) only ever named the most recently-resolved failure. Index-aligned with UndeliveredParticipantSids (entry i failed as participant i). A NEW failing participant is appended; the SAME participant later correcting to a success (PRO-5002's shape, not a second person's independent failure) removes that entry instead of leaving it stuck forever (PRO-7304 round 3 -- this list is NOT append-only despite an earlier round of this same ticket documenting it that way). Populated only via the onDeliveryUpdated group-delivery path (crud.message.update_status resolve_as_group_delivery=True); unset for a 1:1 message and for a clean group delivery with no failures at all.\n\nAn ENTRY may be None: the leg is known-failed but Twilio's participant lookup could not resolve its number. The entry is still recorded, because dropping it would leave that leg with no UndeliveredParticipantSids entry either, and its own later correction could then never be matched -- pinning the row at partiallydelivered forever with nothing able to clear it (ironhide, PR #875 round 7). Consumers rendering this list must skip None entries; the count of failed LEGS is the list length, the count of NAMEABLE ones is smaller.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UndeliveredParticipantSids": {
            "title": "Undelivered Participant Sids",
            "description": "Twilio ParticipantSid for each entry in UndeliveredContactNumbers, same index. The identity that lets update_status tell a same-participant DLR correction (PRO-5002: this exact leg corrected itself, remove it) apart from a second, independent participant's receipt (PRO-7304: two different people, two different facts, neither erases the other) -- Status and ContactNumber alone can't distinguish those. Backend-internal: not meant for the frontend to render, only to let this field's sibling list self-correct accurately. An entry can itself be None (a legacy row seeded from the pre-sid-tracking singular UndeliveredContactNumber field, or the Twilio Participant lookup failed) -- update_status's correction matching requires an actual sid on BOTH sides, so a None entry here can never be mistaken for a match against an incoming None sid.",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "User Id",
            "description": "Id of the app user",
            "type": "string"
          },
          "UserNumber": {
            "title": "Number for the app user",
            "description": "Number with a leading +1",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WebhookUrlStatus": {
            "title": "Webhookurlstatus",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsAppContentSid": {
            "title": "WhatsApp Content Sid",
            "description": "Server-resolved Twilio Content SID for a template send. Not client-settable.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsAppContentVariables": {
            "title": "WhatsApp Content Variables",
            "description": "Server-resolved positional {'1': value, ...} substitutions for a template send. Not client-settable.",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "WhatsAppTemplateId": {
            "title": "WhatsApp Template Id",
            "description": "An approved WhatsAppTemplate to send this message with, bypassing the 24h session window",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "MessageId",
          "TYPE",
          "PK",
          "SK",
          "Searchable"
        ]
      },
      "MessageMediaItem": {
        "title": "MessageMediaItem",
        "description": "MessageMediaItem\n\nMedia object can be sent and received by/from twilio\n\nhttps://www.twilio.com/docs/sms/accepted-mime-types",
        "type": "object",
        "properties": {
          "ChatServiceId": {
            "title": "Chatserviceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "FileName": {
            "title": "Filename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "MediaId": {
            "title": "Mediaid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "MediaType": {
            "title": "Mediatype",
            "type": "string"
          },
          "MediaUrl": {
            "title": "Mediaurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "MediaType"
        ]
      },
      "MessageStatusEnum": {
        "title": "MessageStatusEnum",
        "description": "MessageStatusEnum\n\nStatus of the message",
        "type": "string",
        "enum": [
          "created",
          "pending",
          "ready",
          "cancelled",
          "blockednumber",
          "unsubscriber",
          "cannotroute",
          "error",
          "invalid",
          "nosms",
          "presenderror",
          "senderror",
          "unsubscribed",
          "sessionexpired",
          "accepted",
          "delivered",
          "failed",
          "queued",
          "read",
          "sending",
          "sent",
          "undelivered",
          "received",
          "receiving",
          "partiallydelivered"
        ]
      },
      "NotetakerProviderEnum": {
        "title": "NotetakerProviderEnum",
        "description": "Notetaker Provider Enum\n\nPRO-7319: which AI notetaker's dedicated phone number this inbox should\nauto-conference into a call once it connects. Purely a visual/reference\nlabel for the team (which icon/name to show in settings) -- it has no\neffect on how the dial-in itself works, since that always just dials\n`NotetakerPhoneNumber`. OTHER covers any notetaker not in this list yet;\nnew named providers get appended here as they're added.",
        "type": "string",
        "enum": [
          "JUMP",
          "ZOCKS",
          "HAZEL",
          "WEALTHBOX",
          "OTHER"
        ]
      },
      "PermissionSettings": {
        "title": "PermissionSettings",
        "description": "Model to hold inbox permission settings",
        "type": "object",
        "properties": {
          "Editors": {
            "title": "Editors",
            "type": "array",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "Viewers": {
            "title": "Viewers",
            "type": "array",
            "default": [],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RecordingStatusEnum": {
        "title": "RecordingStatusEnum",
        "description": "RecordingStatusEnum\n\nRecording Status of the call",
        "type": "string",
        "enum": [
          "in-progress",
          "completed",
          "absent"
        ]
      },
      "VoiceProviderEnum": {
        "title": "VoiceProviderEnum",
        "description": "Voice Provider Enum\n\nPRO-7115: which voice stack places and receives calls for THIS inbox.\nPer inbox, deliberately not per workspace: one workspace has to be able\nto run a Twilio inbox and a CC SIP inbox side by side, both live in the\nsame session.\n\nValues are lowercase, unlike the ALL-CAPS `InboundTypeEnum` /\n`ForwardingVoicemailModeEnum` above. That is not a style slip: cc-app-core\npasses this string verbatim from `resolveProviderConfig` into\n`createVoiceDriver`, whose registered driver ids are lowercase\n(`registerVoiceDriver('twilio', ...)`), and there is no normalization seam\nbetween the two. An ALL-CAPS value here would raise\nUnknownVoiceProviderError in the client.",
        "type": "string",
        "enum": [
          "twilio",
          "sip"
        ]
      },
      "WhatsAppOptInInfo": {
        "title": "WhatsAppOptInInfo",
        "description": "WhatsAppOptInInfo\n\nRecords the current state of a contact's consent to receive WhatsApp\nbusiness-initiated (template) messages, and how/when that state was\nlast set. Distinct from SMS opt-OUT, which is tracked separately via\nOPT_OUT_KEYWORDS/Unsubscriber (PRO-4154).\n\nThis must always be written as a persistent record, never removed:\nan opt-out (STOP) sets OptedIn=False rather than deleting the field,\nbecause a merely-absent field is indistinguishable from \"never\ncontacted\" -- which would let the very next inbound WhatsApp message\nsilently re-enable opt-in via the auto-opt-in path in\nCRUDConversation._record_inbound_session_signal.",
        "type": "object",
        "properties": {
          "OptedIn": {
            "title": "Optedin",
            "type": "boolean",
            "default": true
          },
          "Source": {
            "$ref": "#/components/schemas/WhatsAppOptInSourceEnum"
          },
          "Time": {
            "title": "Time",
            "type": "integer"
          }
        },
        "required": [
          "Time",
          "Source"
        ]
      },
      "WhatsAppOptInSourceEnum": {
        "title": "WhatsAppOptInSourceEnum",
        "description": "WhatsAppOptInSourceEnum\n\nHow WhatsAppOptIn on a conversation was captured.",
        "type": "string",
        "enum": [
          "inbound_message",
          "manual",
          "stop_keyword",
          "start_keyword"
        ]
      },
      "ConditionEnum": {
        "title": "ConditionEnum",
        "description": "ConditionEnum\n\nEnum for condition check",
        "type": "string",
        "enum": [
          "NOREPLYSINCE",
          "NONE"
        ]
      },
      "ConversationContact": {
        "title": "ConversationContact",
        "description": "ConversationContact\n\nModel representing a contact in a conversation",
        "type": "object",
        "properties": {
          "Id": {
            "title": "Id",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Name": {
            "title": "Name",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Number": {
            "title": "Number",
            "type": "string"
          }
        },
        "required": [
          "Number"
        ]
      },
      "ScheduledMessage": {
        "title": "ScheduledMessage",
        "description": "ScheduledMessage\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "ChannelType": {
            "title": "Channel Type",
            "description": "PRO-10056: the channel the sender picked in the composer. Sent to outbounds as RequestedChannelType when the message fires. Omit to let outbounds derive it, as before.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChannelTypeEnum"
              },
              {
                "type": "null"
              }
            ],
            "example": "whatsapp"
          },
          "Condition": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConditionEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contact Id",
            "description": "Id of the contact for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "ContactName": {
            "title": "Contactname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactNumber": {
            "title": "Contact Number",
            "description": "Phone with a leading +1",
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\+1[0-9]{10}$"
              },
              {
                "type": "null"
              }
            ],
            "example": "+18008675309"
          },
          "Contacts": {
            "title": "Contacts",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConversationContact"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "ConversationId": {
            "title": "Conversation Id",
            "description": "Id of the conversation for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "CH132314234"
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "Message": {
            "title": "Message",
            "description": "Field of message to send",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Mr. Watson, come here. I want to see you"
          },
          "MessageMediaItems": {
            "title": "MessageMediaItems",
            "description": "Media to include in message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MessageMediaItem"
                }
              },
              {
                "type": "null"
              }
            ],
            "example": [
              {
                "MediaType": "image/png",
                "MediaUrl": "https://unsplash.com/photos/5bMj6krNKiM/download?force=true&w=640"
              }
            ]
          },
          "Meta": {
            "title": "Meta",
            "description": "Key values of meta data for this message, will be published as attributes to topic on callbacks",
            "type": "object",
            "additionalProperties": true
          },
          "ScheduledMessageId": {
            "title": "Scheduledmessageid",
            "type": "string"
          },
          "SendAttempted": {
            "title": "Send Attempted",
            "description": "PRO-7740: whether the outbounds SMS POST was attempted before the failure this update records. Set only on a FAILED write coming from module-messages' SendScheduledMessage. Once true, the row is terminal regardless of remaining retry budget -- the SMS may already have reached the customer (WithRequests' 5s timeout means a slow-but-accepted POST looks identical to a failed one), so a retry can only send it again, never repair it. False/absent means the failure happened before any send was attempted (e.g. GetUserProfile/CheckCondition), which IS safely retryable.",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "SendAttemptsCount": {
            "title": "Sendattemptscount",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SendTime": {
            "title": "Sendtime",
            "type": "string"
          },
          "SenderMemberId": {
            "title": "Sender Member Id",
            "description": "Memeber id for the sender",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "SenderName": {
            "title": "Sender Name",
            "description": "Name of the Sender for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Jen Framer"
          },
          "SourceType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "Status": {
            "$ref": "#/components/schemas/ScheduledMessageStatusEnum"
          },
          "UpdatedTime": {
            "title": "Updatedtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          },
          "UserNumber": {
            "title": "Number for the app user",
            "description": "Number with a leading +1",
            "type": "string",
            "example": "+18008675309",
            "pattern": "^\\+1[0-9]{10}$"
          }
        },
        "required": [
          "SendTime",
          "UserNumber",
          "UserId",
          "ScheduledMessageId",
          "CreatedTime",
          "Status"
        ]
      },
      "ScheduledMessageCreate": {
        "title": "ScheduledMessageCreate",
        "description": "Create\n\nProperties to receive on scheduledmessage creation",
        "type": "object",
        "properties": {
          "ChannelType": {
            "title": "Channel Type",
            "description": "PRO-10056: the channel the sender picked in the composer. Sent to outbounds as RequestedChannelType when the message fires. Omit to let outbounds derive it, as before.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChannelTypeEnum"
              },
              {
                "type": "null"
              }
            ],
            "example": "whatsapp"
          },
          "Condition": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConditionEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactId": {
            "title": "Contact Id",
            "description": "Id of the contact for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "ContactName": {
            "title": "Contactname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ContactNumber": {
            "title": "Contact Number",
            "description": "Phone with a leading +1",
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\+1[0-9]{10}$"
              },
              {
                "type": "null"
              }
            ],
            "example": "+18008675309"
          },
          "Contacts": {
            "title": "Contacts",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConversationContact"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "ConversationId": {
            "title": "Conversation Id",
            "description": "Id of the conversation for outbounds",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "CH132314234"
          },
          "Message": {
            "title": "Message",
            "description": "Field of message to send",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Mr. Watson, come here. I want to see you"
          },
          "MessageMediaItems": {
            "title": "MessageMediaItems",
            "description": "Media to include in message",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MessageMediaItem"
                }
              },
              {
                "type": "null"
              }
            ],
            "example": [
              {
                "MediaType": "image/png",
                "MediaUrl": "https://unsplash.com/photos/5bMj6krNKiM/download?force=true&w=640"
              }
            ]
          },
          "Meta": {
            "title": "Meta",
            "description": "Key values of meta data for this message, will be published as attributes to topic on callbacks",
            "type": "object",
            "additionalProperties": true
          },
          "SendAttempted": {
            "title": "Send Attempted",
            "description": "PRO-7740: whether the outbounds SMS POST was attempted before the failure this update records. Set only on a FAILED write coming from module-messages' SendScheduledMessage. Once true, the row is terminal regardless of remaining retry budget -- the SMS may already have reached the customer (WithRequests' 5s timeout means a slow-but-accepted POST looks identical to a failed one), so a retry can only send it again, never repair it. False/absent means the failure happened before any send was attempted (e.g. GetUserProfile/CheckCondition), which IS safely retryable.",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "SendAttemptsCount": {
            "title": "Sendattemptscount",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "SendTime": {
            "title": "Sendtime",
            "type": "string"
          },
          "SenderMemberId": {
            "title": "Sender Member Id",
            "description": "Memeber id for the sender",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "1234-abcd-4567-ABCD"
          },
          "SenderName": {
            "title": "Sender Name",
            "description": "Name of the Sender for quick reference",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "example": "Jen Framer"
          },
          "SourceType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserNumber": {
            "title": "Number for the app user",
            "description": "Number with a leading +1",
            "type": "string",
            "example": "+18008675309",
            "pattern": "^\\+1[0-9]{10}$"
          }
        },
        "required": [
          "SendTime",
          "UserNumber"
        ]
      },
      "ScheduledMessageStatusEnum": {
        "title": "ScheduledMessageStatusEnum",
        "description": "ScheduledMessageStatusEnum\n\nStatus of the message",
        "type": "string",
        "enum": [
          "SCHEDULED",
          "SENT",
          "CANCELLED",
          "FAILED"
        ]
      },
      "ScheduledMessagesPaginated": {
        "title": "ScheduledMessagesPaginated",
        "description": "Pagination\n\nReturns pages of records and meta data about pagination",
        "type": "object",
        "properties": {
          "meta": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ResponseMetaBase"
              },
              {
                "type": "null"
              }
            ]
          },
          "records": {
            "title": "Records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduledMessage"
            }
          }
        },
        "required": [
          "records"
        ]
      },
      "SourceTypeEnum": {
        "title": "SourceTypeEnum",
        "description": "SourceTypeEnum\n\nEnum for source type",
        "type": "string",
        "enum": [
          "AUTOMATION",
          "MANUAL"
        ]
      },
      "Billing": {
        "title": "Billing",
        "description": "Billing\n\nBilling provides fields for the billing record.\n\nBilling attribute contract (PRO-5119). Comments only; no field is removed\nor renamed here.\n\nSUPPORTED (self-serve gating reads SubscriptionStatus, ProductId and\nAddonIds in app.core.waffle.get_active_subscription_items; SubscriptionId\nand StripeCustomerId are the Stripe identifiers used for billing calls):\n  SubscriptionStatus, SubscriptionId, StripeCustomerId, ProductId, AddonIds\n\nDISPLAY-ONLY (keep, but never gate on them):\n  ProductName, CreatedTime, CanceledAtTime, CancelAtTime\n\nDEPRECATED (write-only, no readers; do not add new readers):\n  BillingType, ProductDescription, BundleIds, BundleNames, AddonNames,\n  PriceIds (and Meta, BundlesLookupIds, AddonsLookupIds on BillingInDB)",
        "type": "object",
        "properties": {
          "AddonIds": {
            "title": "Addonids",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "AddonNames": {
            "title": "Addonnames",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "BillingType": {
            "title": "Billingtype",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BundleIds": {
            "title": "Bundleids",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "BundleNames": {
            "title": "Bundlenames",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "CancelAtTime": {
            "title": "Cancelattime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CanceledAtTime": {
            "title": "Canceledattime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedTime": {
            "title": "Createdtime",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "PriceIds": {
            "title": "Priceids",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "ProductDescription": {
            "title": "Productdescription",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ProductId": {
            "title": "Productid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ProductName": {
            "title": "Productname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "StripeCustomerId": {
            "title": "Stripecustomerid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SubscriptionId": {
            "title": "Subscriptionid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SubscriptionStatus": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StripeSubscriptionStatusEnum"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "ExternalDataWealthBox": {
        "title": "ExternalDataWealthBox",
        "description": "External data from wealthbox",
        "type": "object",
        "properties": {
          "Groups": {
            "title": "Groups",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "integer"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "ExternalTypeEnum": {
        "title": "ExternalTypeEnum",
        "description": "Types for external data",
        "type": "string",
        "enum": [
          "WEALTHBOX",
          "SLANT",
          "AGENCYBLOC",
          "AGENTCORE",
          "HUBSPOT",
          "MEDICAREPRO",
          "PRACTIFI",
          "QUIVR",
          "SALESFORCE",
          "RADIUSBOB",
          "REDTAIL",
          "XLR8"
        ]
      },
      "Milestones": {
        "title": "Milestones",
        "description": "Milestones\n\nMilestones provides fields for user milestones",
        "type": "object",
        "properties": {
          "IsCompletedOnboarding": {
            "title": "Iscompletedonboarding",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          }
        }
      },
      "RegisteredNumber": {
        "title": "RegisteredNumber",
        "description": "RegisteredNumber",
        "type": "object",
        "properties": {
          "AddressRequirements": {
            "title": "Addressrequirements",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Capabilities": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RegisteredNumberCapabilities"
              },
              {
                "type": "null"
              }
            ]
          },
          "DateCreated": {
            "title": "Datecreated",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "DateUpdated": {
            "title": "Dateupdated",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "FriendlyName": {
            "title": "Friendlyname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Origin": {
            "title": "Origin",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "PhoneNumber": {
            "title": "Phonenumber",
            "type": "string"
          },
          "Sid": {
            "title": "Sid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SmsFallbackMethod": {
            "title": "Smsfallbackmethod",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SmsFallbackUrl": {
            "title": "Smsfallbackurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SmsMethod": {
            "title": "Smsmethod",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "SmsUrl": {
            "title": "Smsurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Status": {
            "title": "Status",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "StatusCallback": {
            "title": "Statuscallback",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "StatusCallbackMethod": {
            "title": "Statuscallbackmethod",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "PhoneNumber"
        ]
      },
      "RegisteredNumberCapabilities": {
        "title": "RegisteredNumberCapabilities",
        "description": "RegisteredNumberCapabilities",
        "type": "object",
        "properties": {
          "IsMMSEnabled": {
            "title": "Ismmsenabled",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsSMSEnabled": {
            "title": "Issmsenabled",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsVoiceEnabled": {
            "title": "Isvoiceenabled",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "RoutingEventNamesEnum": {
        "title": "RoutingEventNamesEnum",
        "description": "Routing event names\n\nThis enum is copied in the module-routing",
        "type": "string",
        "enum": [
          "MESSAGE_INCOMING",
          "MESSAGE_UPDATED",
          "CALL_MISSED",
          "NEW_SUBMISSION",
          "CONTACT_VERSIONED",
          "CONTACT_UPDATED",
          "CONTACT_CREATED",
          "SMS_SENT",
          "SMS_LOG",
          "CALL_LOG",
          "CALL_UPDATED",
          "VOICEMAIL_RECEIVED",
          "CALL_RECORDING_COMPLETED",
          "VIDEO_UPLOADED",
          "SMS_UNDELIVERED",
          "CALL_TRANSCRIPT_COMPLETED",
          "TETHER_WIDGET_SUBMISSION",
          "CALL_AI_SUMMARY_COMPLETED",
          "CRMSYNC_BROKEN",
          "CONVERSATION_REMINDER_DUE",
          "COMMENT_MENTION",
          "CONVERSATION_ASSIGNED",
          "INBOX_CREATED",
          "INBOX_DELETED",
          "CHAT_MESSAGE",
          "CHAT_MENTION",
          "INTERNAL_CHAT_LOG",
          "NEW_LEAD",
          "MESSAGE_ALL"
        ]
      },
      "StripeSubscriptionStatusEnum": {
        "title": "StripeSubscriptionStatusEnum",
        "description": "StripeSubscriptionStatusEnum\n\nStatus of the stripe subscription\nDocs: https://stripe.com/docs/api/subscriptions/object#subscription_object-status",
        "type": "string",
        "enum": [
          "active",
          "past_due",
          "unpaid",
          "canceled",
          "incomplete",
          "incomplete_expired",
          "trialing"
        ]
      },
      "TeamMember": {
        "title": "TeamMember",
        "description": "TeamMember\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "Bio": {
            "title": "Bio",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BrandImageUrl": {
            "title": "Brandimageurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CognitoUserId": {
            "title": "Cognitouserid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedAt": {
            "title": "Createdat",
            "type": "string"
          },
          "Email": {
            "title": "Email",
            "type": "string"
          },
          "ExternalConnectorId": {
            "title": "Externalconnectorid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalData": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExternalDataWealthBox"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalId": {
            "title": "Externalid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalLastUpdated": {
            "title": "Externallastupdated",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExternalTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "FirstName": {
            "title": "Firstname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsActive": {
            "title": "Isactive",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsAiSummaryFree": {
            "title": "Isaisummaryfree",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsFree": {
            "title": "Isfree",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsInvited": {
            "title": "Isinvited",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsJoined": {
            "title": "Isjoined",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsLandOnOrganization": {
            "title": "Islandonorganization",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsMember": {
            "title": "Ismember",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsXypnMember": {
            "title": "Isxypnmember",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "JobTitle": {
            "title": "Jobtitle",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastName": {
            "title": "Lastname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TeamMemberId": {
            "title": "Teammemberid",
            "type": "string"
          },
          "UpdatedAt": {
            "title": "Updatedat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          }
        },
        "required": [
          "Email",
          "UserId",
          "TeamMemberId",
          "CreatedAt"
        ]
      },
      "TeamMemberExtra": {
        "title": "TeamMemberExtra",
        "description": "TeamMemberExtra\n\nTeam member for response with extra fields",
        "type": "object",
        "properties": {
          "Bio": {
            "title": "Bio",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BrandImageUrl": {
            "title": "Brandimageurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CognitoUserId": {
            "title": "Cognitouserid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedAt": {
            "title": "Createdat",
            "type": "string"
          },
          "Email": {
            "title": "Email",
            "type": "string"
          },
          "ExternalConnectorId": {
            "title": "Externalconnectorid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalData": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExternalDataWealthBox"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalId": {
            "title": "Externalid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalLastUpdated": {
            "title": "Externallastupdated",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExternalTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "FirstName": {
            "title": "Firstname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsActive": {
            "title": "Isactive",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsAdmin": {
            "title": "Isadmin",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsAiSummaryFree": {
            "title": "Isaisummaryfree",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsFree": {
            "title": "Isfree",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsGovernor": {
            "title": "Isgovernor",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsInvited": {
            "title": "Isinvited",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsJoined": {
            "title": "Isjoined",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsLandOnOrganization": {
            "title": "Islandonorganization",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsMember": {
            "title": "Ismember",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsXypnMember": {
            "title": "Isxypnmember",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "JobTitle": {
            "title": "Jobtitle",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastName": {
            "title": "Lastname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TeamMemberId": {
            "title": "Teammemberid",
            "type": "string"
          },
          "UpdatedAt": {
            "title": "Updatedat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          }
        },
        "required": [
          "Email",
          "UserId",
          "TeamMemberId",
          "CreatedAt"
        ]
      },
      "UserProfile": {
        "title": "UserProfile",
        "description": "UserProfile\n\nThe model to be used for responses. Doesnt include internal PK and SK",
        "type": "object",
        "properties": {
          "AddOnProductIds": {
            "title": "Addonproductids",
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "Address1": {
            "title": "Address1",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Address2": {
            "title": "Address2",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AdminBrandImageUrl": {
            "title": "Adminbrandimageurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AdminEmail": {
            "title": "Adminemail",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AdminFirstName": {
            "title": "Adminfirstname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AdminImageUrl": {
            "title": "Adminimageurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "AdminLastName": {
            "title": "Adminlastname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Billing": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Billing"
              },
              {
                "type": "null"
              }
            ]
          },
          "Bio": {
            "title": "Bio",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "BrandImageUrl": {
            "title": "Brandimageurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "City": {
            "title": "City",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CompanyName": {
            "title": "Companyname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CompanyWebsiteUrl": {
            "title": "Companywebsiteurl",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "CreatedAt": {
            "title": "Createdat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Crm": {
            "title": "Crm",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "DefaultInboxNumber": {
            "title": "Defaultinboxnumber",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Email": {
            "title": "Email",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalConnectorId": {
            "title": "Externalconnectorid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalData": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExternalDataWealthBox"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalId": {
            "title": "Externalid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalLastUpdated": {
            "title": "Externallastupdated",
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "ExternalType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExternalTypeEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "FirstName": {
            "title": "Firstname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Industry": {
            "title": "Industry",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsActive": {
            "title": "Isactive",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsAiSummaryFree": {
            "title": "Isaisummaryfree",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsAllowAiContactCreate": {
            "title": "Isallowaicontactcreate",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsDeleteRequested": {
            "title": "Isdeleterequested",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsFree": {
            "title": "Isfree",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsGovernor": {
            "title": "Isgovernor",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsHasCrmSync": {
            "title": "Ishascrmsync",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsLandOnOrganization": {
            "title": "Islandonorganization",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsManagedBilling": {
            "title": "Ismanagedbilling",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsTeamMember": {
            "title": "Isteammember",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "IsUser": {
            "title": "Isuser",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": false
          },
          "JobTitle": {
            "title": "Jobtitle",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LastName": {
            "title": "Lastname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "LegalDisclosure": {
            "title": "Legaldisclosure",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "MessagingServiceId": {
            "title": "Messagingserviceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Milestones": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Milestones"
              },
              {
                "type": "null"
              }
            ]
          },
          "NetworkEnrolledAt": {
            "title": "Networkenrolledat",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "NetworkId": {
            "title": "Networkid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "OrganizationId": {
            "title": "Organizationid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Phone": {
            "title": "Phone",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "PlanProductId": {
            "title": "Planproductid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "RegisteredNumber": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RegisteredNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "SourceAttribution": {
            "title": "Sourceattribution",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "State": {
            "title": "State",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "TeamMemberUserId": {
            "title": "Teammemberuserid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "UserId": {
            "title": "Userid",
            "type": "string"
          },
          "VoiceMeteringSource": {
            "title": "Voicemeteringsource",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WorkspaceId": {
            "title": "Workspaceid",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WorkspaceName": {
            "title": "Workspacename",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "Zip": {
            "title": "Zip",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "UserId"
        ]
      },
      "WebhookEndpoint": {
        "title": "WebhookEndpoint",
        "description": "A webhook endpoint.\n\nNever includes the signing secret -- that's returned only once, by\nPOST /api/v1/webhooks (creation) or POST /{id}/rotate-secret. Save it\nthen; it cannot be retrieved again afterward.",
        "type": "object",
        "properties": {
          "ConnectorName": {
            "title": "Connectorname",
            "type": "string"
          },
          "CreatedAt": {
            "title": "Createdat",
            "type": "string"
          },
          "IsEnabled": {
            "title": "Isenabled",
            "type": "boolean"
          },
          "Url": {
            "title": "Url",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WebhookEndpointId": {
            "title": "Webhookendpointid",
            "description": "The connector id",
            "type": "string"
          }
        },
        "required": [
          "WebhookEndpointId",
          "ConnectorName",
          "IsEnabled",
          "CreatedAt"
        ]
      },
      "WebhookEndpointCreate": {
        "title": "WebhookEndpointCreate",
        "description": "Properties to receive on POST /api/v1/webhooks",
        "type": "object",
        "properties": {
          "ConnectorName": {
            "title": "Connectorname",
            "description": "Display name; defaults to a generated name if omitted",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsEnabled": {
            "title": "Isenabled",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": true
          },
          "Url": {
            "title": "Url",
            "description": "HTTPS URL deliveries are POSTed to",
            "type": "string"
          }
        },
        "required": [
          "Url"
        ]
      },
      "WebhookEndpointUpdate": {
        "title": "WebhookEndpointUpdate",
        "description": "Properties to receive on PUT /api/v1/webhooks/{id}",
        "type": "object",
        "properties": {
          "ConnectorName": {
            "title": "Connectorname",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "IsEnabled": {
            "title": "Isenabled",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "Url": {
            "title": "Url",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "WebhookEndpointWithSecret": {
        "title": "WebhookEndpointWithSecret",
        "description": "Same shape as WebhookEndpoint, plus the signing secret.\n\nOnly returned by POST /api/v1/webhooks (creation) and\nPOST /api/v1/webhooks/{id}/rotate-secret. Save this value immediately\n-- it cannot be retrieved again after this response.",
        "type": "object",
        "properties": {
          "ConnectorName": {
            "title": "Connectorname",
            "type": "string"
          },
          "CreatedAt": {
            "title": "Createdat",
            "type": "string"
          },
          "IsEnabled": {
            "title": "Isenabled",
            "type": "boolean"
          },
          "Secret": {
            "title": "Secret",
            "description": "HMAC-SHA256 signing secret; shown only here and on rotate",
            "type": "string"
          },
          "Url": {
            "title": "Url",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "WebhookEndpointId": {
            "title": "Webhookendpointid",
            "description": "The connector id",
            "type": "string"
          }
        },
        "required": [
          "WebhookEndpointId",
          "ConnectorName",
          "IsEnabled",
          "CreatedAt",
          "Secret"
        ]
      },
      "WebhookEndpointsPaginated": {
        "title": "WebhookEndpointsPaginated",
        "description": "Pagination wrapper for GET /api/v1/webhooks",
        "type": "object",
        "properties": {
          "meta": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ResponseMetaBase"
              },
              {
                "type": "null"
              }
            ]
          },
          "records": {
            "title": "Records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookEndpoint"
            }
          }
        },
        "required": [
          "records"
        ]
      },
      "WebhookEventSubscription": {
        "title": "WebhookEventSubscription",
        "description": "One event this webhook endpoint is (or could be) subscribed to.\n\nEventName may be an event this API cannot itself subscribe to, if the\nsubscription was created elsewhere in the app; PUT /{id}/events leaves\nthose alone rather than removing them.",
        "type": "object",
        "properties": {
          "EventName": {
            "$ref": "#/components/schemas/RoutingEventNamesEnum"
          },
          "IsEnabled": {
            "title": "Isenabled",
            "type": "boolean"
          }
        },
        "required": [
          "EventName",
          "IsEnabled"
        ]
      },
      "WebhookEventSubscriptionsUpdate": {
        "title": "WebhookEventSubscriptionsUpdate",
        "description": "Desired set of subscribed events for PUT /api/v1/webhooks/{id}/events.\n\nReplaces the full set of event subscriptions with exactly the events\nlisted here (not a delta):\n- An event listed here with no existing subscription is subscribed\n  (enabled).\n- An event listed here that's already subscribed but disabled is\n  re-enabled.\n- A currently-enabled subscription for an event not listed here is\n  removed.\n- A currently-disabled subscription for an event not listed here is\n  left untouched.\n\nOnly the events listed under EventNames below can be subscribed to\nhere. A subscription for any other event -- created elsewhere in the\napp -- is left untouched by this call, listed or not.",
        "type": "object",
        "properties": {
          "EventNames": {
            "title": "Eventnames",
            "description": "Events to subscribe this webhook endpoint to. Accepts only: MESSAGE_INCOMING, SMS_SENT, SMS_UNDELIVERED, CONVERSATION_REMINDER_DUE, CALL_LOG, CALL_MISSED, VOICEMAIL_RECEIVED, CALL_RECORDING_COMPLETED, CALL_TRANSCRIPT_COMPLETED, CALL_AI_SUMMARY_COMPLETED, NEW_SUBMISSION, TETHER_WIDGET_SUBMISSION, INBOX_CREATED, INBOX_DELETED. Any other event is rejected with a 400 -- including one this endpoint already has a subscription for, created elsewhere in the app, which GET /{id}/events will report but this call cannot manage.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingEventNamesEnum"
            }
          }
        },
        "required": [
          "EventNames"
        ]
      },
      "ChannelType": {
        "type": "string",
        "enum": [
          "sms",
          "whatsapp"
        ]
      },
      "Comment": {
        "type": "object",
        "properties": {
          "Comment": {
            "type": [
              "string",
              "null"
            ]
          },
          "CreatedByUserId": {
            "type": [
              "string",
              "null"
            ]
          },
          "CreatedByUserName": {
            "type": [
              "string",
              "null"
            ]
          },
          "CreatedTime": {
            "$ref": "#/components/schemas/StringInt"
          },
          "MessageCommentId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StringInt"
              },
              {
                "type": "null"
              }
            ]
          },
          "UpdatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "CreatedTime"
        ]
      },
      "Direction": {
        "type": "string",
        "enum": [
          "INBOUND",
          "OUTBOUND"
        ]
      },
      "MediaItem": {
        "type": "object",
        "properties": {
          "ChatServiceId": {
            "type": [
              "string",
              "null"
            ]
          },
          "FileName": {
            "type": [
              "string",
              "null"
            ]
          },
          "MediaId": {
            "type": [
              "string",
              "null"
            ]
          },
          "MediaType": {
            "type": "string"
          },
          "MediaUrl": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "MediaType"
        ]
      },
      "MessageOrder": {
        "type": "string",
        "enum": [
          "asc",
          "desc"
        ]
      },
      "Meta": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "total": {
            "type": "integer",
            "format": "uint",
            "minimum": 0
          }
        },
        "required": [
          "total"
        ]
      },
      "Paginated_for_Call": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/Meta"
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Call"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      },
      "Paginated_for_Conversation": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/Meta"
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Conversation"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      },
      "Paginated_for_Message": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/Meta"
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Message"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      },
      "SendMessageRequest": {
        "type": "object",
        "properties": {
          "ArchiverIds": true,
          "ChannelType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChannelType"
              },
              {
                "type": "null"
              }
            ]
          },
          "Comments": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Comment"
            }
          },
          "ContactId": {
            "type": [
              "string",
              "null"
            ]
          },
          "ContactName": {
            "type": [
              "string",
              "null"
            ]
          },
          "ContactNumber": {
            "type": "string"
          },
          "ConversationId": {
            "type": [
              "string",
              "null"
            ]
          },
          "CrmIds": true,
          "ErrorCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "ErrorMessage": {
            "type": [
              "string",
              "null"
            ]
          },
          "IsIgnored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "IsSilenced": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "LocalMessageId": {
            "type": [
              "string",
              "null"
            ]
          },
          "Message": {
            "type": [
              "string",
              "null"
            ]
          },
          "MessageMediaItems": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/MediaItem"
            }
          },
          "Meta": true,
          "SenderMemberId": {
            "type": [
              "string",
              "null"
            ]
          },
          "SenderName": {
            "type": [
              "string",
              "null"
            ]
          },
          "Tags": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "UserId": {
            "type": "string"
          },
          "UserNumber": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "UserId",
          "ContactNumber"
        ]
      },
      "Status": {
        "type": "string",
        "enum": [
          "OPEN",
          "CLOSED"
        ]
      },
      "StringInt": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer",
            "format": "uint64",
            "minimum": 0
          }
        ]
      },
      "UnixTimestamp": {
        "description": "Unix timestamp in seconds",
        "type": "integer"
      },
      "Paginated_for_TeamMemberExtra": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/Meta"
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMemberExtra"
            }
          }
        },
        "required": [
          "meta",
          "records"
        ]
      }
    }
  },
  "tags": [
    {
      "name": "contacts"
    }
  ],
  "servers": [
    {
      "url": "https://api.currentclient.com",
      "description": "Production"
    },
    {
      "url": "https://api.currentclient.io",
      "description": "Development"
    }
  ]
}