{
  "openapi" : "3.1.0",
  "components" : {
    "schemas" : {
      "ACTION_TYPE" : {
        "type" : "string",
        "enum" : [ "EMAIL", "SCHEDULE", "CALL", "FOLLOW_UP" ]
      },
      "APIKey" : {
        "type" : "object",
        "required" : [ "apiKey", "key", "creationTimestamp", "lastSavedTimestamp", "keyType" ],
        "properties" : {
          "apiKey" : {
            "type" : "string",
            "description" : "The API key secret value."
          },
          "key" : {
            "type" : "string",
            "description" : "Key for this API key."
          },
          "creationTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when this API key was created, in epoch milliseconds."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the last time this key was modified, in epoch milliseconds."
          },
          "keyType" : {
            "description" : "Whether this key authenticates one user or can impersonate members of a team.",
            "type" : "string",
            "$ref" : "#/components/schemas/APIKeyType"
          },
          "teamKey" : {
            "type" : [ "string", "null" ],
            "description" : "Team this key can impersonate members of. Only present for team keys."
          }
        }
      },
      "APIKeyType" : {
        "type" : "string",
        "enum" : [ "USER", "TEAM" ]
      },
      "AUTOBOXING_SOURCE" : {
        "type" : "string",
        "enum" : [ "AUTOBOXING", "EMAIL_FILTER", "FLOW" ]
      },
      "Action" : {
        "type" : "string",
        "enum" : [ "GET", "UPDATE", "DELETE", "CREATE", "CHANGE_PERMISSIONS", "CHANGE_ADMINS", "SET_TEAM", "RESTRICT_SHARING", "OVERRIDE_SHARING_RESTRICTION", "OVERRIDE_VALIDATOR", "RESIZE", "HIDE", "FREEZE", "OPTIONS", "FORMAT", "ORDER", "SUMMARY", "EXPORT", "FLOW_PAUSE_RESUME", "FLOW_VIEW_LOGS", "GET_BOXES" ]
      },
      "ActivitySourceType" : {
        "type" : "string",
        "enum" : [ "HUMAN", "SYSTEM_ONBOARDING", "AI_PIPELINE_CREATOR" ]
      },
      "AssigneeInput" : {
        "description" : "Assignee identified by user key or email address. At least one must be provided. If both are specified, userKey takes precedence.",
        "type" : "object",
        "properties" : {
          "userKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the assigned user. Takes precedence when both userKey and email are specified."
          },
          "email" : {
            "type" : [ "string", "null" ],
            "description" : "Email address for the assigned user. Required when userKey is omitted."
          }
        }
      },
      "AutofillSource" : {
        "type" : "string",
        "enum" : [ "BOX_TIMELINE", "WEB_CRAWLING" ]
      },
      "AutofillStatusType" : {
        "type" : "string",
        "enum" : [ "PENDING", "RUNNING", "COMPLETED", "FAILED" ]
      },
      "Box" : {
        "description" : "A box in a Streak pipeline, including its fields, linked records and activity statistics.",
        "type" : "object",
        "properties" : {
          "lastSavedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time this box was last persisted, in epoch milliseconds."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key of the pipeline containing this box."
          },
          "creatorKey" : {
            "type" : [ "string", "null" ],
            "description" : "Creator key for this box."
          },
          "creationTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Creation timestamp for this box, in epoch milliseconds."
          },
          "lastUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Last updated timestamp for this box, in epoch milliseconds."
          },
          "lastEmailUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Last email updated timestamp for this box, in epoch milliseconds."
          },
          "lastStageChangeTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Last stage change timestamp for this box, in epoch milliseconds."
          },
          "lastCommentTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Last comment timestamp for this box, in epoch milliseconds."
          },
          "lastEmailFrom" : {
            "type" : [ "string", "null" ],
            "description" : "Last email from for this box."
          },
          "firstEmailFrom" : {
            "type" : [ "string", "null" ],
            "description" : "First email from for this box."
          },
          "totalNumberOfEmails" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of emails for this box."
          },
          "totalNumberOfSentEmails" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of sent emails for this box."
          },
          "totalNumberOfLastSentEmailViews" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of last sent email views for this box."
          },
          "totalNumberOfLastSentEmailLinksClicks" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of last sent email links clicks for this box."
          },
          "totalNumberOfSentEmailsViews" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of sent emails views for this box."
          },
          "totalNumberOfReceivedEmails" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of received emails for this box."
          },
          "firstEmailTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "First email timestamp for this box, in epoch milliseconds."
          },
          "firstEmailSentTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "First email sent timestamp for this box, in epoch milliseconds."
          },
          "firstEmailReceivedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "First email received timestamp for this box, in epoch milliseconds."
          },
          "lastEmailSentTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Last email sent timestamp for this box, in epoch milliseconds."
          },
          "lastEmailReceivedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Last email received timestamp for this box, in epoch milliseconds."
          },
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Display name of the box."
          },
          "notes" : {
            "type" : [ "string", "null" ],
            "description" : "Free-form notes saved on the box."
          },
          "summarySnippet" : {
            "type" : [ "string", "null" ],
            "description" : "Generated summary snippet for the box."
          },
          "assignedToSharingEntries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Assigned to sharing entries for this box."
          },
          "creatorSharingEntry" : {
            "description" : "Creator sharing entry for this box.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/UserBrief"
            }, {
              "type" : "null"
            } ]
          },
          "followerSharingEntries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Follower sharing entries for this box."
          },
          "stageKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key of the box stage within its pipeline."
          },
          "followerKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Follower keys for this box."
          },
          "linkedBoxKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Linked box keys for this box."
          },
          "contacts" : {
            "type" : [ "array", "null" ],
            "items" : {
              "description" : "A contact or organization linked to a box.",
              "type" : "object",
              "required" : [ "key" ],
              "properties" : {
                "key" : {
                  "description" : "Key of the linked contact or organization.",
                  "type" : "string"
                },
                "isStarred" : {
                  "type" : "boolean",
                  "description" : "Whether this linked record is starred."
                },
                "isAutoboxed" : {
                  "type" : "boolean",
                  "description" : "Whether this record was linked automatically."
                },
                "autoboxerKey" : {
                  "type" : [ "string", "null" ],
                  "description" : "User who automatically linked the record."
                },
                "autoboxingTimestamp" : {
                  "type" : [ "integer", "null" ],
                  "format" : "int64",
                  "examples" : [ 1646870400000 ],
                  "description" : "Time the record was automatically linked, in epoch milliseconds."
                },
                "autoboxingSource" : {
                  "description" : "Source of the automatic link.",
                  "type" : [ "string", "null" ],
                  "anyOf" : [ {
                    "$ref" : "#/components/schemas/AUTOBOXING_SOURCE"
                  }, {
                    "type" : "null"
                  } ]
                }
              }
            },
            "description" : "Contacts linked to the box, including starring and autoboxing details."
          },
          "organizations" : {
            "type" : [ "array", "null" ],
            "items" : {
              "description" : "A contact or organization linked to a box.",
              "type" : "object",
              "required" : [ "key" ],
              "properties" : {
                "key" : {
                  "description" : "Key of the linked contact or organization.",
                  "type" : "string"
                },
                "isStarred" : {
                  "type" : "boolean",
                  "description" : "Whether this linked record is starred."
                },
                "isAutoboxed" : {
                  "type" : "boolean",
                  "description" : "Whether this record was linked automatically."
                },
                "autoboxerKey" : {
                  "type" : [ "string", "null" ],
                  "description" : "User who automatically linked the record."
                },
                "autoboxingTimestamp" : {
                  "type" : [ "integer", "null" ],
                  "format" : "int64",
                  "examples" : [ 1646870400000 ],
                  "description" : "Time the record was automatically linked, in epoch milliseconds."
                },
                "autoboxingSource" : {
                  "description" : "Source of the automatic link.",
                  "type" : [ "string", "null" ],
                  "anyOf" : [ {
                    "$ref" : "#/components/schemas/AUTOBOXING_SOURCE"
                  }, {
                    "type" : "null"
                  } ]
                }
              }
            },
            "description" : "Organizations linked to the box, including starring and autoboxing details."
          },
          "emailAddressesAutoExtracted" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Email addresses extracted from the box emails."
          },
          "emailAddressesBlacklist" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Email addresses excluded from the composed box email list."
          },
          "emailAddresses" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Extracted email addresses after excluding the blacklist."
          },
          "taskCompleteCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Task complete count for this box."
          },
          "taskIncompleteCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Task incomplete count for this box."
          },
          "taskOverdueCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Task overdue count for this box."
          },
          "taskAssigneeKeySet" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Task assignee key set for this box."
          },
          "soonestTaskDueDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Soonest task due date for this box, in epoch milliseconds."
          },
          "earliestOverdueTaskDueDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Earliest overdue task due date for this box, in epoch milliseconds."
          },
          "overdueTaskAssigneeKeySet" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Overdue task assignee key set for this box."
          },
          "incompleteTaskAssigneeKeySet" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Incomplete task assignee key set for this box."
          },
          "taskAssigneeSharingEntrySet" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Task assignee sharing entry set for this box."
          },
          "overdueTaskAssigneeSharingEntrySet" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Overdue task assignee sharing entry set for this box."
          },
          "incompleteTaskAssigneeSharingEntrySet" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Incomplete task assignee sharing entry set for this box."
          },
          "taskPercentageComplete" : {
            "type" : "number",
            "format" : "double",
            "description" : "Fraction of box tasks that are complete; zero when there are no tasks."
          },
          "taskTotal" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Task total for this box."
          },
          "creationSourceType" : {
            "description" : "Creation source type for this box.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ActivitySourceType"
            }, {
              "type" : "null"
            } ]
          },
          "callLogCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Call log count for this box."
          },
          "meetingNotesCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Meeting notes count for this box."
          },
          "mostRecentCallLogTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Most recent call log timestamp for this box, in epoch milliseconds."
          },
          "mostRecentMeetingNotesTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Most recent meeting notes timestamp for this box, in epoch milliseconds."
          },
          "eventCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of meetings and synced calendar events for this box, excluding no-shows."
          },
          "firstEventTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Earliest past meeting or calendar event for this box, in epoch milliseconds."
          },
          "lastEventTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Most recent past meeting or calendar event for this box, in epoch milliseconds."
          },
          "nextEventTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Next upcoming meeting or calendar event for this box, in epoch milliseconds."
          },
          "mostRecentLastSentEmailViewsTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Most recent last sent email views timestamp for this box, in epoch milliseconds."
          },
          "mostRecentLastSentEmailLinkClickedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Most recent last sent email link clicked timestamp for this box, in epoch milliseconds."
          },
          "mostRecentSentEmailsViewsTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Most recent sent emails views timestamp for this box, in epoch milliseconds."
          },
          "firstCallLogTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "First call log timestamp for this box, in epoch milliseconds."
          },
          "firstMeetingNotesTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "First meeting notes timestamp for this box, in epoch milliseconds."
          },
          "totalCallLogDuration" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Total call log duration for this box."
          },
          "totalMeetingNotesDuration" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Total meeting notes duration for this box."
          },
          "lastTouchpointTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Last touchpoint timestamp for this box, in epoch milliseconds."
          },
          "lastTouchpointType" : {
            "description" : "Last touchpoint type for this box.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TouchPointType"
            }, {
              "type" : "null"
            } ]
          },
          "followerCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Follower count for this box."
          },
          "commentCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Comment count for this box."
          },
          "gmailThreadCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Gmail thread count for this box."
          },
          "fileCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "File count for this box."
          },
          "fields" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/BoxFieldValue"
            },
            "description" : "Custom field values indexed by field key; each value follows its pipeline field type. Null values are omitted."
          },
          "fieldsAutofillStatus" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "$ref" : "#/components/schemas/BoxAutofillStatus"
            },
            "description" : "AI autofill progress indexed by field key."
          },
          "stageHistoryEntries" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "$ref" : "#/components/schemas/BoxStageHistoryEntry"
            },
            "description" : "Stage history entries for this box."
          },
          "key" : {
            "type" : "string",
            "description" : "Unique key identifying this box."
          },
          "freshness" : {
            "type" : "number",
            "format" : "double",
            "description" : "Age score calculated as 1 / (0.3 times days since last activity + 1)."
          },
          "violations" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/BoxViolation"
            },
            "description" : "Validation failures associated with the box."
          }
        },
        "required" : [ "assignedToSharingEntries", "followerSharingEntries", "emailAddresses", "taskAssigneeSharingEntrySet", "overdueTaskAssigneeSharingEntrySet", "incompleteTaskAssigneeSharingEntrySet", "fields", "key" ]
      },
      "BoxAutofillStatus" : {
        "description" : "AI autofill progress for one box field.",
        "type" : "object",
        "properties" : {
          "status" : {
            "description" : "Current state of the autofill operation.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/AutofillStatusType"
            }, {
              "type" : "null"
            } ]
          },
          "failureMessage" : {
            "type" : [ "string", "null" ],
            "description" : "Failure detail when autofill could not finish."
          },
          "wasPopulated" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether AI autofill populated this field."
          }
        }
      },
      "BoxBatchUpdateBody" : {
        "description" : "A box key and the changes to apply to that box.",
        "type" : "object",
        "properties" : {
          "notes" : {
            "type" : [ "string", "null" ],
            "description" : "Box notes. An empty string clears the notes."
          },
          "stageKey" : {
            "type" : [ "string", "null" ],
            "description" : "Stage key in the pipeline. Omit to keep the current or default stage."
          },
          "fields" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "$ref" : "#/components/schemas/BoxFieldInput"
            },
            "description" : "Custom field values keyed by field key. Null entries leave fields unchanged."
          },
          "assignedToSharingEntries" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/AssigneeInput"
            },
            "description" : "Users assigned to the box. An empty list removes all assignments."
          },
          "linkedBoxKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Linked boxes. An empty list removes all links."
          },
          "followerKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Users following the box. An empty list removes all followers."
          },
          "contacts" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/BoxContactLinkBody"
            },
            "description" : "Contacts linked to the box. An empty list removes all contacts."
          },
          "organizations" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/BoxOrganizationLinkBody"
            },
            "description" : "Organizations linked to the box. An empty list removes all organizations."
          },
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Box name. Empty or omitted values leave the name unchanged."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Destination pipeline key when moving a box."
          },
          "boxKey" : {
            "type" : "string",
            "description" : "Key of the box to update."
          }
        },
        "required" : [ "boxKey" ]
      },
      "BoxContactLinkBody" : {
        "type" : "object",
        "description" : "A contact linked to a box.",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "description" : "Key of the linked contact.",
            "type" : "string"
          },
          "isStarred" : {
            "type" : "boolean",
            "description" : "Whether this link is starred."
          },
          "isAutoboxed" : {
            "type" : "boolean",
            "description" : "Whether emails for this record are automatically added to the box."
          }
        }
      },
      "BoxCreateBody" : {
        "description" : "Properties of a new box.",
        "type" : "object",
        "properties" : {
          "notes" : {
            "type" : [ "string", "null" ],
            "description" : "Box notes. An empty string clears the notes."
          },
          "stageKey" : {
            "type" : [ "string", "null" ],
            "description" : "Stage key in the pipeline. Omit to keep the current or default stage."
          },
          "fields" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "$ref" : "#/components/schemas/BoxFieldInput"
            },
            "description" : "Custom field values keyed by field key. Null entries leave fields unchanged."
          },
          "assignedToSharingEntries" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/AssigneeInput"
            },
            "description" : "Users assigned to the box. An empty list removes all assignments."
          },
          "linkedBoxKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Linked boxes. An empty list removes all links."
          },
          "followerKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Users following the box. An empty list removes all followers."
          },
          "contacts" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/BoxContactLinkBody"
            },
            "description" : "Contacts linked to the box. An empty list removes all contacts."
          },
          "organizations" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/BoxOrganizationLinkBody"
            },
            "description" : "Organizations linked to the box. An empty list removes all organizations."
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the new box. Must not be empty."
          }
        },
        "required" : [ "name" ]
      },
      "BoxField" : {
        "description" : "A custom field key and its current value.",
        "type" : "object",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key of the custom field."
          },
          "value" : {
            "anyOf" : [ {
              "type" : "string"
            }, {
              "type" : "boolean"
            }, {
              "type" : "integer",
              "format" : "int64"
            }, {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }, {
              "$ref" : "#/components/schemas/BoxFormulaField"
            }, {
              "type" : "null"
            } ],
            "description" : "Current field value. Unset values are omitted."
          }
        }
      },
      "BoxFieldBatchUpdateBody" : {
        "description" : "A custom field key and its new value.",
        "type" : "object",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key of the custom field."
          },
          "value" : {
            "anyOf" : [ {
              "type" : "string"
            }, {
              "type" : "boolean"
            }, {
              "type" : "number",
              "format" : "double"
            }, {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }, {
              "$ref" : "#/components/schemas/BoxFormulaInput"
            }, {
              "type" : "null"
            } ],
            "description" : "Field value. Omit or use null to clear the field."
          }
        }
      },
      "BoxFieldInput" : {
        "anyOf" : [ {
          "type" : "string"
        }, {
          "type" : "boolean"
        }, {
          "type" : "number",
          "format" : "double"
        }, {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }, {
          "$ref" : "#/components/schemas/BoxFormulaInput"
        }, {
          "type" : "null"
        } ]
      },
      "BoxFieldUpdateBody" : {
        "description" : "The new value of a custom field.",
        "type" : "object",
        "properties" : {
          "value" : {
            "anyOf" : [ {
              "type" : "string"
            }, {
              "type" : "boolean"
            }, {
              "type" : "number",
              "format" : "double"
            }, {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }, {
              "$ref" : "#/components/schemas/BoxFormulaInput"
            }, {
              "type" : "null"
            } ],
            "description" : "Field value. Omit or use null to clear the field."
          }
        }
      },
      "BoxFieldValue" : {
        "anyOf" : [ {
          "type" : "string"
        }, {
          "type" : "boolean"
        }, {
          "type" : "integer",
          "format" : "int64"
        }, {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }, {
          "$ref" : "#/components/schemas/BoxFormulaField"
        } ],
        "description" : "A text string, dropdown string key, checkbox boolean, date in epoch milliseconds, array of tag or linked record keys, or formula result object."
      },
      "BoxFormulaField" : {
        "description" : "A formula field and its most recent calculation result.",
        "type" : "object",
        "properties" : {
          "calculationValue" : {
            "description" : "Most recent calculated value; may be a scalar, array or object."
          },
          "errorDetails" : {
            "type" : [ "string", "null" ],
            "description" : "Reason the calculation failed, when available."
          },
          "calculationValueType" : {
            "type" : [ "string", "null" ],
            "description" : "Type recorded for the calculated value."
          },
          "formula" : {
            "type" : [ "string", "null" ],
            "description" : "Formula set on this box, when it overrides the pipeline formula."
          },
          "creationTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time the formula field was created, in epoch milliseconds."
          },
          "lastUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time the formula was last changed, in epoch milliseconds."
          },
          "lastCalculatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time the formula was last calculated, in epoch milliseconds."
          },
          "calculationStatus" : {
            "description" : "Status of the formula calculation.",
            "type" : "string",
            "$ref" : "#/components/schemas/CALCULATION_STATUS"
          }
        },
        "required" : [ "calculationStatus" ]
      },
      "BoxFormulaInput" : {
        "description" : "Formula override for this box.",
        "type" : "object",
        "properties" : {
          "formula" : {
            "type" : [ "string", "null" ],
            "description" : "Formula text. An empty string restores the pipeline formula; null leaves the formula unchanged."
          }
        }
      },
      "BoxOrganizationLinkBody" : {
        "type" : "object",
        "description" : "An organization linked to a box.",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "description" : "Key of the linked organization.",
            "type" : "string"
          },
          "isStarred" : {
            "type" : "boolean",
            "description" : "Whether this link is starred."
          },
          "isAutoboxed" : {
            "type" : "boolean",
            "description" : "Whether emails for this record are automatically added to the box."
          }
        }
      },
      "BoxStageHistoryEntry" : {
        "type" : "object",
        "description" : "Time a box has spent in a pipeline stage.",
        "properties" : {
          "stageKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key of the pipeline stage."
          },
          "lastEntryToStageTs" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Most recent time the box entered the stage, in epoch milliseconds."
          },
          "timeInStageMs" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Accumulated time in this stage, in milliseconds."
          }
        }
      },
      "BoxUpdateBody" : {
        "description" : "Changes to a box. Omitted and null properties leave existing values unchanged.",
        "type" : "object",
        "properties" : {
          "notes" : {
            "type" : [ "string", "null" ],
            "description" : "Box notes. An empty string clears the notes."
          },
          "stageKey" : {
            "type" : [ "string", "null" ],
            "description" : "Stage key in the pipeline. Omit to keep the current or default stage."
          },
          "fields" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "$ref" : "#/components/schemas/BoxFieldInput"
            },
            "description" : "Custom field values keyed by field key. Null entries leave fields unchanged."
          },
          "assignedToSharingEntries" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/AssigneeInput"
            },
            "description" : "Users assigned to the box. An empty list removes all assignments."
          },
          "linkedBoxKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Linked boxes. An empty list removes all links."
          },
          "followerKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Users following the box. An empty list removes all followers."
          },
          "contacts" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/BoxContactLinkBody"
            },
            "description" : "Contacts linked to the box. An empty list removes all contacts."
          },
          "organizations" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/BoxOrganizationLinkBody"
            },
            "description" : "Organizations linked to the box. An empty list removes all organizations."
          },
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Box name. Empty or omitted values leave the name unchanged."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Destination pipeline key when moving a box."
          }
        }
      },
      "BoxViolation" : {
        "type" : "object",
        "description" : "A box validation rule that was not satisfied.",
        "required" : [ "boxKey", "pipelineKey", "boxValidatorKey", "type", "invalidationType" ],
        "properties" : {
          "boxKey" : {
            "type" : "string",
            "description" : "Box that failed validation."
          },
          "pipelineKey" : {
            "type" : "string",
            "description" : "Pipeline containing the box."
          },
          "boxValidatorKey" : {
            "type" : "string",
            "description" : "Validation rule that produced this failure."
          },
          "type" : {
            "description" : "Kind of validation failure.",
            "type" : "string",
            "$ref" : "#/components/schemas/VALIDATION_ERROR_TYPE"
          },
          "invalidationType" : {
            "description" : "Whether the rule blocks the edit or reports a warning.",
            "type" : "string",
            "$ref" : "#/components/schemas/INVALIDATION_TYPE"
          },
          "errorMessage" : {
            "type" : [ "string", "null" ],
            "description" : "Message explaining the validation failure, when available."
          },
          "fieldKey" : {
            "type" : [ "string", "null" ],
            "description" : "Field or box property that failed a field rule."
          },
          "error" : {
            "description" : "Value returned by a formula rule that failed validation; may be a scalar, array or object."
          }
        }
      },
      "CALCULATION_STATUS" : {
        "type" : "string",
        "enum" : [ "NOT_ATTEMPTED", "SUCCESS", "PENDING_WAITING_ON_DEPENDENCY", "FAILURE_SYNTAX", "FAILURE_RUNTIME", "FAILURE_BAD_REFERENCE", "FAILURE_CIRCULAR", "FAILURE_TIMEOUT", "FAILURE_DEPENDENT_ON_FAILED_FORMULA", "FAILURE_UNKNOWN_REASON", "FAILURE_NOT_SUPPORTED_RETURN_VALUE" ]
      },
      "CaseSortByOption" : {
        "type" : "string",
        "enum" : [ "lastUpdatedTimestamp", "creationTimestamp" ]
      },
      "ColoredIcon" : {
        "description" : "An icon with foreground and background colors.",
        "type" : "object",
        "required" : [ "icon", "foregroundColor", "backgroundColor" ],
        "properties" : {
          "icon" : {
            "description" : "Material Symbols icon name.",
            "type" : "string",
            "$ref" : "#/components/schemas/ColoredIconName"
          },
          "foregroundColor" : {
            "type" : "string",
            "description" : "Icon color as a hex CSS color."
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color as a hex CSS color."
          }
        }
      },
      "ColoredIconBody" : {
        "type" : "object",
        "description" : "A complete avatar icon. All three fields are required.",
        "required" : [ "icon", "foregroundColor", "backgroundColor" ],
        "properties" : {
          "icon" : {
            "type" : [ "string", "object" ],
            "enum" : [ "smart_toy", "family_star", "headset_mic", "support_agent", "person_search", "document_search", "stethoscope", "insert_chart", "code_xml", "frame_bug", "build", "sell", "attach_money", "money_bag", "delivery_truck_speed", "package_2", "notifications", "handshake" ],
            "description" : "Material Symbols icon name."
          },
          "foregroundColor" : {
            "type" : "string",
            "description" : "Icon color as a hex CSS color."
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color as a hex CSS color."
          }
        }
      },
      "ColoredIconName" : {
        "type" : "string",
        "enum" : [ "smart_toy", "family_star", "headset_mic", "support_agent", "person_search", "document_search", "stethoscope", "insert_chart", "code_xml", "frame_bug", "build", "sell", "attach_money", "money_bag", "delivery_truck_speed", "package_2", "notifications", "handshake" ]
      },
      "Comment" : {
        "type" : "object",
        "required" : [ "key", "boxKey", "pipelineKey", "creatorKey", "reactionSummary" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key for this comment."
          },
          "boxKey" : {
            "type" : "string",
            "description" : "Key for the box this comment belongs to."
          },
          "pipelineKey" : {
            "type" : "string",
            "description" : "Key for the pipeline this comment belongs to."
          },
          "creatorKey" : {
            "type" : "string",
            "description" : "Key for the user who created this comment."
          },
          "newsfeedEntryKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the newsfeed entry created for this comment."
          },
          "timestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the comment was created, in epoch milliseconds."
          },
          "message" : {
            "type" : [ "string", "null" ],
            "description" : "Comment text."
          },
          "mentions" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/CommentMention"
            },
            "description" : "User mentions found in the comment text."
          },
          "parent" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the parent comment, when this comment is a reply."
          },
          "children" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Keys for this comment's direct replies."
          },
          "reactionSummary" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CommentReactionSummary"
            },
            "description" : "Emoji reactions grouped by emoji."
          },
          "lastSavedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the comment was last persisted, in epoch milliseconds."
          }
        }
      },
      "CommentCreateBody" : {
        "type" : "object",
        "required" : [ "message" ],
        "properties" : {
          "message" : {
            "type" : "string",
            "description" : "Comment text."
          },
          "mentions" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/CommentMentionBody"
            },
            "description" : "Mention ranges in the comment text."
          },
          "parent" : {
            "type" : [ "string", "null" ],
            "description" : "Parent comment key when creating a reply."
          },
          "searchForAtMentions" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether to scan the comment text for unstructured @mentions of users display name, first name or email address."
          }
        }
      },
      "CommentMention" : {
        "type" : "object",
        "required" : [ "userKey" ],
        "properties" : {
          "userKey" : {
            "type" : "string",
            "description" : "Key for the mentioned user."
          },
          "offset" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Zero-based character offset where the mention starts."
          },
          "length" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Character length of the mention."
          }
        }
      },
      "CommentMentionBody" : {
        "type" : "object",
        "required" : [ "userKey" ],
        "properties" : {
          "userKey" : {
            "type" : "string",
            "description" : "Key for the mentioned user."
          },
          "offset" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Mention start offset in the comment text."
          },
          "length" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Mention length in the comment text."
          }
        }
      },
      "CommentReactionBody" : {
        "type" : "object",
        "required" : [ "emoji" ],
        "properties" : {
          "emoji" : {
            "type" : "string",
            "description" : "Emoji to add or remove as a reaction."
          }
        }
      },
      "CommentReactionSummary" : {
        "type" : "object",
        "required" : [ "emoji", "users" ],
        "properties" : {
          "emoji" : {
            "type" : "string",
            "description" : "Emoji used for this reaction group."
          },
          "count" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of users who reacted with this emoji."
          },
          "users" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Users who reacted with this emoji, ordered by oldest reaction first."
          }
        }
      },
      "CommentUpdateBody" : {
        "type" : "object",
        "properties" : {
          "message" : {
            "type" : [ "string", "null" ],
            "description" : "New comment text. Omit this field to keep the existing comment text unchanged."
          },
          "mentions" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/CommentMentionBody"
            },
            "description" : "New mention ranges for the comment text. Omit this field to keep existing mentions unchanged."
          }
        }
      },
      "Contact" : {
        "description" : "A contact shared with the team.",
        "type" : "object",
        "required" : [ "key", "teamKey", "emailAddresses", "phoneNumbers", "addresses", "domains", "normalizedDomains", "contactLinks", "orgLinks", "fields" ],
        "properties" : {
          "key" : {
            "description" : "Stable key for this contact.",
            "type" : "string"
          },
          "teamKey" : {
            "type" : "string",
            "description" : "Key for the team that owns this contact."
          },
          "givenName" : {
            "type" : [ "string", "null" ],
            "description" : "Given name of the contact."
          },
          "familyName" : {
            "type" : [ "string", "null" ],
            "description" : "Family name of the contact."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "Notes about the contact."
          },
          "title" : {
            "type" : [ "string", "null" ],
            "description" : "Job title of the contact."
          },
          "emailAddresses" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Normalized email addresses with duplicates removed, in first-occurrence order."
          },
          "phoneNumbers" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Phone numbers with duplicates and null entries removed, in first-occurrence order."
          },
          "addresses" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Postal addresses with duplicates and null entries removed, in first-occurrence order."
          },
          "domains" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Website domains associated with the contact."
          },
          "normalizedDomains" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Stored normalized domains used to match organizations."
          },
          "twitterHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Twitter profile handle."
          },
          "facebookHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Facebook profile handle."
          },
          "linkedinHandle" : {
            "type" : [ "string", "null" ],
            "description" : "LinkedIn profile handle."
          },
          "instagramHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Instagram profile handle."
          },
          "photoUrl" : {
            "type" : [ "string", "null" ],
            "description" : "URL of the contact profile image."
          },
          "lastSavedUserKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the user who last edited this record."
          },
          "creatorKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the user who created this record."
          },
          "creationDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time this record was first created, in epoch milliseconds."
          },
          "versionTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time this version of the record was created, in epoch milliseconds."
          },
          "lastSavedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time this record was last saved, in epoch milliseconds."
          },
          "lastEnrichmentTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time enrichment was last applied or reviewed, in epoch milliseconds."
          },
          "contactLinks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ContactLink"
            },
            "description" : "Contacts linked to this record, in their stored order."
          },
          "orgLinks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationLink"
            },
            "description" : "Organizations linked to this record, in their stored order."
          },
          "fields" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Custom field values keyed by field identifier."
          }
        }
      },
      "ContactCreate" : {
        "description" : "Contact details to create. At least one name or email address is required. Links and custom fields are changed with a subsequent update.",
        "type" : "object",
        "properties" : {
          "givenName" : {
            "type" : [ "string", "null" ],
            "description" : "Given name."
          },
          "familyName" : {
            "type" : [ "string", "null" ],
            "description" : "Family name."
          },
          "title" : {
            "type" : [ "string", "null" ],
            "description" : "Job title."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "Additional notes about the contact."
          },
          "emailAddresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Email addresses for the contact."
          },
          "phoneNumbers" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Phone numbers for the contact."
          },
          "addresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Postal addresses for the contact."
          },
          "domains" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Website domains associated with the contact."
          },
          "twitterHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Twitter handle."
          },
          "facebookHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Facebook handle."
          },
          "linkedinHandle" : {
            "type" : [ "string", "null" ],
            "description" : "LinkedIn handle."
          },
          "instagramHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Instagram handle."
          },
          "photoUrl" : {
            "type" : [ "string", "null" ],
            "description" : "URL for the contact's photo."
          }
        }
      },
      "ContactKeyBatch" : {
        "type" : "object",
        "additionalProperties" : {
          "$ref" : "#/components/schemas/Contact"
        }
      },
      "ContactLink" : {
        "description" : "A relationship to a contact.",
        "type" : "object",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "description" : "Key for the linked contact.",
            "type" : "string"
          },
          "isMagicLinked" : {
            "type" : "boolean",
            "description" : "Whether Streak linked this record automatically."
          },
          "creationTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time the relationship was created, in epoch milliseconds."
          }
        }
      },
      "ContactLinkInput" : {
        "description" : "A relationship to a contact.",
        "type" : "object",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "description" : "Key of the related contact.",
            "type" : "string"
          },
          "isMagicLinked" : {
            "type" : "boolean",
            "description" : "Whether the relationship was created automatically."
          },
          "creationTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Relationship creation timestamp, in epoch milliseconds, when known."
          }
        }
      },
      "ContactPage" : {
        "description" : "A page of contact records and its continuation cursor.",
        "type" : "object",
        "required" : [ "results" ],
        "properties" : {
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Contact"
            },
            "description" : "Records in this page, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Opaque cursor to pass to the next page request, when present."
          }
        }
      },
      "ContactUpdate" : {
        "description" : "Contact changes. Omitted or null properties remain unchanged. Lists replace existing values; an empty list clears them subject to contact validation.",
        "type" : "object",
        "properties" : {
          "givenName" : {
            "type" : [ "string", "null" ],
            "description" : "New given name; an empty string clears it if another identifier remains."
          },
          "familyName" : {
            "type" : [ "string", "null" ],
            "description" : "New family name; an empty string clears it if another identifier remains."
          },
          "title" : {
            "type" : [ "string", "null" ],
            "description" : "New job title; an empty string clears it."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "New notes; an empty string clears them."
          },
          "emailAddresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement email addresses; a contact must retain an email address or a name."
          },
          "phoneNumbers" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement phone numbers. Empty entries are removed."
          },
          "addresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement postal addresses. Empty entries are removed."
          },
          "domains" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement website domains."
          },
          "twitterHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement Twitter handle."
          },
          "facebookHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement Facebook handle."
          },
          "linkedinHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement LinkedIn handle."
          },
          "instagramHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement Instagram handle."
          },
          "photoUrl" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement photo URL."
          },
          "fields" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Custom-field values to merge by field key. Null entries are ignored; an empty map leaves existing fields unchanged."
          },
          "contactLinks" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/ContactLinkInput"
            },
            "description" : "Replacement links to contacts; an empty list removes the links."
          },
          "orgLinks" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/OrganizationLinkInput"
            },
            "description" : "Replacement links to organizations; an empty list removes the links."
          }
        }
      },
      "DirectoryFieldBody" : {
        "description" : "A complete custom field definition for team contacts or organizations.",
        "type" : "object",
        "required" : [ "name", "type" ],
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Display name for the field. Leading and trailing spaces are removed."
          },
          "type" : {
            "description" : "Data type stored by the field.",
            "type" : "string",
            "$ref" : "#/components/schemas/FIELD_TYPE"
          },
          "defaultValue" : {
            "type" : [ "string", "null" ],
            "description" : "Default text for the field. Omit to leave the field without a default."
          },
          "dropdownSettings" : {
            "description" : "Complete dropdown option list, when applicable.",
            "type" : "object",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamDropdownSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          },
          "tagSettings" : {
            "description" : "Complete tag list, when applicable.",
            "type" : "object",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamTagSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "DirectoryFieldValueUpdateBody" : {
        "description" : "A custom text field value for a contact or organization.",
        "type" : "object",
        "required" : [ "value" ],
        "properties" : {
          "value" : {
            "type" : "string",
            "description" : "Text to store. Use an empty string to clear the text."
          }
        }
      },
      "EmailSharing" : {
        "type" : "string",
        "enum" : [ "None", "Existence" ]
      },
      "FIELD_TYPE" : {
        "type" : "string",
        "enum" : [ "TEXT_INPUT", "DROPDOWN", "CHECKBOX", "DATE", "PERSON", "FORMULA", "TAG", "TEAM_CONTACT", "TEAM_ORGANIZATION" ]
      },
      "INVALIDATION_TYPE" : {
        "type" : "string",
        "enum" : [ "REJECT", "WARN" ]
      },
      "InviteStatus" : {
        "type" : "string",
        "enum" : [ "Pending", "Accepted" ]
      },
      "ListIndicator" : {
        "description" : "Information shown in the box indicator on Gmail thread rows.",
        "type" : "string",
        "enum" : [ "pipeline", "box", "stage", "assignedTo" ]
      },
      "MEETING_TYPE" : {
        "type" : "string",
        "enum" : [ "CALL_LOG", "MEETING_NOTES" ]
      },
      "Meeting" : {
        "type" : "object",
        "required" : [ "key", "boxKey", "pipelineKey", "creatorKey", "taskKeys", "creationDate", "meetingType", "startTimestamp", "notes", "lastSavedTimestamp" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key for this meeting."
          },
          "boxKey" : {
            "type" : "string",
            "description" : "Key for the box this meeting belongs to."
          },
          "pipelineKey" : {
            "type" : "string",
            "description" : "Key for the pipeline this meeting belongs to."
          },
          "creatorKey" : {
            "type" : "string",
            "description" : "Key for the user who created this meeting."
          },
          "isDraft" : {
            "type" : "boolean",
            "description" : "Whether this meeting is a draft."
          },
          "taskKeys" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Task keys associated with this meeting."
          },
          "creationDate" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when this meeting was created, in epoch milliseconds."
          },
          "meetingType" : {
            "description" : "Meeting type.",
            "type" : "string",
            "$ref" : "#/components/schemas/MEETING_TYPE"
          },
          "startTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Meeting start timestamp, in epoch milliseconds."
          },
          "duration" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Meeting duration in milliseconds."
          },
          "notes" : {
            "type" : "string",
            "description" : "Meeting notes."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when this meeting was last persisted, in epoch milliseconds."
          }
        }
      },
      "MeetingCreateBody" : {
        "type" : "object",
        "required" : [ "meetingType", "startTimestamp" ],
        "properties" : {
          "meetingType" : {
            "description" : "Meeting type.",
            "type" : "string",
            "$ref" : "#/components/schemas/MEETING_TYPE"
          },
          "startTimestamp" : {
            "description" : "Meeting start timestamp, in epoch milliseconds.",
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ]
          },
          "duration" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Meeting duration in milliseconds."
          },
          "notes" : {
            "type" : [ "string", "null" ],
            "description" : "Meeting notes."
          },
          "taskKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Task keys associated with this meeting."
          },
          "isDraft" : {
            "type" : "boolean",
            "description" : "Whether this meeting is a draft."
          }
        }
      },
      "MeetingUpdateBody" : {
        "type" : "object",
        "properties" : {
          "meetingType" : {
            "description" : "New meeting type. Omit this field to keep the existing meeting type unchanged.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/MEETING_TYPE"
            }, {
              "type" : "null"
            } ]
          },
          "startTimestamp" : {
            "description" : "New meeting start timestamp, in epoch milliseconds. Omit this field to keep the existing start time unchanged.",
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ]
          },
          "duration" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "description" : "New meeting duration in milliseconds. Omit this field to keep the existing duration unchanged."
          },
          "notes" : {
            "type" : [ "string", "null" ],
            "description" : "New meeting notes. Omit this field to keep the existing notes unchanged."
          },
          "isDraft" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether to publish a draft meeting. Omit this field to keep the existing draft state unchanged."
          },
          "taskKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement task keys associated with this meeting. Omit this field to keep existing task keys unchanged."
          }
        }
      },
      "NotificationChannel" : {
        "description" : "Where a notification is delivered.",
        "type" : "string",
        "enum" : [ "email", "desktopNotification" ]
      },
      "OperationResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean",
            "description" : "Whether the operation completed successfully."
          },
          "message" : {
            "type" : [ "string", "null" ],
            "description" : "A message describing the result of the operation."
          }
        }
      },
      "Organization" : {
        "description" : "An organization shared with the team.",
        "type" : "object",
        "required" : [ "key", "teamKey", "domains", "normalizedDomains", "phoneNumbers", "addresses", "contactLinks", "orgLinks", "fields" ],
        "properties" : {
          "key" : {
            "description" : "Stable key for this organization.",
            "type" : "string"
          },
          "teamKey" : {
            "type" : "string",
            "description" : "Key for the team that owns this organization."
          },
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Name of the organization."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "Notes about the organization."
          },
          "domains" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Website domains in their stored order."
          },
          "normalizedDomains" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Stored normalized website domains."
          },
          "industry" : {
            "type" : [ "string", "null" ],
            "description" : "Industry of the organization."
          },
          "phoneNumbers" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Phone numbers in their stored order."
          },
          "addresses" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Postal addresses in their stored order."
          },
          "employeeCount" : {
            "type" : [ "string", "null" ],
            "description" : "Employee count or range as text."
          },
          "logoURL" : {
            "type" : [ "string", "null" ],
            "description" : "URL of the organization logo."
          },
          "twitterHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Twitter profile handle."
          },
          "facebookHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Facebook profile handle."
          },
          "linkedinHandle" : {
            "type" : [ "string", "null" ],
            "description" : "LinkedIn profile handle."
          },
          "instagramHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Instagram profile handle."
          },
          "lastSavedUserKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the user who last edited this record."
          },
          "creatorKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the user who created this record."
          },
          "creationDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time this record was first created, in epoch milliseconds."
          },
          "versionTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time this version of the record was created, in epoch milliseconds."
          },
          "lastSavedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time this record was last saved, in epoch milliseconds."
          },
          "lastEnrichmentTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time enrichment was last applied or reviewed, in epoch milliseconds."
          },
          "contactLinks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ContactLink"
            },
            "description" : "Contacts linked to this record, in their stored order."
          },
          "orgLinks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationLink"
            },
            "description" : "Organizations linked to this record, in their stored order."
          },
          "fields" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Custom field values keyed by field identifier."
          }
        }
      },
      "OrganizationCreateBody" : {
        "description" : "Details for a new organization. Provide a name or at least one domain.",
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Organization name."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "Freeform notes about the organization."
          },
          "domains" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Website domains for the organization, with the primary domain first."
          },
          "industry" : {
            "type" : [ "string", "null" ],
            "description" : "Industry of the organization."
          },
          "phoneNumbers" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Phone numbers for the organization."
          },
          "addresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Postal addresses for the organization."
          },
          "employeeCount" : {
            "type" : [ "string", "null" ],
            "description" : "Company size as text, which can include an employee-count range."
          },
          "logoURL" : {
            "type" : [ "string", "null" ],
            "description" : "URL of the organization's logo."
          },
          "twitterHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Twitter profile handle or URL."
          },
          "facebookHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Facebook profile handle or URL."
          },
          "linkedinHandle" : {
            "type" : [ "string", "null" ],
            "description" : "LinkedIn profile handle or URL."
          },
          "instagramHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Instagram profile handle or URL."
          }
        }
      },
      "OrganizationLink" : {
        "description" : "A relationship to an organization.",
        "type" : "object",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "description" : "Stable key for the linked organization.",
            "type" : "string"
          },
          "isMagicLinked" : {
            "type" : "boolean",
            "description" : "Whether Streak linked this record automatically."
          },
          "creationTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Time the relationship was created, in epoch milliseconds."
          }
        }
      },
      "OrganizationLinkInput" : {
        "description" : "A relationship to an organization.",
        "type" : "object",
        "required" : [ "key" ],
        "properties" : {
          "key" : {
            "description" : "Key of the related organization.",
            "type" : "string"
          },
          "isMagicLinked" : {
            "type" : "boolean",
            "description" : "Whether the relationship was created automatically."
          },
          "creationTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Relationship creation timestamp, in epoch milliseconds, when known."
          }
        }
      },
      "OrganizationPage" : {
        "description" : "A page of organization records and its continuation cursor.",
        "type" : "object",
        "required" : [ "results" ],
        "properties" : {
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Organization"
            },
            "description" : "Records in this page, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Opaque cursor to pass to the next page request, when present."
          }
        }
      },
      "OrganizationUpdateBody" : {
        "description" : "Organization changes. Omitted or null properties are unchanged; supplied lists replace existing lists.",
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement organization name. A name or domain must remain after the update."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement notes. An empty string clears the notes."
          },
          "domains" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement domains, with the primary domain first. An empty list clears domains if a name remains."
          },
          "industry" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement industry."
          },
          "phoneNumbers" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement phone numbers. An empty list clears existing phone numbers."
          },
          "addresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Replacement postal addresses. An empty list clears existing addresses."
          },
          "employeeCount" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement company size as text, including employee-count ranges."
          },
          "logoURL" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement organization logo URL."
          },
          "twitterHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement Twitter profile handle or URL."
          },
          "facebookHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement Facebook profile handle or URL."
          },
          "linkedinHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement LinkedIn profile handle or URL."
          },
          "instagramHandle" : {
            "type" : [ "string", "null" ],
            "description" : "Replacement Instagram profile handle or URL."
          },
          "contactLinks" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/ContactLinkInput"
            },
            "description" : "Replacement contact relationships. An empty list removes existing relationships."
          },
          "orgLinks" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/OrganizationLinkInput"
            },
            "description" : "Replacement organization relationships. An empty list removes existing relationships."
          },
          "fields" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Custom field values to change, keyed by field ID. Omitted keys and null values are unchanged; an empty object makes no changes."
          }
        }
      },
      "Pipeline" : {
        "type" : "object",
        "required" : [ "key", "creatorKey", "name", "icon", "fields", "stages", "stageOrder", "stageColorTheme", "creationTimestamp", "lastUpdatedTimestamp", "customPermissionSets", "defaultPermissionSetName", "aclEntries", "creationSourceType", "lastSavedTimestamp" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key for this pipeline."
          },
          "teamKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the team that owns this pipeline."
          },
          "creatorKey" : {
            "type" : "string",
            "description" : "Key for the user who created this pipeline."
          },
          "name" : {
            "type" : "string",
            "description" : "Pipeline name."
          },
          "icon" : {
            "type" : "string",
            "description" : "Pipeline icon name."
          },
          "description" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline description."
          },
          "sharingRestrictedToTeam" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether sharing is restricted to the team."
          },
          "fields" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PipelineField"
            },
            "description" : "Custom fields configured for this pipeline."
          },
          "stages" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/PipelineStage"
            },
            "description" : "Stages in this pipeline, keyed by stage key."
          },
          "stageOrder" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The display order of the stages"
          },
          "stageColorTheme" : {
            "description" : "Color theme used for stages without custom colors.",
            "type" : "string",
            "$ref" : "#/components/schemas/WorkflowTheme"
          },
          "creationTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the pipeline was created, in epoch milliseconds."
          },
          "lastUpdatedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the pipeline was last updated, in epoch milliseconds."
          },
          "formulasLastUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Latest formula-definition update timestamp, in epoch milliseconds."
          },
          "customPermissionSets" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/PipelinePermissionSet"
            },
            "description" : "Custom permission sets configured for this pipeline."
          },
          "defaultPermissionSetName" : {
            "type" : "string",
            "description" : "Default permission set assigned to users without an explicit assignment."
          },
          "aclEntries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PipelineSharingEntry"
            },
            "description" : "Users explicitly sharing this pipeline and their permission assignments."
          },
          "creationSourceType" : {
            "description" : "Source that created the pipeline.",
            "type" : "string",
            "$ref" : "#/components/schemas/ActivitySourceType"
          },
          "boxCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Current number of boxes in the pipeline."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the pipeline was last persisted, in epoch milliseconds."
          }
        }
      },
      "PipelineAiSettings" : {
        "type" : "object",
        "required" : [ "prompt", "source" ],
        "properties" : {
          "prompt" : {
            "type" : "string",
            "description" : "Prompt used for AI autofill."
          },
          "source" : {
            "description" : "Content used as context for AI autofill.",
            "type" : "string",
            "$ref" : "#/components/schemas/PipelineAutofillSource"
          }
        }
      },
      "PipelineAutofillSource" : {
        "description" : "Content used as context for AI autofill. BOX_TIMELINE uses the pipeline item's timeline; WEB_CRAWLING uses content found on the web.",
        "type" : "string",
        "enum" : [ "BOX_TIMELINE", "WEB_CRAWLING" ]
      },
      "PipelineConditionalCheck" : {
        "description" : "Condition required for a permission to apply. NONE has no additional condition; ASSIGNED_TO and CREATOR match the user to the entity; BOX_UPDATE and BOX_VIEW require the corresponding permission on the containing pipeline item; UNARCHIVED requires an unarchived item. FIELD_COMPARISON and STAGE are reserved and currently unsupported.",
        "type" : "string",
        "enum" : [ "NONE", "ASSIGNED_TO", "FIELD_COMPARISON", "STAGE", "CREATOR", "BOX_UPDATE", "BOX_VIEW", "UNARCHIVED" ]
      },
      "PipelineCreate" : {
        "type" : "object",
        "required" : [ "name", "teamKey", "stages" ],
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Pipeline name."
          },
          "teamKey" : {
            "type" : "string",
            "description" : "Key for the team that will own the pipeline."
          },
          "stages" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Stage names in display order."
          },
          "icon" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline icon name."
          },
          "description" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline description."
          },
          "templateType" : {
            "type" : [ "string", "null" ],
            "description" : "Template identifier associated with the pipeline."
          },
          "fields" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/PipelineFieldCreate"
            },
            "description" : "Fields to create in the pipeline."
          },
          "defaultPermissionSetName" : {
            "type" : [ "string", "null" ],
            "description" : "Default permission set for users without an explicit assignment."
          },
          "sharingRestrictedToTeam" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether sharing is restricted to members of the owning team."
          }
        }
      },
      "PipelineDropdownItem" : {
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : [ "string", "null" ],
            "description" : "Option key."
          },
          "name" : {
            "type" : "string",
            "description" : "Option name."
          }
        },
        "required" : [ "name" ]
      },
      "PipelineDropdownSettings" : {
        "type" : "object",
        "required" : [ "items" ],
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PipelineDropdownItem"
            },
            "description" : "Available dropdown options."
          }
        }
      },
      "PipelineField" : {
        "type" : "object",
        "required" : [ "key", "name", "type", "aiSettings" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Field key within the pipeline."
          },
          "name" : {
            "type" : "string",
            "description" : "Field name."
          },
          "type" : {
            "description" : "Field data type.",
            "type" : "string",
            "$ref" : "#/components/schemas/FIELD_TYPE"
          },
          "defaultValue" : {
            "description" : "Default value for this field."
          },
          "lastDefaultValueUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the default value last changed, in epoch milliseconds."
          },
          "lastUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when this field last changed, in epoch milliseconds."
          },
          "dropdownSettings" : {
            "description" : "Dropdown options when this is a dropdown field.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PipelineDropdownSettings"
            }, {
              "type" : "null"
            } ]
          },
          "tagSettings" : {
            "description" : "Tag options when this is a tag field.",
            "type" : "object",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PipelineTagSettings"
            }, {
              "type" : "null"
            } ]
          },
          "aiSettings" : {
            "description" : "AI autofill settings for this field.",
            "type" : "object",
            "$ref" : "#/components/schemas/PipelineAiSettings"
          }
        }
      },
      "PipelineFieldAiSettingsUpdate" : {
        "description" : "Changes to AI settings.",
        "type" : "object",
        "properties" : {
          "prompt" : {
            "type" : [ "string", "null" ],
            "description" : "AI prompt. An empty string clears it."
          },
          "source" : {
            "description" : "Content used for AI autofill.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/AutofillSource"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "PipelineFieldCreate" : {
        "type" : "object",
        "required" : [ "name", "type" ],
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Field name."
          },
          "type" : {
            "description" : "Field data type.",
            "type" : "string",
            "$ref" : "#/components/schemas/FIELD_TYPE"
          },
          "defaultValue" : {
            "type" : [ "string", "null" ],
            "description" : "Initial default value. Currently only used for formula fields."
          }
        }
      },
      "PipelineFieldDropdownItemUpdate" : {
        "description" : "An existing or new dropdown option.",
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : [ "string", "null" ],
            "description" : "Existing option key. Omit the key when adding an option."
          },
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Nonempty option label."
          }
        }
      },
      "PipelineFieldDropdownSettingsUpdate" : {
        "description" : "Dropdown options in the requested order.",
        "type" : "object",
        "properties" : {
          "items" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/PipelineFieldDropdownItemUpdate"
            },
            "description" : "Options to keep or add. An empty list removes all options unless addOnly is true."
          }
        }
      },
      "PipelineFieldTagItemUpdate" : {
        "description" : "An existing or new tag option.",
        "type" : "object",
        "properties" : {
          "key" : {
            "type" : [ "string", "null" ],
            "description" : "Existing tag key. Omit the key when adding a tag."
          },
          "tag" : {
            "type" : [ "string", "null" ],
            "description" : "Nonempty tag label."
          }
        }
      },
      "PipelineFieldTagSettingsUpdate" : {
        "description" : "Tag options in the requested order.",
        "type" : "object",
        "properties" : {
          "tags" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/PipelineFieldTagItemUpdate"
            },
            "description" : "Tags to keep or add. An empty list removes all tags unless addOnly is true."
          }
        }
      },
      "PipelineFieldUpdate" : {
        "description" : "Changes to a pipeline field.",
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "New field name."
          },
          "defaultValue" : {
            "type" : [ "string", "null" ],
            "description" : "New default value or formula."
          },
          "dropdownSettings" : {
            "description" : "Dropdown options to apply.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PipelineFieldDropdownSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          },
          "tagSettings" : {
            "description" : "Tag options to apply.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PipelineFieldTagSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          },
          "aiSettings" : {
            "description" : "AI settings to update.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PipelineFieldAiSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "PipelinePermission" : {
        "type" : "object",
        "required" : [ "entityType", "action", "conditionalCheck" ],
        "properties" : {
          "entityType" : {
            "type" : "string",
            "description" : "Entity type governed by the permission."
          },
          "action" : {
            "description" : "Action granted by the permission.",
            "type" : "string",
            "$ref" : "#/components/schemas/Action"
          },
          "conditionalCheck" : {
            "description" : "Condition that must be satisfied for the permission to apply.",
            "type" : "string",
            "$ref" : "#/components/schemas/PipelineConditionalCheck"
          },
          "params" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Additional parameters used by the conditional check."
          }
        }
      },
      "PipelinePermissionInput" : {
        "type" : "object",
        "required" : [ "entityType", "action", "conditionalCheck" ],
        "properties" : {
          "entityType" : {
            "type" : "string",
            "description" : "Entity type governed by the permission."
          },
          "action" : {
            "description" : "Action granted by the permission.",
            "type" : "string",
            "$ref" : "#/components/schemas/Action"
          },
          "conditionalCheck" : {
            "description" : "Condition that must be satisfied for the permission to apply.",
            "type" : "string",
            "$ref" : "#/components/schemas/PipelineConditionalCheck"
          },
          "params" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Additional parameters used by the conditional check."
          }
        }
      },
      "PipelinePermissionSet" : {
        "type" : "object",
        "required" : [ "permissions" ],
        "properties" : {
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PipelinePermission"
            },
            "description" : "Permissions granted by this set."
          },
          "userAssignable" : {
            "type" : "boolean",
            "description" : "Whether users may be assigned this permission set."
          }
        }
      },
      "PipelinePermissionSetInput" : {
        "type" : "object",
        "required" : [ "permissions" ],
        "properties" : {
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PipelinePermissionInput"
            },
            "description" : "Permissions granted by this set."
          },
          "userAssignable" : {
            "type" : "boolean",
            "description" : "Whether users may be assigned this permission set."
          }
        }
      },
      "PipelineSharingEntry" : {
        "type" : "object",
        "required" : [ "userKey", "permissionSetName" ],
        "properties" : {
          "userKey" : {
            "type" : "string",
            "description" : "Key for the shared user."
          },
          "permissionSetName" : {
            "type" : "string",
            "description" : "Permission set assigned to the user."
          },
          "email" : {
            "type" : [ "string", "null" ],
            "description" : "User email address."
          },
          "displayName" : {
            "type" : [ "string", "null" ],
            "description" : "User display name."
          },
          "fullName" : {
            "type" : [ "string", "null" ],
            "description" : "User full name."
          },
          "givenName" : {
            "type" : [ "string", "null" ],
            "description" : "User given name."
          },
          "image" : {
            "type" : [ "string", "null" ],
            "description" : "User profile image URL."
          },
          "userType" : {
            "description" : "User account type.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/USER_TYPE"
            }, {
              "type" : "null"
            } ]
          },
          "isReadOnly" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether the sharing entry is read-only."
          }
        }
      },
      "PipelineSharingEntryInput" : {
        "type" : "object",
        "properties" : {
          "userKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the user to share with. Takes precedence over email when both are provided."
          },
          "email" : {
            "type" : [ "string", "null" ],
            "description" : "Email address used to find or create the user when userKey is omitted."
          },
          "permissionSetName" : {
            "type" : "string",
            "description" : "Permission set to assign to the user."
          }
        },
        "required" : [ "permissionSetName" ]
      },
      "PipelineStage" : {
        "type" : "object",
        "required" : [ "key", "name", "color" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Stage key within the pipeline."
          },
          "name" : {
            "type" : "string",
            "description" : "Stage name."
          },
          "color" : {
            "description" : "Stage color.",
            "type" : "object",
            "$ref" : "#/components/schemas/PipelineStageColor"
          },
          "isColorFromTheme" : {
            "type" : "boolean",
            "description" : "Whether the color is inherited from the pipeline theme."
          },
          "boxCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of boxes currently in this stage."
          }
        }
      },
      "PipelineStageColor" : {
        "type" : "object",
        "required" : [ "foregroundColor", "backgroundColor" ],
        "properties" : {
          "foregroundColor" : {
            "type" : "string",
            "description" : "Foreground color as a CSS color string."
          },
          "backgroundColor" : {
            "type" : "string",
            "description" : "Background color as a CSS color string."
          }
        }
      },
      "PipelineStageCreate" : {
        "description" : "Values for a new pipeline stage.",
        "type" : "object",
        "required" : [ "name" ],
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Nonempty name of the new stage."
          },
          "color" : {
            "description" : "Custom stage colors. Omit or set to null to use the pipeline theme.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PipelineStageColor"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "PipelineStageUpdate" : {
        "description" : "Changes to a pipeline stage.",
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Nonempty new stage name."
          },
          "color" : {
            "description" : "Custom stage colors. Set both foregroundColor and backgroundColor to empty strings to reset to the pipeline theme.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PipelineStageColor"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "PipelineTagItem" : {
        "type" : "object",
        "required" : [ "key", "tag" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Tag key."
          },
          "tag" : {
            "type" : "string",
            "description" : "Tag label."
          }
        }
      },
      "PipelineTagSettings" : {
        "type" : "object",
        "required" : [ "tags" ],
        "properties" : {
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PipelineTagItem"
            },
            "description" : "Available tags."
          }
        }
      },
      "PipelineUpdate" : {
        "type" : "object",
        "properties" : {
          "teamKey" : {
            "type" : [ "string", "null" ],
            "description" : "New team key. Omit to keep the current team."
          },
          "icon" : {
            "type" : [ "string", "null" ],
            "description" : "New icon. Omit to keep the current icon."
          },
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "New name. Omit to keep the current name."
          },
          "description" : {
            "type" : [ "string", "null" ],
            "description" : "New description. Omit to keep the current description."
          },
          "sharingRestrictedToTeam" : {
            "type" : [ "boolean", "null" ],
            "description" : "New team sharing restriction. Omit to keep the current value."
          },
          "stageOrder" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Complete stage order. Omit to keep the current order; an empty list is invalid."
          },
          "stageColorTheme" : {
            "description" : "New stage color theme. Omit to keep the current theme.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/WorkflowTheme"
            }, {
              "type" : "null"
            } ]
          },
          "customPermissionSets" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "$ref" : "#/components/schemas/PipelinePermissionSetInput"
            },
            "description" : "Replacement custom permission sets. Omit to keep existing sets."
          },
          "defaultPermissionSetName" : {
            "type" : [ "string", "null" ],
            "description" : "New default permission set. Omit to keep the current value."
          },
          "aclEntries" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/PipelineSharingEntryInput"
            },
            "description" : "Replacement sharing entries. Omit to keep existing sharing; an empty list is invalid."
          }
        }
      },
      "REMINDER_STATUS" : {
        "type" : "string",
        "enum" : [ "NONE", "SCHEDULED", "REMINDED", "ERROR_ON_REMINDER", "NOT_REMINDED_BECAUSE_TASK_DONE" ]
      },
      "Role" : {
        "type" : "string",
        "enum" : [ "Member", "Owner", "PayerOnly", "ArchiveOnly" ]
      },
      "SNIPPET_TYPE" : {
        "type" : "string",
        "enum" : [ "HTML", "TEXT" ]
      },
      "SearchBoxResult" : {
        "description" : "Box result returned by the v1 search endpoint.",
        "type" : "object",
        "required" : [ "boxKey" ],
        "properties" : {
          "boxKey" : {
            "type" : "string",
            "description" : "Key for the matching box."
          },
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Box name."
          },
          "lastUpdatedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Timestamp when the box was last updated, in epoch milliseconds."
          },
          "assignedToKeys" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "User keys assigned to the box."
          },
          "stageKey" : {
            "type" : [ "string", "null" ],
            "description" : "Current stage key for the box."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline key for the box."
          }
        }
      },
      "SearchContactResult" : {
        "description" : "Contact result returned by the v1 search endpoint.",
        "type" : "object",
        "properties" : {
          "givenName" : {
            "type" : [ "string", "null" ],
            "description" : "Contact given name."
          },
          "familyName" : {
            "type" : [ "string", "null" ],
            "description" : "Contact family name."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "Contact display name or other indexed text."
          },
          "key" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the matching contact."
          },
          "title" : {
            "type" : [ "string", "null" ],
            "description" : "Contact title."
          },
          "addresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Contact street addresses."
          },
          "emailAddresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Contact email addresses."
          },
          "phoneNumbers" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Contact phone numbers."
          }
        }
      },
      "SearchOrganizationResult" : {
        "description" : "Organization result returned by the v1 search endpoint.",
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "Organization name."
          },
          "other" : {
            "type" : [ "string", "null" ],
            "description" : "Organization display name or other indexed text."
          },
          "key" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the matching organization."
          },
          "industry" : {
            "type" : [ "string", "null" ],
            "description" : "Organization industry."
          },
          "employeeCount" : {
            "type" : [ "string", "null" ],
            "description" : "Organization employee count label."
          },
          "logoURL" : {
            "type" : [ "string", "null" ],
            "description" : "Organization logo URL."
          },
          "normalizedDomains" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Normalized organization domains."
          },
          "domains" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Organization domains."
          },
          "addresses" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            },
            "description" : "Organization street addresses."
          }
        }
      },
      "SearchResponse" : {
        "description" : "Response returned by the legacy v1 search endpoint.",
        "type" : "object",
        "required" : [ "results" ],
        "properties" : {
          "results" : {
            "description" : "Search results grouped by entity type.",
            "type" : "object",
            "$ref" : "#/components/schemas/SearchResults"
          },
          "query" : {
            "type" : [ "string", "null" ],
            "description" : "The query string used for full-text searches. Null when searching by exact box name."
          },
          "page" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Zero-based page number returned by the search."
          }
        }
      },
      "SearchResults" : {
        "type" : "object",
        "description" : "Search results grouped by legacy result collection name.",
        "required" : [ "boxes", "contacts", "orgs" ],
        "properties" : {
          "boxes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SearchBoxResult"
            },
            "description" : "Matching boxes."
          },
          "contacts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SearchContactResult"
            },
            "description" : "Matching contacts."
          },
          "orgs" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SearchOrganizationResult"
            },
            "description" : "Matching organizations."
          }
        }
      },
      "Snippet" : {
        "description" : "A reusable email template, personal or shared with a pipeline.",
        "type" : "object",
        "required" : [ "key", "snippetType", "lastSavedTimestamp" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key of the snippet."
          },
          "snippetName" : {
            "type" : [ "string", "null" ],
            "description" : "Name of the snippet."
          },
          "snippetText" : {
            "type" : [ "string", "null" ],
            "description" : "Email body, interpreted according to snippetType."
          },
          "snippetType" : {
            "description" : "Whether the body contains HTML or plain text.",
            "type" : "string",
            "$ref" : "#/components/schemas/SNIPPET_TYPE"
          },
          "subject" : {
            "type" : [ "string", "null" ],
            "description" : "Optional email subject."
          },
          "snippetKeyShortcut" : {
            "type" : [ "string", "null" ],
            "description" : "Shortcut typed to insert the snippet."
          },
          "userKey" : {
            "type" : [ "string", "null" ],
            "description" : "User who owns the snippet; updates set this to the editor."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline the snippet is shared with; omitted for personal snippets."
          },
          "partOfPipeline" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether the snippet is shared with a pipeline."
          },
          "creationDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "When the snippet was created, in epoch milliseconds."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "When the snippet was last saved, in epoch milliseconds; zero for older records without a timestamp."
          }
        }
      },
      "SnippetCreateBody" : {
        "description" : "A personal snippet, or a snippet shared with a pipeline.",
        "type" : "object",
        "required" : [ "snippetName" ],
        "properties" : {
          "snippetName" : {
            "type" : "string",
            "description" : "Snippet name; must be nonblank and at most 499 characters."
          },
          "snippetText" : {
            "type" : [ "string", "null" ],
            "description" : "Email body, in the format selected by snippetType."
          },
          "snippetType" : {
            "description" : "Format of the email body; omitted or null uses HTML.",
            "type" : [ "string", "null" ],
            "default" : "HTML",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/SNIPPET_TYPE"
            }, {
              "type" : "null"
            } ]
          },
          "subject" : {
            "type" : [ "string", "null" ],
            "description" : "Optional email subject."
          },
          "snippetKeyShortcut" : {
            "type" : [ "string", "null" ],
            "description" : "Optional insertion shortcut."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline to share the snippet with; omit to create a personal snippet."
          }
        }
      },
      "SnippetUpdateBody" : {
        "description" : "Changes to a snippet. Omitted or null fields keep their current values.",
        "type" : "object",
        "properties" : {
          "snippetName" : {
            "type" : [ "string", "null" ],
            "description" : "New name; must be nonblank and at most 499 characters."
          },
          "snippetText" : {
            "type" : [ "string", "null" ],
            "description" : "New email body; an empty string clears the body."
          },
          "subject" : {
            "type" : [ "string", "null" ],
            "description" : "New email subject; an empty string clears the subject."
          },
          "snippetKeyShortcut" : {
            "type" : [ "string", "null" ],
            "description" : "New insertion shortcut; an empty string removes the shortcut."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Destination pipeline. Sharing a personal snippet also requires partOfPipeline to be true."
          },
          "partOfPipeline" : {
            "type" : [ "boolean", "null" ],
            "description" : "False makes a shared snippet personal and requires pipelineKey to be omitted or null. True requires pipelineKey."
          }
        }
      },
      "TASK_STATUS" : {
        "type" : "string",
        "enum" : [ "NOT_DONE", "DONE" ]
      },
      "Task" : {
        "description" : "Task attached to a box, including assignment, due date, status, and suggested actions.",
        "type" : "object",
        "required" : [ "key", "boxKey", "pipelineKey", "creatorKey", "creator", "assignedTo", "creationDate", "lastSavedTimestamp", "lastStatusChangeDate", "text", "status", "reminderStatus" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key for this task."
          },
          "boxKey" : {
            "type" : "string",
            "description" : "Key for the box this task belongs to."
          },
          "pipelineKey" : {
            "type" : "string",
            "description" : "Key for the pipeline this task belongs to."
          },
          "creatorKey" : {
            "type" : "string",
            "description" : "Key for the user who created this task."
          },
          "creator" : {
            "description" : "The user who created this task.",
            "type" : "object",
            "$ref" : "#/components/schemas/UserBrief"
          },
          "assignedTo" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Users assigned to this task. Tasks created without explicit assignees are assigned to the creator by default."
          },
          "creationDate" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when this task was created, in epoch milliseconds."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when this task was last persisted, in epoch milliseconds."
          },
          "lastStatusChangeDate" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when this task status last changed, in epoch milliseconds."
          },
          "dueDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Task due date, in epoch milliseconds."
          },
          "text" : {
            "type" : "string",
            "description" : "Task text."
          },
          "actions" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/TaskAction"
            },
            "description" : "Suggested actions inferred from the task text."
          },
          "status" : {
            "description" : "Task completion status.",
            "type" : "string",
            "$ref" : "#/components/schemas/TASK_STATUS"
          },
          "reminderStatus" : {
            "description" : "Task reminder status.",
            "type" : "string",
            "$ref" : "#/components/schemas/REMINDER_STATUS"
          },
          "meetingKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the meeting this task belongs to, when any."
          }
        }
      },
      "TaskAction" : {
        "description" : "Suggested action inferred from task text.",
        "type" : "object",
        "required" : [ "type", "value", "contact" ],
        "properties" : {
          "type" : {
            "description" : "Suggested action type.",
            "type" : "string",
            "$ref" : "#/components/schemas/ACTION_TYPE"
          },
          "value" : {
            "type" : "string",
            "description" : "Suggested action value, such as an email address or phone number."
          },
          "contact" : {
            "description" : "Contact this action is associated with.",
            "type" : "object",
            "$ref" : "#/components/schemas/Contact"
          }
        }
      },
      "TaskCreateBody" : {
        "description" : "Fields used to create a task on a box.",
        "type" : "object",
        "required" : [ "text" ],
        "properties" : {
          "text" : {
            "type" : "string",
            "description" : "Task text."
          },
          "dueDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Task due date, in epoch milliseconds. Use -1 to create a task with no due date."
          },
          "assignedTo" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/AssigneeInput"
            },
            "description" : "Users to assign to this task. Omit to assign the task to the creator."
          },
          "meetingKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the meeting this task belongs to, when any."
          },
          "isDraft" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether to create this task as a draft. Draft tasks do not send notifications or webhooks."
          },
          "teamContactKey" : {
            "description" : "Key for the contact used to infer suggested task actions.",
            "type" : [ "string", "null" ]
          },
          "draft" : {
            "type" : "boolean"
          }
        }
      },
      "TaskUpdateBody" : {
        "description" : "Fields used to update an existing task. Omitted fields are left unchanged.",
        "type" : "object",
        "properties" : {
          "text" : {
            "type" : [ "string", "null" ],
            "description" : "New task text. Omit this field to keep existing text unchanged."
          },
          "dueDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "New task due date, in epoch milliseconds. Use -1 to clear the due date."
          },
          "status" : {
            "description" : "New task completion status. Omit this field to keep existing status unchanged.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TASK_STATUS"
            }, {
              "type" : "null"
            } ]
          },
          "assignedTo" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/AssigneeInput"
            },
            "description" : "Replacement users assigned to this task. Omit this field to keep existing assignees unchanged."
          },
          "meetingKey" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the meeting this task belongs to. Omit this field to keep existing meeting unchanged."
          },
          "isDraft" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether to publish a draft task. Omit this field to keep existing draft state unchanged."
          },
          "draft" : {
            "type" : "boolean"
          }
        }
      },
      "Team" : {
        "description" : "A Streak team and its membership, sharing, billing, and directory settings.",
        "type" : "object",
        "required" : [ "key", "creationDate", "creator", "members", "name", "emailsToSendInvoiceTo", "lastSavedTimestamp", "contactOrgListPermissions", "contactSettings", "organizationSettings" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key for this team."
          },
          "creationDate" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the team was created, in epoch milliseconds."
          },
          "creator" : {
            "type" : "string",
            "description" : "Key for the user who created the team."
          },
          "members" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TeamMember"
            },
            "description" : "Members of the team and their team roles."
          },
          "name" : {
            "type" : "string",
            "description" : "Display name for the team."
          },
          "sharingRestrictedToTeam" : {
            "type" : "boolean",
            "description" : "Whether sharing outside the team is restricted."
          },
          "automaticallyApproveJoinRequests" : {
            "type" : "boolean",
            "description" : "Whether requests to join the team are approved automatically."
          },
          "automaticallySendInvoiceEmails" : {
            "type" : "boolean",
            "description" : "Whether invoice emails are sent automatically for this team."
          },
          "emailsToSendInvoiceTo" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            },
            "description" : "Additional email addresses that receive team invoices."
          },
          "billingAdmin" : {
            "type" : [ "string", "null" ],
            "description" : "Key for the user who administers billing for this team."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the team was last persisted, in epoch milliseconds."
          },
          "contactOrgListPermissions" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/TeamBasedPermissions"
            },
            "description" : "Permissions for the team's system contact and organization lists."
          },
          "contactSettings" : {
            "description" : "Custom contact field definitions for this team.",
            "type" : "object",
            "$ref" : "#/components/schemas/TeamFieldSettings"
          },
          "organizationSettings" : {
            "description" : "Custom organization field definitions for this team.",
            "type" : "object",
            "$ref" : "#/components/schemas/TeamFieldSettings"
          }
        }
      },
      "TeamAclEntry" : {
        "description" : "A team member's explicit permission for a system list.",
        "type" : "object",
        "required" : [ "userKey", "permissionSetName" ],
        "properties" : {
          "userKey" : {
            "type" : "string",
            "description" : "Key for the user receiving the permission."
          },
          "permissionSetName" : {
            "type" : "string",
            "description" : "Permission set assigned to the user."
          },
          "isReadOnly" : {
            "type" : "boolean",
            "description" : "Whether the permission is fixed and cannot be edited by the requester."
          }
        }
      },
      "TeamAclEntryUpdate" : {
        "description" : "One explicit user permission in a team list ACL.",
        "type" : "object",
        "required" : [ "userKey", "permissionSetName" ],
        "properties" : {
          "userKey" : {
            "type" : "string",
            "description" : "Key for the user receiving the permission."
          },
          "permissionSetName" : {
            "type" : "string",
            "description" : "Permission set assigned to the user."
          }
        }
      },
      "TeamBasedPermissions" : {
        "description" : "Default and user-specific permissions for a system team list.",
        "type" : "object",
        "properties" : {
          "defaultPermissionSetName" : {
            "type" : [ "string", "null" ],
            "description" : "Permission set applied to team members without an explicit override."
          },
          "aclEntries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TeamAclEntry"
            },
            "description" : "User permission overrides in the wire shape used by team sharing controls."
          }
        },
        "required" : [ "aclEntries" ]
      },
      "TeamBasedPermissionsUpdate" : {
        "description" : "Partial permission update for one system team list.",
        "type" : "object",
        "properties" : {
          "defaultPermissionSetName" : {
            "type" : [ "string", "null" ],
            "description" : "New default permission set. Omit to leave the default unchanged."
          },
          "aclEntries" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/TeamAclEntryUpdate"
            },
            "description" : "Complete user override list. Omit to leave overrides unchanged; send an empty list to clear them."
          }
        }
      },
      "TeamCreateBody" : {
        "description" : "A new team and its initial members.",
        "type" : "object",
        "required" : [ "name", "members" ],
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Display name for the new team."
          },
          "members" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TeamMemberCreate"
            },
            "description" : "Initial team members. The authenticated creator must be included."
          }
        }
      },
      "TeamDropdownItem" : {
        "type" : "object",
        "description" : "One option in a team dropdown field.",
        "required" : [ "key", "name" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Stable key for the option."
          },
          "name" : {
            "type" : "string",
            "description" : "Display name for the option."
          }
        }
      },
      "TeamDropdownSettings" : {
        "description" : "Options configured for a team dropdown field.",
        "type" : "object",
        "required" : [ "items" ],
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TeamDropdownItem"
            },
            "description" : "Dropdown options in display order."
          }
        }
      },
      "TeamDropdownSettingsUpdate" : {
        "type" : "object",
        "description" : "Complete option list for a team dropdown field.",
        "required" : [ "items" ],
        "properties" : {
          "items" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TeamDropdownItem"
            },
            "description" : "Dropdown options in display order."
          }
        }
      },
      "TeamField" : {
        "type" : "object",
        "description" : "A custom contact or organization field definition.",
        "required" : [ "name", "key", "type" ],
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Display name for the field."
          },
          "key" : {
            "type" : "string",
            "description" : "Stable key for the field."
          },
          "type" : {
            "description" : "Data type stored by the field.",
            "type" : "string",
            "$ref" : "#/components/schemas/FIELD_TYPE"
          },
          "defaultValue" : {
            "type" : [ "string", "null" ],
            "description" : "Default textual field value, when one is configured."
          },
          "lastDefaultValueUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the default value last changed, in epoch milliseconds."
          },
          "lastUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the field definition last changed, in epoch milliseconds."
          },
          "dropdownSettings" : {
            "description" : "Allowed dropdown options for a dropdown field.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamDropdownSettings"
            }, {
              "type" : "null"
            } ]
          },
          "tagSettings" : {
            "description" : "Allowed tags for a tag field.",
            "type" : "object",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamTagSettings"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "TeamFieldDefinitions" : {
        "description" : "Custom contact or organization field definitions indexed by stable field key.",
        "type" : "object",
        "additionalProperties" : {
          "$ref" : "#/components/schemas/TeamField"
        }
      },
      "TeamFieldSettings" : {
        "type" : "object",
        "description" : "Custom field definitions for a team's contacts or organizations.",
        "required" : [ "fields" ],
        "properties" : {
          "fields" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/TeamField"
            },
            "description" : "Custom fields keyed by their stable field key."
          }
        }
      },
      "TeamFieldSettingsUpdate" : {
        "description" : "Complete custom-field replacement for team contacts or organizations.",
        "type" : "object",
        "required" : [ "fields" ],
        "properties" : {
          "fields" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/TeamFieldUpdate"
            },
            "description" : "Complete custom-field map keyed by stable field key."
          }
        }
      },
      "TeamFieldUpdate" : {
        "type" : "object",
        "description" : "Custom field definition in a complete team directory-field replacement.",
        "required" : [ "name", "type" ],
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Display name for the field."
          },
          "key" : {
            "type" : [ "string", "null" ],
            "description" : "Stable key for the field. The enclosing map key is used when omitted."
          },
          "type" : {
            "description" : "Data type stored by the field.",
            "type" : "string",
            "$ref" : "#/components/schemas/FIELD_TYPE"
          },
          "defaultValue" : {
            "type" : [ "string", "null" ],
            "description" : "Default textual field value, when one is configured."
          },
          "lastDefaultValueUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the default value last changed, in epoch milliseconds."
          },
          "lastUpdatedTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the field definition last changed, in epoch milliseconds."
          },
          "dropdownSettings" : {
            "description" : "Allowed dropdown options for a dropdown field.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamDropdownSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          },
          "tagSettings" : {
            "description" : "Allowed tags for a tag field.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamTagSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "TeamMember" : {
        "type" : "object",
        "description" : "A user and their role and invitation state within a team.",
        "required" : [ "userKey", "role", "inviteDate", "inviteStatus", "emailSharing" ],
        "properties" : {
          "userKey" : {
            "type" : "string",
            "description" : "Key for the member's user account."
          },
          "role" : {
            "description" : "Role held by the member within the team.",
            "type" : "string",
            "$ref" : "#/components/schemas/Role"
          },
          "inviteDate" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the member was invited, in epoch milliseconds."
          },
          "inviteStatus" : {
            "description" : "Current state of the team invitation.",
            "type" : "string",
            "$ref" : "#/components/schemas/InviteStatus"
          },
          "displayName" : {
            "type" : [ "string", "null" ],
            "description" : "Display name for the member."
          },
          "email" : {
            "type" : [ "string", "null" ],
            "description" : "Email address for the member."
          },
          "fullName" : {
            "type" : [ "string", "null" ],
            "description" : "Full name for the member."
          },
          "givenName" : {
            "type" : [ "string", "null" ],
            "description" : "Given name for the member."
          },
          "image" : {
            "type" : [ "string", "null" ],
            "description" : "Profile-image URL for the member."
          },
          "userType" : {
            "description" : "Type of the member's Streak user account.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/USER_TYPE"
            }, {
              "type" : "null"
            } ]
          },
          "emailSharing" : {
            "description" : "Level of email-sharing access granted to this team member.",
            "type" : "string",
            "$ref" : "#/components/schemas/EmailSharing"
          }
        }
      },
      "TeamMemberCreate" : {
        "type" : "object",
        "description" : "A user to add when creating a team.",
        "properties" : {
          "userKey" : {
            "type" : [ "string", "null" ],
            "description" : "Existing user key. Supply either this property or email."
          },
          "email" : {
            "type" : [ "string", "null" ],
            "description" : "Email address used to find or create the user when userKey is omitted."
          }
        }
      },
      "TeamMemberUpdate" : {
        "description" : "One member in a complete team-roster replacement.",
        "type" : "object",
        "properties" : {
          "userKey" : {
            "type" : [ "string", "null" ],
            "description" : "Existing user key. New invitations may supply email instead."
          },
          "email" : {
            "type" : [ "string", "null" ],
            "description" : "Email address used to invite a user when no user key is supplied."
          },
          "role" : {
            "description" : "Role for the team member.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/Role"
            }, {
              "type" : "null"
            } ]
          },
          "inviteStatus" : {
            "description" : "Invitation state for the team member.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/InviteStatus"
            }, {
              "type" : "null"
            } ]
          },
          "emailSharing" : {
            "description" : "Email visibility shared with the team. Allowed values are Existence and None.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/EmailSharing"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "TeamTagItem" : {
        "type" : "object",
        "description" : "One tag configured for a team tag field.",
        "required" : [ "key", "tag" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Stable key for the tag."
          },
          "tag" : {
            "type" : "string",
            "description" : "Display label for the tag."
          }
        }
      },
      "TeamTagSettings" : {
        "type" : "object",
        "description" : "Tags configured for a team tag field.",
        "required" : [ "tags" ],
        "properties" : {
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TeamTagItem"
            },
            "description" : "Tags in display order."
          }
        }
      },
      "TeamTagSettingsUpdate" : {
        "type" : "object",
        "description" : "Complete tag list for a team tag field.",
        "required" : [ "tags" ],
        "properties" : {
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TeamTagItem"
            },
            "description" : "Tags in display order."
          }
        }
      },
      "TeamUpdateBody" : {
        "description" : "Partial update to a team. Omitted properties remain unchanged.",
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : [ "string", "null" ],
            "description" : "New display name for the team."
          },
          "sharingRestrictedToTeam" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether sharing outside the team is restricted."
          },
          "automaticallyApproveJoinRequests" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether requests to join the team are approved automatically."
          },
          "automaticallySendInvoiceEmails" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether invoice emails are sent automatically for this team."
          },
          "emailsToSendInvoiceTo" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            },
            "description" : "Complete replacement for additional invoice-recipient email addresses. Omit to leave unchanged; send an empty set to clear."
          },
          "members" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/TeamMemberUpdate"
            },
            "description" : "Complete replacement roster. Omit this property to leave membership unchanged."
          },
          "contactOrgListPermissions" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "$ref" : "#/components/schemas/TeamBasedPermissionsUpdate"
            },
            "description" : "Permission updates keyed by system list. Omitted list entries remain unchanged."
          },
          "contactSettings" : {
            "description" : "Complete replacement for the team's custom contact fields. Omit to leave unchanged.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamFieldSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          },
          "organizationSettings" : {
            "description" : "Complete replacement for the team's custom organization fields. Omit to leave unchanged.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/TeamFieldSettingsUpdate"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "TouchPointType" : {
        "type" : "string",
        "enum" : [ "EMAIL", "CALL", "MEETING" ]
      },
      "TrendingBox" : {
        "description" : "A box and its recent teammate viewers.",
        "type" : "object",
        "required" : [ "box", "viewers" ],
        "properties" : {
          "box" : {
            "description" : "The viewed box.",
            "type" : "object",
            "$ref" : "#/components/schemas/Box"
          },
          "viewerCount" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of distinct teammates who viewed this box in the last seven days, excluding the current user."
          },
          "viewers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserBrief"
            },
            "description" : "Available viewer profiles, ordered by their most recent visit."
          }
        }
      },
      "USER_TYPE" : {
        "type" : "string",
        "enum" : [ "HUMAN", "AGENT" ]
      },
      "User" : {
        "type" : "object",
        "required" : [ "email", "creationTimestamp", "lastUpdatedTimestamp", "lastSavedTimestamp", "userType", "displayName", "key" ],
        "properties" : {
          "email" : {
            "type" : "string",
            "description" : "The user's normalized email address."
          },
          "creationTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the user account was created, in epoch milliseconds."
          },
          "lastUpdatedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the user entity was last updated, in epoch milliseconds."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the user entity was last persisted, in epoch milliseconds."
          },
          "lastSeenTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when Streak last saw activity for the user, in epoch milliseconds."
          },
          "googleProfileId" : {
            "type" : [ "string", "null" ],
            "description" : "Stable Google profile identifier associated with the user's OAuth account."
          },
          "googleProfilePhotoUrl" : {
            "type" : [ "string", "null" ],
            "description" : "URL of the user's Google profile photo, when available."
          },
          "avatarIcon" : {
            "description" : "Avatar icon shown instead of a photo. Currently always present for agents; absent for humans.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ColoredIcon"
            }, {
              "type" : "null"
            } ]
          },
          "googleProfileLink" : {
            "type" : [ "string", "null" ],
            "description" : "URL of the user's Google profile, when available."
          },
          "googleProfileFullName" : {
            "type" : [ "string", "null" ],
            "description" : "Full display name from the user's Google profile."
          },
          "googleProfileFirstName" : {
            "type" : [ "string", "null" ],
            "description" : "Given name from the user's Google profile, when available."
          },
          "googleProfileLastName" : {
            "type" : [ "string", "null" ],
            "description" : "Family name from the user's Google profile, when available."
          },
          "timezoneId" : {
            "type" : [ "string", "null" ],
            "description" : "IANA timezone identifier for the user, such as America/Los_Angeles."
          },
          "userType" : {
            "description" : "Type of Streak user account, such as a human user or an agent user.",
            "type" : "string",
            "$ref" : "#/components/schemas/USER_TYPE"
          },
          "securityReportOnTeamsPipelines" : {
            "type" : "boolean",
            "description" : "Whether security report emails are enabled for the user's team pipelines."
          },
          "externalSharingRestrictionOnTeamsPipelines" : {
            "type" : "boolean",
            "description" : "Whether external sharing is restricted on the user's team pipelines."
          },
          "automaticallySendInvoiceEmails" : {
            "type" : "boolean",
            "description" : "Whether invoice emails should be sent automatically for the user's billing context."
          },
          "emailsToSendInvoiceTo" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            },
            "description" : "Additional email addresses that should receive invoice emails."
          },
          "customerSpecifiedInvoiceData" : {
            "type" : [ "string", "null" ],
            "description" : "Customer-provided invoice data to include with billing records."
          },
          "firstOauthTimestamp" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "Timestamp when the user first completed OAuth, in epoch milliseconds."
          },
          "wantsTaskDigestEmail" : {
            "type" : "boolean",
            "description" : "Whether the user wants to receive task digest emails."
          },
          "displayName" : {
            "type" : "string",
            "description" : "Display name Streak uses for the user in UI surfaces."
          },
          "key" : {
            "type" : "string",
            "description" : "Key for this user."
          }
        }
      },
      "UserBrief" : {
        "type" : "object",
        "required" : [ "userKey" ],
        "properties" : {
          "userKey" : {
            "type" : "string",
            "description" : "Key for this user."
          },
          "email" : {
            "type" : [ "string", "null" ],
            "description" : "User email address, when available."
          },
          "displayName" : {
            "type" : [ "string", "null" ],
            "description" : "Short display name for this user, when available."
          },
          "fullName" : {
            "type" : [ "string", "null" ],
            "description" : "Full display name for this user, when available."
          },
          "givenName" : {
            "type" : [ "string", "null" ],
            "description" : "Given name for this user, when available."
          },
          "avatarUrl" : {
            "type" : [ "string", "null" ],
            "description" : "Avatar image URL for this user, when available."
          }
        }
      },
      "UserSettings" : {
        "description" : "The current user's settings. Values are effective values: settings the user never changed report their defaults.",
        "type" : "object",
        "properties" : {
          "streakIt" : {
            "type" : "boolean",
            "description" : "Show the Add To Box button on Gmail thread rows."
          },
          "listIndicatorType" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ListIndicator"
            },
            "description" : "Information shown in the box indicator on Gmail thread rows."
          },
          "pixelTrackingDefaultOn" : {
            "type" : "boolean",
            "description" : "Turn on email tracking by default for new emails."
          },
          "snippetAutoComplete" : {
            "type" : "boolean",
            "description" : "Autocomplete snippets in compose."
          },
          "pipelineShared" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a pipeline is shared with the user."
          },
          "followedBox" : {
            "type" : "boolean",
            "description" : "Notify about changes to boxes the user follows or is assigned to. When false, all followedBox* notifications are off."
          },
          "followedBoxStageChange" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a followed box changes stage. Ignored while followedBox is false."
          },
          "followedBoxNewComment" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about new comments on followed boxes. Ignored while followedBox is false."
          },
          "followedAssignedToMe" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a box or task is assigned to the user. Ignored while followedBox is false."
          },
          "followedAssignedToSelf" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when the user assigns a box or task to themselves. Ignored while followedBox is false."
          },
          "followedBoxDataChange" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about data changes on followed boxes. Ignored while followedBox is false."
          },
          "anyBox" : {
            "type" : "boolean",
            "description" : "Notify about changes to all other boxes the user can access. When false, all anyBox* notifications are off."
          },
          "anyBoxStageChange" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when any box changes stage. Ignored while anyBox is false."
          },
          "anyBoxNewComment" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about new comments on any box. Ignored while anyBox is false."
          },
          "anyBoxDataChange" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about data changes on any box. Ignored while anyBox is false."
          },
          "newBox" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a new box is created."
          },
          "tasks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when tasks are due."
          },
          "tasksCompleted" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when others complete tasks the user created."
          },
          "meetings" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about new call logs and meeting notes."
          },
          "importJobStatus" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a pipeline import completes."
          },
          "firstTrackedThreadRead" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify the first time a tracked email is read."
          },
          "firstTrackedThreadClick" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify the first time a tracked email is clicked."
          }
        },
        "required" : [ "listIndicatorType", "pipelineShared", "followedBoxStageChange", "followedBoxNewComment", "followedAssignedToMe", "followedAssignedToSelf", "followedBoxDataChange", "anyBoxStageChange", "anyBoxNewComment", "anyBoxDataChange", "newBox", "tasks", "tasksCompleted", "meetings", "importJobStatus", "firstTrackedThreadRead", "firstTrackedThreadClick" ]
      },
      "UserSettingsV2Body" : {
        "type" : "object",
        "properties" : {
          "streakIt" : {
            "type" : [ "boolean", "null" ],
            "description" : "Show the Add To Box button on Gmail thread rows."
          },
          "listIndicatorType" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/ListIndicator"
            },
            "description" : "Information shown in the box indicator on Gmail thread rows."
          },
          "pixelTrackingDefaultOn" : {
            "type" : [ "boolean", "null" ],
            "description" : "Turn on email tracking by default for new emails."
          },
          "snippetAutoComplete" : {
            "type" : [ "boolean", "null" ],
            "description" : "Autocomplete snippets in compose."
          },
          "pipelineShared" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a pipeline is shared with the user."
          },
          "followedBox" : {
            "type" : [ "boolean", "null" ],
            "description" : "Notify about changes to boxes the user follows or is assigned to. When false, all followedBox* notifications are off."
          },
          "followedBoxStageChange" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a followed box changes stage. Ignored while followedBox is false."
          },
          "followedBoxNewComment" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about new comments on followed boxes. Ignored while followedBox is false."
          },
          "followedAssignedToMe" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a box or task is assigned to the user. Ignored while followedBox is false."
          },
          "followedAssignedToSelf" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when the user assigns a box or task to themselves. Ignored while followedBox is false."
          },
          "followedBoxDataChange" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about data changes on followed boxes. Ignored while followedBox is false."
          },
          "anyBox" : {
            "type" : [ "boolean", "null" ],
            "description" : "Notify about changes to all other boxes the user can access. When false, all anyBox* notifications are off."
          },
          "anyBoxStageChange" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when any box changes stage. Ignored while anyBox is false."
          },
          "anyBoxNewComment" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about new comments on any box. Ignored while anyBox is false."
          },
          "anyBoxDataChange" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about data changes on any box. Ignored while anyBox is false."
          },
          "newBox" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a new box is created."
          },
          "tasks" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when tasks are due."
          },
          "tasksCompleted" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when others complete tasks the user created."
          },
          "meetings" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify about new call logs and meeting notes."
          },
          "importJobStatus" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify when a pipeline import completes."
          },
          "firstTrackedThreadRead" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify the first time a tracked email is read."
          },
          "firstTrackedThreadClick" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/NotificationChannel"
            },
            "description" : "Notify the first time a tracked email is clicked."
          }
        }
      },
      "UserUpdateBody" : {
        "type" : "object",
        "properties" : {
          "timezoneId" : {
            "type" : [ "string", "null" ],
            "description" : "IANA timezone identifier for the user, such as America/Los_Angeles."
          },
          "firstName" : {
            "type" : [ "string", "null" ],
            "description" : "Given name for the user."
          },
          "lastName" : {
            "type" : [ "string", "null" ],
            "description" : "Family name for the user."
          },
          "avatarIcon" : {
            "description" : "Avatar icon for agent users.",
            "type" : [ "object", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ColoredIconBody"
            }, {
              "type" : "null"
            } ]
          },
          "automaticallySendInvoiceEmails" : {
            "type" : [ "boolean", "null" ],
            "description" : "Whether invoice emails should be sent automatically."
          },
          "emailsToSendInvoiceTo" : {
            "type" : [ "array", "null" ],
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            },
            "description" : "Who should receive invoices"
          },
          "customerSpecifiedInvoiceData" : {
            "type" : [ "string", "null" ],
            "description" : "Custom data that should be shown on the invoice"
          }
        }
      },
      "VALIDATION_ERROR_TYPE" : {
        "type" : "string",
        "enum" : [ "DENY_EDIT", "FIELD_SET", "FIELD_NOT_SET", "FORMULA_ERROR", "FORMULA" ]
      },
      "WebHook" : {
        "description" : "A subscription that delivers pipeline or team events to a URL.",
        "type" : "object",
        "required" : [ "key", "event", "targetUrl", "userKey", "lastSavedTimestamp" ],
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "Key identifying the webhook subscription."
          },
          "event" : {
            "description" : "Event that triggers delivery.",
            "type" : "string",
            "$ref" : "#/components/schemas/WebHookEvent"
          },
          "targetUrl" : {
            "type" : "string",
            "description" : "URL that receives webhook deliveries."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline being watched; omitted for team subscriptions."
          },
          "teamKey" : {
            "type" : [ "string", "null" ],
            "description" : "Team being watched; omitted for pipeline subscriptions."
          },
          "userKey" : {
            "type" : "string",
            "description" : "User who created the subscription."
          },
          "token" : {
            "type" : [ "string", "null" ],
            "description" : "Optional token sent in the webhook delivery header."
          },
          "creationDate" : {
            "type" : [ "integer", "null" ],
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "When the subscription was created, in epoch milliseconds."
          },
          "lastSavedTimestamp" : {
            "type" : "integer",
            "format" : "int64",
            "examples" : [ 1646870400000 ],
            "description" : "When the subscription was last saved, in epoch milliseconds."
          }
        }
      },
      "WebHookCreateBody" : {
        "description" : "A webhook subscription for one pipeline or team.",
        "type" : "object",
        "required" : [ "event", "targetUrl" ],
        "properties" : {
          "event" : {
            "description" : "Event to subscribe to. Contact and organization events require a team; other events require a pipeline.",
            "type" : "string",
            "$ref" : "#/components/schemas/WebHookEvent"
          },
          "targetUrl" : {
            "type" : "string",
            "minLength" : 1,
            "description" : "Nonempty URL that receives webhook deliveries."
          },
          "pipelineKey" : {
            "type" : [ "string", "null" ],
            "description" : "Pipeline to watch. Must match the pipeline in the URL when one is provided."
          },
          "teamKey" : {
            "type" : [ "string", "null" ],
            "description" : "Team to watch. Must match the team in the URL when one is provided."
          },
          "token" : {
            "type" : [ "string", "null" ],
            "description" : "Optional token to send in the webhook delivery header."
          }
        }
      },
      "WebHookEvent" : {
        "type" : "string",
        "enum" : [ "BOX_CREATE", "BOX_PRESENCE_CHANGED", "STAGE_CREATE", "BOX_NEW_EMAIL_ADDRESS", "BOX_EDIT", "BOX_CHANGE_STAGE", "BOX_CHANGE_PIPELINE", "BOX_DELETE", "COMMENT_CREATE", "TASK_CREATE", "TASK_COMPLETE", "TASK_DUE", "TASK_UPDATED", "BOX_NEW_EMAIL_RECEIVED", "CONTACT_CREATE", "ORG_CREATE", "CONTACT_UPDATE", "ORG_UPDATE", "CONTACT_DELETE", "ORG_DELETE", "MEETING_CREATE", "MEETING_UPDATE", "THREAD_ADDED_TO_BOX", "THREAD_REMOVED_FROM_BOX" ]
      },
      "WebHookUpdateBody" : {
        "description" : "Changes to a subscription. Omitted or null fields keep their current values.",
        "type" : "object",
        "properties" : {
          "event" : {
            "description" : "New event; must remain in the same pipeline or team event family.",
            "type" : [ "string", "null" ],
            "anyOf" : [ {
              "$ref" : "#/components/schemas/WebHookEvent"
            }, {
              "type" : "null"
            } ]
          },
          "targetUrl" : {
            "type" : [ "string", "null" ],
            "minLength" : 1,
            "description" : "New nonempty URL for webhook deliveries."
          },
          "token" : {
            "type" : [ "string", "null" ],
            "description" : "New delivery token. An empty string replaces the existing token with an empty value."
          }
        }
      },
      "WorkflowTheme" : {
        "type" : "string",
        "enum" : [ "DEFAULT", "STREAK", "RAINBOW_SATURATED", "RAINBOW_FADED", "TRAFFIC_LIGHT_SATURATED", "TRAFFIC_LIGHT_FADED", "LAKESIDE_SATURATED", "LAKESIDE_FADED", "SUNSET_SATURATED", "SUNSET_FADED", "SUMMER_SATURATED", "SUMMER_FADED", "HALLOWEEN_SATURATED", "HALLOWEEN_FADED", "GREYSCALE", "BLUEGREY", "RED", "YELLOWORANGE", "GREEN", "TEAL", "CYAN", "BLUE", "INDIGO", "DEEPPURPLE", "VIOLET", "PINK" ]
      },
      "BoxListResponse" : {
        "description" : "A list of Box(s).",
        "type" : "object",
        "required" : [ "results" ],
        "properties" : {
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Box"
            },
            "description" : "The Box(s) returned by this response."
          }
        }
      },
      "TrendingBoxListResponse" : {
        "description" : "A list of TrendingBox(s).",
        "type" : "object",
        "required" : [ "results" ],
        "properties" : {
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TrendingBox"
            },
            "description" : "The TrendingBox(s) returned by this response."
          }
        }
      },
      "WebHookListResponse" : {
        "description" : "A list of WebHook(s).",
        "type" : "object",
        "required" : [ "results" ],
        "properties" : {
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/WebHook"
            },
            "description" : "The WebHook(s) returned by this response."
          }
        }
      },
      "BoxListResponseWithPaging" : {
        "description" : "A page of Box(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Box"
            },
            "description" : "The Box(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      },
      "CommentListResponseWithPaging" : {
        "description" : "A page of Comment(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Comment"
            },
            "description" : "The Comment(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      },
      "MeetingListResponseWithPaging" : {
        "description" : "A page of Meeting(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Meeting"
            },
            "description" : "The Meeting(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      },
      "PipelineListResponseWithPaging" : {
        "description" : "A page of Pipeline(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Pipeline"
            },
            "description" : "The Pipeline(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      },
      "SnippetListResponseWithPaging" : {
        "description" : "A page of Snippet(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Snippet"
            },
            "description" : "The Snippet(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      },
      "TaskListResponseWithPaging" : {
        "description" : "A page of Task(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Task"
            },
            "description" : "The Task(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      },
      "TeamListResponseWithPaging" : {
        "description" : "A page of Team(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            },
            "description" : "The Team(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      },
      "UserListResponseWithPaging" : {
        "description" : "A page of User(s), with an optional continuation cursor.",
        "type" : "object",
        "properties" : {
          "hasNextPage" : {
            "type" : "boolean",
            "description" : "Whether another page is available. A page can be empty after permission filtering even when this is true."
          },
          "results" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/User"
            },
            "description" : "The User(s) returned by this response, in result order."
          },
          "cursor" : {
            "type" : [ "string", "null" ],
            "description" : "Continuation cursor for endpoints that use cursor pagination. Pass it as cursor to request the next page. Omitted for page-number pagination and when no continuation cursor remains."
          }
        },
        "required" : [ "results" ]
      }
    },
    "securitySchemes" : {
      "bearerAuth" : {
        "type" : "http",
        "scheme" : "bearer"
      }
    }
  },
  "info" : {
    "contact" : {
      "email" : "support@streak.com",
      "name" : "Streak Support",
      "url" : "https://www.streak.com"
    },
    "description" : "RESTful API for Streak CRM",
    "license" : {
      "name" : "Proprietary",
      "url" : "https://www.streak.com/terms"
    },
    "title" : "Streak API",
    "version" : "1.0.0"
  },
  "servers" : [ {
    "url" : "https://api.streak.com/api"
  } ],
  "security" : [ {
    "bearerAuth" : [ ]
  } ],
  "tags" : [ {
    "name" : "API Keys",
    "description" : "API key operations"
  }, {
    "name" : "Boxes",
    "description" : "Box operations"
  }, {
    "name" : "Comments",
    "description" : "Comment operations"
  }, {
    "name" : "Contacts",
    "description" : "Manage team contacts and their relationships."
  }, {
    "name" : "Meetings",
    "description" : "Meeting and call log operations"
  }, {
    "name" : "Organizations",
    "description" : "CRM organization operations"
  }, {
    "name" : "Pipeline Stages",
    "description" : "Pipeline stage operations"
  }, {
    "name" : "Pipelines",
    "description" : "Pipeline operations"
  }, {
    "name" : "Search",
    "description" : "Search operations"
  }, {
    "name" : "SharedDraft",
    "description" : "Shared draft operations"
  }, {
    "name" : "Snippets",
    "description" : "Reusable email templates."
  }, {
    "name" : "Tasks",
    "description" : "Task operations"
  }, {
    "name" : "Teams",
    "description" : "Team operations"
  }, {
    "name" : "Users",
    "description" : "User management operations"
  }, {
    "name" : "Webhooks",
    "description" : "Subscriptions to pipeline and team events."
  } ],
  "paths" : {
    "/v1/apikeys" : {
      "get" : {
        "summary" : "List API keys",
        "description" : "Lists API keys owned by the current user",
        "operationId" : "getApiKeys",
        "tags" : [ "API Keys" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/APIKey"
                  }
                }
              }
            }
          }
        },
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ]
      },
      "put" : {
        "summary" : "Create API key",
        "description" : "Creates an API key for the current user",
        "operationId" : "createApiKey",
        "tags" : [ "API Keys" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/APIKey"
                }
              }
            }
          }
        }
      }
    },
    "/v1/apikeys/{apiKeyKey}" : {
      "delete" : {
        "summary" : "Delete API key",
        "description" : "Deletes an API key by key",
        "operationId" : "deleteApiKey",
        "tags" : [ "API Keys" ],
        "parameters" : [ {
          "name" : "apiKeyKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/boxes/{boxKey}" : {
      "post" : {
        "summary" : "Update a box",
        "description" : "Applies the supplied properties to a box. Omitted or null properties leave values unchanged.",
        "operationId" : "updateBox",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "overrideValidator",
          "in" : "query",
          "description" : "Override blocking box validation rules when the current user has permission.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BoxUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Box"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get box",
        "description" : "Returns a box by key, including its custom fields, linked records and activity statistics.",
        "operationId" : "getBox",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Box"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete a box",
        "description" : "Deletes a box and all of its contents. Leaves linked boxes, contacts and orgs untouched.",
        "operationId" : "deleteBox",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/boxes/{boxKey}/fields" : {
      "post" : {
        "summary" : "Update multiple box fields",
        "description" : "Sets the supplied custom fields. Null or omitted values clear fields. Date values in this legacy response are epoch-millisecond strings.",
        "operationId" : "updateFields",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "overrideValidator",
          "in" : "query",
          "description" : "Override blocking box validation rules when the current user has permission.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/BoxFieldBatchUpdateBody"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/BoxField"
                  }
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "List box fields",
        "description" : "Returns the box's custom field values in pipeline field order. Unset values are omitted.",
        "operationId" : "listBoxFields",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/BoxField"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/boxes/{boxKey}/fields/{fieldKey}" : {
      "post" : {
        "summary" : "Update a box field",
        "description" : "Sets a custom field value. Omit value or send null to clear the field.",
        "operationId" : "updateField",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "overrideValidator",
          "in" : "query",
          "description" : "Override blocking box validation rules when the current user has permission.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BoxFieldUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Updated field value.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxField"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get box field",
        "description" : "Returns one custom field value from a box. An unset value is omitted.",
        "operationId" : "getBoxField",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxField"
                }
              }
            }
          }
        }
      }
    },
    "/v1/boxes/{boxKey}/md" : {
      "get" : {
        "summary" : "Get box markdown",
        "description" : "Returns the box as one markdown document: an overview, its columns, contacts, organizations, linked boxes, tasks and pipeline, followed by its timeline. Every timestamp is ISO-8601 UTC. The document's structure is best-effort and may change; use the JSON endpoints for a stable contract.",
        "operationId" : "getBoxMarkdown",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "A token cap for the entire document, counted with OpenAI's o200k_base encoding. It covers the box sections first, then uses the remaining tokens for the timeline. A marker shows where entries were left out. If the box does not fit under the cap, a 400 error shows the minimum it needs. Omit the cap to return the full box.",
          "name" : "maxTokens",
          "in" : "query",
          "schema" : {
            "type" : [ "integer", "null" ],
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The box rendered as one markdown document.",
            "content" : {
              "text/markdown" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          }
        }
      }
    },
    "/v1/pipelines/{pipelineKey}/fields" : {
      "get" : {
        "summary" : "List pipeline fields",
        "description" : "Returns the fields in a pipeline in their stored order.",
        "operationId" : "listFields",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PipelineField"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/pipelines/{pipelineKey}/fields/{fieldKey}" : {
      "post" : {
        "summary" : "Update pipeline field",
        "description" : "Updates a field's name, default value, options, or AI settings.",
        "operationId" : "updateField",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Append dropdown or tag options while retaining existing options. Defaults to false.",
          "name" : "addOnly",
          "in" : "query",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PipelineFieldUpdate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PipelineField"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get pipeline field",
        "description" : "Returns a field by its key within a pipeline.",
        "operationId" : "getField",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PipelineField"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete pipeline field",
        "description" : "Deletes a custom field and clears the value from all the pipeline's boxes.",
        "operationId" : "deleteField",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/search" : {
      "get" : {
        "summary" : "Search boxes, contacts, and organizations",
        "description" : "Searches visible boxes, contacts, and organizations by query, or visible boxes by exact name. Exactly one of query or name must be provided.",
        "operationId" : "search",
        "tags" : [ "Search" ],
        "parameters" : [ {
          "description" : "Exact box name to search for.",
          "name" : "name",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "description" : "Zero-based page number.",
          "name" : "page",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 0
          }
        }, {
          "description" : "Pipeline keys to constrain the search to.",
          "name" : "pipelineKey",
          "in" : "query",
          "schema" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "description" : "Full-text query to search across boxes, contacts, and organizations.",
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "description" : "Stage keys to constrain the search to.",
          "name" : "stageKey",
          "in" : "query",
          "schema" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "description" : "Team keys to constrain the search to.",
          "name" : "teamKey",
          "in" : "query",
          "schema" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/me" : {
      "get" : {
        "summary" : "Get current user",
        "description" : "Returns information about the currently authenticated user",
        "operationId" : "getCurrentUser",
        "tags" : [ "Users" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/{userKey}" : {
      "post" : {
        "summary" : "Update user by key",
        "description" : "Updates a specific user by their key",
        "operationId" : "updateUser",
        "tags" : [ "Users" ],
        "parameters" : [ {
          "name" : "userKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get user by key",
        "description" : "Returns information about a specific user by their key",
        "operationId" : "getUser",
        "tags" : [ "Users" ],
        "parameters" : [ {
          "name" : "userKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/v2/boxes/recent" : {
      "get" : {
        "summary" : "List recently viewed boxes",
        "description" : "Returns boxes recently viewed by the current user, most recently viewed first. Only accessible boxes are returned, so permission filtering may reduce the number of results. Limits above 20 are clamped to 20.",
        "operationId" : "getRecentBoxes",
        "tags" : [ "Boxes" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxListResponse"
                }
              }
            }
          }
        },
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return. Default: 5, Maximum: 20",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1,
            "maximum" : 20,
            "default" : 5
          }
        } ]
      }
    },
    "/v2/boxes/trending" : {
      "get" : {
        "summary" : "List trending boxes",
        "description" : "Returns accessible boxes viewed by teammates in the last seven days, ordered by the number of distinct viewers. The current user's views are excluded. Limits above 20 are clamped to 20.",
        "operationId" : "getTrendingBoxes",
        "tags" : [ "Boxes" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TrendingBoxListResponse"
                }
              }
            }
          }
        },
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return. Default: 10, Maximum: 20",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1,
            "maximum" : 20,
            "default" : 10
          }
        } ]
      }
    },
    "/v2/boxes/{boxKey}/comments" : {
      "get" : {
        "summary" : "List comments",
        "description" : "Lists comments on a box",
        "operationId" : "getComments",
        "tags" : [ "Comments" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CommentListResponseWithPaging"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create comment",
        "description" : "Creates a comment on a box",
        "operationId" : "createComment",
        "tags" : [ "Comments" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CommentCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      }
    },
    "/v2/boxes/{boxKey}/meetings" : {
      "get" : {
        "summary" : "List meetings",
        "description" : "Lists meetings and call logs on a box",
        "operationId" : "getMeetings",
        "tags" : [ "Meetings" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MeetingListResponseWithPaging"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create meeting",
        "description" : "Creates a meeting or call log on a box",
        "operationId" : "createMeeting",
        "tags" : [ "Meetings" ],
        "parameters" : [ {
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MeetingCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Meeting"
                }
              }
            }
          }
        }
      }
    },
    "/v2/boxes/{boxKey}/tasks" : {
      "get" : {
        "summary" : "List box tasks",
        "description" : "Lists tasks on a box, ordered by creation date.",
        "operationId" : "getTasksForBox",
        "tags" : [ "Tasks" ],
        "parameters" : [ {
          "description" : "Key for the box whose tasks should be listed.",
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return. Maximum: 1000",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1,
            "maximum" : 1000
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TaskListResponseWithPaging"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create task",
        "description" : "Creates a task on a box.",
        "operationId" : "createTask",
        "tags" : [ "Tasks" ],
        "parameters" : [ {
          "description" : "Key for the box to create the task on.",
          "name" : "boxKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Task fields to create.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TaskCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Task"
                }
              }
            }
          }
        }
      }
    },
    "/v2/comments/{commentKey}" : {
      "post" : {
        "summary" : "Update comment",
        "description" : "Updates a comment by key",
        "operationId" : "updateComment",
        "tags" : [ "Comments" ],
        "parameters" : [ {
          "name" : "commentKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CommentUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get comment",
        "description" : "Returns a comment by key",
        "operationId" : "getComment",
        "tags" : [ "Comments" ],
        "parameters" : [ {
          "name" : "commentKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete comment",
        "description" : "Deletes a comment by key",
        "operationId" : "deleteComment",
        "tags" : [ "Comments" ],
        "parameters" : [ {
          "name" : "commentKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/comments/{commentKey}/react" : {
      "post" : {
        "summary" : "React to comment",
        "description" : "Adds an emoji reaction to a comment",
        "operationId" : "reactToComment",
        "tags" : [ "Comments" ],
        "parameters" : [ {
          "name" : "commentKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CommentReactionBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      }
    },
    "/v2/comments/{commentKey}/unreact" : {
      "post" : {
        "summary" : "Remove comment reaction",
        "description" : "Removes an emoji reaction from a comment",
        "operationId" : "unreactToComment",
        "tags" : [ "Comments" ],
        "parameters" : [ {
          "name" : "commentKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CommentReactionBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      }
    },
    "/v2/contacts/batch/get" : {
      "post" : {
        "summary" : "Get contacts in bulk",
        "description" : "Returns accessible contacts indexed by their requested keys. Missing and inaccessible contacts are omitted.",
        "operationId" : "getContacts",
        "tags" : [ "Contacts" ],
        "requestBody" : {
          "description" : "An array of contact keys.",
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Contacts indexed by their requested keys.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ContactKeyBatch"
                }
              }
            }
          }
        }
      }
    },
    "/v2/contacts/{contactKey}" : {
      "post" : {
        "summary" : "Update contact",
        "description" : "Applies supplied changes. Null or omitted fields remain unchanged.",
        "operationId" : "updateContact",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "description" : "Key of the contact.",
          "name" : "contactKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContactUpdate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Contact"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get contact",
        "description" : "Returns an accessible contact by key.",
        "operationId" : "getContact",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "description" : "Key of the contact.",
          "name" : "contactKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Contact"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete contact",
        "description" : "Deletes a contact and schedules cleanup of its links. A missing contact returns 404.",
        "operationId" : "deleteContact",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "description" : "Key of the contact.",
          "name" : "contactKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/contacts/{contactKey}/boxes" : {
      "get" : {
        "summary" : "List contact boxes",
        "description" : "Returns accessible boxes linked to a contact. Pass the returned cursor to continue. hasNextPage indicates whether a continuation cursor is available, even if permission filtering leaves the results empty.",
        "operationId" : "listContactBoxes",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "contactKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cursor",
          "in" : "query",
          "required" : false,
          "description" : "Cursor returned by the previous response. Omit or leave empty to start from the beginning.",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxListResponseWithPaging"
                }
              }
            }
          }
        }
      }
    },
    "/v2/meetings/{meetingKey}" : {
      "post" : {
        "summary" : "Update meeting",
        "description" : "Updates a meeting or call log by key",
        "operationId" : "updateMeeting",
        "tags" : [ "Meetings" ],
        "parameters" : [ {
          "name" : "meetingKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/MeetingUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Meeting"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get meeting",
        "description" : "Returns a meeting or call log by key",
        "operationId" : "getMeeting",
        "tags" : [ "Meetings" ],
        "parameters" : [ {
          "name" : "meetingKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Meeting"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete meeting",
        "description" : "Deletes a meeting or call log by key",
        "operationId" : "deleteMeeting",
        "tags" : [ "Meetings" ],
        "parameters" : [ {
          "name" : "meetingKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/organizations/batch/get" : {
      "post" : {
        "summary" : "Get organizations in a batch",
        "description" : "Returns organizations keyed by their organization keys. Missing and inaccessible organizations are omitted.",
        "operationId" : "getOrganizations",
        "tags" : [ "Organizations" ],
        "requestBody" : {
          "description" : "Array of organization keys to retrieve.",
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "$ref" : "#/components/schemas/Organization"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/organizations/{organizationKey}" : {
      "post" : {
        "summary" : "Update an organization",
        "description" : "Updates an organization. Omitted and null properties are unchanged. Supplied lists replace existing lists, subject to field validation.",
        "operationId" : "updateOrganization",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "description" : "Key of the organization.",
          "name" : "organizationKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Organization details to update.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OrganizationUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Organization"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get an organization",
        "description" : "Returns an organization accessible to the current user, including custom fields and relationships.",
        "operationId" : "getOrganization",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "description" : "Key of the organization.",
          "name" : "organizationKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Organization"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete an organization",
        "description" : "Deletes an organization and schedules removal of its relationships and box links.",
        "operationId" : "deleteOrganization",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "description" : "Key of the organization.",
          "name" : "organizationKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/organizations/{organizationKey}/boxes" : {
      "get" : {
        "summary" : "List organization boxes",
        "description" : "Returns accessible boxes linked to an organization. Pass the returned cursor to continue. hasNextPage indicates whether a continuation cursor is available, even if permission filtering leaves the results empty.",
        "operationId" : "listOrganizationBoxes",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "organizationKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cursor",
          "in" : "query",
          "required" : false,
          "description" : "Cursor returned by the previous response. Omit or leave empty to start from the beginning.",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxListResponseWithPaging"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines" : {
      "get" : {
        "summary" : "List pipelines",
        "description" : "Lists pipelines accessible to the current user.",
        "operationId" : "listPipelines",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "sortBy",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PipelineListResponseWithPaging"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create pipeline",
        "description" : "Creates a basic pipeline.",
        "operationId" : "createPipeline",
        "tags" : [ "Pipelines" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PipelineCreate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The created pipeline.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Pipeline"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}" : {
      "post" : {
        "summary" : "Update pipeline",
        "description" : "Updates the supplied Pipeline fields. Omitted fields remain unchanged.",
        "operationId" : "updatePipeline",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PipelineUpdate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Pipeline"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get pipeline",
        "description" : "Returns a pipeline by key.",
        "operationId" : "getPipeline",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string",
            "pattern" : "(?!themes$)[^/]+"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Pipeline"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete pipeline",
        "description" : "Deletes an empty pipeline.",
        "operationId" : "deletePipeline",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/boxes" : {
      "get" : {
        "summary" : "List pipeline boxes",
        "description" : "Returns boxes the current user can read in a pipeline. Omit limit to return all matching boxes. Pagination is applied before permission filtering.",
        "operationId" : "listBoxes",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Only return boxes assigned to this user. Assigned-only access always limits results to the current user.",
          "name" : "assignedToKey",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "description" : "Sort order; defaults to creationTimestamp.",
          "required" : false,
          "name" : "sortBy",
          "in" : "query",
          "schema" : {
            "allOf" : [ {
              "$ref" : "#/components/schemas/CaseSortByOption"
            }, {
              "default" : "creationTimestamp"
            } ]
          }
        }, {
          "description" : "Only return boxes in this stage.",
          "name" : "stageKey",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return. Maximum: 1000",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1,
            "maximum" : 1000
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxListResponseWithPaging"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create a box",
        "description" : "Creates a box in the specified pipeline",
        "operationId" : "createBox",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "overrideValidator",
          "in" : "query",
          "description" : "Override blocking box validation rules when the current user has permission.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BoxCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Box"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/boxes/batch/delete" : {
      "post" : {
        "summary" : "Delete pipeline boxes",
        "description" : "Deletes the supplied boxes and their related records. Duplicate keys and missing boxes are ignored.",
        "operationId" : "batchDeleteBoxes",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/boxes/batch/get" : {
      "post" : {
        "summary" : "Get pipeline boxes by key",
        "description" : "Returns boxes for the supplied keys. Missing or inaccessible boxes are omitted. All boxes must belong to the pipeline in the URL",
        "operationId" : "batchGetBoxes",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/boxes/batch/update" : {
      "post" : {
        "summary" : "Update pipeline boxes",
        "description" : "Updates the supplied boxes in a pipeline. Every box must exist and be editable by the current user.",
        "operationId" : "batchUpdateBoxes",
        "tags" : [ "Boxes" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "overrideValidator",
          "in" : "query",
          "description" : "Override blocking box validation rules when the current user has permission.",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/BoxBatchUpdateBody"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoxListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/fields" : {
      "post" : {
        "summary" : "Create pipeline field",
        "description" : "Creates a custom field in a pipeline.",
        "operationId" : "createField",
        "tags" : [ "Pipelines" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PipelineFieldCreate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PipelineField"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/snippets" : {
      "get" : {
        "summary" : "List pipeline snippets",
        "description" : "Lists snippets shared with a pipeline, newest first. Omit limit to return all results.",
        "operationId" : "listPipelineSnippets",
        "tags" : [ "Snippets" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SnippetListResponseWithPaging"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/stages" : {
      "get" : {
        "summary" : "List stages",
        "description" : "Returns the pipeline's stages keyed by stage key.",
        "operationId" : "listStages",
        "tags" : [ "Pipeline Stages" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "$ref" : "#/components/schemas/PipelineStage"
                  }
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create stage",
        "description" : "Creates a stage at the end of the pipeline's stage order.",
        "operationId" : "createStage",
        "tags" : [ "Pipeline Stages" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PipelineStageCreate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PipelineStage"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/stages/{stageKey}" : {
      "post" : {
        "summary" : "Update stage",
        "description" : "Updates the supplied stage name or colors.",
        "operationId" : "updateStage",
        "tags" : [ "Pipeline Stages" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "stageKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PipelineStageUpdate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PipelineStage"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get stage",
        "description" : "Returns a stage in a pipeline.",
        "operationId" : "getStage",
        "tags" : [ "Pipeline Stages" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "stageKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PipelineStage"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete stage",
        "description" : "Deletes an empty stage. The final stage in a pipeline cannot be deleted.",
        "operationId" : "deleteStage",
        "tags" : [ "Pipeline Stages" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "stageKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/pipelines/{pipelineKey}/webhooks" : {
      "get" : {
        "summary" : "List pipeline webhooks",
        "description" : "Lists accessible subscriptions, newest first.",
        "operationId" : "getWebHooksForPipeline",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebHookListResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create a pipeline webhook",
        "description" : "Subscribes to a pipeline event. A body scope that conflicts with the URL returns 400.",
        "operationId" : "createWebHookForPipeline",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "pipelineKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/WebHookCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebHook"
                }
              }
            }
          }
        }
      }
    },
    "/v2/snippets" : {
      "get" : {
        "summary" : "List snippets",
        "description" : "Lists accessible personal and shared snippets, newest first. Query searches names and shortcuts ignoring case. Omit limit to return all results.",
        "operationId" : "listSnippets",
        "tags" : [ "Snippets" ],
        "parameters" : [ {
          "description" : "Text to find in snippet names or shortcuts.",
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SnippetListResponseWithPaging"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create a snippet",
        "description" : "Creates a personal snippet, or shares it with the specified pipeline.",
        "operationId" : "createSnippet",
        "tags" : [ "Snippets" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SnippetCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Snippet"
                }
              }
            }
          }
        }
      }
    },
    "/v2/snippets/{snippetKey}" : {
      "post" : {
        "summary" : "Update a snippet",
        "description" : "Updates the supplied fields, leaving omitted or null fields unchanged. The body format stays unchanged. Changing sharing can change the snippet key; use the key in the response.",
        "operationId" : "updateSnippet",
        "tags" : [ "Snippets" ],
        "parameters" : [ {
          "name" : "snippetKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SnippetUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Snippet"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get a snippet",
        "description" : "Returns a personal or shared snippet the user can access.",
        "operationId" : "getSnippet",
        "tags" : [ "Snippets" ],
        "parameters" : [ {
          "name" : "snippetKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Snippet"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete a snippet",
        "description" : "Deletes a snippet the user has permission to update.",
        "operationId" : "deleteSnippet",
        "tags" : [ "Snippets" ],
        "parameters" : [ {
          "name" : "snippetKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/tasks" : {
      "get" : {
        "summary" : "List upcoming tasks",
        "description" : "Lists tasks across all pipelines and boxes. By default, returns incomplete tasks assigned to the current user before tomorrow in the user's timezone, which includes today's and overdue tasks. Use userKeys, pipelineKey, includeCompleted, direction, limit, and sortOrder to page through other agenda slices.",
        "operationId" : "getAssignedTasks",
        "tags" : [ "Tasks" ],
        "parameters" : [ {
          "description" : "Agenda direction. Accepted values are desc, past, asc, and future. Defaults to desc.",
          "name" : "direction",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "description" : "Whether completed tasks should be included in the returned agenda.",
          "name" : "includeCompleted",
          "in" : "query",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        }, {
          "description" : "Maximum number of tasks to return per assigned user.",
          "name" : "limit",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50
          }
        }, {
          "description" : "Key for the pipeline to filter tasks to. Omit to search across all visible pipelines.",
          "name" : "pipelineKey",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "description" : "Opaque 30-digit sort cursor returned as task.sortOrder. Omit to use tomorrow at local midnight as the cursor boundary.",
          "name" : "sortOrder",
          "in" : "query",
          "schema" : {
            "type" : [ "string", "null" ]
          }
        }, {
          "description" : "User keys whose assigned tasks should be returned. Omit to return tasks assigned to the current user.",
          "name" : "userKeys",
          "in" : "query",
          "schema" : {
            "type" : [ "array", "null" ],
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TaskListResponseWithPaging"
                }
              }
            }
          }
        }
      }
    },
    "/v2/tasks/{taskKey}" : {
      "post" : {
        "summary" : "Update task",
        "description" : "Updates a task by key. Omitted body fields are left unchanged.",
        "operationId" : "updateTask",
        "tags" : [ "Tasks" ],
        "parameters" : [ {
          "description" : "Key for the task to update.",
          "name" : "taskKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Task fields to update.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TaskUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Task"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get task",
        "description" : "Returns a single task by key.",
        "operationId" : "getTask",
        "tags" : [ "Tasks" ],
        "parameters" : [ {
          "description" : "Key for the task to return.",
          "name" : "taskKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Task"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete task",
        "description" : "Deletes a task by key.",
        "operationId" : "deleteTask",
        "tags" : [ "Tasks" ],
        "parameters" : [ {
          "description" : "Key for the task to delete.",
          "name" : "taskKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams" : {
      "post" : {
        "summary" : "Create team",
        "description" : "Creates a team with an initial member roster.",
        "operationId" : "createTeam",
        "tags" : [ "Teams" ],
        "requestBody" : {
          "description" : "Team name and initial members.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TeamCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}" : {
      "post" : {
        "summary" : "Update team",
        "description" : "Updates a team by key. Omitted body fields are left unchanged.",
        "operationId" : "updateTeam",
        "tags" : [ "Teams" ],
        "parameters" : [ {
          "description" : "Key for the team to update.",
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "Team fields to update.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TeamUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get team",
        "description" : "Returns a team by key.",
        "operationId" : "getTeam",
        "tags" : [ "Teams" ],
        "parameters" : [ {
          "description" : "Key for the team to return.",
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/contacts" : {
      "get" : {
        "summary" : "List contacts",
        "description" : "Lists contacts in stable order. Pass the returned cursor to continue; keep the same after filter across pages. A full last page may be followed by an empty page.",
        "operationId" : "listContacts",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "description" : "Key of the team.",
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "after",
          "in" : "query",
          "schema" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Epoch timestamp in seconds since 1970-01-01T00:00:00Z.",
            "minimum" : -9223372036854775,
            "maximum" : 9223372036854775,
            "examples" : [ 1646870400 ]
          },
          "description" : "Include contacts last saved at or after this epoch-seconds timestamp."
        }, {
          "name" : "cursor",
          "in" : "query",
          "required" : false,
          "description" : "Cursor returned by the previous response. Omit or leave empty to start from the beginning.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Maximum number of results to return. Defaults to 100. Values above 1000 are capped.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1,
            "maximum" : 1000,
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ContactPage"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create contact",
        "description" : "Creates a contact from its basic details. Links and custom fields require a subsequent update.",
        "operationId" : "createContact",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "description" : "Key of the team.",
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Return an existing email match instead of creating a contact. When getIfExisting=true, an email match is returned without merging new values.",
          "name" : "getIfExisting",
          "in" : "query",
          "schema" : {
            "type" : [ "boolean", "null" ]
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContactCreate"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Contact"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/contacts/fields" : {
      "get" : {
        "summary" : "List contact fields",
        "description" : "Returns the team's custom contact field definitions, indexed by field key.",
        "operationId" : "listContactFields",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamFieldDefinitions"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create contact field",
        "description" : "Creates a custom contact field for a team and assigns its field key.",
        "operationId" : "createContactField",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectoryFieldBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamField"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/contacts/fields/{fieldKey}" : {
      "post" : {
        "summary" : "Update contact field",
        "description" : "Replaces a custom contact field definition. Omitted optional properties are cleared.",
        "operationId" : "updateContactField",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectoryFieldBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamField"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get contact field",
        "description" : "Returns one custom contact field definition for a team.",
        "operationId" : "getContactField",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamField"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete contact field",
        "description" : "Deletes a custom contact field definition and schedules its stored values for removal.",
        "operationId" : "deleteContactField",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/contacts/{contactKey}/fields/{fieldKey}" : {
      "post" : {
        "summary" : "Update contact field value",
        "description" : "Sets one custom text field value on a contact. An empty string clears its text.",
        "operationId" : "updateContactFieldValue",
        "tags" : [ "Contacts" ],
        "parameters" : [ {
          "name" : "contactKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectoryFieldValueUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/organizations" : {
      "get" : {
        "summary" : "List organizations",
        "description" : "Returns organizations in a team, ordered by key. Pass the returned cursor to retrieve the next page.",
        "operationId" : "listOrganizations",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "description" : "Key of the team.",
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cursor",
          "in" : "query",
          "required" : false,
          "description" : "Cursor returned by the previous response. Omit or leave empty to start from the beginning.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Maximum number of results to return. Defaults to 100. Values above 1000 are capped.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1,
            "maximum" : 1000,
            "default" : 100
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrganizationPage"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create an organization",
        "description" : "Creates an organization in a team. Available enrichment data may fill missing details. Provide a name or at least one domain. Set custom fields and relationships in a subsequent update.",
        "operationId" : "createOrganization",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "description" : "Key of the team.",
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Return an existing organization matching a supplied domain instead of creating another organization. The supplied values are not merged into the existing organization.",
          "name" : "getIfExisting",
          "in" : "query",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "requestBody" : {
          "description" : "Organization details to create.",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OrganizationCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Organization"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/organizations/fields" : {
      "get" : {
        "summary" : "List organization fields",
        "description" : "Returns the team's custom organization field definitions, indexed by field key.",
        "operationId" : "listOrganizationFields",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamFieldDefinitions"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create organization field",
        "description" : "Creates a custom organization field for a team and assigns its field key.",
        "operationId" : "createOrganizationField",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectoryFieldBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamField"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/organizations/fields/{fieldKey}" : {
      "post" : {
        "summary" : "Update organization field",
        "description" : "Replaces a custom organization field definition. Omitted optional properties are cleared.",
        "operationId" : "updateOrganizationField",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectoryFieldBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamField"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get organization field",
        "description" : "Returns one custom organization field definition for a team.",
        "operationId" : "getOrganizationField",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamField"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete organization field",
        "description" : "Deletes a custom organization field definition and schedules its stored values for removal.",
        "operationId" : "deleteOrganizationField",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/organizations/{organizationKey}/fields/{fieldKey}" : {
      "post" : {
        "summary" : "Update organization field value",
        "description" : "Sets one custom text field value on an organization. An empty string clears its text.",
        "operationId" : "updateOrganizationFieldValue",
        "tags" : [ "Organizations" ],
        "parameters" : [ {
          "name" : "fieldKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "organizationKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DirectoryFieldValueUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/users" : {
      "get" : {
        "summary" : "Get all users on team",
        "description" : "Returns all the users on a single team including archived users, payer only users, agents, owners and regular members.",
        "operationId" : "getUsersOnTeam",
        "tags" : [ "Users" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserListResponseWithPaging"
                }
              }
            }
          }
        }
      }
    },
    "/v2/teams/{teamKey}/webhooks" : {
      "get" : {
        "summary" : "List team webhooks",
        "description" : "Lists accessible subscriptions, newest first. Omit limit to return all results.",
        "operationId" : "getWebHooksForTeam",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebHookListResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "Create a team webhook",
        "description" : "Subscribes to a contact or organization event. A body scope that conflicts with the URL returns 400.",
        "operationId" : "createWebHookForTeam",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "teamKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/WebHookCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebHook"
                }
              }
            }
          }
        }
      }
    },
    "/v2/users/me/settings" : {
      "post" : {
        "summary" : "Update user settings",
        "description" : "Updates the supplied settings fields. Omitted fields remain unchanged. Specifying an individual field as null resets it to its default value.",
        "operationId" : "updateUserSettings",
        "tags" : [ "Users" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserSettingsV2Body"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserSettings"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get user settings",
        "description" : "Returns the authenticated user's settings.",
        "operationId" : "getUserSettings",
        "tags" : [ "Users" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserSettings"
                }
              }
            }
          }
        }
      }
    },
    "/v2/users/me/teams" : {
      "get" : {
        "summary" : "List current user's teams",
        "description" : "Lists the teams the current user belongs to, newest first.",
        "operationId" : "getCurrentUserTeams",
        "tags" : [ "Teams" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamListResponseWithPaging"
                }
              }
            }
          }
        },
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "required" : false,
          "description" : "Number of items to return.",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 1
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : false,
          "description" : "Zero-based page number",
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "minimum" : 0,
            "default" : 0
          }
        } ]
      }
    },
    "/v2/webhooks" : {
      "post" : {
        "summary" : "Create a webhook",
        "description" : "Subscribes to an event for one pipeline or team.",
        "operationId" : "createWebHook",
        "tags" : [ "Webhooks" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/WebHookCreateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebHook"
                }
              }
            }
          }
        },
        "parameters" : [ ]
      }
    },
    "/v2/webhooks/{webHookKey}" : {
      "post" : {
        "summary" : "Update a webhook",
        "description" : "Updates the destination, token or event. Omitted and null fields remain unchanged; the scope cannot change.",
        "operationId" : "updateWebHook",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "webHookKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/WebHookUpdateBody"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebHook"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Get a webhook",
        "description" : "Returns a subscription created by the authenticated user, subject to its team or pipeline permissions.",
        "operationId" : "getWebHook",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "webHookKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WebHook"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "summary" : "Delete a webhook",
        "description" : "Deletes an accessible webhook subscription. A missing subscription returns 404.",
        "operationId" : "deleteWebHook",
        "tags" : [ "Webhooks" ],
        "parameters" : [ {
          "name" : "webHookKey",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OperationResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}