Skip to main content
Glama

update-draft-agreement

Destructive

Edit a draft agreement in place; only agreements in draft status can be edited. Only the fields you send change. Send the term object the agreement type owns (csa_attributes and csa_order_form_attributes for a CSA, design_partner_attributes for a Design, and so on) and include that term's existing id from get-agreement, otherwise the request is rejected. Use send-agreement when the draft is ready.

Input Schema

NameRequiredDescriptionDefault
bodyYes
pathParamsYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / body / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_role": {
      +            "description": "PSA only. The recipient's role: `Customer` (the default) or `Provider`. Send it with `sender_role`; the two must be one `Provider` and one `Customer`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "sender_role": {
      +            "description": "PSA only. Your company's role: `Provider` (the default) or `Customer` when you hire the recipient to provide the services. Send it with `recipient_role`; the two must be one `Provider` and one `Customer`. When reading a PSA, an empty `sender_role` means `Provider`. Other standard agreement types ignore it.",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / body / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "include_terms": {
      -            "description": "When true, the standard terms are included with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / body / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "enum": [
      -              "signature",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "include_terms": {
      +            "description": "When true, the standard terms are included with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes to the legal terms. For agreement types without separate business terms, that covers every term. CSA order forms, PSA statements of work, partnership business terms and software license order forms have their own `negotiations_allowed` flag.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / body / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "enum": [
      +              "signature",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  }
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / body / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      -    "properties": {
      -      "agreement": {
      -        "additionalProperties": {},
      -        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      -        "properties": {
      -          "additional_changes": {
      -            "description": "Free-text changes shown on the cover page.",
      -            "type": "string"
      -          },
      -          "agreement_roles_attributes": {
      -            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "description": "The UUID of an existing role. Omit when adding a new person.",
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -                  "type": "string"
      -                },
      -                "role": {
      -                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      -                  "enum": [
      -                    "cc"
      -                  ],
      -                  "type": "string"
      -                },
      -                "user_attributes": {
      -                  "additionalProperties": false,
      -                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      -                  "properties": {
      -                    "email": {
      -                      "anyOf": [
      -                        {},
      -                        {}
      -                      ]
      -                    }
      -                  },
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "role"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "attachment_ids": {
      -            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "billing_email": {
      -            "description": "Email of the billing contact.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "billing_name": {
      -            "description": "Name of the billing contact.",
      -            "type": "string"
      -          },
      -          "billing_workflow_type": {
      -            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      -            "enum": [
      -              "link",
      -              "stripe"
      -            ],
      -            "type": "string"
      -          },
      -          "chosen_courts_country": {
      -            "description": "The country in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "chosen_courts_region": {
      -            "description": "The state or region in which disputes will be resolved.",
      -            "type": "string"
      -          },
      -          "confidentiality_period": {
      -            "description": "How many years confidentiality obligations last (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "confidentiality_period_perpetual": {
      -            "description": "When true, confidentiality obligations are perpetual (NDA).",
      -            "type": "boolean"
      -          },
      -          "default_signer_email": {
      -            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "district_or_county": {
      -            "description": "The district or county for dispute resolution.",
      -            "type": "string"
      -          },
      -          "effective_date": {
      -            "description": "The effective date, when set explicitly.",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "effective_date_of_confidentiality": {
      -            "description": "When confidentiality obligations begin (NDA).",
      -            "type": "string"
      -          },
      -          "effective_date_type": {
      -            "description": "How the effective date is determined.",
      -            "type": "string"
      -          },
      -          "framework_terms_description": {
      -            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      -            "type": "string"
      -          },
      -          "framework_terms_type": {
      -            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      -            "enum": [
      -              "new",
      -              "description"
      -            ],
      -            "type": "string"
      -          },
      -          "governing_law_country": {
      -            "description": "The country whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "governing_law_region": {
      -            "description": "The state or region whose laws govern the agreement.",
      -            "type": "string"
      -          },
      -          "include_additional_changes": {
      -            "description": "When true, `additional_changes` is included on the cover page.",
      -            "type": "boolean"
      -          },
      -          "include_automated_nudges": {
      -            "description": "When true, reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_automated_payment_reminders": {
      -            "description": "When true, payment reminder emails are sent automatically.",
      -            "type": "boolean"
      -          },
      -          "include_billing_info": {
      -            "description": "When true, `billing_name` and `billing_email` are included.",
      -            "type": "boolean"
      -          },
      -          "include_billing_workflow": {
      -            "description": "When true, enables a billing workflow after signing.",
      -            "type": "boolean"
      -          },
      -          "include_cc_users": {
      -            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      -            "type": "boolean"
      -          },
      -          "include_expiration_date": {
      -            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      -            "format": "date",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -            "type": "string"
      -          },
      -          "include_expiration_days": {
      -            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "include_expiration_type": {
      -            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      -            "enum": [
      -              "none",
      -              "days",
      -              "date"
      -            ],
      -            "type": "string"
      -          },
      -          "include_message": {
      -            "description": "When true, `message` is sent with the agreement.",
      -            "type": "boolean"
      -          },
      -          "manual_send": {
      -            "description": "When true, the agreement is marked as sent outside the platform.",
      -            "type": "boolean"
      -          },
      -          "message": {
      -            "description": "The message sent to the recipient.",
      -            "type": "string"
      -          },
      -          "negotiations_allowed": {
      -            "description": "When true, the recipient can propose changes.",
      -            "type": "boolean"
      -          },
      -          "payment_link_url": {
      -            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      -            "type": "string"
      -          },
      -          "purpose": {
      -            "description": "The purpose of the agreement (NDA).",
      -            "type": "string"
      -          },
      -          "recipient_city": {
      -            "description": "The counterparty's city.",
      -            "type": "string"
      -          },
      -          "recipient_country": {
      -            "description": "The counterparty's country.",
      -            "type": "string"
      -          },
      -          "recipient_email": {
      -            "description": "The counterparty's email address.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_name": {
      -            "description": "The counterparty's full name.",
      -            "type": "string"
      -          },
      -          "recipient_notice_email_address": {
      -            "description": "Email address for legal notices to the recipient.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "recipient_organization": {
      -            "description": "The counterparty's organization.",
      -            "type": "string"
      -          },
      -          "recipient_state": {
      -            "description": "The counterparty's state or region.",
      -            "type": "string"
      -          },
      -          "recipient_street_address": {
      -            "description": "The counterparty's street address.",
      -            "type": "string"
      -          },
      -          "recipient_title": {
      -            "description": "The counterparty's job title.",
      -            "type": "string"
      -          },
      -          "recipient_zip": {
      -            "description": "The counterparty's postal code.",
      -            "type": "string"
      -          },
      -          "sender_last_to_sign": {
      -            "description": "When true, your signer signs after the recipient.",
      -            "type": "boolean"
      -          },
      -          "sender_notice_email_address": {
      -            "description": "Email address for legal notices to your organization.",
      -            "format": "email",
      -            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -            "type": "string"
      -          },
      -          "subsidiary_id": {
      -            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      -          },
      -          "term": {
      -            "description": "The length of the agreement term in years (NDA).",
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "term_period_perpetual": {
      -            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      -            "type": "boolean"
      -          },
      -          "test_agreement": {
      -            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      -    "properties": {
      -      "agreement": {}
      -    },
      -    "required": [
      -      "agreement"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `NDA`. NDA terms live directly on the agreement (`purpose`, `term`, `confidentiality_period`), so an NDA draft has no term object of its own.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `CSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `DPA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Design`. The agreement type is `Design` and the term it owns is `design_partner`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Pilot`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `PSA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Partnership`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `BAA`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `LOI`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Software License`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft whose `agreement_type` is `Amendment`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Body for a draft created from a custom template. Drafts created from a custom template have no standard term object; their fields live in `custom_field_values`.",
      +    "properties": {
      +      "agreement": {
      +        "additionalProperties": {},
      +        "description": "The cover page fields every draft accepts, whatever its agreement type. Omitted fields keep their current values.",
      +        "properties": {
      +          "additional_changes": {
      +            "description": "Free-text changes shown on the cover page.",
      +            "type": "string"
      +          },
      +          "agreement_roles_attributes": {
      +            "description": "The keep-informed (`cc`) users on the draft. Requires `include_cc_users` to be `true`. Add a person by sending `role: \"cc\"` with `user_attributes.email` and no `id`. Remove one by sending its existing `id` with a blank `user_attributes.email`. People are identified by email only, so there is no way to cc someone by user id.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "description": "The UUID of an existing role. Omit when adding a new person.",
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "description": "The role to manage. Only `cc` roles can be changed through this endpoint.",
      +                  "enum": [
      +                    "cc"
      +                  ],
      +                  "type": "string"
      +                },
      +                "user_attributes": {
      +                  "additionalProperties": false,
      +                  "description": "The person to cc. Send a blank `email` with an `id` to remove that person.",
      +                  "properties": {
      +                    "email": {
      +                      "anyOf": [
      +                        {},
      +                        {}
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "role"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "attachment_ids": {
      +            "description": "The UUIDs of the attachments to include, from `POST /v1/attachments`. Replaces the current list.",
      +            "items": {
      +              "format": "uuid",
      +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "billing_email": {
      +            "description": "Email of the billing contact.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "billing_name": {
      +            "description": "Name of the billing contact.",
      +            "type": "string"
      +          },
      +          "billing_workflow_type": {
      +            "description": "The type of billing workflow. Use \"link\" with `payment_link_url`, or \"stripe\" for Stripe-managed billing.",
      +            "enum": [
      +              "link",
      +              "stripe"
      +            ],
      +            "type": "string"
      +          },
      +          "chosen_courts_country": {
      +            "description": "The country in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "chosen_courts_region": {
      +            "description": "The state or region in which disputes will be resolved.",
      +            "type": "string"
      +          },
      +          "confidentiality_period": {
      +            "description": "How many years confidentiality obligations last (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "confidentiality_period_perpetual": {
      +            "description": "When true, confidentiality obligations are perpetual (NDA).",
      +            "type": "boolean"
      +          },
      +          "default_signer_email": {
      +            "description": "The email of the user in your organization who signs the agreement. Must belong to a user in your organization; changing it moves the signer role to that user. A signer outside your organization returns a 400.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "district_or_county": {
      +            "description": "The district or county for dispute resolution.",
      +            "type": "string"
      +          },
      +          "effective_date": {
      +            "description": "The effective date, when set explicitly.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "effective_date_of_confidentiality": {
      +            "description": "When confidentiality obligations begin (NDA).",
      +            "type": "string"
      +          },
      +          "effective_date_type": {
      +            "description": "How the effective date is determined.",
      +            "type": "string"
      +          },
      +          "framework_terms_description": {
      +            "description": "Custom framework terms description. Only used when `framework_terms_type` is \"description\".",
      +            "type": "string"
      +          },
      +          "framework_terms_type": {
      +            "description": "How framework terms are specified. Use \"new\" for standard terms or \"description\" with `framework_terms_description`.",
      +            "enum": [
      +              "new",
      +              "description"
      +            ],
      +            "type": "string"
      +          },
      +          "governing_law_country": {
      +            "description": "The country whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "governing_law_region": {
      +            "description": "The state or region whose laws govern the agreement.",
      +            "type": "string"
      +          },
      +          "include_additional_changes": {
      +            "description": "When true, `additional_changes` is included on the cover page.",
      +            "type": "boolean"
      +          },
      +          "include_automated_nudges": {
      +            "description": "When true, reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_automated_payment_reminders": {
      +            "description": "When true, payment reminder emails are sent automatically.",
      +            "type": "boolean"
      +          },
      +          "include_billing_info": {
      +            "description": "When true, `billing_name` and `billing_email` are included.",
      +            "type": "boolean"
      +          },
      +          "include_billing_workflow": {
      +            "description": "When true, enables a billing workflow after signing.",
      +            "type": "boolean"
      +          },
      +          "include_cc_users": {
      +            "description": "Whether to keep other people informed. Setting this to `false` removes every keep-informed (`cc`) user on the draft, and while it is `false` new `cc` roles are ignored.",
      +            "type": "boolean"
      +          },
      +          "include_expiration_date": {
      +            "description": "Expiration date in YYYY-MM-DD format. Use with `include_expiration_type` \"date\".",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "include_expiration_days": {
      +            "description": "Days until the agreement expires. Use with `include_expiration_type` \"days\".",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "include_expiration_type": {
      +            "description": "How the agreement expires: \"none\" (default), \"days\" (use `include_expiration_days`), or \"date\" (use `include_expiration_date`).",
      +            "enum": [
      +              "none",
      +              "days",
      +              "date"
      +            ],
      +            "type": "string"
      +          },
      +          "include_message": {
      +            "description": "When true, `message` is sent with the agreement.",
      +            "type": "boolean"
      +          },
      +          "manual_send": {
      +            "description": "When true, the agreement is marked as sent outside the platform.",
      +            "type": "boolean"
      +          },
      +          "message": {
      +            "description": "The message sent to the recipient.",
      +            "type": "string"
      +          },
      +          "negotiations_allowed": {
      +            "description": "When true, the recipient can propose changes.",
      +            "type": "boolean"
      +          },
      +          "payment_link_url": {
      +            "description": "A payment URL shown to the recipient after signing. Requires `include_billing_workflow` and `billing_workflow_type` \"link\".",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "The purpose of the agreement (NDA).",
      +            "type": "string"
      +          },
      +          "recipient_city": {
      +            "description": "The counterparty's city.",
      +            "type": "string"
      +          },
      +          "recipient_country": {
      +            "description": "The counterparty's country.",
      +            "type": "string"
      +          },
      +          "recipient_email": {
      +            "description": "The counterparty's email address.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_name": {
      +            "description": "The counterparty's full name.",
      +            "type": "string"
      +          },
      +          "recipient_notice_email_address": {
      +            "description": "Email address for legal notices to the recipient.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "recipient_organization": {
      +            "description": "The counterparty's organization.",
      +            "type": "string"
      +          },
      +          "recipient_state": {
      +            "description": "The counterparty's state or region.",
      +            "type": "string"
      +          },
      +          "recipient_street_address": {
      +            "description": "The counterparty's street address.",
      +            "type": "string"
      +          },
      +          "recipient_title": {
      +            "description": "The counterparty's job title.",
      +            "type": "string"
      +          },
      +          "recipient_zip": {
      +            "description": "The counterparty's postal code.",
      +            "type": "string"
      +          },
      +          "sender_last_to_sign": {
      +            "description": "When true, your signer signs after the recipient.",
      +            "type": "boolean"
      +          },
      +          "sender_notice_email_address": {
      +            "description": "Email address for legal notices to your organization.",
      +            "format": "email",
      +            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +            "type": "string"
      +          },
      +          "subsidiary_id": {
      +            "description": "The UUID of the subsidiary sending the agreement. Send `null`, an empty string, or an id that no longer exists to clear it. Omit the key entirely to leave the current subsidiary alone."
      +          },
      +          "term": {
      +            "description": "The length of the agreement term in years (NDA).",
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "term_period_perpetual": {
      +            "description": "When true, the term runs perpetually and `term` is ignored (NDA).",
      +            "type": "boolean"
      +          },
      +          "test_agreement": {
      +            "description": "When true, marks the agreement as a test. Test agreements do not count against your monthly limit.",
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "agreement"
      +    ],
      +    "type": "object"
      +  }
      +]
  6. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true and idempotent=false, so the safety profile is known. The description adds genuine behavioral context beyond that: partial-update semantics ('only the fields you send change'), the agreement-type-specific term object requirement, the need to carry an existing term id from get-agreement, and that missing it causes rejection. It stops short of saying what a destructive edit can irrecoverably overwrite (e.g. attachment_ids replacing the list), which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, zero filler, and the constraints (draft-only, partial update, term id requirement, send-agreement alternative) are front-loaded in that order of importance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description covers the key call-time gotchas for a mutation with a deeply nested polymorphic body. It could say more about how the custom-template variant (custom_field_values) differs, but the schema's anyOf branches carry that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only two top-level parameters exist and schema description coverage is reported at 0%, so the description has to carry the load for the body shape. It does useful work by explaining the polymorphic pattern — send the term object the agreement type owns (csa_attributes, design_partner_attributes, etc.) with that term's existing id — which is the non-obvious part of constructing the body. It doesn't enumerate the per-type mappings fully, so a 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Edit a draft agreement in place') and immediately bounds the scope to drafts. It is distinguishable from sibling tools like send-agreement and create-agreement without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the hard precondition (only drafts in draft status can be edited) and explicitly routes to the alternative: 'Use send-agreement when the draft is ready.' Both when-to-use and when-to-switch are spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.