"""Request Body Schemas for API Tools

DO NOT EDIT THIS MODULE DIRECTLY.

THIS MODULE WAS AUTO-GENERATED AND CONTAINS OpenAPI REQUEST BODY SCHEMAS
FOR TOOLS WITH COMPLEX REQUEST BODIES. ANY CHANGES TO THIS MODULE WILL
BE OVERWRITTEN BY THE TRANSPILER.
"""

from typing import Any

REQUEST_BODY_SCHEMAS: dict[str, Any] = {
    "UPDATEMULTIPLEACCOUNTS": '{"properties": {"account_ids": {"description": "The account IDs to update. The number of accounts to update must be between 1 and 100.", "items": {"type": "string"}, "type": "array", "x-go-name": "AccountIDs"}, "custom_fields": {"description": "An array of custom fields to be updated on the accounts.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "owner_id": {"description": "The ID of the new owner. If empty string is passed in, the owner will be removed.", "type": "string", "x-go-name": "OwnerID"}, "tags": {"description": "An array of tags to be updated on the accounts.", "items": {"type": "string"}, "type": "array", "x-go-name": "Tags"}, "tags_apply_mode": {"description": "The mode for applying tags. Valid values: "append_only", "remove_only", "replace". Defaults to "replace".", "type": "string", "x-go-name": "TagsApplyMode"}}, "required": ["account_ids"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATENEWACCOUNT": '{"properties": {"channels": {"description": "An array of channels to be linked to this account.", "items": {"properties": {"channel_id": {"description": "The ID of the channel. If this is a Microsoft Teams channel, the ID must be in the format of `{team_id}|{channel_id}`.", "type": "string", "x-go-name": "ChannelID"}, "is_primary": {"description": "Whether this channel is the primary channel for the account.", "type": "boolean", "x-go-name": "IsPrimary"}, "mirror_to": {"properties": {"channel_id": {"description": "The ID of the channel. If this is a Microsoft Teams channel, the ID must be in the format of `{team_id}|{channel_id}`.", "type": "string", "x-go-name": "ChannelID"}, "source": {"description": "The source, which can be one of `["slack", "microsoft_teams", "discord"]`.", "type": "string", "x-go-name": "Source"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "source": {"description": "The source, which can be one of `["slack", "microsoft_teams", "discord"]`.", "type": "string", "x-go-name": "Source"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "Channels"}, "custom_fields": {"description": "An array of custom fields to be used on this account.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "domain": {"description": "Deprecated. Please use Domains and PrimaryDomain instead.", "type": "string", "x-go-name": "Domain"}, "domains": {"description": "The domains of the account, without any leading scheme, for example stripe.com. Must specify one domain as primary.", "items": {"type": "string"}, "type": "array", "x-go-name": "Domains"}, "external_ids": {"description": "An array of external IDs to be used on this account. If provided, the accounts external IDs will be updated to the given external IDs.", "items": {"properties": {"external_id": {"description": "The external ID. Must be unique per object type (ex. account).", "type": "string", "x-go-name": "ExternalID"}, "label": {"description": "The label of the external ID. Must be unique per object.", "type": "string", "x-go-name": "Label"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "ExternalIDs"}, "logo_url": {"description": "The logo URL of the account. Must be a square .png, .jpg or .jpeg.", "type": "string", "x-go-name": "LogoURL"}, "name": {"description": "The name of the account.", "type": "string", "x-go-name": "Name"}, "owner_id": {"description": "The ID of the owner of the account.", "type": "string", "x-go-name": "OwnerID"}, "primary_domain": {"description": "Must be in the list of domains. If there are any domains, there must be exactly one primary domain.", "type": "string", "x-go-name": "PrimaryDomain"}, "tags": {"description": "An array of strings to use as tags on this account. If provided, the accounts tags will be updated to the given tags.", "items": {"type": "string"}, "type": "array", "x-go-name": "Tags"}}, "required": ["name"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "SEARCHACCOUNTS": '{"properties": {"cursor": {"description": "The cursor to use for pagination.", "type": "string", "x-go-name": "Cursor"}, "filter": {"properties": {"field": {"description": "The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than "and" or "or"),\n\nField must be set, along with either Value or Values, depending on the operator.", "type": "string", "x-go-name": "Field"}, "operator": {"description": "The operator for this filter.\n\n* equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\n\n* not_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\n\n* contains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n* does_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n* in FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\n\n* not_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\n\n* and FilterOperatorAnd  Matches objects only if all subfilters match.\n\n* or FilterOperatorOr  Matches objects if any subfilter matches.\n\n* time_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\n\n* time_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\n\n* time_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\n\n* string_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\n\n* string_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\n\n* is_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\n\n* is_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "enum": ["equals", "not_equals", "contains", "does_not_contain", "in", "not_in", "and", "or", "time_is_after", "time_is_before", "time_range", "string_contains", "string_does_not_contain", "is_set", "is_unset"], "type": "string", "x-go-enum-desc": "equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\nnot_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\ncontains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\ndoes_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\nin FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\nnot_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\nand FilterOperatorAnd  Matches objects only if all subfilters match.\nor FilterOperatorOr  Matches objects if any subfilter matches.\ntime_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\ntime_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\ntime_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\nstring_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\nstring_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\nis_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\nis_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "x-go-name": "Operator"}, "subfilters": {"description": "Sub-filters for this filter.  Valid only when operator is "and" or "or".\n\nThe maximum allowed depth for a tree of filters is 3.", "items": {"$ref": "#/components/schemas/Filter", "has_circular_reference": true}, "type": "array", "x-go-name": "Subfilters"}, "value": {"description": "The value for this filter. Only used for single-valued operators\n\n("equals", "not_equals", "contains", "does_not_contain")", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values for this filter. Only used for multi-valued operators ("in", "not_in").", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "required": ["field", "operator"], "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "limit": {"description": "The number of accounts to fetch. Defaults to 100. Must be greater than 0 and less than 1000.", "format": "int64", "type": "integer", "x-go-name": "Limit"}}, "required": ["filter"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATEACCOUNTHIGHLIGHT": '{"properties": {"content_html": {"description": "The HTML content for this highlight.", "type": "string", "x-go-name": "ContentHTML"}, "expires_at": {"description": "Optional RFC3339 timestamp of when this highlight will expire.", "type": "string", "x-go-name": "ExpiresAt"}}, "required": ["content_html"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "UPDATEACCOUNT": '{"properties": {"channels": {"description": "An array of channels to be linked to this account.", "items": {"properties": {"channel_id": {"description": "The ID of the channel. If this is a Microsoft Teams channel, the ID must be in the format of `{team_id}|{channel_id}`.", "type": "string", "x-go-name": "ChannelID"}, "is_primary": {"description": "Whether this channel is the primary channel for the account.", "type": "boolean", "x-go-name": "IsPrimary"}, "mirror_to": {"properties": {"channel_id": {"description": "The ID of the channel. If this is a Microsoft Teams channel, the ID must be in the format of `{team_id}|{channel_id}`.", "type": "string", "x-go-name": "ChannelID"}, "source": {"description": "The source, which can be one of `["slack", "microsoft_teams", "discord"]`.", "type": "string", "x-go-name": "Source"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "source": {"description": "The source, which can be one of `["slack", "microsoft_teams", "discord"]`.", "type": "string", "x-go-name": "Source"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "Channels"}, "custom_fields": {"description": "An array of custom fields to be used on this account.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "domains": {"description": "Domains of the account. Must specify one domain as primary.", "items": {"type": "string"}, "type": "array", "x-go-name": "Domains"}, "external_ids": {"description": "An array of external IDs to be used on this account. If provided, the accounts external IDs will be updated to the given external IDs.", "items": {"properties": {"external_id": {"description": "The external ID. Must be unique per object type (ex. account).", "type": "string", "x-go-name": "ExternalID"}, "label": {"description": "The label of the external ID. Must be unique per object.", "type": "string", "x-go-name": "Label"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "ExternalIDs"}, "logo_url": {"description": "Logo URL of the account.", "type": "string", "x-go-name": "LogoURL"}, "name": {"description": "The name of the account.", "type": "string", "x-go-name": "Name"}, "owner_id": {"description": "The ID of the owner of the account.", "type": "string", "x-go-name": "OwnerID"}, "primary_domain": {"description": "Must be in the list of domains. If there are any domains, there must be exactly one primary domain.", "type": "string", "x-go-name": "PrimaryDomain"}, "tags": {"description": "An array of strings to use as tags on this account. If provided, the accounts tags will be updated to the given tags.", "items": {"type": "string"}, "type": "array", "x-go-name": "Tags"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATEACCOUNTACTIVITY": '{"properties": {"body_html": {"description": "Optional HTML content to display in the activity.", "type": "string", "x-go-name": "BodyHTML"}, "contact_id": {"description": "Optional contact ID of the actor of the activity.", "type": "string", "x-go-name": "ContactID"}, "happened_at": {"description": "Timestamp (RFC3339) of when the activity happened. Defaults to the current time if empty.", "type": "string", "x-go-name": "HappenedAt"}, "link": {"description": "Optional link to add to the activity.", "type": "string", "x-go-name": "Link"}, "link_text": {"description": "Optional link text to display on the activity. Defaults to "Open link" if not provided. Applies only if a link is provided.", "type": "string", "x-go-name": "LinkText"}, "slug": {"description": "The slug of the activity to create.", "type": "string", "x-go-name": "Slug"}, "user_id": {"description": "Optional user ID of the actor of the activity.", "type": "string", "x-go-name": "UserID"}}, "required": ["slug"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATENEWCONTACT": '{"properties": {"account_external_id": {"description": "The external ID of the account that this contact belongs to. Cannot be used together with account_id.", "type": "string", "x-go-name": "AccountExternalID"}, "account_id": {"description": "The account that this contact belongs to.", "type": "string", "x-go-name": "AccountID"}, "avatar_url": {"description": "The avatar URL of the contact. Must be a square .png, .jpg or .jpeg.", "type": "string", "x-go-name": "AvatarUrl"}, "custom_fields": {"description": "An array of custom fields to be applied to this contact.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "email": {"description": "The email of the contact.", "type": "string", "x-go-name": "Email"}, "name": {"description": "The name of the contact.", "type": "string", "x-go-name": "Name"}, "portal_role": {"description": "The portal role to assign to the contact. If not provided uses the default portal role from the portal settings.\n\n* no_access PortalRoleNoAccess\n\n* member PortalRoleMember\n\n* admin PortalRoleAdmin", "enum": ["no_access", "member", "admin"], "type": "string", "x-go-enum-desc": "no_access PortalRoleNoAccess\nmember PortalRoleMember\nadmin PortalRoleAdmin", "x-go-name": "PortalRole"}}, "required": ["name"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "SEARCHCONTACTS": '{"properties": {"cursor": {"description": "The cursor to use for pagination.", "type": "string", "x-go-name": "Cursor"}, "filter": {"properties": {"field": {"description": "The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than "and" or "or"),\n\nField must be set, along with either Value or Values, depending on the operator.", "type": "string", "x-go-name": "Field"}, "operator": {"description": "The operator for this filter.\n\n* equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\n\n* not_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\n\n* contains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n* does_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n* in FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\n\n* not_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\n\n* and FilterOperatorAnd  Matches objects only if all subfilters match.\n\n* or FilterOperatorOr  Matches objects if any subfilter matches.\n\n* time_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\n\n* time_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\n\n* time_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\n\n* string_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\n\n* string_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\n\n* is_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\n\n* is_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "enum": ["equals", "not_equals", "contains", "does_not_contain", "in", "not_in", "and", "or", "time_is_after", "time_is_before", "time_range", "string_contains", "string_does_not_contain", "is_set", "is_unset"], "type": "string", "x-go-enum-desc": "equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\nnot_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\ncontains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\ndoes_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\nin FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\nnot_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\nand FilterOperatorAnd  Matches objects only if all subfilters match.\nor FilterOperatorOr  Matches objects if any subfilter matches.\ntime_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\ntime_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\ntime_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\nstring_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\nstring_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\nis_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\nis_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "x-go-name": "Operator"}, "subfilters": {"description": "Sub-filters for this filter.  Valid only when operator is "and" or "or".\n\nThe maximum allowed depth for a tree of filters is 3.", "items": {"$ref": "#/components/schemas/Filter", "has_circular_reference": true}, "type": "array", "x-go-name": "Subfilters"}, "value": {"description": "The value for this filter. Only used for single-valued operators\n\n("equals", "not_equals", "contains", "does_not_contain")", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values for this filter. Only used for multi-valued operators ("in", "not_in").", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "required": ["field", "operator"], "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "limit": {"description": "The number of contacts to fetch. Defaults to 100. Must be greater than 0 and less than 1000.", "format": "int64", "type": "integer", "x-go-name": "Limit"}}, "required": ["filter"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "UPDATECONTACTINFO": '{"properties": {"account_external_id": {"description": "The external ID of the account to move the contact to. Cannot be used together with account_id.", "type": "string", "x-go-name": "AccountExternalID"}, "account_id": {"description": "The account to move the contact to.", "type": "string", "x-go-name": "AccountID"}, "avatar_url": {"description": "The avatar URL of the contact. Must be a square .png, .jpg or .jpeg.", "type": "string", "x-go-name": "AvatarUrl"}, "custom_fields": {"description": "An array of custom fields to be applied to this contact.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "email": {"description": "The email of the contact.", "type": "string", "x-go-name": "Email"}, "name": {"description": "in: body\n\nThe name of the contact.", "type": "string", "x-go-name": "Name"}, "portal_role": {"description": "The portal role to assign to the contact. Can be one of `no_access`, `member`, or `admin`.\n\n* no_access PortalRoleNoAccess\n\n* member PortalRoleMember\n\n* admin PortalRoleAdmin", "enum": ["no_access", "member", "admin"], "type": "string", "x-go-enum-desc": "no_access PortalRoleNoAccess\nmember PortalRoleMember\nadmin PortalRoleAdmin", "x-go-name": "PortalRole"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATECUSTOMFIELD": '{"properties": {"default_value": {"description": "The default value for single-valued custom fields.", "type": "string", "x-go-name": "DefaultValue"}, "default_values": {"description": "The default values for multi-valued custom fields.", "items": {"type": "string"}, "type": "array", "x-go-name": "DefaultValues"}, "description": {"description": "The description of the custom field.", "type": "string", "x-go-name": "Description"}, "label": {"description": "The label of the custom field.", "type": "string", "x-go-name": "Label"}, "object_type": {"description": "The object type of the custom field. Can be "account", "issue", or "contact"", "type": "string", "x-go-name": "ObjectType"}, "select_options": {"description": "The list options of the select custom field. This is only present for select and multiselect custom fields.", "items": {"properties": {"label": {"description": "The label of the option.", "type": "string", "x-go-name": "Label"}, "slug": {"description": "The slug of the option.", "type": "string", "x-go-name": "Slug"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "SelectOptions"}, "slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "type": {"description": "The type of the custom field. Can be one of `text`, `number`, `decimal`, `boolean`, `date`, `datetime`, `user`, `url`, `select`, or `multiselect`.", "type": "string", "x-go-name": "Type"}}, "required": ["label", "object_type", "type"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "UPDATECUSTOMFIELD": '{"properties": {"default_value": {"description": "The default value for single-valued custom fields.", "type": "string", "x-go-name": "DefaultValue"}, "default_values": {"description": "The default values for multi-valued custom fields.", "items": {"type": "string"}, "type": "array", "x-go-name": "DefaultValues"}, "description": {"description": "The description of the custom field.", "type": "string", "x-go-name": "Description"}, "label": {"description": "The label of the custom field.", "type": "string", "x-go-name": "Label"}, "select_options": {"description": "The list options of the select custom field. This is only present for select and multiselect custom fields.", "items": {"properties": {"label": {"description": "The label of the option.", "type": "string", "x-go-name": "Label"}, "slug": {"description": "The slug of the option.", "type": "string", "x-go-name": "Slug"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "SelectOptions"}, "slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "IMPORTNEWCONTACT": '{"properties": {"account_id": {"description": "The account that this contact belongs to.", "type": "string", "x-go-name": "AccountID"}, "avatar_url": {"description": "The avatar URL of the contact. Must be a square .png, .jpg or .jpeg.", "type": "string", "x-go-name": "AvatarUrl"}, "custom_fields": {"description": "An array of custom fields to be applied to this contact.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "email": {"description": "The email of the contact.", "type": "string", "x-go-name": "Email"}, "name": {"description": "The name of the contact.", "type": "string", "x-go-name": "Name"}, "portal_role": {"description": "The portal role to assign to the contact. If not provided uses the default portal role from the portal settings.\n\n* no_access PortalRoleNoAccess\n\n* member PortalRoleMember\n\n* admin PortalRoleAdmin", "enum": ["no_access", "member", "admin"], "type": "string", "x-go-enum-desc": "no_access PortalRoleNoAccess\nmember PortalRoleMember\nadmin PortalRoleAdmin", "x-go-name": "PortalRole"}}, "required": ["email", "name"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "IMPORTISSUE": '{"properties": {"account_id": {"description": "AccountID that the issue should belong to.", "type": "string", "x-go-name": "AccountID"}, "assignee_id": {"description": "UserID that the issue should be assigned to.", "type": "string", "x-go-name": "AssigneeID"}, "attachment_urls": {"description": "An array of attachment URLs to attach to this issue.", "items": {"type": "string"}, "type": "array", "x-go-name": "AttachmentURLs"}, "created_at": {"description": "CreatedAt is the time the issue was created (RFC3339).", "type": "string", "x-go-name": "CreatedAt"}, "custom_fields": {"description": "An array of custom fields to be used on this issue.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "external_issues": {"description": "External issues to link to this issue.", "items": {"properties": {"external_issue_id": {"description": "The ID of the external issue in the source system.", "type": "string", "x-go-name": "ExternalIssueID"}, "source": {"description": "The source system of the external issue (e.g., "linear", "asana", "jira", "github").", "type": "string", "x-go-name": "Source"}}, "required": ["external_issue_id", "source"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}, "type": "array", "x-go-name": "ExternalIssues"}, "external_refs": {"properties": {"intercom_conversation_id": {"description": "The Intercom conversation ID associated with this issue, if any.", "type": "string", "x-go-name": "IntercomConversationID"}, "zendesk_ticket_id": {"description": "The Zendesk ticket ID associated with this issue, if any.", "type": "string", "x-go-name": "ZendeskTicketID"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}, "first_response_time": {"description": "FirstResponseTime is the time the issue was first responded to (RFC3339).", "type": "string", "x-go-name": "FirstResponseTime"}, "messages": {"description": "Messages to be imported for this issue. At least one message is required.", "items": {"properties": {"attachment_urls": {"description": "An array of attachment URLs to attach to this message.", "items": {"type": "string"}, "type": "array", "x-go-name": "AttachmentURLs"}, "body_html": {"description": "The HTML content of the message.", "type": "string", "x-go-name": "BodyHTML"}, "contact_id": {"description": "The contact that sent the message. Only one of user_id or contact_id can be specified.", "type": "string", "x-go-name": "ContactID"}, "created_at": {"description": "CreatedAt is the time the message was created (RFC3339).", "type": "string", "x-go-name": "CreatedAt"}, "is_private": {"description": "Whether the message is private.", "type": "boolean", "x-go-name": "IsPrivate"}, "user_id": {"description": "The user that sent the message. Only one of user_id or contact_id can be specified.", "type": "string", "x-go-name": "UserID"}}, "required": ["body_html", "is_private"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}, "type": "array", "x-go-name": "Messages"}, "requester_id": {"description": "ContactID that the issue should be on behalf of.", "type": "string", "x-go-name": "RequesterID"}, "resolution_time": {"description": "ResolutionTime is the time the issue was resolved (RFC3339).", "type": "string", "x-go-name": "ResolutionTime"}, "state": {"description": "The state of the issue. Can be one of new, waiting_on_you, waiting_on_customer, on_hold, closed, or a custom status.", "type": "string", "x-go-name": "State"}, "tags": {"description": "An array of strings to use as tags on this issue.", "items": {"type": "string"}, "type": "array", "x-go-name": "Tags"}, "team_id": {"description": "TeamID that the issue should be assigned to.", "type": "string", "x-go-name": "TeamID"}, "title": {"description": "The title of the issue.", "type": "string", "x-go-name": "Title"}, "updated_at": {"description": "UpdatedAt is the time the issue was last updated (RFC3339).", "type": "string", "x-go-name": "UpdatedAt"}}, "required": ["messages", "state", "title"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "IMPORTMESSAGESTOISSUE": '{"properties": {"messages": {"description": "Messages to be imported for this issue. At least one message is required.", "items": {"properties": {"attachment_urls": {"description": "An array of attachment URLs to attach to this message.", "items": {"type": "string"}, "type": "array", "x-go-name": "AttachmentURLs"}, "body_html": {"description": "The HTML content of the message.", "type": "string", "x-go-name": "BodyHTML"}, "contact_id": {"description": "The contact that sent the message. Only one of user_id or contact_id can be specified.", "type": "string", "x-go-name": "ContactID"}, "created_at": {"description": "CreatedAt is the time the message was created (RFC3339).", "type": "string", "x-go-name": "CreatedAt"}, "is_private": {"description": "Whether the message is private.", "type": "boolean", "x-go-name": "IsPrivate"}, "user_id": {"description": "The user that sent the message. Only one of user_id or contact_id can be specified.", "type": "string", "x-go-name": "UserID"}}, "required": ["body_html", "is_private"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}, "type": "array", "x-go-name": "Messages"}}, "required": ["messages"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATENEWISSUE": '{"properties": {"account_id": {"description": "The account that this issue belongs to.", "type": "string", "x-go-name": "AccountID"}, "assignee_id": {"description": "The user the issue should be assigned to.", "type": "string", "x-go-name": "AssigneeID"}, "attachment_urls": {"description": "An array of attachment URLs to attach to this issue.", "items": {"type": "string"}, "type": "array", "x-go-name": "AttachmentURLs"}, "body_html": {"description": "The HTML content of the body of the issue.", "type": "string", "x-go-name": "BodyHTML"}, "contact_id": {"description": "Optional contact ID to post the message as. Only one of user_id or contact_id can be provided.", "type": "string", "x-go-name": "ContactID"}, "created_at": {"description": "Timestamp of when the issue was created. If not specified, the current time will be used. (RFC3339)", "type": "string", "x-go-name": "CreatedAt"}, "custom_fields": {"description": "An array of custom fields to be used on this issue.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "destination_metadata": {"description": "You can configure the issue to contact the requester via email, Slack, in-app chat, or not at all.\n\nIf a destination other than `internal` is specified, a message with the issue\'s BodyHTML will be delivered to the requester. If you don\'t wish to immediately contact the requester, you can specify the `internal` destination.", "properties": {"chat_widget_app_id": {"description": "The ID of the chat widget app to use for in-app chat.", "type": "string", "x-go-name": "ChatWidgetAppID"}, "destination": {"description": "The destination type of the issue. Can be "email", "slack", "in_app_chat", or "internal". Defaults to "internal".\n\n* slack APIIssueDestinationSlack  Deliver to the issue\'s account\'s Slack channel.\n\n* email APIIssueDestinationEmail  Deliver messages to the issue requester via email.\n\n* in_app_chat APIIssueDestinationChatWidget  Deliver messages to the issue requester via in-app chat.\n\n* internal APIIssueDestinationInternal  Keep the issue internal and don\'t contact the requester at all.", "enum": ["slack", "email", "in_app_chat", "internal"], "type": "string", "x-go-enum-desc": "slack APIIssueDestinationSlack  Deliver to the issue\'s account\'s Slack channel.\nemail APIIssueDestinationEmail  Deliver messages to the issue requester via email.\nin_app_chat APIIssueDestinationChatWidget  Deliver messages to the issue requester via in-app chat.\ninternal APIIssueDestinationInternal  Keep the issue internal and don\'t contact the requester at all.", "x-go-name": "Destination"}, "email": {"description": "The email that emails to the requester will be sent from. You must configure an email app in Pylon with this address.", "type": "string", "x-go-name": "Email"}, "email_bccs": {"description": "Emails that will be BCCed on emails to the requester.", "items": {"type": "string"}, "type": "array", "x-go-name": "EmailBCCs"}, "email_ccs": {"description": "Emails that will be CCed on emails to the requester.", "items": {"type": "string"}, "type": "array", "x-go-name": "EmailCCs"}}, "title": "DestinationMetadata specifies if/how communication will be delivered to the customer.", "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "priority": {"description": "The priority of the issue. Can be one of: urgent, high, medium, or low.", "type": "string", "x-go-name": "Priority"}, "requester_avatar_url": {"description": "The URL of an avatar of the requester.", "type": "string", "x-go-name": "RequesterAvatarUrl"}, "requester_email": {"description": "The email of the user that this issue is on behalf of. Include one of requester_id or requester_email to create an issue with a requester.", "type": "string", "x-go-name": "RequesterEmail"}, "requester_id": {"description": "The requester that this issue is on behalf of. Include one of requester_id or requester_email to create an issue with a requester.", "type": "string", "x-go-name": "RequesterID"}, "requester_name": {"description": "The full name of the user that this issue is on behalf of.", "type": "string", "x-go-name": "RequesterName"}, "tags": {"description": "An array of strings to use as tags on this issue. If provided, the issue tags will be updated to the given tags.", "items": {"type": "string"}, "type": "array", "x-go-name": "Tags"}, "team_id": {"description": "The ID of the team this issue should be assigned to.", "type": "string", "x-go-name": "TeamID"}, "title": {"description": "The title of the issue.", "type": "string", "x-go-name": "Title"}, "user_id": {"description": "Optional user ID to post the message as. Only one of user_id or contact_id can be provided.", "type": "string", "x-go-name": "UserID"}}, "required": ["body_html", "title"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "SEARCHISSUESBYFILTERS": '{"properties": {"cursor": {"description": "The cursor to use for pagination.", "type": "string", "x-go-name": "Cursor"}, "filter": {"properties": {"field": {"description": "The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than "and" or "or"),\n\nField must be set, along with either Value or Values, depending on the operator.", "type": "string", "x-go-name": "Field"}, "operator": {"description": "The operator for this filter.\n\n* equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\n\n* not_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\n\n* contains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n* does_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n* in FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\n\n* not_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\n\n* and FilterOperatorAnd  Matches objects only if all subfilters match.\n\n* or FilterOperatorOr  Matches objects if any subfilter matches.\n\n* time_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\n\n* time_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\n\n* time_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\n\n* string_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\n\n* string_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\n\n* is_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\n\n* is_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "enum": ["equals", "not_equals", "contains", "does_not_contain", "in", "not_in", "and", "or", "time_is_after", "time_is_before", "time_range", "string_contains", "string_does_not_contain", "is_set", "is_unset"], "type": "string", "x-go-enum-desc": "equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\nnot_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\ncontains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\ndoes_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\nin FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\nnot_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\nand FilterOperatorAnd  Matches objects only if all subfilters match.\nor FilterOperatorOr  Matches objects if any subfilter matches.\ntime_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\ntime_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\ntime_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\nstring_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\nstring_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\nis_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\nis_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "x-go-name": "Operator"}, "subfilters": {"description": "Sub-filters for this filter.  Valid only when operator is "and" or "or".\n\nThe maximum allowed depth for a tree of filters is 3.", "items": {"$ref": "#/components/schemas/Filter", "has_circular_reference": true}, "type": "array", "x-go-name": "Subfilters"}, "value": {"description": "The value for this filter. Only used for single-valued operators\n\n("equals", "not_equals", "contains", "does_not_contain")", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values for this filter. Only used for multi-valued operators ("in", "not_in").", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "required": ["field", "operator"], "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "limit": {"description": "The number of issues to fetch. Defaults to 100. Must be greater than 0 and less than 1000.", "format": "int64", "type": "integer", "x-go-name": "Limit"}}, "required": ["filter"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "UPDATEISSUE": '{"properties": {"account_id": {"description": "The ID of the account that this issue belongs to. Only supported on issues with source: ["manual", "form", "email"].", "type": "string", "x-go-name": "AccountID"}, "assignee_id": {"description": "The ID of the user who should be assigned to this issue. If empty string is passed in, the issue assignee will be removed.", "type": "string", "x-go-name": "AssigneeID"}, "custom_fields": {"description": "An array of custom fields to be used on this issue. Only passed in fields will be modified.", "items": {"properties": {"slug": {"description": "The slug of the custom field.", "type": "string", "x-go-name": "Slug"}, "value": {"description": "The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "type": "array", "x-go-name": "CustomFields"}, "customer_portal_visible": {"description": "Whether the issue should be visible in the customer portal.", "type": "boolean", "x-go-name": "CustomerPortalVisible"}, "requester_id": {"description": "The ID of the requester that this issue is on behalf of.", "type": "string", "x-go-name": "RequesterID"}, "requestor_id": {"description": "Deprecated: Use requester_id instead.", "type": "string", "x-go-name": "RequestorID"}, "state": {"description": "The state this issue should be moved to. Can be one of new, waiting_on_you, waiting_on_customer, on_hold, closed, or a custom status.", "type": "string", "x-go-name": "State"}, "tags": {"description": "An array of strings to use as tags on this issue. If provided, the issue tags will be updated to be exactly the given tags.", "items": {"type": "string"}, "type": "array", "x-go-name": "Tags"}, "team_id": {"description": "The ID of the team this issue should be assigned to. If empty string is passed in, any assigned team will be removed.", "type": "string", "x-go-name": "TeamID"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATEAIRESPONSEFORISSUE": '{"properties": {"ai_agent_id": {"description": "The ID of the AI agent to use to create the AI response.", "type": "string", "x-go-name": "AIAgentID"}, "post_as_internal_note": {"description": "Whether to post the AI response as an internal note on the issue.", "type": "boolean", "x-go-name": "PostAsInternalNote"}}, "required": ["ai_agent_id"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "LINKEXTERNALISSUE": '{"properties": {"external_issue_id": {"description": "The ID of the external issue in the source system.", "type": "string", "x-go-name": "ExternalIssueID"}, "operation": {"description": "Operation to perform. Use "link" to link issues (default) or "unlink" to unlink issues.", "type": "string", "x-go-name": "Operation"}, "source": {"description": "The source system of the external issue (e.g., "linear", "asana", "jira", "github").", "type": "string", "x-go-name": "Source"}}, "required": ["external_issue_id", "source"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATEISSUENOTE": '{"properties": {"attachment_urls": {"description": "An array of attachment URLs to attach to this issue.", "items": {"type": "string"}, "type": "array", "x-go-name": "AttachmentURLs"}, "body_html": {"description": "The body of the message in HTML.", "type": "string", "x-go-name": "BodyHTML"}, "message_id": {"description": "The ID of the message to reply to. This message must be an internal note. You can find this from the GET /issues/{id}/messages endpoint. Either this or thread_id must be provided.", "type": "string", "x-go-name": "MessageID"}, "thread_id": {"description": "The ID of the thread to post the note to. You can find this from the GET /issues/{id}/threads endpoint. Either this or message_id must be provided.", "type": "string", "x-go-name": "ThreadID"}, "user_id": {"description": "Optional user ID to post the message as. If not provided, the API token user will be used.", "type": "string", "x-go-name": "UserID"}}, "required": ["body_html"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATEISSUEREPLY": '{"properties": {"attachment_urls": {"description": "An array of attachment URLs to attach to this issue.", "items": {"type": "string"}, "type": "array", "x-go-name": "AttachmentURLs"}, "body_html": {"description": "The body of the message in HTML.", "type": "string", "x-go-name": "BodyHTML"}, "contact_id": {"description": "Optional contact ID to post the message as. Only one of user_id or contact_id can be provided.", "type": "string", "x-go-name": "ContactID"}, "email_info": {"properties": {"bcc_emails": {"items": {"type": "string"}, "type": "array", "x-go-name": "BccEmails"}, "cc_emails": {"items": {"type": "string"}, "type": "array", "x-go-name": "CcEmails"}, "to_emails": {"items": {"type": "string"}, "type": "array", "x-go-name": "ToEmails"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}, "message_id": {"description": "The ID of the message to reply to.", "type": "string", "x-go-name": "MessageID"}, "user_id": {"description": "Optional user ID to post the message as. Only one of user_id or contact_id can be provided.", "type": "string", "x-go-name": "UserID"}}, "required": ["body_html", "message_id"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "SNOOZEISSUE": '{"properties": {"snooze_until": {"description": "The date and time to snooze the issue until. (RFC3339)", "type": "string", "x-go-name": "SnoozeUntil"}}, "required": ["snooze_until"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATEKNOWLEDGEBASEARTICLE": '{"properties": {"author_user_id": {"description": "The ID of the user attributed as the author of the article.", "type": "string", "x-go-name": "AuthorUserId"}, "body_html": {"description": "The HTML body of the article.", "type": "string", "x-go-name": "BodyHTML"}, "collection_id": {"description": "The id of the collection associated to the article", "type": "string", "x-go-name": "CollectionID"}, "is_published": {"description": "Whether the article should be published. Defaults to false.", "type": "boolean", "x-go-name": "IsPublished"}, "is_unlisted": {"description": "Whether the article can only be accessible only via direct link. Defaults to false.", "type": "boolean", "x-go-name": "IsUnlisted"}, "slug": {"description": "The slug of the article. Defaults to a slug based on the title.", "type": "string", "x-go-name": "Slug"}, "title": {"description": "The title of the article.", "type": "string", "x-go-name": "Title"}, "translations": {"description": "Translations of the article content in different languages", "items": {"properties": {"body_html": {"description": "The translated HTML body of the article.", "type": "string", "x-go-name": "BodyHTML"}, "language": {"description": "The language code of the translation. Supported language codes can be found in https://docs.usepylon.com/pylon-docs/knowledge-base/translation#supported-language-codes.", "type": "string", "x-go-name": "Language"}, "title": {"description": "The translated title of the article.", "type": "string", "x-go-name": "Title"}}, "required": ["body_html", "language", "title"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}, "type": "array", "x-go-name": "Translations"}, "visibility_config": {"properties": {"ai_agent_access": {"description": "AI agent access control for the article. Defaults to inherit from the parent scope when omitted.\n\n* inherit KnowledgeBaseArticleAIAgentAccessInherit  Defers the access check to the parent object (Collection or KnowledgeBase).\n\n* none KnowledgeBaseArticleAIAgentAccessNone  No AI agents have access to this article.\n\n* specific_agents KnowledgeBaseArticleAIAgentAccessSpecificAgents  Only specific AI agents enumerated in the allowlist have access.", "enum": ["inherit", "none", "specific_agents"], "type": "string", "x-go-enum-desc": "inherit KnowledgeBaseArticleAIAgentAccessInherit  Defers the access check to the parent object (Collection or KnowledgeBase).\nnone KnowledgeBaseArticleAIAgentAccessNone  No AI agents have access to this article.\nspecific_agents KnowledgeBaseArticleAIAgentAccessSpecificAgents  Only specific AI agents enumerated in the allowlist have access.", "x-go-name": "AiAgentAccess"}, "allowed_agent_ids": {"description": "List of AI agent IDs that may access this article when ai_agent_access is set to "specific_agents".", "items": {"type": "string"}, "type": "array", "x-go-name": "AllowedAgentIDs"}, "customer_visibility_condition": {"properties": {"field": {"description": "The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than "and" or "or"),\n\nField must be set, along with either Value or Values, depending on the operator.", "type": "string", "x-go-name": "Field"}, "operator": {"description": "The operator for this filter.\n\n* equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\n\n* not_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\n\n* contains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n* does_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n* in FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\n\n* not_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\n\n* and FilterOperatorAnd  Matches objects only if all subfilters match.\n\n* or FilterOperatorOr  Matches objects if any subfilter matches.\n\n* time_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\n\n* time_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\n\n* time_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\n\n* string_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\n\n* string_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\n\n* is_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\n\n* is_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "enum": ["equals", "not_equals", "contains", "does_not_contain", "in", "not_in", "and", "or", "time_is_after", "time_is_before", "time_range", "string_contains", "string_does_not_contain", "is_set", "is_unset"], "type": "string", "x-go-enum-desc": "equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\nnot_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\ncontains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\ndoes_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\nin FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\nnot_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\nand FilterOperatorAnd  Matches objects only if all subfilters match.\nor FilterOperatorOr  Matches objects if any subfilter matches.\ntime_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\ntime_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\ntime_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\nstring_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\nstring_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\nis_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\nis_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "x-go-name": "Operator"}, "subfilters": {"description": "Sub-filters for this filter.  Valid only when operator is "and" or "or".\n\nThe maximum allowed depth for a tree of filters is 3.", "items": {"$ref": "#/components/schemas/Filter", "has_circular_reference": true}, "type": "array", "x-go-name": "Subfilters"}, "value": {"description": "The value for this filter. Only used for single-valued operators\n\n("equals", "not_equals", "contains", "does_not_contain")", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values for this filter. Only used for multi-valued operators ("in", "not_in").", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "required": ["field", "operator"], "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "visibility": {"description": "The visibility setting of the article.\n\n* public KnowledgeBaseArticleVisibilityPublic\n\n* customer KnowledgeBaseArticleVisibilityCustomer\n\n* internal_only KnowledgeBaseArticleVisibilityInternalOnly", "enum": ["public", "customer", "internal_only"], "type": "string", "x-go-enum-desc": "public KnowledgeBaseArticleVisibilityPublic\ncustomer KnowledgeBaseArticleVisibilityCustomer\ninternal_only KnowledgeBaseArticleVisibilityInternalOnly", "x-go-name": "Visibility"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}}, "required": ["author_user_id", "body_html", "title"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "UPDATEARTICLE": '{"properties": {"body_html": {"description": "The HTML body of the article.", "type": "string", "x-go-name": "BodyHTML"}, "language": {"description": "The language code of the translation to update. If not provided, the default language (original article) will be updated.", "type": "string", "x-go-name": "Language"}, "publish_updated_body_html": {"description": "Whether the changes to the article should be published. Defaults to false.", "type": "boolean", "x-go-name": "PublishUpdatedBodyHTML"}, "title": {"description": "The title of the article.", "type": "string", "x-go-name": "Title"}, "visibility_config": {"properties": {"ai_agent_access": {"description": "AI agent access control for the article. Defaults to inherit from the parent scope when omitted.\n\n* inherit KnowledgeBaseArticleAIAgentAccessInherit  Defers the access check to the parent object (Collection or KnowledgeBase).\n\n* none KnowledgeBaseArticleAIAgentAccessNone  No AI agents have access to this article.\n\n* specific_agents KnowledgeBaseArticleAIAgentAccessSpecificAgents  Only specific AI agents enumerated in the allowlist have access.", "enum": ["inherit", "none", "specific_agents"], "type": "string", "x-go-enum-desc": "inherit KnowledgeBaseArticleAIAgentAccessInherit  Defers the access check to the parent object (Collection or KnowledgeBase).\nnone KnowledgeBaseArticleAIAgentAccessNone  No AI agents have access to this article.\nspecific_agents KnowledgeBaseArticleAIAgentAccessSpecificAgents  Only specific AI agents enumerated in the allowlist have access.", "x-go-name": "AiAgentAccess"}, "allowed_agent_ids": {"description": "List of AI agent IDs that may access this article when ai_agent_access is set to "specific_agents".", "items": {"type": "string"}, "type": "array", "x-go-name": "AllowedAgentIDs"}, "customer_visibility_condition": {"properties": {"field": {"description": "The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than "and" or "or"),\n\nField must be set, along with either Value or Values, depending on the operator.", "type": "string", "x-go-name": "Field"}, "operator": {"description": "The operator for this filter.\n\n* equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\n\n* not_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\n\n* contains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n* does_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n* in FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\n\n* not_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\n\n* and FilterOperatorAnd  Matches objects only if all subfilters match.\n\n* or FilterOperatorOr  Matches objects if any subfilter matches.\n\n* time_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\n\n* time_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\n\n* time_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\n\n* string_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\n\n* string_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\n\n* is_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\n\n* is_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "enum": ["equals", "not_equals", "contains", "does_not_contain", "in", "not_in", "and", "or", "time_is_after", "time_is_before", "time_range", "string_contains", "string_does_not_contain", "is_set", "is_unset"], "type": "string", "x-go-enum-desc": "equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\nnot_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\ncontains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\ndoes_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\nin FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\nnot_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\nand FilterOperatorAnd  Matches objects only if all subfilters match.\nor FilterOperatorOr  Matches objects if any subfilter matches.\ntime_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\ntime_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\ntime_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\nstring_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\nstring_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\nis_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\nis_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "x-go-name": "Operator"}, "subfilters": {"description": "Sub-filters for this filter.  Valid only when operator is "and" or "or".\n\nThe maximum allowed depth for a tree of filters is 3.", "items": {"$ref": "#/components/schemas/Filter", "has_circular_reference": true}, "type": "array", "x-go-name": "Subfilters"}, "value": {"description": "The value for this filter. Only used for single-valued operators\n\n("equals", "not_equals", "contains", "does_not_contain")", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values for this filter. Only used for multi-valued operators ("in", "not_in").", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "required": ["field", "operator"], "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "visibility": {"description": "The visibility setting of the article.\n\n* public KnowledgeBaseArticleVisibilityPublic\n\n* customer KnowledgeBaseArticleVisibilityCustomer\n\n* internal_only KnowledgeBaseArticleVisibilityInternalOnly", "enum": ["public", "customer", "internal_only"], "type": "string", "x-go-enum-desc": "public KnowledgeBaseArticleVisibilityPublic\ncustomer KnowledgeBaseArticleVisibilityCustomer\ninternal_only KnowledgeBaseArticleVisibilityInternalOnly", "x-go-name": "Visibility"}}, "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATENEWCOLLECTION": '{"properties": {"description": {"description": "Description of the collection.", "type": "string", "x-go-name": "Description"}, "parent_collection_id": {"description": "The id of the collection associated to the article", "type": "string", "x-go-name": "ParentCollectionID"}, "slug": {"description": "The slug of the collection. Defaults to a slug based on the title.", "type": "string", "x-go-name": "Slug"}, "title": {"description": "The title of the collection.", "type": "string", "x-go-name": "Title"}}, "required": ["title"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATEROUTEREDIRECT": '{"properties": {"from_path": {"description": "The path to redirect from.", "type": "string", "x-go-name": "FromPath"}, "language": {"description": "Language of the object to redirect to. If not specified, the default language of the knowledge base will be used.", "type": "string", "x-go-name": "Language"}, "object_id": {"description": "The ID of the object to redirect to.", "type": "string", "x-go-name": "ObjectID"}, "object_type": {"description": "The type of the object to redirect to. This must be "article".", "type": "string", "x-go-name": "ObjectType"}}, "required": ["from_path", "object_id", "object_type"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "UPDATEPROJECT": '{"properties": {"customer_portal_visible": {"description": "Customer portal visible for this project", "type": "boolean", "x-go-name": "CustomerPortalVisible"}, "description_html": {"description": "Description HTML for this project", "type": "string", "x-go-name": "DescriptionHTML"}, "end_date": {"description": "End date for this project, in RFC 3339 format", "type": "string", "x-go-name": "EndDate"}, "is_archived": {"description": "Whether the project is archived", "type": "boolean", "x-go-name": "IsArchived"}, "name": {"description": "Name for this project", "type": "string", "x-go-name": "Name"}, "owner_id": {"description": "Owner ID for this project", "type": "string", "x-go-name": "OwnerID"}, "start_date": {"description": "Start date for this project, in RFC 3339 format", "type": "string", "x-go-name": "StartDate"}}, "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "CREATENEWTAG": '{"properties": {"hex_color": {"description": "The hex code of the tag\'s color.", "type": "string", "x-go-name": "HexColor"}, "object_type": {"description": "The object type of the associated object. Can be "account", "issue", or "contact".", "type": "string", "x-go-name": "ObjectType"}, "value": {"description": "The tag value.", "type": "string", "x-go-name": "Value"}}, "required": ["object_type", "value"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
    "SEARCHUSERSBYEMAIL": '{"properties": {"cursor": {"description": "The cursor to use for pagination.", "type": "string", "x-go-name": "Cursor"}, "filter": {"properties": {"field": {"description": "The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than "and" or "or"),\n\nField must be set, along with either Value or Values, depending on the operator.", "type": "string", "x-go-name": "Field"}, "operator": {"description": "The operator for this filter.\n\n* equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\n\n* not_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\n\n* contains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n* does_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n* in FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\n\n* not_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\n\n* and FilterOperatorAnd  Matches objects only if all subfilters match.\n\n* or FilterOperatorOr  Matches objects if any subfilter matches.\n\n* time_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\n\n* time_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\n\n* time_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\n\n* string_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\n\n* string_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\n\n* is_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\n\n* is_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "enum": ["equals", "not_equals", "contains", "does_not_contain", "in", "not_in", "and", "or", "time_is_after", "time_is_before", "time_range", "string_contains", "string_does_not_contain", "is_set", "is_unset"], "type": "string", "x-go-enum-desc": "equals FilterOperatorEquals  Matches objects that are exactly equal to the value in the field.\nnot_equals FilterOperatorNotEquals  Matches objects that are not exactly equal to the value in the field.\ncontains FilterOperatorContains  For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\ndoes_not_contain FilterOperatorDoesNotContain  For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\nin FilterOperatorIn  Matches objects if the field is one of several possible values,  as specified in the values array.\nnot_in FilterOperatorNotIn  Matches objects if the field is none of several possible values,  as specified in the values array.\nand FilterOperatorAnd  Matches objects only if all subfilters match.\nor FilterOperatorOr  Matches objects if any subfilter matches.\ntime_is_after FilterOperatorTimeIsAfter  Matches objects if the field is after the given time.\ntime_is_before FilterOperatorTimeIsBefore  Matches objects if the field is before the given time.\ntime_range FilterOperatorTimeRange  Matches objects if the field is between the given times.\nstring_contains FilterOperatorStringContains  Matches objects if the field contains the given string.\nstring_does_not_contain FilterOperatorStringDoesNotContain  Matches objects if the field does not contain the given string.\nis_set FilterOperatorIsSet  FilterOperatorIsSet matches objects if the field is set.\nis_unset FilterOperatorIsUnset  FilterOperatorIsUnset matches objects if the field is unset.", "x-go-name": "Operator"}, "subfilters": {"description": "Sub-filters for this filter.  Valid only when operator is "and" or "or".\n\nThe maximum allowed depth for a tree of filters is 3.", "items": {"$ref": "#/components/schemas/Filter", "has_circular_reference": true}, "type": "array", "x-go-name": "Subfilters"}, "value": {"description": "The value for this filter. Only used for single-valued operators\n\n("equals", "not_equals", "contains", "does_not_contain")", "type": "string", "x-go-name": "Value"}, "values": {"description": "The values for this filter. Only used for multi-valued operators ("in", "not_in").", "items": {"type": "string"}, "type": "array", "x-go-name": "Values"}}, "required": ["field", "operator"], "type": "object", "x-go-package": "pylon/api/apiserver/apitypes"}, "limit": {"description": "The number of users to fetch. Defaults to 100. Must be greater than 0 and less than 1000.", "format": "int64", "type": "integer", "x-go-name": "Limit"}}, "required": ["filter"], "type": "object", "x-go-package": "pylon/api/apiserver/endpoints"}',  # noqa: E501
}
